
  :root{
    --navy:#152238;
    --navy-2:#1E3054;
    --ivory:#FAF7F0;
    --cream:#F3EDE1;
    --sand:#E7DBC4;
    --gold:#AD8A57;
    --gold-soft:#C9AD7C;
    --charcoal:#26251F;
    --warm-gray:#7A7469;
    --border:rgba(173,138,87,0.16);
    --white:#FFFFFF;
    --radius-s:3px;
    --radius-m:8px;
    --radius-l:18px;
    --shadow-card: 0 16px 36px -22px rgba(21,34,56,0.28);
    --shadow-lift: 0 26px 54px -26px rgba(21,34,56,0.32);
    --maxw:1288px;
    --ease: cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Manrope',sans-serif;
    color:var(--charcoal);
    background:var(--ivory);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    font-size:15.5px;
  }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 44px;}
  h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:500;color:var(--navy);letter-spacing:-0.008em;}
  em{font-style:italic;color:var(--gold);}
  .eyebrow{
    font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);
    font-weight:600;display:flex;align-items:center;gap:11px;margin-bottom:16px;
  }
  .eyebrow::before{content:"";width:30px;height:1px;background:var(--gold);}
  .section-head{max-width:600px;margin-bottom:52px;}
  .section-head h2{font-size:clamp(30px,3.2vw,44px);line-height:1.14;margin-bottom:16px;}
  .section-head p{color:var(--warm-gray);font-size:16px;line-height:1.7;font-weight:300;}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .section-head.center .eyebrow{justify-content:center;}
  .section-head.center .eyebrow::before{display:none;}
  section{padding:112px 0;}
  section.tight{padding:0;}

  .btn{
    position:relative;display:inline-flex;align-items:center;gap:10px;
    padding:16px 32px;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;
    font-weight:600;border-radius:var(--radius-s);transition:all .5s var(--ease);overflow:hidden;
  }
  .btn-primary{background:var(--navy);color:var(--ivory);}
  .btn-primary::after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .5s var(--ease);z-index:0;}
  .btn-primary span{position:relative;z-index:1;display:flex;align-items:center;gap:9px;}
  .btn-primary:hover::after{transform:translateX(0);}
  .btn-primary:hover{color:var(--navy);}
  .btn-outline{border:1px solid var(--navy);color:var(--navy);}
  .btn-outline:hover{background:var(--navy);color:var(--ivory);}
  .btn-outline.light{border-color:rgba(250,247,240,.5);color:var(--ivory);}
  .btn-outline.light:hover{background:var(--ivory);color:var(--navy);}
  .btn-text{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--navy);display:inline-flex;align-items:center;gap:8px;position:relative;}
  .btn-text::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:currentColor;transition:width .4s var(--ease);}
  .btn-text:hover::after{width:calc(100% - 21px);}
  .btn-text svg{width:13px;height:13px;transition:transform .4s var(--ease);}
  .btn-text:hover svg{transform:translateX(5px);}
  .btn-text.light{color:var(--ivory);}

  .arrow-move{transition:transform .4s var(--ease);}
  .btn:hover .arrow-move{transform:translateX(4px);}

  /* ============ ANNOUNCEMENT ============ */
  .announce{
    background:var(--navy);color:var(--ivory);text-align:center;
    font-size:11.5px;letter-spacing:.1em;padding:11px 0;text-transform:uppercase;font-weight:500;
  }
  .announce em{color:var(--gold-soft);font-style:normal;}

  /* ============ HEADER ============ */
  header.site{
    position:sticky;top:0;z-index:200;background:rgba(250,247,240,.85);
    backdrop-filter:blur(14px);border-bottom:1px solid transparent;
    transition:all .45s var(--ease);
  }
  header.site.scrolled{
    background:rgba(250,247,240,.97);border-bottom-color:var(--border);
    box-shadow:0 12px 30px -24px rgba(21,34,56,.4);
  }
  .header-inner{display:flex;align-items:center;justify-content:space-between;padding:22px 44px;max-width:var(--maxw);margin:0 auto;gap:32px;transition:padding .45s var(--ease);}
  header.site.scrolled .header-inner{padding:14px 44px;}
  .brand{display:flex;align-items:center;gap:12px;}
  .brand img{width:36px;height:36px;object-fit:contain;transition:width .4s var(--ease),height .4s var(--ease);}
  header.site.scrolled .brand img{width:30px;height:30px;}
  .brand .word{font-family:'Playfair Display',serif;font-size:21px;font-weight:500;color:var(--navy);letter-spacing:.01em;}
  nav.main-nav{display:flex;align-items:center;gap:38px;}
  nav.main-nav a{font-size:13px;letter-spacing:.02em;color:var(--charcoal);position:relative;padding:5px 0;font-weight:500;}
  nav.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .4s var(--ease);}
  nav.main-nav a:hover::after,nav.main-nav a.active::after{width:100%;}
  nav.main-nav a.active{color:var(--gold);}
  .header-actions{display:flex;align-items:center;gap:22px;}
  .icon-btn{position:relative;width:19px;height:19px;color:var(--navy);transition:color .3s ease;}
  .icon-btn:hover{color:var(--gold);}
  .icon-btn svg{width:19px;height:19px;}
  .badge{
    position:absolute;top:-9px;right:-11px;background:var(--gold);color:var(--navy);
    font-size:9.5px;font-weight:700;width:16px;height:16px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease);
  }
  .badge.pulse{animation:pulse .5s var(--ease);}
  @keyframes pulse{0%{transform:scale(1);}45%{transform:scale(1.5);}100%{transform:scale(1);}}
  .icon-row{display:flex;gap:22px;align-items:center;}
  .burger{display:none;flex-direction:column;gap:5px;width:22px;}
  .burger span{height:1.5px;background:var(--navy);width:100%;}

  /* ============ HERO — editorial layered composition ============ */
  .hero{position:relative;background:var(--navy);color:var(--ivory);overflow:hidden;min-height:92vh;display:flex;align-items:center;}
  .hero-grid{
    max-width:var(--maxw);margin:0 auto;padding:70px 44px;width:100%;
    display:grid;grid-template-columns:0.9fr 1.1fr;gap:0;align-items:center;position:relative;
  }
  .hero-label-col{position:relative;z-index:3;padding-right:30px;}
  .hero-label-col .eyebrow{color:var(--gold-soft);}
  .hero-label-col .eyebrow::before{background:var(--gold-soft);}
  .hero-label-col h1{
    color:var(--ivory);font-size:clamp(42px,5.6vw,72px);line-height:1.02;
    margin-bottom:24px;
  }
  .hero-label-col p{font-size:16.5px;line-height:1.8;color:rgba(250,247,240,.72);max-width:400px;margin-bottom:38px;font-weight:300;}
  .hero-btns{display:flex;gap:18px;flex-wrap:wrap;align-items:center;}

  .hero-visual-col{position:relative;height:560px;}
  .hv-panel{position:absolute;border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-lift);}
  .hv-1{width:64%;height:78%;top:0;right:0;background:linear-gradient(155deg,#EFE6D3,#D8C6A0);}
  .hv-2{width:42%;height:46%;bottom:0;left:0;background:linear-gradient(155deg,var(--navy-2),#0F1A2C);border:1px solid rgba(250,247,240,.08);z-index:2;}
  .hv-3{width:30%;height:22%;top:6%;left:2%;background:var(--gold-soft);z-index:3;display:flex;align-items:center;justify-content:center;}
  .hv-texture{position:absolute;inset:0;opacity:.9;}
  .hv-fold{position:absolute;left:64%;top:12%;transform:translateX(-50%);width:58%;z-index:2;}
  .hv-layer{height:24px;border-radius:11px;margin-bottom:9px;box-shadow:0 10px 18px -12px rgba(21,34,56,.4);}
  .hv-caption{position:absolute;bottom:14px;right:14px;color:var(--navy);z-index:4;background:rgba(250,247,240,.92);padding:9px 14px;border-radius:8px;text-align:right;}
  .hv-caption b{font-family:'Playfair Display',serif;font-size:15px;font-style:italic;display:block;}
  .hv-caption span{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:rgba(21,34,56,.55);}
  .hero-scroll-cue{
    position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:5;
    display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(250,247,240,.5);
  }
  .hero-scroll-cue .line{width:1px;height:34px;background:linear-gradient(rgba(250,247,240,.6),transparent);animation:scrollpulse 2.2s ease-in-out infinite;}
  @keyframes scrollpulse{0%,100%{opacity:.3;}50%{opacity:1;}}
  .hero-scroll-cue span{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;}

  /* hero load-in animation */
  .hero-anim{opacity:0;transform:translateY(28px);animation:heroIn 1s var(--ease) forwards;}
  .hero-anim.d1{animation-delay:.15s;}
  .hero-anim.d2{animation-delay:.32s;}
  .hero-anim.d3{animation-delay:.5s;}
  .hero-anim.d4{animation-delay:.7s;}
  @keyframes heroIn{to{opacity:1;transform:translateY(0);}}

  /* ============ REVEAL VARIANTS ============ */
  .reveal-up{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
  .reveal-up.in{opacity:1;transform:translateY(0);}
  .reveal-left{opacity:0;transform:translateX(-34px);transition:opacity .85s var(--ease),transform .85s var(--ease);}
  .reveal-left.in{opacity:1;transform:translateX(0);}
  .reveal-right{opacity:0;transform:translateX(34px);transition:opacity .85s var(--ease),transform .85s var(--ease);}
  .reveal-right.in{opacity:1;transform:translateX(0);}
  .reveal-mask{position:relative;overflow:hidden;}
  .reveal-mask::after{content:"";position:absolute;inset:0;background:var(--ivory);transform:scaleX(1);transform-origin:right;transition:transform .9s var(--ease);z-index:5;}
  .reveal-mask.in::after{transform:scaleX(0);}
  .stagger > *{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
  .stagger.in > *{opacity:1;transform:translateY(0);}
  .stagger.in > *:nth-child(1){transition-delay:.02s;}
  .stagger.in > *:nth-child(2){transition-delay:.1s;}
  .stagger.in > *:nth-child(3){transition-delay:.18s;}
  .stagger.in > *:nth-child(4){transition-delay:.26s;}
  .stagger.in > *:nth-child(5){transition-delay:.34s;}
  .stagger.in > *:nth-child(6){transition-delay:.42s;}

  /* ============ CATEGORY ============ */
  .cat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px;}
  .cat-card{
    position:relative;border-radius:var(--radius-m);overflow:hidden;aspect-ratio:3/3.9;
    background:linear-gradient(168deg,var(--cream),var(--sand));
    display:flex;flex-direction:column;justify-content:flex-end;
  }
  .cat-card .cat-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:22px 18px;z-index:2;}
  .cat-card .cat-icon-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .7s var(--ease);}
  .cat-card:hover .cat-icon-wrap{transform:scale(1.1);}
  .cat-card .cat-icon-wrap svg{width:64px;height:64px;opacity:.96;}
  .cat-card::before{
    content:"";position:absolute;left:0;right:0;bottom:0;height:60%;z-index:1;
    background:linear-gradient(to top, rgba(21,34,56,.5), transparent);
    opacity:0;transition:opacity .5s ease;
  }
  .cat-card:hover::before{opacity:1;}
  .cat-card h4{font-size:15px;font-weight:500;color:var(--ivory);margin-bottom:4px;}
  .cat-card span{font-size:11px;color:rgba(250,247,240,.75);letter-spacing:.02em;}
  .cat-card .cat-arrow{
    position:absolute;top:20px;right:20px;width:32px;height:32px;border-radius:50%;
    border:1px solid rgba(21,34,56,.15);display:flex;align-items:center;justify-content:center;
    opacity:0;transform:translateY(-6px);transition:all .4s var(--ease);z-index:3;
  }
  .cat-card:hover .cat-arrow{opacity:1;transform:translateY(0);border-color:rgba(250,247,240,.4);}
  .cat-card .cat-arrow svg{width:13px;height:13px;color:var(--ivory);}

  /* ============ EDITORIAL / CRAFTSMANSHIP SPLIT ============ */
  .editorial{background:var(--cream);}
  .editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:center;border-radius:var(--radius-l);overflow:hidden;}
  .editorial-visual{position:relative;height:520px;background:linear-gradient(160deg,var(--sand),#D8C6A0);}
  .editorial-visual .weave{position:absolute;inset:0;opacity:.5;}
  .editorial-copy{padding:60px 70px;}
  .editorial-copy h2{font-size:clamp(28px,3vw,38px);margin-bottom:20px;line-height:1.2;}
  .editorial-copy p{color:var(--warm-gray);line-height:1.85;margin-bottom:16px;font-weight:300;font-size:15.5px;}
  .editorial-stats{display:flex;gap:44px;margin-top:34px;}
  .editorial-stats div b{display:block;font-family:'Playfair Display',serif;font-size:26px;color:var(--navy);}
  .editorial-stats div span{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--warm-gray);}

  /* ============ COLLECTIONS ============ */
  .collections{background:var(--navy);position:relative;}
  .collections .section-head h2, .collections .section-head p{color:var(--ivory);}
  .collections .section-head p{color:rgba(250,247,240,.65);}
  .collections .eyebrow{color:var(--gold-soft);}
  .collections .eyebrow::before{background:var(--gold-soft);}
  .material-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(250,247,240,.1);border:1px solid rgba(250,247,240,.1);border-radius:var(--radius-m);overflow:hidden;}
  .material-card{background:var(--navy);padding:32px 28px 34px;transition:background .5s ease;}
  .material-card:hover{background:var(--navy-2);}
  .material-photo{position:relative;aspect-ratio:4/3;border-radius:var(--radius-s);overflow:hidden;margin-bottom:20px;}
  .material-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
  .material-card:hover .material-photo img{transform:scale(1.07);}
  .material-icon{width:30px;height:30px;color:var(--gold-soft);margin-bottom:16px;}
  .material-origin{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:6px;font-weight:600;}
  .material-card h4{font-family:'Playfair Display',serif;font-size:17.5px;color:var(--ivory);margin-bottom:10px;font-weight:500;}
  .material-card p{font-size:12.5px;line-height:1.75;color:rgba(250,247,240,.6);font-weight:300;}
  .collections-more{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;margin-top:36px;}
  .collections-more a{font-size:12px;letter-spacing:.05em;color:rgba(250,247,240,.6);border-bottom:1px solid transparent;transition:all .3s ease;padding-bottom:2px;}
  .collections-more a:hover{color:var(--gold-soft);border-color:var(--gold-soft);}
  .collections-more .dot{width:3px;height:3px;border-radius:50%;background:rgba(250,247,240,.3);}

  /* ============ PRODUCTS ============ */
  .section-flex-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px;flex-wrap:wrap;gap:20px;}
  .product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
  .product-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-m);overflow:hidden;transition:box-shadow .5s var(--ease),transform .5s var(--ease),border-color .5s ease;}
  .product-card:hover{box-shadow:var(--shadow-card);transform:translateY(-6px);border-color:transparent;}
  .product-media{position:relative;aspect-ratio:4/5;background:linear-gradient(168deg,var(--cream),var(--sand));overflow:hidden;}
  .product-media .towel-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
  .product-media .towel-icon svg{width:56%;height:56%;opacity:.98;transition:transform .8s var(--ease);filter:saturate(1.05);}
  .product-card:hover .towel-icon svg{transform:scale(1.09);}
  .tag{position:absolute;top:14px;left:14px;background:var(--navy);color:var(--ivory);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:6px 11px;border-radius:20px;font-weight:600;}
  .wish{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:rgba(250,247,240,.92);display:flex;align-items:center;justify-content:center;color:var(--navy);transition:all .35s var(--ease);}
  .wish:hover{background:var(--navy);color:var(--ivory);}
  .wish svg{width:15px;height:15px;transition:transform .3s var(--ease);}
  .wish.active svg{fill:var(--gold);stroke:var(--gold);}
  .wish.bump svg{animation:heartbump .45s var(--ease);}
  @keyframes heartbump{0%{transform:scale(1);}40%{transform:scale(1.35);}100%{transform:scale(1);}}
  .quickview{
    position:absolute;left:12px;right:12px;bottom:12px;padding:12px;text-align:center;font-size:11px;
    letter-spacing:.07em;text-transform:uppercase;font-weight:600;background:rgba(21,34,56,.94);color:var(--ivory);
    border-radius:var(--radius-s);opacity:0;transform:translateY(10px);transition:all .4s var(--ease);
  }
  .product-card:hover .quickview{opacity:1;transform:translateY(0);}
  .product-info{padding:20px 20px 22px;}
  .product-info .mat{font-size:10.5px;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:7px;}
  .product-info h4{font-size:15.5px;font-weight:500;margin-bottom:9px;color:var(--navy);line-height:1.3;}
  .stars{color:var(--gold);font-size:12px;letter-spacing:2px;margin-bottom:11px;}
  .price-row{display:flex;align-items:center;justify-content:space-between;}
  .price{display:flex;align-items:baseline;gap:9px;}
  .price .now{font-size:16.5px;font-weight:700;color:var(--navy);font-family:'Playfair Display',serif;}
  .price .was{font-size:12.5px;color:var(--warm-gray);text-decoration:line-through;}
  .add-cart{width:36px;height:36px;border-radius:50%;border:1px solid var(--navy);display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease);position:relative;overflow:hidden;}
  .add-cart svg{width:14px;height:14px;transition:opacity .25s ease, transform .25s ease;}
  .add-cart:hover{background:var(--navy);color:var(--ivory);}
  .add-cart.added{background:var(--gold);border-color:var(--gold);}
  .add-cart .check{position:absolute;opacity:0;transform:scale(.5);}
  .add-cart.added .plus{opacity:0;transform:scale(.5);}
  .add-cart.added .check{opacity:1;transform:scale(1);color:var(--navy);}

  /* ============ SPLIT BANNERS ============ */
  .split-banner{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
  .banner-panel{
    position:relative;border-radius:var(--radius-l);overflow:hidden;min-height:380px;
    display:flex;align-items:flex-end;padding:44px;
  }
  .banner-panel.a{background:linear-gradient(155deg,#EFE6D3,#D8C6A0);}
  .banner-panel.b{background:linear-gradient(155deg,var(--navy),var(--navy-2));}
  .banner-fold{position:absolute;right:6%;top:10%;width:44%;opacity:.9;transition:transform .8s var(--ease);}
  .banner-panel:hover .banner-fold{transform:translateY(-8px);}
  .banner-content{position:relative;z-index:2;max-width:300px;}
  .banner-content .eyebrow{margin-bottom:11px;}
  .banner-panel.a .eyebrow{color:var(--gold);}
  .banner-panel.a .eyebrow::before{background:var(--gold);}
  .banner-panel.b .eyebrow{color:var(--gold-soft);}
  .banner-panel.b .eyebrow::before{background:var(--gold-soft);}
  .banner-content h3{font-size:27px;margin-bottom:11px;}
  .banner-panel.b h3{color:var(--ivory);}
  .banner-content p{font-size:14px;line-height:1.7;color:var(--warm-gray);margin-bottom:22px;font-weight:300;}
  .banner-panel.b p{color:rgba(250,247,240,.68);}

  .lux-banner{
    position:relative;border-radius:var(--radius-l);overflow:hidden;background:linear-gradient(120deg,var(--navy) 45%,var(--navy-2));
    padding:86px 64px;display:flex;align-items:center;justify-content:space-between;gap:44px;
  }
  .lux-banner-copy{max-width:470px;position:relative;z-index:2;}
  .lux-banner h3{color:var(--ivory);font-size:clamp(27px,3vw,40px);margin-bottom:18px;}
  .lux-banner p{color:rgba(250,247,240,.72);margin-bottom:28px;line-height:1.8;font-weight:300;}
  .lux-fold{width:290px;flex-shrink:0;transition:transform .9s var(--ease);position:relative;z-index:2;}
  .lux-banner:hover .lux-fold{transform:rotate(2deg) translateY(-6px);}

  /* ============ LIMITED TIME ============ */
  .limited{background:var(--cream);border-radius:var(--radius-l);padding:60px;}
  .limited-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;margin-bottom:44px;}
  .countdown{display:flex;gap:14px;}
  .cd-cell{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-s);padding:13px 19px;text-align:center;min-width:66px;}
  .cd-cell b{display:block;font-family:'Playfair Display',serif;font-size:23px;color:var(--navy);}
  .cd-cell small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--warm-gray);}

  /* ============ WHY CHOOSE — asymmetric ============ */
  .why-wrap{display:grid;grid-template-columns:0.85fr 1.15fr;gap:70px;align-items:center;}
  .why-visual{height:460px;border-radius:var(--radius-l);background:linear-gradient(160deg,var(--sand),var(--cream));position:relative;overflow:hidden;}
  .why-list{display:flex;flex-direction:column;gap:0;}
  .why-row{display:flex;gap:24px;padding:28px 0;border-bottom:1px solid var(--border);}
  .why-row:first-child{padding-top:0;}
  .why-row:last-child{border-bottom:none;}
  .why-icon{width:52px;height:52px;flex-shrink:0;border:1px solid var(--gold-soft);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .4s ease;}
  .why-row:hover .why-icon{background:var(--gold-soft);}
  .why-icon svg{width:22px;height:22px;color:var(--gold);transition:color .4s ease;}
  .why-row:hover .why-icon svg{color:var(--navy);}
  .why-copy h4{font-size:17px;margin-bottom:7px;}
  .why-copy p{font-size:14px;color:var(--warm-gray);line-height:1.7;font-weight:300;}

  /* ============ REVIEWS ============ */
  .review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .review-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-m);padding:36px;transition:box-shadow .5s var(--ease),transform .5s var(--ease);}
  .review-card:hover{box-shadow:var(--shadow-card);transform:translateY(-5px);}
  .review-stars{color:var(--gold);font-size:13px;letter-spacing:2px;margin-bottom:18px;}
  .review-card p{font-size:14.5px;line-height:1.8;color:var(--charcoal);margin-bottom:24px;font-family:'Playfair Display',serif;font-style:italic;font-weight:400;}
  .review-who{display:flex;align-items:center;gap:13px;}
  .avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(160deg,var(--sand),var(--gold-soft));display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;color:var(--navy);font-size:15px;}
  .review-who .name{font-size:13.5px;font-weight:600;color:var(--navy);}
  .review-who .prod{font-size:11px;color:var(--warm-gray);}

  /* ============ GALLERY ============ */
  .gallery-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:16px;}
  .gallery-item{aspect-ratio:1/1.25;border-radius:var(--radius-m);overflow:hidden;position:relative;background:linear-gradient(160deg,var(--cream),var(--sand));}
  .gallery-item:nth-child(2n){background:linear-gradient(160deg,var(--sand),var(--gold-soft));margin-top:34px;}
  .gallery-item .towel-icon svg{width:48%;height:48%;opacity:.95;transition:transform .7s var(--ease);}
  .gallery-item:hover .towel-icon svg{transform:scale(1.1) rotate(-2deg);}
  .gallery-item .towel-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
  .gallery-tag{position:absolute;bottom:14px;left:14px;font-size:10px;color:var(--navy);background:rgba(250,247,240,.88);padding:6px 11px;border-radius:20px;letter-spacing:.04em;}

  /* ============ NEWSLETTER ============ */
  .newsletter{background:linear-gradient(155deg,var(--sand),var(--cream));border-radius:var(--radius-l);padding:70px;text-align:center;}
  .newsletter h2{font-size:clamp(25px,2.8vw,35px);margin-bottom:14px;}
  .newsletter p{color:var(--warm-gray);margin-bottom:32px;font-weight:300;}
  .nl-form{display:flex;max-width:450px;margin:0 auto;gap:12px;position:relative;}
  .nl-form input{flex:1;padding:16px 19px;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--white);font-size:13.5px;transition:border-color .3s ease,box-shadow .3s ease;}
  .nl-form input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(173,138,87,.14);}
  .nl-success{display:none;align-items:center;gap:10px;color:var(--navy);font-size:13.5px;font-weight:600;justify-content:center;}
  .nl-success svg{width:18px;height:18px;color:var(--gold);}

  /* ============ SERVICE STRIP ============ */
  .service-strip{background:var(--navy);}
  .service-row{display:grid;grid-template-columns:repeat(4,1fr);}
  .service-item{display:flex;align-items:center;gap:15px;padding:32px 22px;border-right:1px solid rgba(250,247,240,.1);}
  .service-item:last-child{border-right:none;}
  .service-item svg{width:25px;height:25px;color:var(--gold-soft);flex-shrink:0;}
  .service-item b{display:block;color:var(--ivory);font-size:14px;font-weight:600;margin-bottom:3px;}
  .service-item span{font-size:11.5px;color:rgba(250,247,240,.55);}

  /* ============ FOOTER ============ */
  footer{background:#0E1830;color:rgba(250,247,240,.68);padding-top:76px;}
  .footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;padding-bottom:60px;border-bottom:1px solid rgba(250,247,240,.08);}
  .footer-brand .brand{margin-bottom:20px;}
  .footer-brand .word{color:var(--ivory);}
  .footer-brand p{font-size:13.5px;line-height:1.8;color:rgba(250,247,240,.5);max-width:280px;font-weight:300;}
  .footer-col h5{color:var(--ivory);font-family:'Playfair Display',serif;font-weight:500;font-size:15px;margin-bottom:22px;}
  .footer-col ul li{margin-bottom:13px;font-size:13.5px;}
  .footer-col ul li a{position:relative;}
  .footer-col ul li a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--gold-soft);transition:width .35s ease;}
  .footer-col ul li a:hover::after{width:100%;}
  .footer-col ul li a:hover{color:var(--gold-soft);}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:28px 0;font-size:12px;color:rgba(250,247,240,.4);flex-wrap:wrap;gap:12px;}
  .socials{display:flex;gap:14px;}
  .socials a{width:34px;height:34px;border:1px solid rgba(250,247,240,.16);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease);}
  .socials a:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);transform:translateY(-3px);}
  .socials svg{width:14px;height:14px;}

  /* ============ TOAST ============ */
  .toast{
    position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);
    background:var(--navy);color:var(--ivory);padding:14px 26px;border-radius:40px;
    font-size:12.5px;letter-spacing:.03em;display:flex;align-items:center;gap:10px;
    box-shadow:var(--shadow-lift);opacity:0;pointer-events:none;transition:all .45s var(--ease);z-index:999;
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
  .toast svg{width:15px;height:15px;color:var(--gold-soft);}

  /* ============ FABRIC TEXTURE + TOWEL MOTION SYSTEM ============ */
  .fabric-texture{position:relative;}
  .fabric-texture::before{
    content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
    background-image:
      repeating-linear-gradient(90deg, rgba(21,34,56,.05) 0px, rgba(21,34,56,.05) 1px, transparent 1px, transparent 4px),
      repeating-linear-gradient(0deg, rgba(21,34,56,.05) 0px, rgba(21,34,56,.05) 1px, transparent 1px, transparent 4px);
    background-size:200% 200%;
    animation:panzoom 26s ease-in-out infinite alternate;
  }
  @keyframes panzoom{0%{background-position:0% 0%, 0% 0%;}100%{background-position:12% 8%, 8% 12%;}}
  @media (prefers-reduced-motion: reduce){ .fabric-texture::before{animation:none;} }

  /* idle drape sway for large fold illustrations */
  .drape-sway{animation:drape 7s ease-in-out infinite;transform-origin:50% 90%;}
  @keyframes drape{0%,100%{transform:rotate(0deg) scaleY(1);}50%{transform:rotate(.6deg) scaleY(1.008);}}
  @media (prefers-reduced-motion: reduce){ .drape-sway{animation:none;} }

  /* steam / warmth rising — used on hotel & spa panels */
  .steam{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;}
  .steam span{
    position:absolute;bottom:-14%;width:30%;height:70%;border-radius:50%;
    background:radial-gradient(closest-side, rgba(250,247,240,.10), transparent 75%);
    filter:blur(14px);animation:steamRise 9s ease-in infinite;
  }
  .steam span:nth-child(1){left:15%;animation-delay:0s;}
  .steam span:nth-child(2){left:45%;animation-delay:2.6s;width:20%;}
  .steam span:nth-child(3){left:68%;animation-delay:5.2s;width:22%;}
  @keyframes steamRise{0%{transform:translateY(0) scale(1);opacity:0;}15%{opacity:.9;}100%{transform:translateY(-120%) scale(1.4);opacity:0;}}
  @media (prefers-reduced-motion: reduce){ .steam span{animation:none;display:none;} }

  /* stitched marching-ants outline on hover — product & category cards */
  .stitch-outline{position:relative;}
  .stitch-outline::after{
    content:"";position:absolute;inset:8px;border-radius:calc(var(--radius-m) - 4px);pointer-events:none;
    border:1.5px dashed rgba(173,138,87,0);
    background-image:none;
    transition:border-color .4s ease;
    z-index:4;
  }
  .stitch-outline:hover::after{
    border-color:rgba(173,138,87,.55);
    animation:stitchMarch 1.1s linear infinite;
  }
  @keyframes stitchMarch{to{outline-offset:2px;}}
  @media (prefers-reduced-motion: reduce){ .stitch-outline:hover::after{animation:none;} }

  /* water-droplet absorb ripple — category cards */
  .ripple-hover{position:relative;overflow:hidden;}
  .ripple-hover .ripple-dot{
    position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;
    background:radial-gradient(circle, rgba(250,247,240,.55), transparent 70%);
    transform:translate(-50%,-50%) scale(0);opacity:0;pointer-events:none;z-index:2;
  }
  .ripple-hover:hover .ripple-dot{animation:ripple 1.1s ease-out;}
  @keyframes ripple{0%{transform:translate(-50%,-50%) scale(0);opacity:.8;}100%{transform:translate(-50%,-50%) scale(22);opacity:0;}}
  @media (prefers-reduced-motion: reduce){ .ripple-hover:hover .ripple-dot{animation:none;} }

  /* hero unfurl — towel layers open out on load */
  .unfurl{transform-origin:left center;animation:unfurl 1.1s var(--ease) both;}
  .unfurl.u1{animation-delay:.5s;}
  .unfurl.u2{animation-delay:.66s;}
  .unfurl.u3{animation-delay:.82s;}
  @keyframes unfurl{from{transform:scaleX(0);}to{transform:scaleX(1);}}
  @media (prefers-reduced-motion: reduce){ .unfurl{animation:none;transform:none;} }

  /* clip-path fold reveal for product/gallery grids */
  .fold-reveal{clip-path:inset(0 0 100% 0);opacity:0;transition:clip-path .8s var(--ease), opacity .5s ease;}
  .fold-reveal.in{clip-path:inset(0 0 0% 0);opacity:1;}
  @media (prefers-reduced-motion: reduce){ .fold-reveal{clip-path:none;opacity:1;transition:none;} }

  /* slow Ken-Burns zoom for large static panels */
  .kenburns{animation:kb 18s ease-in-out infinite alternate;}
  @keyframes kb{0%{transform:scale(1);}100%{transform:scale(1.06);}}
  @media (prefers-reduced-motion: reduce){ .kenburns{animation:none;} }

  /* ============ RESPONSIVE ============ */

  /* ============ PHOTOGRAPHY ============ */
  .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
  .ph-hover{transition:transform 1s var(--ease);}
  .ph-hoverable:hover .ph-hover{transform:scale(1.07);}
  .scrim-bottom{position:absolute;inset:0;background:linear-gradient(to top, rgba(21,34,56,.7) 0%, rgba(21,34,56,.1) 48%, transparent 72%);z-index:1;pointer-events:none;}
  .scrim-dark{position:absolute;inset:0;background:linear-gradient(150deg, rgba(15,25,44,.74), rgba(21,34,56,.5));z-index:1;pointer-events:none;}
  .scrim-soft{position:absolute;inset:0;background:linear-gradient(150deg, rgba(21,34,56,.4), rgba(21,34,56,.06) 60%);z-index:1;pointer-events:none;}
  @media (max-width:1080px){
    .product-grid{grid-template-columns:repeat(2,1fr);}
    .cat-grid{grid-template-columns:repeat(3,1fr);}
    .material-grid{grid-template-columns:repeat(2,1fr);}
    .review-grid{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .service-row{grid-template-columns:repeat(2,1fr);}
    .service-item{border-right:none;border-bottom:1px solid rgba(250,247,240,.1);}
    .footer-top{grid-template-columns:1fr 1fr;}
    .hero{min-height:auto;}
    .hero-grid{grid-template-columns:1fr;padding-top:52px;padding-bottom:60px;gap:50px;}
    .hero-visual-col{height:420px;order:-1;}
    .hero-scroll-cue{display:none;}
    .editorial-grid{grid-template-columns:1fr;}
    .editorial-copy{padding:44px 36px;}
    .editorial-visual{height:340px;}
    .why-wrap{grid-template-columns:1fr;gap:40px;}
    .why-visual{height:300px;}
  }
  @media (max-width:720px){
    .wrap,.header-inner,.hero-grid{padding-left:22px;padding-right:22px;}
    nav.main-nav{display:none;}
    .burger{display:flex;}
    section{padding:64px 0;}
    .cat-grid{grid-template-columns:repeat(2,1fr);}
    .product-grid{grid-template-columns:1fr 1fr;gap:14px;}
    .split-banner{grid-template-columns:1fr;}
    .lux-banner{flex-direction:column;text-align:center;padding:50px 30px;}
    .lux-banner-copy{max-width:100%;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .gallery-item:nth-child(2n){margin-top:0;}
    .service-row{grid-template-columns:1fr;}
    .footer-top{grid-template-columns:1fr;gap:36px;}
    .newsletter{padding:42px 24px;}
    .nl-form{flex-direction:column;}
    .limited{padding:34px 24px;}
    .material-grid{grid-template-columns:1fr;}
    .lux-fold{display:none;}
    .editorial-copy{padding:36px 24px;}
  }

/* ============================================================
   SHARED PAGE COMPONENTS — shop / product / cart / wishlist / checkout
   ============================================================ */

/* Page header banner (non-home pages) */
.page-banner{background:var(--navy);color:var(--ivory);padding:56px 0 44px;}
.page-banner .eyebrow{color:var(--gold-soft);}
.page-banner .eyebrow::before{background:var(--gold-soft);}
.page-banner h1{color:var(--ivory);font-size:clamp(30px,3.6vw,46px);margin-bottom:10px;}
.breadcrumbs{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(250,247,240,.55);margin-bottom:18px;}
.breadcrumbs a{color:rgba(250,247,240,.55);transition:color .3s ease;}
.breadcrumbs a:hover{color:var(--gold-soft);}
.breadcrumbs span{color:rgba(250,247,240,.3);}

/* Shop layout: filter rail + grid */
.shop-layout{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:flex-start;}
.filter-rail{position:sticky;top:100px;}
.filter-group{border-bottom:1px solid var(--border);padding-bottom:22px;margin-bottom:22px;}
.filter-group h5{font-family:'Playfair Display',serif;font-size:14.5px;color:var(--navy);margin-bottom:14px;font-weight:500;}
.filter-option{display:flex;align-items:center;gap:10px;margin-bottom:11px;font-size:13px;color:var(--charcoal);cursor:pointer;}
.filter-option input{width:15px;height:15px;accent-color:var(--navy);cursor:pointer;}
.filter-option span.count{margin-left:auto;color:var(--warm-gray);font-size:11.5px;}
.price-range{display:flex;flex-direction:column;gap:10px;}
.price-range input[type="range"]{width:100%;accent-color:var(--gold);}
.price-range .range-vals{display:flex;justify-content:space-between;font-size:12px;color:var(--warm-gray);}
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:14px;}
.shop-toolbar .result-count{font-size:13px;color:var(--warm-gray);}
.sort-select{position:relative;}
.sort-select select{
  appearance:none;-webkit-appearance:none;background:var(--white);border:1px solid var(--border);
  padding:11px 36px 11px 16px;font-size:12.5px;letter-spacing:.03em;color:var(--navy);border-radius:var(--radius-s);
  font-family:inherit;cursor:pointer;
}
.sort-select::after{
  content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:1.4px solid var(--navy);
  border-bottom:1.4px solid var(--navy);transform:translateY(-65%) rotate(45deg);pointer-events:none;
}
.active-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;}
.filter-chip{
  display:inline-flex;align-items:center;gap:8px;background:var(--cream);border:1px solid var(--border);
  padding:6px 12px;border-radius:20px;font-size:11.5px;color:var(--navy);
}
.filter-chip button{color:var(--warm-gray);font-size:13px;line-height:1;}
.pagination{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:56px;}
.pagination a{
  width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;
  font-size:13px;color:var(--navy);border:1px solid transparent;transition:all .3s ease;
}
.pagination a.active{background:var(--navy);color:var(--ivory);}
.pagination a:hover:not(.active){border-color:var(--border);}

