:root{
    --ink:#554D46;
    --sage-deep:#554D46;
    --sage:#8FA28E;
    --sage-soft:#b7c2b0;
    --sage-muted:#8FA28E;
    --sage-muted-dark:#71846f;
    --taupe:#DBC7B4;
    --taupe-light:#EEE6DA;
    --sand:#DBC7B4;
    --cream:#F7F3EC;
    --cream-2:#F1EAE0;
    --header-cream:#F7F3EC;
    --grey:#cbb9a5;
    --gold:#DDB772;
    --gold-soft:#e8cc9c;
    --line: rgba(85,77,70,0.14);
    --maxw: 1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; touch-action:manipulation; -webkit-text-size-adjust:100%;}
  body{
    font-family:'Montserrat', sans-serif;
    color:var(--ink);
    background:var(--cream);
    font-weight:400;
    line-height:1.6;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 40px;}
  h1,h2,h3,h4{font-family:'Cormorant Garamond', serif; font-weight:500; letter-spacing:0.01em; color:var(--sage-deep);}
  .eyebrow{
    font-size:0.72rem; letter-spacing:0.28em; text-transform:uppercase;
    color:var(--gold); font-weight:600; display:inline-flex; align-items:center; gap:12px;
  }
  .eyebrow::before{content:''; width:26px; height:1px; background:var(--gold);}
  ::selection{background:var(--gold-soft); color:var(--ink);}

  /* focus visibility */
  a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- NAV ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:20px 0;
    background:var(--header-cream);
    transition: padding .4s ease, box-shadow .4s ease;
  }
  header.solid{
    padding:14px 0;
    box-shadow:0 1px 0 var(--line);
  }
  nav{display:flex; align-items:center; justify-content:space-between;}
  .brand{display:flex; align-items:center; gap:12px;}
  .brand img{width:var(--logo-w, 150px); height:auto; object-fit:contain; transition:width .25s ease;}
  .nav-links{display:flex; gap:36px; list-style:none;}
  .nav-links a,
  .nav-links a:link,
  .nav-links a:visited{
    font-size:0.74rem; letter-spacing:0.13em; text-transform:uppercase; color:var(--ink);
    position:relative; padding-bottom:4px; transition:color .3s ease;
  }
  .nav-links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
    transition:width .3s ease;
  }
  .nav-links a:hover::after, .nav-links a:focus-visible::after{width:100%;}
  .cart-icon{stroke:var(--ink);}
  .cart-icon circle{fill:var(--ink);}
  .cart-link{display:flex; align-items:center;}

  /* Two-line "equals → cross" hamburger: minimal, animates into an X on open */
  .nav-toggle{
    display:none; position:relative; width:26px; height:20px; background:none; border:0;
    cursor:pointer; padding:0;
  }
  .nav-toggle .nt-line{
    position:absolute; left:0; width:100%; height:2px; border-radius:2px; background:var(--ink);
    transition:transform .35s cubic-bezier(.6,.2,.2,1), top .35s cubic-bezier(.6,.2,.2,1), opacity .2s ease;
  }
  .nav-toggle .nt-line1{top:5px;}
  .nav-toggle .nt-line2{top:13px;}
  .nav-toggle.is-open .nt-line1{top:9px; transform:rotate(45deg);}
  .nav-toggle.is-open .nt-line2{top:9px; transform:rotate(-45deg);}

  /* ---------- HERO ---------- */
  .hero{
    position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
    background:radial-gradient(120% 100% at 50% 0%, #7f9280 0%, #554D46 46%, #3f3931 100%);
    overflow:hidden; text-align:center; padding:140px 24px 100px;
  }
  .hero-ribbon{
    position:absolute; inset:0; width:100%; height:100%;
    opacity:0.5; pointer-events:none;
  }
  .hero-inner{position:relative; z-index:2; max-width:780px;}
  .hero .eyebrow{color:var(--gold-soft); justify-content:center;}
  .hero .eyebrow::before{display:none;}
  .hero h1{
    color:var(--cream); font-size:clamp(2.6rem, 6vw, 4.6rem); line-height:1.08; margin:22px 0 26px;
    letter-spacing:0.005em;
  }
  .hero h1 em{font-style:italic; color:var(--gold-soft);}
  .hero p.lede{
    color:rgba(246,241,230,0.82); font-size:1.05rem; max-width:520px; margin:0 auto 40px;
    font-weight:300;
  }
  .btn-row{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 34px; font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
    border:1px solid transparent; cursor:pointer; transition:all .35s ease; font-weight:500;
  }
  .btn-gold{background:var(--gold); color:#fff;}
  .btn-sage{background:var(--sage-muted); color:var(--cream);}
  .btn-sage:hover{background:var(--sage-muted-dark); transform:translateY(-2px);}
  .btn-gold:hover{background:var(--gold-soft); transform:translateY(-2px);}
  .btn-outline{border-color:rgba(246,241,230,0.5); color:var(--cream);}
  .btn-outline:hover{border-color:var(--cream); background:rgba(246,241,230,0.08);}
  .scroll-cue{
    position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:10px; z-index:2;
  }
  .scroll-cue span{font-size:0.65rem; letter-spacing:0.24em; text-transform:uppercase; color:rgba(246,241,230,0.55);}
  .scroll-line{width:1px; height:38px; background:linear-gradient(var(--gold-soft), transparent); animation:pulse 2.2s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:.3;} 50%{opacity:1;}}

  /* ---------- DOMAIN BAND ---------- */
  .domain{background:var(--cream); padding:0;}
  .domain-grid{
    display:grid; grid-template-columns:repeat(4, 1fr);
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .domain-item{
    padding:52px 30px; text-align:center; border-right:1px solid var(--line);
    transition:background .35s ease;
  }
  .domain-item:last-child{border-right:none;}
  .domain-item:hover{background:var(--cream-2);}
  .domain-item svg{width:34px; height:34px; margin:0 auto 18px; stroke:var(--sage-deep);}
  .domain-item h4{font-size:1.15rem; margin-bottom:8px;}
  .domain-item p{font-size:0.82rem; color:#71685d; font-weight:300;}

  /* ---------- SECTION generic ---------- */
  section{padding:130px 0; position:relative;}
  .section-head{max-width:640px; margin-bottom:64px;}
  .section-head h2{font-size:clamp(2rem,4vw,2.9rem); margin-top:18px; line-height:1.15;}

  .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- STORY ---------- */
  .story{background:var(--sand);}
  .story .wrap{display:grid; grid-template-columns:0.85fr 1.15fr; gap:80px; align-items:center;}
  .story-visual{
    position:relative; aspect-ratio:4/5; background:var(--sage-deep);
    display:flex; align-items:center; justify-content:center; overflow:hidden;
  }
  .story-visual::before{
    content:''; position:absolute; inset:18px; border:1px solid rgba(246,241,230,0.35);
  }
  .story-visual img{width:120px; opacity:0.92;}
  .story-visual .cap{
    position:absolute; bottom:26px; left:26px; right:26px; color:var(--cream);
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  }
  .story-visual .cap b{display:block; font-family:'Cormorant Garamond',serif; font-size:1rem; letter-spacing:0.02em; text-transform:none; margin-bottom:4px; font-style:italic;}
  .quote{
    font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.7rem;
    color:var(--sage-deep); line-height:1.4; margin:24px 0 26px;
  }
  .story p.body-text{color:#5f564c; font-weight:300; max-width:480px;}
  .signoff{margin-top:30px; font-size:0.78rem; letter-spacing:0.08em; color:#71685d;}
  .signoff b{color:var(--ink); font-weight:600;}

  /* ---------- SERVICES ---------- */
  .services{background:var(--cream);}
  .service-row{
    display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:80px;
    padding:70px 0; border-top:1px solid var(--line);
  }
  .service-row:last-child{border-bottom:1px solid var(--line);}
  .service-row.rev .s-visual{order:2;}
  .service-row.rev .s-text{order:1;}
  .s-visual{
    aspect-ratio:5/4; position:relative; display:flex; align-items:center; justify-content:center;
  }
  .s-visual svg{width:78%; height:78%;}
  .s-num{
    font-family:'Cormorant Garamond', serif; font-size:0.85rem; color:var(--gold);
    letter-spacing:0.2em; margin-bottom:14px; display:block;
  }
  .s-text h3{font-size:2rem; margin-bottom:16px;}
  .s-text p{color:#5f564c; font-weight:300; max-width:420px; margin-bottom:22px;}
  .s-link{
    font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--sage-deep);
    border-bottom:1px solid var(--gold); padding-bottom:4px; display:inline-block; transition:.3s;
  }
  .s-link:hover{color:var(--gold);}

  /* ---------- COLLECTIONS ---------- */
  .collections{background:var(--sage-deep); color:var(--cream);}
  .collections .section-head h2{color:var(--cream);}
  .collections .eyebrow{color:var(--gold-soft);}
  .col-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(246,241,230,0.14);}
  .col-card{background:var(--sage-deep); padding:46px 34px 38px; transition:background .4s ease;}
  .col-card:hover{background:#463d37;}
  .col-swatch{width:100%; aspect-ratio:1/1; margin-bottom:26px; display:flex; align-items:center; justify-content:center; position:relative;}
  .col-swatch svg{width:62%; height:62%;}
  .col-card h4{color:var(--cream); font-size:1.3rem; margin-bottom:10px;}
  .col-card p{font-size:0.85rem; color:rgba(246,241,230,0.65); font-weight:300; line-height:1.55;}

  /* ---------- STATEMENT ---------- */
  .statement{
    background:var(--gold); text-align:center; padding:110px 24px;
    position:relative; overflow:hidden;
  }
  .statement p{
    font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:500;
    font-size:clamp(1.5rem,3.4vw,2.5rem); color:#fff; max-width:820px; margin:0 auto; line-height:1.4;
  }
  .statement .eyebrow{color:rgba(255,255,255,0.85); justify-content:center; margin-bottom:26px;}
  .statement .eyebrow::before{background:rgba(255,255,255,0.85);}

  /* ---------- CONTACT / FOOTER ---------- */
  footer{background:var(--ink); color:var(--cream);}
  .foot-top{
    padding-top:110px; padding-bottom:84px; display:grid; grid-template-columns:1.2fr 0.8fr 0.8fr 1fr; gap:64px;
    border-bottom:1px solid rgba(246,241,230,0.14);
  }
  .foot-logo{height:92px; margin-bottom:22px; margin-left:-6px; object-fit:contain;}
  .foot-logo--auto-invert{filter:brightness(0) invert(1);}
  .foot-brand p{font-size:0.85rem; color:rgba(246,241,230,0.6); font-weight:300; max-width:260px; line-height:1.7;}
  footer h5{
    font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-soft);
    margin-bottom:24px; font-weight:600; font-family:'Montserrat',sans-serif;
  }
  footer ul{list-style:none;}
  footer li{margin-bottom:15px; font-size:0.86rem; color:rgba(246,241,230,0.75); font-weight:300;}
  footer li:last-child{margin-bottom:0;}
  footer a:hover{color:var(--gold-soft);}
  .newsletter p{line-height:1.6;}
  .newsletter form{display:flex; border-bottom:1px solid rgba(246,241,230,0.4); padding-bottom:12px; margin-top:18px;}
  .newsletter input{
    background:none; border:none; color:var(--cream); font-size:1rem; flex:1; font-family:'Montserrat',sans-serif;
  }
  .newsletter input::placeholder{color:rgba(246,241,230,0.4);}
  .newsletter button{background:none; border:none; color:var(--gold-soft); cursor:pointer; font-size:0.8rem; letter-spacing:0.1em;}
  .foot-bottom{
    padding-top:34px; padding-bottom:34px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; row-gap:16px; column-gap:32px;
  }
  .foot-bottom p{font-size:0.72rem; color:rgba(246,241,230,0.45); letter-spacing:0.04em;}
  .foot-socials{display:flex; gap:24px;}
  .foot-socials a{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(246,241,230,0.6);}

  /* ---------- COOPILO ATTRIBUTION BADGE ---------- */
  .coopilo-badge{
    display:inline-flex; align-items:center; text-decoration:none; font-family:'Montserrat',sans-serif;
  }
  .coopilo-badge--minimal{
    gap:5px; font-size:0.72rem; padding:0; border:none; background:none; border-radius:0;
  }
  .coopilo-badge__label{font-size:0.72rem; font-weight:500; color:rgba(246,241,230,0.45); letter-spacing:0.04em;}
  .coopilo-badge__mark{font-size:0.72rem; font-weight:800; letter-spacing:0.03em; color:#5B9EFF;}
  .coopilo-badge__dot{color:#E0596B;}
  .coopilo-badge--minimal:hover .coopilo-badge__mark{text-decoration:underline; text-underline-offset:3px;}
  @media (max-width:720px){
    .foot-bottom{justify-content:center; text-align:center; row-gap:14px;}
  }
  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 980px){
    .story .wrap{grid-template-columns:1fr; gap:50px;}
    .story-visual{max-width:340px;}
    .service-row{grid-template-columns:1fr; gap:36px;}
    .service-row.rev .s-visual{order:1;}
    .service-row.rev .s-text{order:2;}
    .col-grid{grid-template-columns:1fr 1fr;}
    .foot-top{grid-template-columns:1fr 1fr; row-gap:52px; column-gap:40px;}
    .domain-grid{grid-template-columns:1fr 1fr;}
    .domain-item{border-bottom:1px solid var(--line);}
  }
  @media (max-width: 720px){
    .wrap{padding:0 24px;}
    nav.wrap{position:relative;}
    .nav-toggle{display:block; order:1;}
    .brand{order:2;}
    .brand img{width:var(--logo-w-mobile, 40px); height:auto; max-height:none;}
    .cart-link{order:3;}
    .nav-links{
      position:fixed; top:0; right:0; height:100vh; width:72%; background:var(--sage-deep);
      flex-direction:column; justify-content:center; align-items:flex-start; padding:0 40px;
      transform:translateX(100%); transition:transform .45s ease; gap:28px;
    }
    .nav-links.open{transform:translateX(0);}
    .nav-links a{color:var(--cream) !important; font-size:0.9rem;}
    .col-grid{grid-template-columns:1fr;}
    .domain-grid{grid-template-columns:1fr;}
    .foot-top{grid-template-columns:1fr; row-gap:48px; padding-top:80px; padding-bottom:56px;}
    .type-sample{text-align:left;}
    section{padding:90px 0;}
  }

  /* ---------- PRELOADER ---------- */
  #preloader{
    position:fixed; inset:0; z-index:999; background:var(--cream);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
    transition:opacity .6s ease, visibility .6s ease;
  }
  #preloader .pl-logo{height:56px; width:auto; max-width:180px; object-fit:contain; opacity:0; animation:pl-fade .9s ease forwards;}
  #preloader .pl-spinner{
    width:34px; height:34px; border-radius:50%; border:2px solid var(--line); border-top-color:var(--gold);
    animation:pl-spin .8s linear infinite;
  }
  #preloader .pl-bar{
    position:relative; width:120px; height:1px; background:var(--line); overflow:hidden;
  }
  #preloader .pl-bar::after{
    content:''; position:absolute; left:-40%; top:0; width:40%; height:100%; background:var(--gold);
    animation:pl-sweep 1.1s ease-in-out infinite;
  }
  #preloader .pl-message{
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--sage-deep); opacity:0.8;
  }
  @keyframes pl-fade{to{opacity:1;}}
  @keyframes pl-sweep{0%{left:-40%;} 100%{left:100%;}}
  @keyframes pl-spin{to{transform:rotate(360deg);}}
  body.loaded #preloader{opacity:0; visibility:hidden; pointer-events:none;}
  body:not(.loaded){overflow:hidden;}

  /* Content is server-rendered from the DB already; this only smooths any
     later AJAX patch (e.g. an admin edit saved after this page was cached). */
  [data-hc-field]{transition:opacity .25s ease;}
  [data-hc-field].hc-patching{opacity:0.4;}

  /* ---------- NEW HERO (image-split) ---------- */
  .hero2{
    background:linear-gradient(180deg, var(--header-cream) 0%, var(--taupe-light) 18%, var(--taupe) 100%);
    padding:calc(var(--header-h, 96px) + 40px) 0 60px; overflow:hidden;
    min-height:94vh; display:flex; align-items:center;
  }
  .hero2 .wrap{
    display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; min-height:auto;
  }
  .hero2-text h1{
    color:var(--sage-deep); font-size:clamp(2.1rem,3.6vw,3.1rem); line-height:1.22;
    text-transform:uppercase; letter-spacing:0.01em; font-weight:500; margin-bottom:34px;
  }
  .hero2-text{padding-bottom:70px;}
  .cart-icon{width:20px; height:20px; stroke:var(--ink); stroke-width:1.4; fill:none;}
  .hero2-visual{
    position:relative; display:flex; align-items:center; justify-content:center; height:100%;
    padding:20px 0 0;
  }
  .hero2-visual svg{width:100%; max-width:520px; height:auto;}
  @media (max-width: 980px){
    .hero2 .wrap{grid-template-columns:1fr; text-align:center; gap:10px;}
    .hero2-text{padding-bottom:30px;}
    .hero2-text h1{margin-left:auto; margin-right:auto; max-width:420px;}
    .hero2-visual{order:-1; max-width:340px; margin:0 auto;}
    .hero2{min-height:90vh;}
  }

  /* ---------- HERO (full-bleed cover, when a custom banner is uploaded) ---------- */
  .hero-full{
    position:relative; min-height:96vh; display:flex; align-items:center;
    overflow:hidden; padding:calc(var(--header-h, 96px) + 64px) 0 80px;
  }
  .hero-full-bg{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
    z-index:0;
  }
  .hero-full-scrim{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(30,28,22,0.32) 0%, rgba(30,28,22,0.28) 40%, rgba(30,28,22,0.58) 100%);
  }
  .hero-full-inner{position:relative; z-index:2; width:100%;}
  .hero-full-text{max-width:640px;}
  .hero-full-text h1{
    color:#fff; font-size:clamp(2.2rem,4.4vw,3.4rem); line-height:1.2;
    text-transform:uppercase; letter-spacing:0.01em; font-weight:500; margin-bottom:34px;
    text-shadow:0 2px 18px rgba(0,0,0,0.25);
  }
  @media (max-width:720px){
    .hero-full{min-height:88vh; padding:calc(var(--header-h, 96px) + 44px) 0 60px;}
    .hero-full-text h1{font-size:clamp(1.9rem,7vw,2.6rem);}
  }

  /* ---------- SERVICES PREVIEW ROW ---------- */
  .services-preview{background:var(--cream); padding:90px 0 130px;}
  .sp-head{text-align:center; margin-bottom:50px;}
  .sp-head h2{font-size:clamp(1.7rem,3vw,2.2rem); letter-spacing:0.06em; text-transform:uppercase;}
  .sp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .sp-card{
    position:relative; aspect-ratio:4/5; overflow:hidden; cursor:pointer;
  }
  .sp-card svg{position:absolute; inset:0; width:100%; height:100%;}
  .sp-card::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(43,42,33,0) 38%, rgba(52,49,36,0.78) 100%);
  }
  .sp-card span{
    position:absolute; left:0; right:0; bottom:22px; z-index:2; text-align:center;
    color:#fff; font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; font-weight:500;
  }
  .sp-card .sp-img{transition:transform .6s ease;}
  .sp-card:hover .sp-img{transform:scale(1.06);}
  @media (max-width:720px){
    .sp-grid{grid-template-columns:1fr; gap:16px;}
    .sp-card{aspect-ratio:16/10;}
  }

  /* ---------- WHATSAPP ---------- */
  .wa-float{
    position:fixed; right:22px; bottom:22px; z-index:500;
    display:flex; align-items:center; gap:10px;
    background:#25D366; color:#fff; border-radius:999px;
    padding:15px; box-shadow:0 8px 24px rgba(37,211,102,0.4);
    transition:padding .3s ease, box-shadow .2s ease, transform .2s ease;
    text-decoration:none;
  }
  .wa-float:hover{box-shadow:0 10px 28px rgba(37,211,102,0.55); transform:translateY(-2px);}
  .wa-float svg{width:26px; height:26px; flex-shrink:0;}
  .wa-float-label{
    max-width:0; overflow:hidden; white-space:nowrap; font-size:0.82rem; font-weight:600;
    letter-spacing:0.02em; transition:max-width .35s ease;
  }
  .wa-float:hover .wa-float-label{max-width:200px;}
  @media (max-width:720px){
    .wa-float{right:16px; bottom:16px; padding:14px;}
    .wa-float-label{display:none;}
  }

  .contact-whatsapp{
    display:inline-flex; align-items:center; gap:8px; margin-top:4px;
    color:var(--gold-soft); font-size:0.86rem; font-weight:400;
  }
  .contact-whatsapp svg{width:15px; height:15px;}

  .col-whatsapp{
    display:inline-flex; align-items:center; gap:6px; margin-top:14px;
    font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold);
    border-bottom:1px solid var(--gold); padding-bottom:3px; transition:color .2s;
  }
  .col-whatsapp:hover{color:#25D366; border-color:#25D366;}
  .col-whatsapp svg{width:13px; height:13px;}

  /* ---------- COOKIE CONSENT BANNER ---------- */
  .cookie-banner{
    position:fixed; left:0; right:0; bottom:0; z-index:900;
    background:var(--ink); color:var(--cream);
    padding:22px 24px; box-shadow:0 -8px 28px rgba(0,0,0,0.2);
    animation:cookieSlideUp .45s cubic-bezier(.2,.8,.2,1);
  }
  .cookie-banner[hidden]{display:none;}
  .cookie-banner-inner{
    max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  }
  .cookie-banner-text{font-size:0.85rem; color:rgba(246,241,230,0.82); line-height:1.65; max-width:640px; font-weight:300;}
  .cookie-banner-text a{color:var(--gold-soft); text-decoration:underline; text-underline-offset:2px; margin-left:5px;}
  .cookie-banner-actions{display:flex; gap:12px; flex-shrink:0;}
  .cookie-btn{
    padding:11px 24px; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:500;
    border-radius:4px; cursor:pointer; transition:opacity .2s ease, border-color .2s ease, color .2s ease;
    border:1px solid transparent; font-family:'Montserrat',sans-serif;
  }
  .cookie-btn--solid{background:var(--sage); color:#fff;}
  .cookie-btn--solid:hover{opacity:0.88;}
  .cookie-btn--ghost{background:none; border-color:rgba(246,241,230,0.3); color:rgba(246,241,230,0.75);}
  .cookie-btn--ghost:hover{border-color:rgba(246,241,230,0.6); color:var(--cream);}
  @keyframes cookieSlideUp{from{transform:translateY(100%);} to{transform:translateY(0);}}
  @media (max-width:720px){
    .cookie-banner{padding:20px;}
    .cookie-banner-inner{flex-direction:column; align-items:flex-start; gap:16px;}
    .cookie-banner-actions{width:100%;}
    .cookie-btn{flex:1;}
  }

  /* ---------- LAZY-LOADED IMAGE FADE-IN ---------- */
  /* Starts invisible; JS adds .is-loaded once the image has actually
     finished loading (or immediately if it was already cached), so
     nothing pops in abruptly once it scrolls into view. */
  .lazy-img{opacity:0; transition:opacity .6s ease;}
  .lazy-img.is-loaded{opacity:1;}
