.store-section{padding:60px 0 70px}
.store-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}
.store-section-heading h2{font-size:clamp(28px,3vw,42px);margin:0;line-height:1.15;max-width:650px}
.store-section-heading>a{color:var(--brand-text);white-space:nowrap;text-underline-offset:5px;min-height:44px;display:flex;align-items:center}
.store-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
body[data-page="landing"] .store-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 80px)/5);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:12px}
body[data-page="landing"] .store-product{min-width:0;scroll-snap-align:start}
body[data-page="landing"] .store-product h3{font-size:clamp(15px,1.3vw,20px);overflow-wrap:anywhere}
@media(max-width:1000px){body[data-page="landing"] .home-samples-track{grid-auto-columns:calc((100% - 32px)/3);min-height:calc((100cqw - 32px)/3 + 54px)}body[data-page="landing"] .store-grid{grid-auto-columns:calc((100% - 40px)/3)}}
@media(max-width:600px){body[data-page="landing"] .store-grid{grid-auto-columns:78%;gap:16px}}
.store-product{min-width:0;background:transparent;border:0}
.store-product-image{display:block;aspect-ratio:1.1;overflow:hidden;border-radius:4px;background:var(--brand-soft)}
.store-product-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}
@media(prefers-reduced-motion:no-preference){.store-product-image:hover img{transform:scale(1.025)}}
.store-product-body{padding:20px 0 0}
.store-product h3{font-size:20px;line-height:1.3;margin:0 0 10px}
.store-product h3 a{color:inherit;text-decoration:none}.store-old-price{display:inline-block;margin-left:12px;font-size:13px;font-weight:500;color:var(--brand-muted)}
.store-product-price{font-size:20px;font-weight:800;margin:0 0 12px;color:var(--brand-text)}
.store-product-copy{font-size:14px;line-height:1.7;color:var(--brand-muted);margin:0;max-width:340px}
.store-product-availability{font-size:13px;color:var(--brand-muted);margin:12px 0 0}
.store-product-action{display:inline-flex;align-items:center;min-height:44px;color:var(--brand-accent);font-weight:700;font-size:13px;text-decoration:none;margin-top:12px}
.store-status{color:var(--brand-muted);font-size:14px}
.store-section [hidden],.store-page [hidden]{display:none!important}
.store-page{max-width:1280px;margin:auto;padding:70px 24px 90px}
.store-page>h1{font-size:clamp(42px,6vw,78px);line-height:1.02;margin:0 0 22px}
.store-intro{font-size:17px;line-height:1.7;color:var(--brand-muted);max-width:620px;margin:0 0 32px}
.store-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.store-filters button{min-height:44px;border:1px solid var(--brand-line);border-radius:999px;background:transparent;color:var(--brand-text);padding:10px 22px;font-size:13px}
.store-filters button[aria-pressed=true]{background:var(--brand-action);border-color:var(--brand-action);color:var(--brand-action-text)}
.store-note{color:var(--brand-muted);font-size:13px;line-height:1.7;margin-top:35px;max-width:670px}
.ai-page{min-height:65vh;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ai-page h1{font-size:14px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 25px}
.ai-page h2{font-size:clamp(48px,6vw,80px);line-height:1.03;margin:0 0 24px}
.ai-page img{width:100%;height:480px;object-fit:cover;border-radius:4px}
@media(max-width:760px){
 .store-section{padding:40px 0}.store-section-heading{display:block}.store-section-heading>a{margin-top:14px}
 .store-grid{grid-template-columns:1fr 1fr;gap:28px 16px}.store-product h3{font-size:17px}
 .store-product-copy{font-size:13px}.store-product-price{font-size:18px}
 .store-page{padding:40px 18px 60px}.ai-page{grid-template-columns:1fr;gap:30px}.ai-page img{height:300px}
}
@media(max-width:430px){.store-grid{grid-template-columns:1fr}.store-product-image{aspect-ratio:1.3}}
/* The public Campaign and Admin use the same wider commercial hero. */
.campaign-hero{display:block;position:relative;isolation:isolate;min-height:540px;padding:42px 0;margin-bottom:28px}
.campaign-copy{position:relative;z-index:2;max-width:43%;padding:30px 0}
.campaign-visual{position:absolute;inset:0;aspect-ratio:auto;width:100%;height:100%;z-index:0}
.campaign-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--landing-bg) 0%,var(--landing-bg) 25%,transparent 72%);pointer-events:none}
.campaign-copy h1,.campaign-copy .campaign-heading{text-transform:uppercase;font-weight:900;font-size:clamp(46px,5.4cqw,80px)}
.campaign-copy>p:not(.campaign-note){line-height:1.65;max-width:430px}
@container landing (max-width:760px){
 .campaign-hero{display:block;min-height:560px;gap:0;padding:30px 0 40px}
 .campaign-copy{max-width:66%;padding:0 10px}
 .campaign-visual{position:absolute;inset:0;height:100%;aspect-ratio:auto}
 .campaign-visual::after{display:block;background:linear-gradient(90deg,color-mix(in srgb,var(--landing-bg) 98%,transparent) 0%,color-mix(in srgb,var(--landing-bg) 92%,transparent) 35%,transparent 86%)}
 .campaign-copy h1,.campaign-copy .campaign-heading{font-size:clamp(25px,7cqw,44px)}
 .campaign-copy>p:not(.campaign-note){max-width:100%;font-size:12px;line-height:1.6;margin:18px 0}
 .campaign-copy .campaign-cta{min-height:44px;padding:10px 12px;font-size:10px}
 .campaign-copy .campaign-secondary{margin:8px 0 0;font-size:12px}
 .campaign-copy .campaign-note{font-size:10px;margin-top:12px}
}