/* Product Detail Page */
.pdp-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:flex-start;}
.pdp-gallery-main{position:relative;aspect-ratio:4/5;border-radius:var(--radius-m);overflow:hidden;background:var(--cream);margin-bottom:14px;cursor:zoom-in;}
.pdp-gallery-main img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.pdp-thumbs{display:flex;gap:12px;}
.pdp-thumb{width:78px;height:92px;border-radius:var(--radius-s);overflow:hidden;cursor:pointer;border:1.5px solid transparent;opacity:.6;transition:all .3s ease;flex-shrink:0;}
.pdp-thumb img{width:100%;height:100%;object-fit:cover;}
.pdp-thumb.active,.pdp-thumb:hover{opacity:1;border-color:var(--gold);}
.pdp-info .mat-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:10px;}
.pdp-info h1{font-size:clamp(26px,3vw,36px);margin-bottom:14px;line-height:1.2;}
.pdp-rating{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.pdp-rating .stars{color:var(--gold);font-size:14px;letter-spacing:2px;}
.pdp-rating span{font-size:12.5px;color:var(--warm-gray);}
.pdp-price{display:flex;align-items:baseline;gap:12px;margin-bottom:26px;}
.pdp-price .now{font-family:'Playfair Display',serif;font-size:30px;font-weight:700;color:var(--navy);}
.pdp-price .was{font-size:16px;color:var(--warm-gray);text-decoration:line-through;}
.pdp-price .save{font-size:11.5px;color:var(--gold);background:var(--cream);padding:4px 10px;border-radius:20px;font-weight:600;}
.pdp-desc{font-size:14.5px;line-height:1.8;color:var(--charcoal-soft);margin-bottom:28px;}
.option-group{margin-bottom:26px;}
.option-group .label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.option-group .label-row b{font-size:12.5px;color:var(--navy);text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
.option-group .label-row span{font-size:12px;color:var(--warm-gray);}
.color-swatches{display:flex;gap:10px;}
.swatch{width:34px;height:34px;border-radius:50%;cursor:pointer;border:2px solid transparent;position:relative;transition:all .25s ease;}
.swatch::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid transparent;transition:border-color .25s ease;}
.swatch.active::after{border-color:var(--navy);}
.size-pills{display:flex;gap:10px;}
.size-pill{
  padding:10px 18px;border:1px solid var(--border);border-radius:var(--radius-s);font-size:12.5px;
  color:var(--charcoal);cursor:pointer;transition:all .25s ease;background:var(--white);
}
.size-pill.active{background:var(--navy);color:var(--ivory);border-color:var(--navy);}
.qty-add-row{display:flex;gap:14px;margin-bottom:20px;}
.qty-stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-s);}
.qty-stepper button{width:42px;height:52px;font-size:16px;color:var(--navy);transition:background .25s ease;}
.qty-stepper button:hover{background:var(--cream);}
.qty-stepper input{width:44px;text-align:center;border:none;font-size:14px;color:var(--navy);font-family:inherit;}
.pdp-add-cart{flex:1;}
.pdp-secondary-actions{display:flex;gap:16px;margin-bottom:30px;}
.pdp-secondary-actions button{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--charcoal-soft);transition:color .3s ease;}
.pdp-secondary-actions button:hover{color:var(--navy);}
.pdp-secondary-actions svg{width:16px;height:16px;}
.pdp-secondary-actions .wish-active svg{fill:var(--gold);stroke:var(--gold);}
.trust-row{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--cream);border-radius:var(--radius-m);margin-bottom:30px;}
.trust-row div{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--charcoal-soft);}
.trust-row svg{width:18px;height:18px;color:var(--gold);flex-shrink:0;}
.accordion-item{border-bottom:1px solid var(--border);}
.accordion-head{display:flex;justify-content:space-between;align-items:center;padding:18px 2px;cursor:pointer;}
.accordion-head b{font-size:13.5px;color:var(--navy);font-weight:500;font-family:'Playfair Display',serif;font-size:15px;}
.accordion-head svg{width:14px;height:14px;color:var(--navy);transition:transform .3s ease;}
.accordion-item.open .accordion-head svg{transform:rotate(45deg);}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
.accordion-item.open .accordion-body{max-height:300px;}
.accordion-body p{font-size:13.5px;line-height:1.8;color:var(--charcoal-soft);padding:0 2px 18px;font-weight:300;}

