/*
 * CTA, feature, ad and brand bands. Theme vocabulary only: --r-box cards, 12px inner radius,
 * pill buttons, the one brand red (--accent-solid for fills), neutral shadows, hover feedback only.
 * Each band uses a different layout so the page doesn't repeat itself.
 */
.cta-band { padding-block:clamp(24px,3vw,40px); scroll-margin-top:calc(var(--header-h) + 24px); }
.cta-band__img { display:block; width:100%; height:100%; object-fit:cover; }
.cta-band__media picture { display:block; height:100%; }
.cta-band__title { margin:0; font-size:clamp(26px,2.8vw,38px); font-weight:680; line-height:1.08; letter-spacing:-.03em; text-wrap:balance; }
.cta-band__text { margin:12px 0 0; max-width:52ch; font-size:16.5px; line-height:1.6; }
.cta-band__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }

/* Newsletter: photo left, dark panel right */
.cta-newsletter { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
.cta-newsletter > * { min-width:0; }
.cta-newsletter .cta-band__media { border-radius:var(--r-box) 0 0 var(--r-box); overflow:hidden; min-height:280px; }
.cta-newsletter .cta-band__panel { display:flex; flex-direction:column; justify-content:center; padding:clamp(24px,4vw,48px); border-radius:0 var(--r-box) var(--r-box) 0; background:#121a2b; color:#e9ecf2; }
.cta-newsletter .cta-band__title { color:#fff; }
.cta-newsletter .cta-band__text { color:rgb(233 236 242 / .78); }
.nl-form { margin-top:24px; }
.nl-form__row { display:flex; gap:10px; }
.nl-form__email { flex:1; background:#fff; color:#0d1424; box-shadow:none; }
.nl-form__email::placeholder { color:#6b7383; }
.nl-form__row .button { flex:none; height:var(--field-h); }
.nl-form__consent { display:flex; align-items:flex-start; gap:10px; margin-top:14px; color:rgb(233 236 242 / .78); font-size:13.5px; line-height:1.5; cursor:pointer; }
.nl-form__consent input { flex:none; width:18px; height:18px; margin-top:1px; accent-color:var(--accent-solid); }
.nl-form__consent a { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.nl-form__hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cta-band__msg { margin:18px 0 0; padding:10px 14px; border-radius:12px; font-size:14.5px; font-weight:560; }
.cta-band__msg--ok { background:rgb(52 199 120 / .16); color:#7be3a8; }
.cta-band__msg--err { background:rgb(239 91 79 / .18); color:#ff9b92; }

/* Feature: full-width photo with text over a dark fade */
.cta-feature { position:relative; display:grid; }
.cta-feature > * { grid-area:1 / 1; }
.cta-feature .cta-band__media { border-radius:var(--r-box); overflow:hidden; min-height:clamp(320px,34vw,440px); }
.cta-feature .cta-band__media::after { content:""; position:absolute; inset:0; border-radius:var(--r-box); background:linear-gradient(90deg, rgb(8 12 22 / .86) 0%, rgb(8 12 22 / .6) 42%, rgb(8 12 22 / 0) 75%); pointer-events:none; }
.cta-feature .cta-band__media { position:relative; }
.cta-feature .cta-band__panel { position:relative; z-index:1; align-self:center; max-width:560px; padding:clamp(24px,4vw,56px); color:#fff; }
.cta-feature .cta-band__title { color:#fff; font-size:clamp(28px,3.4vw,46px); }
.cta-feature .cta-band__text { color:rgb(255 255 255 / .82); }
.cta-feature__count { display:inline-flex; align-items:baseline; gap:8px; margin:0 0 14px; padding:6px 14px; border-radius:var(--r-pill); background:var(--accent-solid); color:#fff; font-size:14px; font-weight:600; }
.cta-feature__count b { font:650 18px var(--mono); }
.button--glass { background:rgb(255 255 255 / .14); color:#fff; box-shadow:inset 0 0 0 1px rgb(255 255 255 / .28); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
body.acca a.button--glass { color:#fff; }
.button--glass:hover { background:rgb(255 255 255 / .22); }

/* Ad banner: light card, creative beside the offer, clearly labelled */
.ad-banner { padding-block:clamp(16px,2vw,28px); }
.ad-banner__card { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:stretch; border-radius:var(--r-box); background:var(--surface); box-shadow:0 0 0 1px var(--line), var(--shadow-sm); overflow:hidden; transition:transform var(--dur-2) var(--spring), box-shadow var(--dur-2) var(--ease-out); }
.ad-banner__card:hover { transform:translateY(-2px); box-shadow:0 0 0 1px var(--line-strong), var(--shadow-md); }
.ad-banner__media { min-height:200px; }
.ad-banner__media picture, .ad-banner__media img { display:block; width:100%; height:100%; object-fit:cover; }
.ad-banner__copy { display:flex; flex-direction:column; justify-content:center; gap:8px; padding:clamp(20px,3vw,36px); color:var(--ink); }
.ad-banner__label { color:var(--muted); font-size:12.5px; font-weight:600; }
.ad-banner__title { font-size:clamp(22px,2.2vw,28px); font-weight:680; letter-spacing:-.02em; }
.ad-banner__offer { color:var(--ink-2); font-size:16px; line-height:1.5; }
.ad-banner__cta { align-self:flex-start; margin-top:10px; }
.ad-banner__terms { margin:10px 4px 0; color:var(--muted); font-size:12px; line-height:1.5; }

/* Brand band: above the footer on inner pages */
.brand-band { padding-block:clamp(32px,4vw,56px) clamp(16px,2vw,24px); }
.brand-band__card { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:clamp(20px,3vw,40px); align-items:center; padding:clamp(20px,3vw,32px); border-radius:var(--r-box); background:var(--surface); box-shadow:0 0 0 1px var(--line), var(--shadow-sm); }
.brand-band__name { margin:0 0 6px; color:var(--accent-ink); font-size:15px; font-weight:700; }
.brand-band__title { margin:0; font-size:clamp(24px,2.6vw,34px); font-weight:680; line-height:1.1; letter-spacing:-.028em; text-wrap:balance; }
.brand-band__text { margin:10px 0 0; color:var(--muted); font-size:16px; }
.brand-band__links { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:24px 0 0; padding:0; list-style:none; }
.brand-band__links a { display:flex; align-items:center; gap:12px; height:54px; padding:0 14px; border-radius:12px; background:var(--bg); color:var(--ink); font-size:15px; font-weight:620; transition:background-color var(--dur-1) var(--ease-out), transform var(--dur-2) var(--spring); }
.brand-band__links a:hover { background:var(--accent-soft); }
.brand-band__links a:active { transform:scale(.98); }
.brand-band__icon { width:20px; height:20px; color:var(--accent-ink); }
.brand-band__links span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brand-band__arrow { color:var(--muted); transition:transform var(--dur-2) var(--spring); }
.brand-band__links a:hover .brand-band__arrow { transform:translateX(3px); color:var(--accent-ink); }
.brand-band__social { display:flex; gap:8px; margin:20px 0 0; padding:0; list-style:none; }
.brand-band__social a { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--bg-2); color:var(--ink); transition:background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out); }
.brand-band__social a:hover { background:var(--accent-solid); color:#fff; }
.brand-band__social .icon { width:20px; height:20px; }
.brand-band__media { aspect-ratio:1; border-radius:12px; overflow:hidden; }
.brand-band__media picture, .brand-band__img { display:block; width:100%; height:100%; object-fit:cover; }

@media (max-width:860px) {
	.cta-newsletter, .ad-banner__card, .brand-band__card { grid-template-columns:1fr; }
	.cta-newsletter .cta-band__media { min-height:180px; max-height:220px; border-radius:var(--r-box) var(--r-box) 0 0; }
	.cta-newsletter .cta-band__panel { border-radius:0 0 var(--r-box) var(--r-box); }
	.cta-feature .cta-band__media::after { background:linear-gradient(0deg, rgb(8 12 22 / .9) 0%, rgb(8 12 22 / .55) 55%, rgb(8 12 22 / .15) 100%); }
	.cta-feature .cta-band__panel { align-self:end; }
	.ad-banner__media { min-height:160px; max-height:200px; }
	.brand-band__media { aspect-ratio:16 / 10; order:-1; }
}
@media (max-width:520px) {
	.nl-form__row { flex-direction:column; }
	.nl-form__email { flex:none; height:var(--field-h); }
	.nl-form__row .button { justify-content:center; }
	.brand-band__links { grid-template-columns:1fr; }
}
