/* Shared responsive scale. No device detection; the available space decides. */
:root{
 --page-gutter:clamp(1rem,4vw,4rem);--content-max:87.5rem;
 --space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;
 --space-5:clamp(2rem,1.5rem + 2vw,3rem);
 --space-section:clamp(3rem,2rem + 3vw,5rem);
 --grid-gap:clamp(1rem,.75rem + 1vw,1.5rem);
 --heading-1:clamp(2.5rem,1.5rem + 2.6vw,4.25rem);
 --heading-2:clamp(2rem,1.3rem + 1.8vw,3.25rem);
 --heading-3:clamp(1.375rem,1.15rem + .5vw,1.75rem);
 --edge:max(var(--page-gutter),calc((100% - var(--content-max))/2));
}
html{font-size:100%;scroll-padding-top:var(--space-4)}
body{font-size:1rem;overflow-x:visible}
main,section,article,header,footer,div{min-width:0}
img{max-width:100%}
h1,.page-intro h1,.product-copy h1,.contact-hero h1,.teens-hero h1{font-size:var(--heading-1);line-height:1.08}
h2,.story-copy h2,.custom-band h2,.delivery h2,.model-config-head h2{font-size:var(--heading-2);line-height:1.12}
p{max-inline-size:70ch;line-height:1.65}
.hero-copy>p,.page-intro>p,.product-copy .intro,.story-copy>p:not(.kicker),.teens-hero-copy>p:not(.teens-eyebrow),.teen-product-copy>p:not(.teen-product-number){font-size:1rem;max-inline-size:70ch}
.details p,.steps p,.teen-product-copy li,.teens-categories p,.delivery>div:last-child p,.order-note p{font-size:1rem}
.eyebrow,.kicker,.hero-copy>.eyebrow,.teens-eyebrow,.teens-title>p,.teens-products-head>div>p,.teens-order>div>p,.button,.teens-button,.under-link,.back,.filters button,.catalog-toolbar>span,.catalog-line-head p,.footer-nav,.footer-contact,.footer-mark+p,.fineprint,.details strong,.delivery strong,.order-note span,.teens-order-info strong,.teens-actions>a:last-child,.teen-product-number{font-size:.875rem}
.hero-facts span,.tag,.config-entry,.catalog-card .info small,.footer-bottom,.whatsapp b{font-size:.75rem}
.price,.teen-price{font-size:1.5rem}
.hero-facts strong{font-size:1.125rem}
.button,.teens-button{min-width:0;min-height:2.75rem;gap:var(--space-3);padding:var(--space-2) var(--space-3);white-space:normal}
.section,.page-intro,.teens-collection,.teens-products,.custom-band,.order-note,.contact-hero,.delivery,.teens-order,footer{padding-inline:var(--edge);padding-block:var(--space-section)}
.section-head,.catalog-toolbar,.catalog-grid,.catalog-line-head,.teens-products-head,.teen-product,.featured-grid,.steps,.teens-title,.teens-categories{max-width:var(--content-max);margin-inline:auto}
.section-head,.teens-products-head{gap:var(--space-4);margin-bottom:var(--space-5)}
.site-header{height:auto;min-height:4.5rem;padding:.5rem var(--edge);gap:var(--space-2)}
.site-header .nav{display:none;gap:var(--space-3)}
.site-header .nav a,.site-header .mini-cta{font-size:.875rem}
.site-header .mini-cta{display:none}
.menu-toggle{display:block;min-width:2.75rem;min-height:2.75rem}
.site-header .nav.open{display:flex;position:absolute;top:100%;inset-inline:var(--page-gutter);flex-direction:column;padding:var(--space-3);background:var(--paper);color:var(--ink);max-height:calc(100dvh - 5rem);overflow:auto;box-shadow:0 .75rem 1.875rem rgba(0,0,0,.12)}
.nav a{display:flex;align-items:center;min-height:2.75rem}
.featured-grid,.catalog-grid-inner,.catalog-line-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,20.75rem),1fr));gap:var(--grid-gap)}
.teens-line .catalog-grid-inner{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr))}
.featured-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,20.75rem),1fr))}
.feature-card:first-child{grid-column:auto}
.feature-card,.feature-card.tall,.catalog-card .image{height:auto;aspect-ratio:4/5}
.feature-card img,.catalog-card .image img{width:100%;height:100%;padding:0;object-fit:cover;object-position:center}
.feature-card h3,.catalog-card .info h3{font-size:var(--heading-3)}
.catalog-card .info{grid-template-columns:minmax(0,1fr);gap:var(--space-1);margin-top:var(--space-2);padding-top:var(--space-2)}
.catalog-card{grid-row:span 4}
.catalog-card .info{grid-row:span 3}
.catalog-card .info h3{grid-column:1;grid-row:1}
.catalog-card .info p{grid-column:1;grid-row:2;font-size:1rem}
.catalog-card .info small{grid-column:1;grid-row:3}
.catalog-line{padding-block:var(--space-4)}
.catalog-line+.catalog-line{margin-top:var(--space-5)}
.catalog-line-head{gap:var(--space-3);padding-bottom:var(--space-3);margin-bottom:var(--space-4)}
.catalog-line-head span{font-size:var(--heading-2)}
.teens-line{padding:var(--space-2)}
.filters{flex-wrap:wrap;width:auto;overflow:visible}
.catalog-toolbar{gap:var(--space-3);flex-wrap:wrap}
.feature-card>div{padding:var(--space-3)}
.config-entry{max-width:calc(100% - 2rem);top:3.5rem;right:var(--space-2)}
.feature-card .config-entry{top:3.5rem;right:var(--space-2)}
/* The copy establishes hero height; the image cannot inflate its grid row. */
body:not(.teens-page) .site-header:not(.solid)+main .hero,.hero{width:min(calc(100% - 2 * var(--page-gutter)),var(--content-max));margin-inline:auto;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;max-height:none;gap:var(--space-4)}
.hero-copy{padding:var(--space-5) 0;justify-content:center}
.hero-copy h1{margin-block:var(--space-3)}
.hero-copy>.eyebrow{font-size:.75rem}
.actions,.teens-actions{display:flex;flex-wrap:wrap;flex-direction:row;gap:var(--space-3);margin-top:var(--space-3);align-items:center}
.hero-facts{gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap}
.hero-media.home-showcase{width:100%!important;max-width:100%;min-height:0;height:auto;aspect-ratio:auto;margin-bottom:var(--space-4);overflow:hidden}
.home-showcase .home-slide{position:relative;inset:auto;display:none;grid-template-rows:auto auto}
.home-showcase .home-slide.active{display:grid}
.home-showcase .home-slide>img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;padding:0}
.home-showcase .home-slide-copy{position:relative;inset:auto;min-height:0;padding:var(--space-2) var(--space-2) 4.5rem;width:100%;display:flex;gap:var(--space-1)}
.home-slide-copy strong{font-size:clamp(1.25rem,1rem + .5vw,1.5rem)}
.home-slide-copy small,.home-slide-copy b{font-size:.75rem}
.home-showcase .home-showcase-controls{inset:auto var(--space-2) var(--space-2) auto;gap:var(--space-1)}
.home-showcase-controls button{display:block;width:2.75rem;height:2.75rem}
.home-showcase-controls span{font-size:.75rem}
.marquee{padding-block:var(--space-2);font-size:clamp(1rem,.9rem + .3vw,1.25rem)}
.marquee-group{min-width:100vw}
.marquee i{padding-inline:var(--space-4)}
.story,.teens-story{padding-inline:var(--edge);gap:var(--space-5);align-items:center}
.story-photo,.teens-story-art{min-height:0;height:auto;aspect-ratio:auto}
.story-photo img,.teens-story-art img{width:100%;height:auto;object-fit:cover;aspect-ratio:var(--image-ratio,auto)}
.story-copy,.teens-story-copy{padding:var(--space-section) 0}
.story-copy blockquote{font-size:clamp(1.5rem,1.25rem + .5vw,1.875rem);margin-top:var(--space-4);padding-top:var(--space-4)}
.steps article,.teens-categories article{padding:var(--space-3);min-height:0}
.steps h3{margin-top:var(--space-5);font-size:1.375rem}
.custom-band{gap:var(--space-4)}
.product-page{width:min(calc(100% - 2 * var(--page-gutter)),var(--content-max));max-width:none;padding:var(--space-5) 0 var(--space-section);grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.product-gallery .main-photo{width:fit-content;max-width:100%;height:auto;aspect-ratio:auto;max-height:70svh;margin-inline:auto}
.product-gallery .main-photo img{width:auto;height:auto;max-width:100%;max-height:70svh;padding:0;object-fit:contain}
.product-gallery .product-gallery-stage>img{position:static;display:none}
.product-gallery .product-gallery-stage>img.active{display:block}
.product-copy{max-width:70ch}
.product-copy h1{margin-top:var(--space-3)}
.config-jump{gap:var(--space-2);flex-wrap:wrap}
.config-jump span,.config-jump strong{font-size:.875rem}
.teens-header{position:relative;background:var(--teen-purple)}
.teens-hero{height:auto;min-height:0;grid-template-columns:minmax(0,1fr);padding-inline:var(--edge);gap:var(--space-4)}
.teens-hero-copy{padding:var(--space-5) 0}
.teens-hero-art{min-height:0;height:auto;aspect-ratio:auto;padding:0;clip-path:none;align-self:center}
.teens-hero-art img,.teens-hero-art img[src*="landscape"]{width:100%!important;height:auto!important;max-height:none!important;padding:0;object-fit:cover}
.teens-strip{flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--page-gutter);font-size:.875rem}
.teens-categories h3{margin-top:var(--space-5);font-size:var(--heading-3)}
.teen-product,.teen-product.reverse{grid-template-columns:minmax(0,1fr);gap:var(--space-5);padding-block:var(--space-5)}
.teen-product .teen-gallery,.teen-product.reverse .teen-gallery{grid-column:1;grid-row:1}
.teen-product .teen-product-copy,.teen-product.reverse .teen-product-copy{grid-column:1;grid-row:2}
.teen-product h3{font-size:var(--heading-2);line-height:1.1}
.teen-gallery-stage{aspect-ratio:4/5}
.teen-gallery-stage:has(>img.active[src*="-photo-"]){aspect-ratio:1/1}
.teen-gallery-stage>img{inset:0;width:100%;height:100%;padding:0;object-fit:contain}
.teen-gallery-stage>img[src*="-card-"]{object-fit:cover}
.gallery-thumbs{grid-template-columns:repeat(auto-fit,minmax(2.75rem,1fr));gap:var(--space-1)}
html.js .product-gallery .gallery-thumbs{grid-template-columns:repeat(auto-fit,minmax(2.75rem,1fr))}
.gallery-arrow,.gallery-fullscreen{width:2.75rem;height:2.75rem}
.gallery-modal img{max-height:calc(100dvh - 5rem);max-width:min(100%,56.25rem)}
.contact-hero,.delivery{gap:var(--space-5)}
.contact-options a{grid-template-columns:minmax(4rem,.4fr) minmax(0,1fr) auto;gap:var(--space-1)}
.contact-options strong{font-size:clamp(1rem,.9rem + .2vw,1.25rem);overflow-wrap:anywhere}
.contact-options span{font-size:.75rem}
footer{gap:var(--space-4)}
.footer-nav a,.footer-contact a{overflow-wrap:anywhere}
.footer-bottom{gap:var(--space-2)}
@media(min-width:48rem){
 body:not(.teens-page) .site-header:not(.solid)+main .hero,.hero{grid-template-columns:repeat(2,minmax(0,1fr));min-height:min(78svh,40rem);align-items:center}
 .hero-media.home-showcase{width:min(100%,40svh,27rem)!important;justify-self:center;margin-block:var(--space-2)}
 .teens-line{padding:var(--space-3)}
 .teen-product,.teen-product.reverse{grid-template-columns:repeat(2,minmax(0,1fr))}
 .teen-product .teen-product-copy,.teen-product.reverse .teen-product-copy{grid-column:2;grid-row:1}
 .teen-product.reverse .teen-gallery{grid-column:2;grid-row:1}
 .teen-product.reverse .teen-product-copy{grid-column:1;grid-row:1}
}
@media(min-width:60rem){
 .site-header .nav{display:flex;gap:var(--space-3)}
 .menu-toggle{display:none}
 .site-header .nav.open{position:static;inset:auto;flex-direction:row;padding:0;background:transparent;box-shadow:none;color:inherit;overflow:visible}
 body:not(.teens-page) .site-header:not(.solid)+main .hero,.hero{grid-template-columns:minmax(0,1fr) minmax(0,.88fr);min-height:min(78svh,40rem);align-items:center}
 .hero-media.home-showcase{justify-self:center;width:min(100%,40svh,27rem)!important;margin-block:var(--space-2)}
 .home-showcase .home-slide>img{width:100%;height:auto;max-height:none}
 .home-showcase .home-slide-copy{padding-right:var(--space-2);padding-bottom:4.5rem;min-height:0}
 .home-showcase .home-showcase-controls{bottom:var(--space-2)}
 .product-page{grid-template-columns:repeat(2,minmax(0,1fr))}
 .teens-hero{grid-template-columns:repeat(2,minmax(0,1fr));min-height:min(78svh,40rem)}
}
@media(min-width:75rem){.site-header .mini-cta{display:block}}
@media(max-height:51.25rem) and (min-width:60rem){
 .hero-copy,.teens-hero-copy{padding-block:var(--space-3)}
 .hero-facts{margin-top:var(--space-3)}
 .hero-copy h1{margin-block:var(--space-2)}
}
@media(pointer:coarse){
 a,button,summary{min-height:2.75rem}
 button,.gallery-thumb,.nav a,.footer-nav a,.footer-contact a,.under-link,.mini-cta{min-width:2.75rem}
 .footer-nav a,.footer-contact a,.under-link{display:flex;align-items:center}
}