/* Cart page */
.cart-layout{display:grid;grid-template-columns:1fr 380px;gap:56px;align-items:flex-start;}
.cart-table-head{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr auto;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--warm-gray);font-weight:600;}
.cart-row{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr auto;gap:16px;align-items:center;padding:24px 0;border-bottom:1px solid var(--border);}
.cart-item-info{display:flex;gap:16px;align-items:center;}
.cart-item-info img{width:76px;height:92px;object-fit:cover;border-radius:var(--radius-s);flex-shrink:0;}
.cart-item-info .ci-name{font-family:'Playfair Display',serif;font-size:15px;color:var(--navy);margin-bottom:4px;}
.cart-item-info .ci-meta{font-size:12px;color:var(--warm-gray);}
.cart-price{font-size:14px;color:var(--navy);font-weight:600;}
.remove-btn{color:var(--warm-gray);transition:color .3s ease;}
.remove-btn:hover{color:#b34747;}
.remove-btn svg{width:16px;height:16px;}
.cart-summary{background:var(--cream);border-radius:var(--radius-m);padding:32px;position:sticky;top:100px;}
.cart-summary h4{font-size:18px;margin-bottom:22px;}
.summary-row{display:flex;justify-content:space-between;font-size:13.5px;color:var(--charcoal-soft);margin-bottom:14px;}
.summary-row.total{font-size:16px;color:var(--navy);font-weight:700;padding-top:16px;border-top:1px solid var(--border);margin-top:6px;}
.promo-row{display:flex;gap:10px;margin:20px 0;}
.promo-row input{flex:1;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-s);font-size:12.5px;}
.promo-row button{padding:0 18px;border:1px solid var(--navy);border-radius:var(--radius-s);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);font-weight:600;transition:all .3s ease;}
.promo-row button:hover{background:var(--navy);color:var(--ivory);}
.empty-state{text-align:center;padding:90px 20px;}
.empty-state svg{width:60px;height:60px;color:var(--gold-soft);margin:0 auto 24px;}
.empty-state h3{font-size:22px;margin-bottom:10px;}
.empty-state p{color:var(--warm-gray);margin-bottom:28px;}

