/* 40 Nights — storefront foundation for the home and shop pages. Loaded after base.css, before editorial.css.
   Sections stay in their original cascade order; reordering them changes which rules win. */

/* ==== Restoration: product cards, garment atlas, campaign, quick view (formerly refinement.css) ==== */
/* Restoration pass: original product patterns inside the cinematic system. */
.original-product-ui{padding-top:112px;background:#f5f1e8}
.original-product-ui .collection-head{border-color:rgba(23,20,15,.18)}
.original-product-ui .products{gap:32px;margin-top:46px}
.original-product-ui .product-card{margin:0}
.original-product-ui .product-image{aspect-ratio:1;background:#e4dccf}
.original-product-ui .product-image span{left:50%;bottom:22px;transform:translate(-50%,12px);white-space:nowrap;background:#17140f;color:#f5f1e8}
.original-product-ui .product-image:hover span{transform:translateX(-50%)}
.original-product-ui .product-meta{padding:19px 0}
.original-product-ui .product-meta h3{font:500 22px var(--serif)}
.original-product-ui .product-meta>div{width:100%}
.original-product-ui .product-meta p{font:13px/1.5 var(--sans);letter-spacing:0;color:#5d564c;min-height:40px}
.original-price{display:flex;justify-content:space-between;align-items:center;margin-top:13px}
.original-price strong{font:600 17px var(--sans)}
.original-price span{font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#756c5d}
.original-product-ui .add{position:absolute;opacity:0;pointer-events:none}
.detail-atlas{background:#161512;color:var(--cream);position:relative;overflow:hidden;padding:42px 4.5vw 92px}
.atlas-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:19px;font:10px var(--mono);letter-spacing:.13em;color:#b5aa96}
.atlas-title{position:relative;z-index:2;margin:10vh 0 0 10vw}
.atlas-title h2{font:500 clamp(52px,7vw,110px)/.86 var(--serif);letter-spacing:-.075em;margin:0}
.atlas-title h2 em{padding-left:9vw}
.atlas-title p{font:11px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--gold);margin:27px 0}
.atlas-main{position:absolute;z-index:1;width:min(47vw,650px);height:650px;top:25vh;right:10vw;margin:0;overflow:hidden}
.atlas-main img{width:100%;height:100%;object-fit:cover;filter:contrast(1.12) saturate(.75);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.detail-atlas:hover .atlas-main img{transform:scale(1.05)}
.detail-atlas figcaption{position:absolute;bottom:14px;left:15px;font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;background:#151411cc;padding:8px 10px}
.atlas-float{position:absolute;z-index:3;margin:0;overflow:hidden}
.atlas-float img{width:100%;height:100%;object-fit:cover}
.atlas-float-one{width:210px;height:275px;top:55%;left:9vw}
.atlas-float-two{width:240px;height:310px;bottom:4%;right:4.5vw}
.atlas-word{position:absolute;bottom:-.08em;left:-.04em;color:#24231f;font:600 21vw/.7 var(--serif);letter-spacing:-.1em;margin:0;white-space:nowrap}
.campaign-sticky{isolation:isolate}
.campaign-frame{position:absolute;animation-timeline:scroll();animation-range:entry 100vh exit 300vh}
.campaign-frame img{width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(.7);transform:scale(1.1)}
.frame-one{opacity:1}
.campaign-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.68),transparent 65%),linear-gradient(0deg,rgba(0,0,0,.7),transparent 42%)}
.campaign-kicker{position:absolute;z-index:2;top:43px;left:4.5vw;right:4.5vw;display:flex;justify-content:space-between}
.campaign-kicker span{font:10px var(--mono);color:#c1b9aa}
.campaign-copy{position:absolute;z-index:2}
.campaign-copy h2{font:500 clamp(50px,7.3vw,114px)/.82 var(--serif);letter-spacing:-.075em;margin:0}
.campaign-copy h2 span,.campaign-copy h2 em{display:block}
.campaign-copy h2 em{font-weight:500;padding-left:12vw}
.campaign-copy>p{max-width:310px;font:15px/1.65 var(--serif);margin:29px 0 0}
.campaign-copy .button{margin-top:30px}
.campaign-progress{position:absolute;z-index:2;display:flex;gap:6px;bottom:34px}
.campaign-progress i{height:2px;background:rgba(241,236,223,.38)}
.campaign-progress i:first-child{background:var(--cream)}
.quick-view{max-width:1060px;grid-template-columns:1.08fr .92fr}
.quick-view[open]{display:grid}
.dialog-gallery{background:#e4dccf;min-width:0;padding:30px}
.dialog-gallery>div{display:flex;gap:8px;margin-top:9px}
.dialog-gallery button{width:53px;height:53px;border:1px solid transparent;padding:0;background:none;cursor:pointer}
.dialog-gallery button.active{border-color:#17140f}
.dialog-gallery button img{width:100%;height:100%;object-fit:cover}
.quick-view .dialog-info{padding:56px 42px;display:block}
.quick-view .dialog-price{font:600 23px var(--sans);margin:11px 0 20px}
.size-label{font:11px var(--mono);color:#756c5d;margin-top:30px}
.size-label span{color:#17140f}
.sizes button.selected{background:var(--ink);color:var(--cream)}
.quantity{display:flex;align-items:center;margin:27px 0}
.quantity button{width:35px;height:35px;border:1px solid #a99c88;background:none;font-size:18px;cursor:pointer}
.quantity span{width:40px;text-align:center;font:11px var(--mono)}
.dialog-add:disabled{background:#a99c88;cursor:not-allowed}
.continue-shopping{display:block;margin:16px auto 0;border:0;border-bottom:1px solid #17140f;background:none;padding:0 0 5px;text-transform:uppercase;letter-spacing:.12em;font:9px var(--mono);cursor:pointer}
@media(max-width:720px){
  .original-product-ui .products{gap:26px 14px}
  .original-product-ui .product-card:nth-child(3){width:auto;margin:0;grid-column:auto}
  .original-product-ui .product-meta h3{font-size:18px}
  .original-product-ui .product-meta p{font-size:11px}
  .original-price{display:block}
  .original-price span{display:block;margin-top:5px}
  .detail-atlas{height:970px;padding:32px 7vw}
  .atlas-title{margin:75px 0 0}
  .atlas-title h2{font-size:15vw}
  .atlas-main{width:76vw;height:430px;top:270px;right:7vw}
  .atlas-float-one{width:138px;height:178px;top:650px;left:7vw}
  .atlas-float-two{width:143px;height:182px;bottom:25px;right:7vw}
  .atlas-word{font-size:29vw}
  .campaign-kicker{left:8vw;right:8vw}
  .quick-view .dialog-gallery{padding:18px}
  .quick-view .dialog-info{padding:30px 25px}
  .quick-view .dialog-info h2{font-size:38px}
}

/* ==== Logo, campaign height, footer and bag (formerly final-pass.css) ==== */
/* Final polish: use the verified original logo, resolve campaign height, and finish the bag/footer. */
.brand-logo{display:block;width:148px;height:46px}
.brand-logo img{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}
.hero-topline{right:auto}
.campaign-sequence{height:220vh}
.campaign-frame{animation:none!important;transition:opacity .75s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}
.campaign-sticky{background:#090909}
.campaign-sequence+footer{margin-top:0}
.cinematic-footer{background:#e9e1d3;color:#17140f;padding:26px 4.5vw 30px;display:block;border:0}
.footer-rule{height:1px;background:#17140f}
.footer-top{display:flex;justify-content:space-between;padding:16px 0;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase}
.footer-top p{margin:0}
.footer-top a{font:inherit;color:inherit}
.footer-logo{display:block;padding:7vh 0 8vh;border-bottom:1px solid rgba(23,20,15,.25)}
.footer-logo img{width:min(590px,88vw);height:clamp(86px,13vw,154px);object-fit:contain;object-position:left center;filter:invert(1)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:6vw;padding:38px 0 56px}
.footer-grid p{font:500 clamp(20px,2vw,30px)/1.1 var(--serif);letter-spacing:-.04em;max-width:360px;margin:0}
.footer-grid nav{display:flex;flex-direction:column;gap:11px}
.footer-grid a{font:10px var(--mono);color:#17140f;text-decoration:none;text-transform:uppercase;letter-spacing:.1em}
.footer-grid a:hover{color:#7d6540}
.footer-bottom{border-top:1px solid rgba(23,20,15,.25);padding-top:15px;display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:.09em;color:#6e6558}
.cart{width:min(510px,100%);padding:0;background:#ede6d9;box-shadow:-20px 0 70px rgba(0,0,0,.28)}
.cart-head{padding:29px 30px 24px;border-color:rgba(23,20,15,.18)}
.cart-head h2{font:500 34px/.95 var(--serif);letter-spacing:-.05em;margin:8px 0 0}
.cart-head h2 span{font:12px var(--mono);letter-spacing:0;color:#786c59;vertical-align:top}
.cart-head .eyebrow{font-size:9px;color:#806b47}
.cart-head button{width:38px;height:38px;border:1px solid rgba(23,20,15,.32);border-radius:50%;font:28px/1 var(--sans);transition:.2s}
.cart-head button:hover{background:#17140f;color:#f5f1e8}
.cart-empty{padding:0 30px;place-content:center;justify-items:start;text-align:left;background:radial-gradient(circle at 70% 35%,#d3c2a2,transparent 33%)}
.cart-empty p{font:500 25px/1.05 var(--serif);margin:17px 0 25px}
.cart-empty button,.cart-continue{border:0;border-bottom:1px solid #17140f;background:none;padding:0 0 6px;font:10px var(--mono);letter-spacing:.11em;text-transform:uppercase;cursor:pointer}
.cart-items{padding:0 30px;overflow:auto}
.cart-item{display:grid;grid-template-columns:78px 1fr auto;gap:13px;align-items:center;padding:18px 0;border-color:rgba(23,20,15,.17)}
.cart-item img{width:78px;height:95px;object-fit:cover;background:#d9cfbe}
.cart-item b{font:500 19px/.95 var(--serif);letter-spacing:-.03em}
.cart-item small{display:block;margin-top:7px;font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#766b5c}
.cart-item .item-actions{text-align:right}
.cart-item .remove{display:block;margin-left:auto;border:0;background:none;font-size:19px;cursor:pointer;color:#817560}
.item-quantity{display:flex;align-items:center;justify-content:flex-end;margin-top:10px}
.item-quantity button{width:22px;height:22px;border:1px solid rgba(23,20,15,.25);background:transparent;cursor:pointer}
.item-quantity span{width:25px;font:10px var(--mono);text-align:center}
.cart-bottom{padding:20px 30px 28px;border-color:rgba(23,20,15,.2);background:#e7dfd1}
.subtotal{display:flex;justify-content:space-between;font:500 23px var(--serif);letter-spacing:-.03em}
.cart-bottom p{font:9px/1.5 var(--mono);letter-spacing:.03em;color:#716655;margin:10px 0 17px}
.cart-bottom .cart-region{margin:-6px 0 17px;padding:10px 12px;border-left:2px solid #933828;background:rgba(147,56,40,.07);color:#3d3226}
.cart-bottom .cart-region[hidden]{display:none}
.checkout{background:#17140f;padding:18px 17px;transition:.2s;cursor:not-allowed;opacity:.72}
.cart-continue{display:block;margin:18px auto 0;color:#655a4a}
.scrim{backdrop-filter:blur(4px)}
@media(max-width:720px){
  .brand-logo{width:116px;height:38px}
  .campaign-sequence{height:190vh}
  .cinematic-footer{padding:20px 7vw 24px}
  .footer-logo{padding:55px 0}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px 16px;padding:32px 0 42px}
  .footer-grid p{grid-column:1/3;font-size:24px}
  .footer-bottom{display:block;line-height:2}
  .footer-bottom span{display:block}
  .cart-head,.cart-bottom{padding-left:22px;padding-right:22px}
  .cart-items{padding:0 22px}
  .cart-item{grid-template-columns:66px 1fr auto}
  .cart-item img{width:66px;height:81px}
}

/* ==== Bounded campaign composition (formerly carry-fix.css) ==== */
/* Campaign repair: the former tall sticky sequence could be trapped by the shell overflow,
   creating a blank viewport after its visible frame. This composition is deliberately bounded. */
body{overflow-x:hidden}
.site-shell{overflow:visible}
.campaign-sequence{height:100svh;position:relative;background:#090909}
.campaign-sticky{height:100%;min-height:0;position:relative;top:auto;overflow:hidden}
.campaign-frame{inset:0;height:100%;display:none;opacity:1!important;transform:none!important}
.campaign-frame.frame-one{display:block}
.campaign-frame.frame-one img{transform:scale(1.04);animation:campaignBreath 16s ease-in-out infinite alternate}
.campaign-copy{left:clamp(28px,9vw,150px);bottom:clamp(62px,13vh,150px);max-width:760px}
.campaign-copy h2{font-size:clamp(64px,7.3vw,114px);line-height:.84}
.campaign-copy>p{font-size:16px}
.campaign-progress{right:4.5vw}
.campaign-progress i{width:48px}
.campaign-progress i:not(:first-child){background:rgba(241,236,223,.18)}
@keyframes campaignBreath{from{transform:scale(1.04)}to{transform:scale(1.1)}}
@media(max-width:720px){
  .campaign-sequence{height:100svh}
  .campaign-copy{left:8vw;bottom:9vh;right:8vw}
  .campaign-copy h2{font-size:clamp(56px,15vw,82px)}
  .campaign-copy>p{font-size:14px}
  .campaign-kicker{top:28px}
  .campaign-progress{right:8vw;bottom:25px}
}

/* ==== Bag size control (formerly size-refinement.css) ==== */
/* Product-size pass: a compact, editable size control that matches the bag's material palette. */
.bag-size{display:flex;align-items:center;gap:7px;margin-top:12px;font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#786b59}
.bag-size select{appearance:none;-webkit-appearance:none;min-width:53px;border:1px solid rgba(23,20,15,.28);border-radius:0;background:#f4eee3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2317140f' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right 8px center;color:#17140f;padding:6px 21px 6px 8px;font:10px var(--mono);letter-spacing:.04em;cursor:pointer;transition:border-color .2s,background-color .2s}
.bag-size select:hover,.bag-size select:focus{border-color:#17140f;background-color:#fffaf0;outline:0}
.cart-item .item-actions strong{display:block;margin-top:9px;font:600 13px var(--sans)}
.cart-empty .empty-logo{display:block;width:min(230px,72%);height:72px;object-fit:contain;object-position:left center;filter:invert(1);margin-bottom:22px}
@media(max-width:720px){
  .bag-size{margin-top:9px}
  .bag-size select{min-width:50px;padding-top:5px;padding-bottom:5px}
}

/* ==== Shipping banner and shop hero (formerly commerce.css) ==== */
/* Commerce pass: restrained shipping notice and bolder numeric hero composition. */
.shipping-banner{height:40px;position:absolute;z-index:5;top:0;left:0;right:0;display:grid;place-items:center;background:#11100f;border-bottom:1px solid rgba(241,236,223,.18);color:#d5c39e;font:11px var(--mono);letter-spacing:.16em;text-align:center;animation:bannerIn .8s both}
.nav{top:40px}
.hero-number{font-family:var(--sans);font-size:1.22em;font-weight:500;letter-spacing:-.12em;line-height:.66;margin-left:-.06em}
.hero h1 em{margin-top:.13em}
.commerce-shop .shipping-banner{position:relative}
.commerce-shop .nav{top:auto}
.commerce-shop .brand-logo{filter:none}
.commerce-shop .nav{border-bottom:1px solid var(--line)}
.shop-hero{background:#e9e1d3;color:#17140f;padding:clamp(95px,13vw,180px) 4.5vw 70px;position:relative;overflow:hidden}
.shop-hero:after{content:"40";position:absolute;right:-.05em;bottom:-.27em;color:#d6c8af;font:500 39vw/.75 var(--serif);letter-spacing:-.14em}
.shop-hero>*{position:relative;z-index:1}
.shop-hero .eyebrow{color:#7c6642}
.shop-hero h1{font:500 clamp(72px,13vw,200px)/.78 var(--serif);letter-spacing:-.09em;margin:28px 0}
.shop-hero h1 em{display:block;padding-left:clamp(35px,10vw,170px);font-weight:500}
.shop-hero p:last-child{max-width:370px;font:16px/1.6 var(--serif)}
.commerce-shop .products{padding-bottom:30px}
@keyframes bannerIn{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}
@media(max-width:720px){
  .shipping-banner{height:34px;font-size:10px;letter-spacing:.1em;padding:0 12px}
  .nav{top:34px}
  .hero{min-height:640px}
  .hero-number{font-size:1.16em}
  .shop-hero{padding:90px 7vw 65px}
  .shop-hero h1{font-size:23vw}
}