/* Image semantics: protected artwork is always shown in full. */
.catalog-card.new-product .image:has(img[data-media-kind="b"]){aspect-ratio:4 / 5}
.catalog-card.new-product .image img[data-media-kind="b"]{width:100%;height:100%;aspect-ratio:auto!important;object-fit:contain!important}
.catalog-card.new-product:hover img{transform:none}
img[data-media-kind="b"]{object-fit:contain!important;aspect-ratio:var(--image-ratio)!important}
.catalog-card .image:has(img[data-media-kind="b"]){aspect-ratio:var(--image-ratio,1)}
.catalog-card .image:has(img[data-media-kind="b"]) img{aspect-ratio:1!important}
.home-showcase .home-slide>img{aspect-ratio:4/5;contain-intrinsic-size:none}
.home-showcase .home-slide>img[data-media-kind="b"]{aspect-ratio:1!important}
.home-showcase .home-slide-copy{padding:.75rem 1rem!important;gap:.25rem;min-height:6rem}
.home-showcase .home-showcase-controls{position:relative;inset:auto!important;justify-content:flex-end;padding:.5rem 1rem;background:var(--paper)}
.story-photo img,.teens-story-art img,.teens-hero-art img{aspect-ratio:var(--image-ratio)!important;contain-intrinsic-size:none;object-fit:contain!important}
.teen-gallery-stage:has(>img.active[data-media-kind="b"]){aspect-ratio:1}
.gallery-thumb img{object-fit:contain;contain-intrinsic-size:none}
.product-gallery .main-photo{width:100%;max-height:none}
.product-gallery .main-photo img{width:min(100%,var(--image-height-limit,70svh));max-height:70svh;aspect-ratio:var(--image-ratio);contain-intrinsic-size:none;margin-inline:auto}
/* The contact link keeps its own flow space instead of covering page content. */
.whatsapp{position:relative;inset:auto;display:flex;width:max-content;max-width:calc(100% - 2rem);margin:1rem var(--page-gutter) 1rem auto}
@media(min-width:48rem){
 body:not(.teens-page) .site-header:not(.solid)+main .hero,.hero{max-width:64rem;grid-template-columns:minmax(0,1fr) min(40svh,20rem);min-height:min(calc(50svh + 11.75rem),36.75rem);gap:2rem;padding-block:1rem;align-items:center}
 .hero-media.home-showcase{width:100%!important;margin:0;justify-self:stretch}
 .hero-copy{padding-block:1rem}
 .hero-facts{margin-top:1.5rem}
 .featured.section{padding-top:2rem}
}