/* Wishlist page */
.wishlist-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}

/* Checkout page */
.checkout-steps{display:flex;align-items:center;gap:10px;margin-bottom:48px;}
.checkout-step{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--warm-gray);}
.checkout-step .num{width:26px;height:26px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;font-family:'Playfair Display',serif;}
.checkout-step.active{color:var(--navy);font-weight:600;}
.checkout-step.active .num{background:var(--navy);color:var(--ivory);border-color:var(--navy);}
.checkout-step.done .num{background:var(--gold);color:var(--navy);border-color:var(--gold);}
.step-sep{width:34px;height:1px;background:var(--border);}
.checkout-layout{display:grid;grid-template-columns:1fr 380px;gap:56px;align-items:flex-start;}
.form-section{margin-bottom:38px;}
.form-section h4{font-size:17px;margin-bottom:20px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-grid.full{grid-template-columns:1fr;}
.field label{display:block;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--warm-gray);margin-bottom:8px;font-weight:600;}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border:1px solid var(--border);border-radius:var(--radius-s);font-size:13.5px;
  font-family:inherit;color:var(--charcoal);transition:border-color .3s ease, box-shadow .3s ease;background:var(--white);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(173,138,87,.14);}
.pay-options{display:flex;flex-direction:column;gap:12px;}
.pay-option{display:flex;align-items:center;gap:14px;border:1px solid var(--border);border-radius:var(--radius-s);padding:16px 18px;cursor:pointer;transition:all .3s ease;}
.pay-option.active{border-color:var(--gold);background:var(--cream);}
.pay-option input{accent-color:var(--navy);width:16px;height:16px;}
.pay-option .pay-label{font-size:13.5px;color:var(--navy);font-weight:500;}
.pay-option svg{width:20px;height:20px;color:var(--gold);margin-left:auto;}
.order-line{display:flex;gap:12px;align-items:center;margin-bottom:14px;}
.order-line img{width:48px;height:58px;object-fit:cover;border-radius:6px;}
.order-line .ol-info{flex:1;font-size:12.5px;color:var(--charcoal);}
.order-line .ol-info small{display:block;color:var(--warm-gray);font-size:11px;}
.order-line .ol-price{font-size:12.5px;color:var(--navy);font-weight:600;}
.confirm-wrap{text-align:center;padding:70px 20px;max-width:520px;margin:0 auto;}
.confirm-icon{width:70px;height:70px;border-radius:50%;background:var(--cream);display:flex;align-items:center;justify-content:center;margin:0 auto 28px;}
.confirm-icon svg{width:30px;height:30px;color:var(--gold);}
.confirm-wrap h2{margin-bottom:14px;}
.confirm-wrap p{color:var(--warm-gray);margin-bottom:10px;}
.confirm-order-id{display:inline-block;background:var(--cream);padding:10px 20px;border-radius:20px;font-size:12.5px;color:var(--navy);font-weight:600;margin:14px 0 34px;}