/* Allowlisted campaign formats, shared by the public hero and Admin previews. */
[data-format-headline-color="accent"] .campaign-heading,[data-format-headline-color="accent"] [data-campaign-headline]{color:#ce3615}
[data-format-headline-color="navy"] .campaign-heading,[data-format-headline-color="navy"] [data-campaign-headline]{color:var(--hero-headline-navy,#10202c)}
[data-format-headline-color="ivory"] .campaign-heading,[data-format-headline-color="ivory"] [data-campaign-headline]{color:var(--hero-headline-ivory,#faf8f5)}
[data-format-cta-color]{--campaign-button:#ce3615;--campaign-button-text:#fff}
[data-format-cta-color="navy"]{--campaign-button:#10202c;--campaign-button-text:#faf8f5}
[data-format-cta-color="ivory"]{--campaign-button:#faf8f5;--campaign-button-text:#10202c}
[data-format-cta-color] .campaign-cta{background:var(--campaign-button);border:1px solid var(--campaign-button);color:var(--campaign-button-text)}
[data-format-cta-style="outline"] .campaign-cta{background:transparent;color:var(--campaign-button)}
[data-format-cta-case="original"] .campaign-cta{text-transform:none;letter-spacing:normal}
[data-format-cta-case="uppercase"] .campaign-cta{text-transform:uppercase}
[data-format-cta-shape="pill"] .campaign-cta{border-radius:999px}
[data-format-cta-shape="rounded"] .campaign-cta{border-radius:10px}
[data-format-cta-shape="square"] .campaign-cta{border-radius:2px}

/* The editor and preview shrink within the Admin workspace rather than overlap. */
.admin-page .landing-admin-grid{grid-template-columns:minmax(0, .9fr) minmax(0,1.1fr)}
.admin-page .landing-campaign-editor{position:static;min-width:0;grid-template-columns:minmax(0,1fr)}
.admin-page .landing-campaign-editor>*{min-width:0}
.admin-page .landing-campaign-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-page .landing-campaign-actions .btn,.admin-page #landingCampaignPreparedScene{white-space:normal}

/* A shared aspect ratio prevents a wider live hero cropping more than preview. */
.campaign-hero{min-height:0;aspect-ratio:2/1}
@container landing (max-width:760px){.campaign-hero{aspect-ratio:auto}}
[data-headline-color="theme"]{color:var(--landing-copy)}
[data-headline-color="accent"]{color:#ce3615}
[data-headline-color="navy"]{color:var(--hero-headline-navy,#10202c)}
[data-headline-color="ivory"]{color:var(--hero-headline-ivory,#faf8f5)}
/* Hero-only contrast: preserve saved colours, resolve their fill per theme. */
.campaign-hero{--hero-headline-navy:#10202c;--hero-headline-ivory:#10202c}
html[data-theme="dark"] .campaign-hero{--hero-headline-navy:#faf8f5;--hero-headline-ivory:#faf8f5}
html[data-theme] body [data-format-cta-color] .campaign-cta{background:var(--campaign-button);border-color:var(--campaign-button);color:var(--campaign-button-text)}
html[data-theme] body [data-format-cta-style="outline"] .campaign-cta{background:transparent;color:var(--campaign-button)}
html[data-theme] body [data-format-cta-color] .campaign-cta:hover{background:var(--campaign-button);color:var(--campaign-button-text)}
html[data-theme] body [data-format-cta-style="outline"] .campaign-cta:hover{background:transparent;color:var(--campaign-button)}
html[data-theme] body [data-format-cta-shape="rounded"] .campaign-cta{border-radius:10px}
html[data-theme] body [data-format-cta-shape="square"] .campaign-cta{border-radius:2px}
html[data-theme] body [data-format-cta-case="original"] .campaign-cta{text-transform:none;letter-spacing:normal}
.admin-page .landing-preview-content a.campaign-cta[href^="/studio/"],.admin-page .landing-preview-content a.campaign-cta[href^="/studio/"]:hover{background:var(--brand-action,#ce3615);color:var(--brand-action-text,#fff);border-color:var(--brand-action,#ce3615)}
.campaign-palette-field{display:grid;gap:8px;min-width:0}
.campaign-palette-field>span{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,225,196,.58)}
.campaign-palette{display:flex;gap:10px;flex-wrap:wrap}
.campaign-colour{width:44px;height:44px;border-radius:50%;border:2px solid #8e8277;background:#ce3615;cursor:pointer;position:relative}
.campaign-colour[data-headline-colour="theme"]{background:linear-gradient(135deg,#10202c 50%,#faf8f5 50%)}
.campaign-colour[data-headline-colour="navy"],.campaign-colour[data-cta-colour="navy"]{background:#10202c}
.campaign-colour[data-headline-colour="ivory"],.campaign-colour[data-cta-colour="ivory"]{background:#faf8f5}
.campaign-colour[aria-pressed="true"]{outline:2px solid #ce3615;outline-offset:3px}
.campaign-colour:focus-visible{outline:2px solid #faf8f5;outline-offset:4px}
.admin-page .landing-campaign-previews{min-width:0;grid-template-columns:minmax(0,1fr)}
.admin-page .landing-campaign-editor input,.admin-page .landing-campaign-editor textarea,.admin-page .landing-campaign-editor select{width:100%;box-sizing:border-box;min-width:0}
.admin-page #landingCampaignAlt{min-height:84px;resize:vertical;line-height:1.5}
.admin-page .landing-preview-mobile{width:min(100%,300px);justify-self:center}
@media(max-width:1100px){.admin-page .landing-admin-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:540px){.admin-page .landing-campaign-editor .admin-field-row{grid-template-columns:minmax(0,1fr)}}

/* Keep focal controls and their live hero together while editing long campaigns. */
.admin-page .landing-campaign-previews{position:sticky;top:16px;padding:16px;border:1px solid var(--border,#b8a694);border-radius:10px;background:var(--surface,#2f2d39);z-index:3;gap:10px}
.admin-page .landing-preview-switch{display:flex;gap:8px}
.admin-page .landing-preview-switch button{min-height:36px;padding:7px 16px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.admin-page .landing-preview-switch button[aria-pressed="true"]{background:var(--brand-action,#ff9f80);color:var(--brand-action-text,#10202c);border-color:transparent}
.admin-page .landing-focus-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.admin-page .landing-focus-controls label{display:block;font-size:12px;min-width:0}
.admin-page .landing-focus-controls output{float:right;font-variant-numeric:tabular-nums}
.admin-page .landing-focus-controls input{display:block;width:100%;margin-top:8px;min-height:24px;accent-color:var(--brand-action,#ff9f80)}
.admin-page .landing-campaign-previews .landing-preview[hidden]{display:none}
.admin-page .landing-campaign-previews .landing-preview-mobile{width:100%;justify-self:stretch}
.admin-page .landing-campaign-previews .landing-preview-viewport{display:flex;justify-content:center;max-height:max(120px,calc(100dvh - 230px))}
.admin-page .landing-campaign-previews .landing-preview-content{flex:none}
.admin-page .landing-campaign-previews figcaption{padding:5px 10px}
@media(max-width:1100px){
 .admin-page .landing-campaign-previews{grid-row:1;top:0;padding:10px}
 .admin-page .landing-preview-heading p{display:none}
 .admin-page .landing-campaign-previews .landing-preview-viewport{max-height:max(90px,calc(45dvh - 130px))}
}

html[data-season]:not([data-season="neutral"]) #home-samples-track:not([data-season-ready]){visibility:hidden}

/* Keep async catalogue and seasonal sample loading in their own reserved space. */
body[data-page="landing"] .store-section{container-type:inline-size}
body[data-page="landing"] .store-status{min-height:24px;margin:0 0 14px}
body[data-page="landing"] .store-grid{min-height:calc((100cqw - 80px)/5/1.1 + 182px)}
html[data-theme] body[data-page="landing"] .store-grid{grid-template-columns:none}
body[data-page="landing"] .store-product h3{min-height:2.6em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body[data-page="landing"] .home-samples{container-type:inline-size}
body[data-page="landing"] .home-samples-track{grid-auto-columns:calc((100% - 64px)/5);min-height:calc((100cqw - 64px)/5 + 54px)}
@media(max-width:1000px){body[data-page="landing"] .home-samples-track{grid-auto-columns:calc((100% - 32px)/3);min-height:calc((100cqw - 32px)/3 + 54px)}body[data-page="landing"] .store-grid{min-height:calc((100cqw - 40px)/3/1.1 + 182px)}}
@media(max-width:700px){body[data-page="landing"] .home-samples-track{grid-auto-columns:82%;min-height:calc(82cqw + 54px)}}
@media(max-width:600px){body[data-page="landing"] .store-grid{min-height:calc(78cqw/1.1 + 182px)}}
@media(max-width:430px){body[data-page="landing"] .store-grid{min-height:calc(78cqw/1.3 + 182px)}}

/* A single alignment grid for the Home closing sections and footer. */
body[data-page="landing"] .campaign-process{padding:40px 0 36px;margin-top:36px;display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,2fr);gap:32px;align-items:start}
body[data-page="landing"] .campaign-process h2{margin:0;font-size:clamp(22px,2.2vw,30px);line-height:1.2}
body[data-page="landing"] .campaign-process>div{gap:28px}
body[data-page="landing"] .campaign-process strong{font-size:15px;line-height:1.4;margin-bottom:8px}
body[data-page="landing"] .campaign-process p{font-size:13px;line-height:1.65}
body[data-page="landing"] .home-service-area{max-width:none;margin:0;padding:32px 0 42px;border-top:1px solid var(--landing-rule);display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,2fr);gap:16px 32px;align-items:start}
body[data-page="landing"] .home-service-area h2{margin:0;font-size:clamp(22px,2.2vw,30px);line-height:1.3;max-width:350px}
body[data-page="landing"] .home-service-area p{margin:0;max-width:780px;font-size:15px;line-height:1.75;color:var(--brand-muted)}
body[data-page="landing"] .home-service-area .service-links{grid-column:2;margin:0;gap:8px 24px;font-size:13px;flex-direction:row;align-items:center}
body[data-page="landing"] .service-links a{display:inline-flex;align-items:center;min-height:44px}
body[data-page="landing"] .site-footer{padding:26px 0;background-image:none}
body[data-page="landing"] .footer-grid[hidden]{display:none}
body[data-page="landing"] .footer-bottom{max-width:1500px;padding:0 clamp(24px,4vw,68px);margin:0 auto;border:0;display:flex;flex-direction:column;align-items:flex-start;gap:18px;font-size:12px;letter-spacing:0;text-transform:none;line-height:1.65}
body[data-page="landing"] .footer-bottom nav{gap:4px 24px;align-items:center;padding-right:54px}
body[data-page="landing"] .footer-bottom nav>:is(a,button){min-height:36px;letter-spacing:0;text-transform:none}
body[data-page="landing"] .footer-bottom>span{font-size:11px;max-width:1000px;padding-right:54px;line-height:1.7}
@media(max-width:900px){body[data-page="landing"] .campaign-process,body[data-page="landing"] .home-service-area{grid-template-columns:1fr;gap:24px}body[data-page="landing"] .home-service-area h2{max-width:700px}body[data-page="landing"] .home-service-area .service-links{grid-column:1}}
@media(max-width:760px){body[data-page="landing"] .campaign-process{padding:28px 0;margin-top:28px}body[data-page="landing"] .campaign-process>div{grid-template-columns:1fr;gap:20px}body[data-page="landing"] .campaign-process strong{margin-bottom:3px}body[data-page="landing"] .home-service-area{padding:28px 0 32px;gap:16px}body[data-page="landing"] .home-service-area p{font-size:14px}body[data-page="landing"] .footer-bottom{padding:0 18px}body[data-page="landing"] .footer-bottom nav{gap:4px 18px}}

body[data-page="landing"] .footer-bottom{width:100%}body[data-page="landing"] .footer-bottom nav{justify-content:flex-start;margin:0;width:100%}
@media(max-width:1100px){body[data-page="landing"] .footer-bottom{padding:0 18px}}
body[data-page="landing"] .home-service-copy{min-width:0}body[data-page="landing"] .home-service-copy .service-links{margin-top:12px}
body[data-page="landing"] .footer-bottom{position:relative}body[data-page="landing"] .footer-bottom>.season-control{position:absolute;top:0;right:clamp(24px,4vw,68px);margin:0}@media(max-width:1100px){body[data-page="landing"] .footer-bottom>.season-control{right:18px}}

/* The three steps are a sequence, with quiet cues in the approved accent. */
body[data-page="landing"] .process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;list-style:none;margin:0;padding:0}
body[data-page="landing"] .process-steps li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;position:relative;align-items:start;min-width:0}
body[data-page="landing"] .process-number{font:800 28px/1 var(--sans);color:var(--brand-accent);font-variant-numeric:tabular-nums}
body[data-page="landing"] .process-step-copy>span{display:block;font-size:13px;line-height:1.65;color:var(--brand-muted)}
body[data-page="landing"] .process-arrow{position:absolute;right:-24px;top:0;font-size:20px;line-height:1.2;color:var(--brand-muted)}
@media(max-width:760px){body[data-page="landing"] .process-steps{grid-template-columns:1fr;gap:22px}body[data-page="landing"] .process-arrow{display:none}body[data-page="landing"] .process-number{font-size:26px}}

/* Balance the copy against the full hero image, including scaled Admin previews. */
@container landing (min-width:761px){
 .campaign-hero{display:flex;align-items:center}
 .campaign-copy{flex:0 0 43%;padding:0}
}