/* Keep the full viewport available: the contact pill floats over normal page flow. */
html,body{height:auto;overflow-x:clip;overflow-y:visible}
.site-scroll{display:contents}
.whatsapp{position:fixed;inset:auto 1rem calc(1rem + env(safe-area-inset-bottom,0px)) auto;margin:0;min-width:2.75rem;min-height:3rem;z-index:50}
.whatsapp b{display:block!important}
/* Home only: prioritize the product image on phones, without changing desktop DOM. */
@media(max-width:767px){
 .hero:has(>.home-showcase){padding-top:.5rem;row-gap:.75rem}
 .hero:has(>.home-showcase) .hero-copy{display:contents}
 .hero:has(>.home-showcase) .hero-copy>.eyebrow{margin:0}
 .hero:has(>.home-showcase) .hero-copy>h1{margin:0}
 .hero:has(>.home-showcase) .hero-copy>.lead{margin:0}
 .hero:has(>.home-showcase) .actions{margin:0;gap:.75rem}
 .hero:has(>.home-showcase) .home-showcase{order:1;margin:0}
 .hero:has(>.home-showcase) .hero-facts{order:2;margin:0 0 1.5rem}
}
.home-showcase .home-slide>img{aspect-ratio:1!important;height:auto;object-fit:cover}
.home-showcase .home-slide>img[data-media-kind="b"]{object-fit:contain!important}
.home-showcase .home-slide-copy{height:8rem;min-height:8rem;max-height:8rem;justify-content:center}
.home-showcase .home-showcase-controls{height:3.75rem;min-height:3.75rem}
@media(min-width:48rem){
 body:not(.teens-page) .site-header:not(.solid)+main .hero,.hero{max-width:var(--content-max);width:min(calc(100% - 2 * var(--page-gutter)),var(--content-max));min-height:0;grid-template-columns:minmax(0,1fr) min(40svh,20rem)}
}

/* A1: one artwork needs an enlarge control, but no duplicate thumbnail. */
.product-page[data-category="natal"] .product-gallery .main-photo{height:auto;min-height:0;max-height:70svh;aspect-ratio:auto}
.product-page[data-category="natal"] .product-gallery .main-photo>img.active{max-height:70svh;object-fit:contain}
html.js .product-page[data-category="natal"] [data-image-count="1"] .gallery-thumbs,
.product-page[data-category="natal"] [data-image-count="1"] .gallery-arrow,
.product-page[data-category="natal"] [data-image-count="1"] .gallery-count{display:none}
.product-page[data-category="natal"] .gallery-thumbs{grid-template-columns:repeat(auto-fill,minmax(2.75rem,4rem))}
.product-copy .price-qualifier{font:500 1rem/1.5 Manrope,sans-serif}
.catalog-card .price-qualifier{display:block;font-size:.875rem;line-height:1.4;margin-top:.25rem}