@media (max-width:1080px){
  .shop-layout{grid-template-columns:1fr;}
  .filter-rail{position:static;display:none;}
  .filter-rail.mobile-open{display:block;}
  .pdp-grid{grid-template-columns:1fr;gap:36px;}
  .cart-layout,.checkout-layout{grid-template-columns:1fr;}
  .cart-summary{position:static;}
  .wishlist-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  .cart-table-head{display:none;}
  .cart-row{grid-template-columns:1fr;gap:12px;}
  .cart-price,.cart-qty,.cart-total{display:flex;justify-content:space-between;font-size:13px;color:var(--warm-gray);}
  .cart-price::before{content:"Price";}
  .form-grid{grid-template-columns:1fr;}
  .wishlist-grid{grid-template-columns:1fr 1fr;}
  .checkout-steps{gap:4px;}
  .step-sep{width:16px;}
}

/* Mobile nav dropdown (burger toggle) */
@media (max-width:720px){
  nav.main-nav.mobile-open{
    display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
    background:var(--ivory);border-bottom:1px solid var(--border);padding:20px 22px;gap:18px;
    box-shadow:0 16px 30px -20px rgba(21,34,56,.3);
  }
}

/* smaller quantity stepper used inside cart rows */
.cart-qty.qty-stepper button{width:32px;height:38px;font-size:14px;}
.cart-qty.qty-stepper input{width:34px;font-size:13px;}

