/* Isolated email-gate preview. Does not change the underlying storefront. */
.cptg-catalog-gate { --gate-blue:#c7db44; --gate-navy:#f2f2ec; box-sizing:border-box; position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:#080a06; color:var(--gate-navy); font-family:'DM Sans',sans-serif; z-index:2147483000; }
.cptg-catalog-gate::backdrop { background:#000000cc; }

/* Registration step — same panel, no navigation or credential persistence. */
.cptg-catalog-gate [hidden] { display:none !important; }
.gate-step-title { font-size:18px; font-weight:500; text-align:center; margin:0 0 26px; }
.cptg-catalog-gate__registration > label:not(.gate-research-confirm) { margin-top:20px; }
.cptg-catalog-gate input[readonly] { color:#a7aca0; background:#151810; }
.gate-password-row { display:flex; position:relative; }
.gate-password-row input { padding-right:70px; }
.gate-password-toggle { position:absolute; right:6px; top:6px; height:44px; padding:0 12px; border:0; background:transparent; color:#c7db44; font:inherit; font-size:12px; cursor:pointer; }
.gate-field-help { font-size:11px; line-height:1.6; color:#a7aca0; margin:8px 0 20px; }
.cptg-catalog-gate label.gate-research-confirm { display:flex; align-items:flex-start; gap:12px; margin:22px 0; text-transform:none; letter-spacing:0; font-size:12px; line-height:1.8; font-weight:400; cursor:pointer; }
.cptg-catalog-gate .gate-research-confirm input { flex:0 0 18px; width:18px; height:18px; margin:3px 0 0; accent-color:#c7db44; }
.gate-back { display:block; margin:18px auto 0; padding:10px; min-height:44px; background:transparent; border:0; font:inherit; font-size:13px; color:#a7aca0; cursor:pointer; }
.gate-registration-step .cptg-catalog-gate__logo { width:190px; margin-bottom:28px; }
.gate-registration-step .cptg-catalog-gate__description { margin-bottom:26px; }
.gate-registration-step .cptg-catalog-gate__form-side { padding-block:36px; }
.gate-registration-step .cptg-catalog-gate__visual { position:sticky; top:0; height:100dvh; align-self:start; }
@media(max-width:767px) {
 .gate-registration-step .cptg-catalog-gate__visual { position:relative; height:auto; align-self:stretch; }
}

.cptg-catalog-gate *, .cptg-catalog-gate *::before, .cptg-catalog-gate *::after { box-sizing:border-box; }
.cptg-catalog-gate__layout { display:grid; grid-template-columns:1.08fr 1fr; min-height:100%; }
.cptg-catalog-gate__visual { position:relative; display:flex; flex-direction:column; justify-content:center; min-width:0; padding:48px clamp(28px,5vw,88px); background:linear-gradient(145deg,#171d0e,#12170b 60%,#222b10); overflow:hidden; }
.cptg-catalog-gate__eyebrow { color:var(--gate-blue); text-transform:uppercase; letter-spacing:.18em; font-size:11px; font-weight:700; margin:0 0 24px; text-align:center; }
.cptg-catalog-gate__viewport { overflow:hidden; border-radius:24px; box-shadow:0 18px 70px #c7db4412; }
.cptg-catalog-gate__track { display:flex; transition:transform .65s ease; }
.cptg-catalog-gate__slide { flex:0 0 100%; min-width:0; margin:0; background:#080a06; }
.cptg-catalog-gate__slide img { display:block; width:100%; height:clamp(220px,38vh,380px); object-fit:contain; background:#080a06; }
.cptg-catalog-gate__slide figcaption { padding:22px; text-align:center; font-size:19px; font-weight:700; }
.cptg-catalog-gate__headline { font-size:clamp(28px,3vw,44px); line-height:1.15; letter-spacing:-.045em; text-align:center; margin:30px 0 14px; }
.cptg-catalog-gate__caption { margin:0 auto; text-align:center; color:#b0b8a0; max-width:420px; font-size:14px; line-height:1.8; }
.cptg-catalog-gate__controls { display:flex; justify-content:center; align-items:center; gap:4px; margin-top:22px; }
.cptg-catalog-gate__dot, .cptg-catalog-gate__pause { display:grid; place-items:center; border:0; background:transparent; color:#bac2a8; min-width:44px; min-height:44px; cursor:pointer; padding:8px; }
.cptg-catalog-gate__dot::before { content:''; display:block; width:8px; height:8px; border-radius:50%; background:#727a5e; }
.cptg-catalog-gate__dot[aria-pressed=true]::before { background:var(--gate-blue); box-shadow:0 0 0 4px #c7db4422; }
.cptg-catalog-gate__pause { font-size:11px; }
.cptg-catalog-gate__form-side { display:flex; align-items:center; justify-content:center; padding:48px clamp(28px,5vw,88px); }
.cptg-catalog-gate__content { width:100%; max-width:480px; text-align:center; }
.cptg-catalog-gate__logo { width:235px; height:auto; display:block; margin:0 auto 58px; }
/* Keep entry fields and long consent copy readable within the centered panel. */
.cptg-catalog-gate__content input,
.cptg-catalog-gate__content label,
.cptg-catalog-gate__content .gate-field-help { text-align:left; }
.cptg-catalog-gate__title { font-size:clamp(26px,2.7vw,36px); letter-spacing:-.04em; line-height:1.2; margin:0 0 16px; }
.cptg-catalog-gate__description { color:#a7aca0; font-size:15px; line-height:1.8; margin:0 0 34px; }
.cptg-catalog-gate label { display:block; margin-bottom:10px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cptg-catalog-gate label span { color:#a7aca0; font-weight:400; }
.cptg-catalog-gate input { width:100%; min-width:0; height:56px; border:1px solid #454b37; border-radius:9px; padding:0 16px; color:#f2f2ec; background:#11140e; font:inherit; font-size:16px; box-shadow:none; }
.cptg-catalog-gate input::placeholder { color:#979f88; }
.cptg-catalog-gate__submit { width:100%; margin-top:14px; min-height:54px; border:0; border-radius:9px; color:white; background:var(--gate-blue); font:inherit; font-weight:700; cursor:pointer; }
.cptg-catalog-gate__submit:hover { background:#d9eb67; }
.cptg-catalog-gate :focus-visible { outline:3px solid #c7db44; outline-offset:3px; }
.cptg-catalog-gate__consent { color:#a7aca0; font-size:11px; line-height:1.8; margin:16px 0 0; }
.cptg-catalog-gate a { color:inherit; text-underline-offset:3px; }
.cptg-catalog-gate .gate-policy-link { display:inline; padding:0; border:0; border-radius:0; background:none; color:inherit; font:inherit; line-height:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cptg-catalog-gate button.gate-policy-link,
.cptg-catalog-gate button.gate-back,
.cptg-catalog-gate button.gate-policy-back,
.cptg-catalog-gate button.gate-password-toggle { background:transparent !important; background-image:none !important; box-shadow:none !important; border:0 !important; border-radius:0 !important; color:#a7aca0 !important; text-transform:none !important; letter-spacing:normal !important; }
.cptg-catalog-gate button.gate-policy-link { padding:0 !important; min-height:0 !important; font:inherit !important; }
.cptg-catalog-gate button::before,
.cptg-catalog-gate button::after { transform:none !important; }
.cptg-catalog-gate button.gate-policy-link::before,
.cptg-catalog-gate button.gate-policy-link::after,
.cptg-catalog-gate button.gate-back::before,
.cptg-catalog-gate button.gate-back::after,
.cptg-catalog-gate button.gate-policy-back::before,
.cptg-catalog-gate button.gate-policy-back::after,
.cptg-catalog-gate button.gate-password-toggle::before,
.cptg-catalog-gate button.gate-password-toggle::after { content:none !important; display:none !important; }
.gate-policy-reader { width:100%; max-width:620px; align-self:flex-start; overflow-wrap:anywhere; }
.gate-policy-reader h2 { font-size:26px; line-height:1.3; }
.gate-policy-back { min-height:44px; padding:10px 0; border:0; background:none; color:#c7db44; font:inherit; cursor:pointer; }
.gate-policy-body { font-size:14px; line-height:1.85; color:#b7bcb0; }
.gate-policy-body h1,.gate-policy-body h2,.gate-policy-body h3 { font-size:20px; line-height:1.4; margin-top:28px; color:#f2f2ec; }
.gate-policy-body table { display:block; max-width:100%; overflow:auto; }
/* A long policy must never determine the height of the adjacent artwork. */
.cptg-catalog-gate.gate-policy-open { overflow:hidden; }
.gate-policy-open .cptg-catalog-gate__layout { height:100dvh; min-height:0; }
.gate-policy-open .cptg-catalog-gate__form-side { min-height:0; height:100dvh; padding-block:24px; overflow:hidden; }
.gate-policy-open .gate-policy-reader { display:flex; flex-direction:column; height:100%; min-height:0; }
.gate-policy-open .gate-policy-back,.gate-policy-open .gate-policy-reader > h2 { flex-shrink:0; }
.gate-policy-open .gate-policy-body { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding-right:14px; scrollbar-gutter:stable; }
@media(min-width:768px) {
 .gate-policy-open .cptg-catalog-gate__visual { height:100dvh; min-height:0; align-self:start; }
 .gate-policy-open .cptg-catalog-gate__slide { height:100dvh; min-height:0; }
}
@media(max-width:767px) {
 .gate-policy-open .cptg-catalog-gate__visual { display:none; }
 .gate-policy-open .cptg-catalog-gate__form-side { flex:1; padding-block:16px; }
}
.cptg-catalog-gate__status { font-size:13px; line-height:1.6; color:#dbb97c; }
.cptg-catalog-gate__status:empty { display:none; }
.cptg-catalog-gate__trust { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px 20px; margin:30px 0; font-size:14px; line-height:1.5; font-weight:600; color:#b7bcb0; }
.cptg-catalog-gate__trust span::before { content:'✓'; color:var(--gate-blue); margin-right:8px; font-size:19px; font-weight:700; }
.cptg-catalog-gate__footer { border-top:1px solid #2b3023; padding-top:24px; text-align:center; color:#969d8b; font-size:10px; line-height:1.9; }
.cptg-catalog-gate__footer nav { display:flex; justify-content:center; flex-wrap:wrap; gap:16px; }
.cptg-catalog-gate__draft { font-size:10px; color:#969d8b; text-align:center; margin:16px 0 0; }
@media(max-width:767px) {
 .cptg-catalog-gate__layout { display:flex; flex-direction:column; }
 .cptg-catalog-gate__form-side { order:0; padding:32px max(24px,env(safe-area-inset-left)) 28px; }
 .cptg-catalog-gate__visual { order:1; padding:28px 24px 32px; }
 .cptg-catalog-gate__logo { width:190px; margin-bottom:30px; }
 .cptg-catalog-gate__description { margin-bottom:24px; }
 .cptg-catalog-gate__slide img { height:240px; }
 .cptg-catalog-gate__headline { font-size:28px; }
 .cptg-catalog-gate__trust { margin:24px 0; }
}
@media(prefers-reduced-motion:reduce) { .cptg-catalog-gate__track { transition:none; } }

/* Three complete editorial panels, using approved Captide artwork. */
.cptg-catalog-gate__visual { padding:0; background:#080a06; justify-content:stretch; }
.cptg-catalog-gate__viewport { border-radius:0; box-shadow:none; flex:1; display:flex; width:100%; }
.cptg-catalog-gate__track { width:100%; }
.cptg-catalog-gate__slide { position:relative; display:flex; align-items:center; justify-content:center; min-height:100dvh; padding:60px 40px 90px; color:#080a06; background:radial-gradient(ellipse at 45% 35%,#252d0d,#080a06 72%); }
.cptg-catalog-gate__slide h2 { font-size:clamp(30px,3.4vw,52px); font-weight:600; letter-spacing:-.045em; line-height:1.12; margin:26px 0 18px; }
.cptg-catalog-gate .cptg-catalog-gate__slide h2 { color:#080a06 !important; }
.cptg-catalog-gate button.cptg-catalog-gate__dot,
.cptg-catalog-gate button.cptg-catalog-gate__pause { background:transparent !important; background-image:none !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; padding:8px !important; min-width:44px; min-height:44px; text-transform:none !important; letter-spacing:normal !important; color:#cbd1bd !important; }
.cptg-catalog-gate button.cptg-catalog-gate__dot::after,
.cptg-catalog-gate button.cptg-catalog-gate__pause::before,
.cptg-catalog-gate button.cptg-catalog-gate__pause::after { content:none !important; display:none !important; }
.cptg-catalog-gate button.cptg-catalog-gate__dot::before { content:'' !important; position:static !important; display:block !important; width:8px !important; height:8px !important; border-radius:50% !important; transform:none !important; background:#62694d !important; }
.cptg-catalog-gate button.cptg-catalog-gate__dot[aria-pressed=true]::before { background:#c7db44 !important; }
.cptg-catalog-gate__slide p:not(.cptg-catalog-gate__eyebrow) { font-size:14px; line-height:1.8; color:#b8bda9; margin:0; }
.cptg-catalog-gate__slide .cptg-catalog-gate__eyebrow { color:#c7db44; margin-bottom:28px; }
.cptg-catalog-gate__slide small { display:block; color:#9fa889; font-size:10px; letter-spacing:.1em; margin-top:22px; }
.cptg-catalog-gate__slide .gate-scene { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; object-position:79% center; }
.gate-slide--scene::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 35%,#0a0f04e8 100%); }
.gate-scene-copy { position:absolute; z-index:1; bottom:100px; left:40px; right:40px; padding:24px; background:#18200b9c; border:1px solid #080a06fff26; border-radius:14px; backdrop-filter:blur(12px); }
.gate-scene-copy .cptg-catalog-gate__eyebrow { text-align:left; margin-bottom:12px; }
.gate-scene-copy h2 { font-size:clamp(28px,2.8vw,42px); margin:0 0 14px; }
.gate-story { width:100%; max-width:540px; text-align:center; }
.gate-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; max-width:480px; margin:auto; }
.gate-product { border:1px solid #080a06fff21; border-radius:12px; background:#080a06fff07; padding:10px 10px 12px; }
.cptg-catalog-gate__slide .gate-product img { width:100%; height:auto; aspect-ratio:1; border-radius:7px; }
.gate-product span { display:block; margin-top:9px; font-size:13px; line-height:1.4; }
.gate-brand-mark { width:190px; padding:25px; margin:46px auto 36px; border-radius:24px; background:#10140a; box-shadow:0 20px 70px #0004; }
.cptg-catalog-gate__slide .gate-brand-mark img { width:100%; height:auto; background:transparent; }
.gate-story-rule { height:1px; width:48px; background:#c7db44; margin:30px auto 0; }
.cptg-catalog-gate__controls { position:absolute; bottom:22px; left:0; right:0; z-index:2; margin:0; }
.cptg-catalog-gate__pause { color:#cbd1bd; }
.cptg-catalog-gate__dot::before { background:#62694d; }
.cptg-catalog-gate__dot[aria-pressed=true]::before { background:#c7db44; box-shadow:0 0 0 4px #c7db4422; }
.cptg-catalog-gate__slide .gate-scene-copy { bottom:82px; padding:18px 22px; max-width:440px; }
.cptg-catalog-gate__slide .gate-scene-copy h2 { font-size:26px; margin:10px 0; }
.cptg-catalog-gate__slide .gate-scene-copy p:not(.cptg-catalog-gate__eyebrow) { font-size:12px; }
.cptg-catalog-gate__slide .gate-scene-copy .cptg-catalog-gate__eyebrow { font-size:9px; margin-bottom:8px; }
@media(min-width:768px) and (max-height:800px) {
 .gate-product-grid { max-width:min(480px,55vh); }
 .cptg-catalog-gate__slide { padding-block:32px 75px; }
 .cptg-catalog-gate__slide h2 { font-size:36px; margin:22px 0 14px; }
 .cptg-catalog-gate__slide .cptg-catalog-gate__eyebrow { margin-bottom:20px; }
}
@media(max-width:767px) {
 .cptg-catalog-gate__visual { padding:0; flex-shrink:0; }
 .cptg-catalog-gate__slide { min-height:650px; padding:40px 24px 84px; }
 .cptg-catalog-gate__slide h2 { font-size:32px; }
 .gate-scene-copy { left:24px; right:24px; bottom:85px; padding:20px; }
 .gate-product-grid { gap:9px; }
 .gate-product { padding:7px 7px 10px; }
 .gate-product span { font-size:10px; }
}

/* Captide brand layer; scoped to this modal only. */
@font-face{font-family:'DM Sans';src:url('../fonts/dmsans-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url('../fonts/dmserifdisplay-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'DM Mono';src:url('../fonts/dmmono-400.woff2') format('woff2');font-weight:400;font-display:swap}
.cptg-catalog-gate{--gate-blue:#c7db44;--gate-navy:#f2f2ec;background:#090b07;color:#f2f2ec}
.cptg-catalog-gate__form-side{background:#090b07;border-left:1px solid #c7db4424}
.cptg-catalog-gate__title,.cptg-catalog-gate__slide h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400!important;letter-spacing:-.025em;color:#fff!important}
.cptg-catalog-gate__eyebrow,.cptg-catalog-gate label,.cptg-catalog-gate__submit,.cptg-catalog-gate__trust{font-family:'DM Mono',monospace}
.cptg-catalog-gate__submit{color:#111507;background:#c7db44;border-radius:6px;font-size:13px;letter-spacing:.06em}
.cptg-catalog-gate__trust{font-size:11px;justify-content:center;gap:24px}
.cptg-catalog-gate__logo{width:260px;margin-bottom:42px}
.cptg-catalog-gate__description{max-width:340px;margin-inline:auto}
.cptg-catalog-gate__slide .gate-feature{width:min(100%,430px);height:auto;max-height:49vh;aspect-ratio:1;object-fit:contain;margin:auto;background:#000;border-radius:18px}
.cptg-catalog-gate .cptg-catalog-gate__slide h2{color:#fff!important}
.gate-product{background:#000;border-color:#c7db4429}
.gate-brand-mark{width:min(340px,90%);padding:30px 24px;border:1px solid #c7db4438;background:#090d06;box-shadow:0 0 90px #c7db4415}
.gate-goals{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:30px auto;max-width:390px}
.gate-goals span{border:1px solid #c7db4440;padding:10px 14px;border-radius:30px;font:11px 'DM Mono',monospace;color:#dce5bb}
.cptg-catalog-gate__slide .cptg-catalog-gate__eyebrow{font-size:10px;line-height:1.7}
.cptg-catalog-gate__visual{position:sticky;top:0;height:100dvh;align-self:start}
.cptg-catalog-gate__status{color:#dbe6a2}
@media(max-width:767px){.cptg-catalog-gate__visual{position:relative;height:auto;align-self:stretch}.cptg-catalog-gate__logo{width:220px;margin-bottom:30px}.cptg-catalog-gate__slide .gate-feature{max-height:none;width:310px;max-width:100%}.cptg-catalog-gate__form-side{border-left:0}.cptg-catalog-gate__slide{min-height:690px}}
/* The Captide product panel needs no photographic overlay. */
.cptg-catalog-gate .gate-slide--scene::after{content:none}

/* Keep catalog product names legible on black artwork cards. */
.cptg-catalog-gate .gate-product span{color:#f2f2ec}

/* Larger offer headline on desktop, retaining the mobile scale. */
@media(min-width:768px){.cptg-catalog-gate__title{font-size:clamp(38px,3.6vw,52px);line-height:1.12}}

/* Readable trust signals with intentional wrapping on small screens. */
.cptg-catalog-gate__trust{gap:12px 18px}
.cptg-catalog-gate__trust span{white-space:nowrap}
/* Preserve the approved dark fields against the storefront form rules. */
dialog.cptg-catalog-gate input:not([type=checkbox]),dialog.cptg-catalog-gate input:not([type=checkbox]):focus{background:#11140e!important;color:#f2f2ec!important;border:1px solid #454b37!important;box-shadow:none!important}
dialog.cptg-catalog-gate input[readonly]{background:#151810!important;color:#a7aca0!important}