/* ============================================================
   ACCOUNT / AUTH / PAYMENT
   ============================================================ */
.auth-wrap{max-width:460px;margin:0 auto;}
.auth-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:34px;}
.auth-tab{flex:1;text-align:center;padding:16px 0;font-size:13px;letter-spacing:.04em;color:var(--warm-gray);cursor:pointer;border-bottom:2px solid transparent;transition:all .3s ease;font-weight:600;}
.auth-tab.active{color:var(--navy);border-color:var(--gold);}
.auth-panel{display:none;}
.auth-panel.active{display:block;}
.auth-panel .field{margin-bottom:20px;}
.auth-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;margin-bottom:26px;font-size:12px;}
.auth-foot a{color:var(--warm-gray);}
.auth-foot a:hover{color:var(--gold);}
.auth-check{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--charcoal-soft);}
.auth-check input{accent-color:var(--navy);width:14px;height:14px;}

/* dashboard layout */
.account-layout{display:grid;grid-template-columns:230px 1fr;gap:48px;align-items:flex-start;}
.account-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:100px;}
.account-nav button{
  display:flex;align-items:center;gap:12px;padding:13px 16px;font-size:13.5px;color:var(--charcoal-soft);
  border-radius:var(--radius-s);text-align:left;transition:all .25s ease;
}
.account-nav button svg{width:17px;height:17px;flex-shrink:0;}
.account-nav button:hover{background:var(--cream);color:var(--navy);}
.account-nav button.active{background:var(--navy);color:var(--ivory);}
.account-nav button.danger{color:#b34747;margin-top:14px;border-top:1px solid var(--border);padding-top:18px;border-radius:0;}
.account-welcome{background:var(--cream);border-radius:var(--radius-m);padding:30px 34px;margin-bottom:36px;display:flex;align-items:center;gap:20px;}
.account-avatar{width:56px;height:56px;border-radius:50%;background:var(--navy);color:var(--ivory);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:22px;flex-shrink:0;}
.account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:40px;}
.stat-card{border:1px solid var(--border);border-radius:var(--radius-m);padding:24px;text-align:center;}
.stat-card b{display:block;font-family:'Playfair Display',serif;font-size:28px;color:var(--navy);margin-bottom:4px;}
.stat-card span{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--warm-gray);}
.account-panel{display:none;}
.account-panel.active{display:block;}

.order-card{border:1px solid var(--border);border-radius:var(--radius-m);padding:24px 26px;margin-bottom:18px;}
.order-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.order-card-head b{font-family:'Playfair Display',serif;font-size:16px;color:var(--navy);}
.order-card-head span{font-size:11.5px;color:var(--warm-gray);display:block;margin-top:3px;}
.order-status{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;background:var(--cream);color:var(--navy);padding:6px 12px;border-radius:20px;font-weight:600;height:fit-content;}
.order-thumbs{display:flex;gap:10px;margin-bottom:14px;}
.order-thumbs img{width:52px;height:64px;object-fit:cover;border-radius:6px;}
.order-card-foot{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--border);font-size:13px;}
.order-card-foot b{color:var(--navy);font-size:15px;}

.address-card{border:1px solid var(--border);border-radius:var(--radius-m);padding:22px 24px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.address-card p{font-size:13px;line-height:1.7;color:var(--charcoal-soft);}
.address-card b{color:var(--navy);display:block;margin-bottom:6px;font-family:'Playfair Display',serif;font-size:15px;}
.address-card button{font-size:11.5px;color:var(--warm-gray);transition:color .3s ease;flex-shrink:0;}
.address-card button:hover{color:#b34747;}

/* payment step */
.pay-fields{display:none;margin-top:16px;padding:20px;background:var(--cream);border-radius:var(--radius-m);}
.pay-fields.active{display:block;}
.card-number-wrap{position:relative;}
.card-number-wrap svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:30px;height:20px;color:var(--warm-gray);}
.shipping-review{background:var(--cream);border-radius:var(--radius-m);padding:18px 22px;margin-bottom:28px;font-size:13px;color:var(--charcoal-soft);display:flex;justify-content:space-between;align-items:center;gap:16px;}
.shipping-review b{color:var(--navy);display:block;margin-bottom:4px;}
.shipping-review button{font-size:11.5px;color:var(--navy);text-decoration:underline;flex-shrink:0;}
.step-actions{display:flex;gap:14px;margin-top:8px;}
.step-actions .btn-outline{flex:0 0 auto;}
.step-actions .btn-primary{flex:1;justify-content:center;}

@media (max-width:1080px){
  .account-layout{grid-template-columns:1fr;}
  .account-nav{position:static;flex-direction:row;flex-wrap:wrap;}
  .account-nav button.danger{border-top:none;margin-top:0;}
  .account-stats{grid-template-columns:1fr 1fr;}
}
@media (max-width:720px){
  .order-card-head{flex-direction:column;}
  .account-welcome{flex-direction:column;text-align:center;}
  .account-stats{grid-template-columns:1fr;}
}

/* ============================================================
   LEGAL PAGES (FAQ / Privacy / Terms) + FOOTER CONTACT COLUMN
   ============================================================ */
.footer-top{grid-template-columns:1.25fr 0.8fr 0.95fr 0.85fr 1fr;}
.footer-col address{font-style:normal;font-size:13.5px;line-height:1.8;color:rgba(250,247,240,.5);margin-bottom:14px;}
.footer-col .contact-line{display:flex;gap:10px;align-items:flex-start;margin-bottom:13px;font-size:13.5px;}
.footer-col .contact-line svg{width:15px;height:15px;color:var(--gold-soft);flex-shrink:0;margin-top:2px;}

.legal-layout{display:grid;grid-template-columns:250px 1fr;gap:56px;align-items:flex-start;}
.legal-toc{position:sticky;top:100px;display:flex;flex-direction:column;}
.legal-toc a{display:block;padding:9px 0 9px 15px;font-size:12.5px;color:var(--charcoal-soft);border-left:2px solid var(--border);transition:all .25s ease;}
.legal-toc a:hover,.legal-toc a.toc-active{color:var(--navy);border-color:var(--gold);font-weight:600;}
.legal-updated{font-size:12px;color:var(--warm-gray);margin-bottom:44px;letter-spacing:.03em;text-transform:uppercase;}
.legal-content section{margin-bottom:50px;scroll-margin-top:110px;}
.legal-content h2{font-size:21px;margin-bottom:16px;}
.legal-content p{font-size:14px;line-height:1.9;color:var(--charcoal-soft);margin-bottom:16px;font-weight:300;}
.legal-content ul{margin:0 0 18px 22px;}
.legal-content li{font-size:14px;line-height:1.9;color:var(--charcoal-soft);list-style:disc;margin-bottom:8px;font-weight:300;}
.legal-content strong{color:var(--navy);font-weight:600;}

/* FAQ */
.faq-pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:44px;}
.faq-pill{
  padding:10px 20px;border:1px solid var(--border);border-radius:24px;font-size:12.5px;color:var(--charcoal-soft);
  cursor:pointer;transition:all .3s ease;background:var(--white);
}
.faq-pill.active{background:var(--navy);color:var(--ivory);border-color:var(--navy);}
.faq-group{margin-bottom:8px;}
.faq-group-title{font-family:'Playfair Display',serif;font-size:19px;color:var(--navy);margin:36px 0 14px;}
.faq-group-title:first-child{margin-top:0;}
.faq-contact-cta{background:var(--cream);border-radius:var(--radius-m);padding:40px;text-align:center;margin-top:20px;}
.faq-contact-cta h3{margin-bottom:10px;}
.faq-contact-cta p{color:var(--warm-gray);margin-bottom:22px;font-size:14px;}
.faq-contact-cta .contact-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

@media (max-width:1080px){
  .legal-layout{grid-template-columns:1fr;}
  .legal-toc{position:static;flex-direction:row;flex-wrap:wrap;gap:4px 18px;}
  .legal-toc a{border-left:none;border-bottom:2px solid var(--border);padding:9px 0;}
}
