
  :root{
    --bg:#FFFAF0; --bg-soft:#F6EFE1; --ink:#563029; --olive:#636B2F;
    --muted:#8A7A6B; --line:#EBDFCC;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:'Figtree',sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;font-size:16px}
  a{color:inherit;text-decoration:none}
  a:focus-visible,button:focus-visible{outline:2px solid var(--olive);outline-offset:3px}
  button{font-family:inherit;cursor:pointer}
  img{max-width:100%;display:block}
  .wrap{max-width:1240px;margin:0 auto;padding:0 28px}
  h1,h2,h3,.logo{font-family:'Comfortaa',sans-serif;font-weight:600}
  .eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;color:var(--olive);margin-bottom:10px;font-weight:600}

  /* scrolling ticker */
  .announce{background:var(--olive);color:var(--bg);font-size:.76rem;letter-spacing:.06em;padding:9px 0;overflow:hidden;white-space:nowrap}
  .ticker{display:inline-block;animation:tick 26s linear infinite}
  .ticker span{margin:0 34px;text-transform:uppercase}
  @keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  header{background:rgba(255,250,240,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
  .nav{display:flex;align-items:center;justify-content:space-between;height:70px}
  .logo{font-size:1.15rem;text-transform:uppercase;letter-spacing:.4em;padding-left:.4em}
  .nav-links{display:flex;gap:30px;align-items:center;font-size:.92rem;font-weight:500}
  .nav-links a{color:var(--muted);transition:color .15s}
  .nav-links a:hover{color:var(--olive)}
  .cart{background:none;border:none;font-size:.92rem;color:var(--ink);font-weight:500}
  @media(max-width:860px){.nav-links a{display:none}}

  .hero{position:relative;height:min(84vh,700px);display:flex;align-items:flex-end;color:#FFFAF0;overflow:hidden}
  .hero-bg{position:absolute;inset:0;background-position:center 65%;background-size:cover;animation:heroZoom 14s ease-out forwards}
  @keyframes heroZoom{from{transform:scale(1.06)}to{transform:scale(1)}}
  .hero-shade{position:absolute;inset:0;background:linear-gradient(rgba(40,26,18,.15),rgba(40,26,18,.6))}
  .hero .wrap{position:relative;padding-bottom:72px;width:100%}
  .hero h1{font-size:clamp(1.9rem,4.4vw,3.2rem);max-width:16ch;line-height:1.22;margin-bottom:14px;font-weight:500}
  .hero p{max-width:46ch;font-size:1.05rem;opacity:.92;margin-bottom:28px}
  .btn{display:inline-block;padding:14px 32px;font-size:.92rem;font-weight:600;border-radius:999px;border:1px solid transparent;transition:transform .18s ease,opacity .18s;font-family:'Figtree',sans-serif}
  .btn:hover{opacity:.88;transform:translateY(-2px)}
  .btn-cream{background:var(--bg);color:var(--ink)}
  .btn-brown{background:var(--ink);color:var(--bg)}
  .btn-olive{background:var(--olive);color:var(--bg)}
  .btn-line{border-color:var(--ink);color:var(--ink);background:none}
  .btn-line-light{border-color:#FFFAF0;color:#FFFAF0;background:none}
  .cta-row{display:flex;gap:12px;flex-wrap:wrap}

  section{padding:96px 0}
  .sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:44px;gap:20px;flex-wrap:wrap}
  h2{font-size:clamp(1.4rem,2.4vw,1.95rem);font-weight:500}
  .sec-head a{font-size:.9rem;color:var(--olive);border-bottom:1px solid var(--line);padding-bottom:2px;font-weight:500}
  .sec-head a:hover{border-color:var(--olive)}

  /* reveal on scroll */
  .rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
  .rv.in{opacity:1;transform:none}

  /* product cards + horizontal rail */
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:26px}
  .rail-outer{position:relative}
  .rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(290px,72vw);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none}
  .rail::-webkit-scrollbar{display:none}
  .rail .card{scroll-snap-align:start}
  .rail-btns{display:flex;gap:10px}
  .rail-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:1rem;transition:all .15s}
  .rail-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
  .card{display:flex;flex-direction:column}
  .card-img{background:#fff;aspect-ratio:1/1;margin-bottom:16px;position:relative;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
  .card-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
  .card:hover .card-img img{transform:scale(1.05)}
  .badge{position:absolute;top:12px;left:12px;background:var(--olive);color:var(--bg);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px;z-index:2;font-weight:600}
  .card h3{font-size:.98rem;font-weight:500}
  .notes{color:var(--muted);font-size:.86rem;margin:3px 0 6px}
  .price{font-size:.92rem;font-weight:600}
  .price.tbc{color:var(--muted);font-weight:400;font-style:italic}
  .card .btn{margin-top:14px;padding:11px 0;width:100%;text-align:center;font-size:.85rem}

  .banner{position:relative;color:#FFFAF0;display:flex;align-items:center;min-height:480px;background-position:center;background-size:cover;background-attachment:fixed}
  @media(max-width:900px){.banner{background-attachment:scroll}}
  .banner .wrap{width:100%}
  .banner h2{font-size:clamp(1.6rem,3vw,2.3rem);max-width:20ch;margin-bottom:12px;font-weight:500}
  .banner p{max-width:46ch;opacity:.92;margin-bottom:26px}
  .banner .eyebrow{color:#D7D5BA}

  .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
  .tile{position:relative;aspect-ratio:4/5;display:flex;align-items:flex-end;padding:22px;color:#FFFAF0;border-radius:6px;overflow:hidden}
  .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
  .tile:hover img{transform:scale(1.05)}
  .tile-bg{position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.6))}
  .tile div{position:relative;z-index:2}
  .tile h3{font-size:1rem;font-weight:500}
  .tile span{font-size:.82rem;opacity:.9}

  .story{background:var(--bg-soft)}
  .story-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
  .story-grid .logo{font-size:.85rem;color:var(--olive);display:block;margin-bottom:18px}
  .story-grid p.big{font-family:'Comfortaa',sans-serif;font-weight:400;font-size:clamp(1.02rem,1.7vw,1.3rem);line-height:1.75;margin-bottom:26px}
  .story-img{border-radius:6px;overflow:hidden;aspect-ratio:4/5}
  .story-img img{width:100%;height:100%;object-fit:cover}
  @media(max-width:860px){.story-grid{grid-template-columns:1fr}}

  /* gallery strip */
  .gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
  .gal a{border-radius:6px;overflow:hidden;aspect-ratio:1/1;display:block}
  .gal img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
  .gal a:hover img{transform:scale(1.06)}

  .loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px}
  .loc .card-img{aspect-ratio:4/5}
  .loc h3{font-size:.98rem;font-weight:500}
  .loc p{color:var(--muted);font-size:.88rem;margin:3px 0 8px}
  .loc a{font-size:.85rem;border-bottom:1px solid var(--line);padding-bottom:1px;color:var(--olive);font-weight:500}
  .loc a:hover{border-color:var(--olive)}

  .whole{border-top:1px solid var(--line)}
  .whole .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
  .whole h2{margin-bottom:6px}
  .whole p{color:var(--muted);max-width:48ch}

  .news{background:var(--ink);color:var(--bg);text-align:center;padding:76px 0}
  .news h2{margin-bottom:10px}
  .news p{opacity:.85;margin-bottom:26px}
  .news-form{display:flex;max-width:440px;margin:0 auto}
  .news-form input{flex:1;padding:14px 18px;border:1px solid rgba(255,250,240,.35);background:none;color:var(--bg);font-family:inherit;font-size:.9rem;border-radius:999px 0 0 999px}
  .news-form input::placeholder{color:rgba(255,250,240,.55)}
  .news-form button{padding:14px 26px;background:var(--olive);color:var(--bg);border:none;font-weight:600;font-size:.9rem;border-radius:0 999px 999px 0}

  footer{background:var(--ink);color:rgba(255,250,240,.8);padding:64px 0 40px;font-size:.88rem;position:relative;overflow:hidden}
  footer .wrap{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;position:relative;z-index:2}
  footer h4{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:var(--bg);margin-bottom:12px;font-weight:600}
  footer li{list-style:none;margin-bottom:8px}
  footer a:hover{color:#D7D5BA}
  .foot-logo{color:var(--bg);font-size:1.05rem}
  .foot-art{position:absolute;right:-30px;bottom:-40px;width:300px;opacity:.5;pointer-events:none}
  @media(max-width:700px){.foot-art{width:190px;opacity:.3}}

  /* interior pages */
  .page-hero{background:var(--bg-soft);padding:72px 0;border-bottom:1px solid var(--line)}
  .page-hero.imghero{position:relative;color:#FFFAF0;padding:110px 0;background-position:center;background-size:cover;border-bottom:none}
  .page-hero.imghero .shade{position:absolute;inset:0;background:linear-gradient(rgba(40,26,18,.3),rgba(40,26,18,.6))}
  .page-hero .wrap{position:relative}
  .page-hero h1{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:500}
  .page-hero p{max-width:52ch;margin-top:8px}
  .page-hero:not(.imghero) p{color:var(--muted)}
  .page-hero.imghero p{opacity:.9}
  .page-hero.imghero .crumb, .page-hero.imghero .crumb a{color:rgba(255,250,240,.8)}
  .crumb{font-size:.8rem;color:var(--muted);margin-bottom:14px}
  .crumb a{color:var(--olive)}

  .pd{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;padding:72px 28px;max-width:1240px;margin:0 auto}
  .pd-img{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;position:sticky;top:96px}
  .pd h1{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:500;margin-bottom:6px}
  .pd .notes{font-size:.95rem;margin-bottom:10px}
  .pd .price{font-size:1.25rem;margin-bottom:22px}
  .opt{margin-bottom:20px}
  .opt label.head{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--olive);font-weight:600;margin-bottom:8px}
  .pills{display:flex;gap:10px;flex-wrap:wrap}
  .pill{border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-size:.88rem;background:#fff;color:var(--ink);transition:all .15s}
  .pill:hover{border-color:var(--ink)}
  .pill.on{border-color:var(--ink);background:var(--ink);color:var(--bg)}
  .buy-box{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:22px;background:#fff}
  .buy-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);font-size:.92rem}
  .buy-row:last-child{border-bottom:none}
  .buy-row .save{color:var(--olive);font-weight:600;font-size:.8rem}
  .pd .btn{width:100%;text-align:center}
  .pd-desc{margin-top:28px;color:#5E4A40;font-size:.95rem}
  .pd-desc p{margin-bottom:12px}
  @media(max-width:860px){.pd{grid-template-columns:1fr}.pd-img{position:static}}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;background:var(--bg-soft)}
  .split-img{min-height:380px;background-position:center;background-size:cover}
  .split-txt{padding:72px 56px;display:flex;flex-direction:column;justify-content:center}
  .split-txt p{color:#5E4A40;margin:8px 0 20px;max-width:44ch}
  @media(max-width:860px){.split{grid-template-columns:1fr}.split-txt{padding:48px 28px}}

  .locpage .loc{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:48px 0;border-bottom:1px solid var(--line)}
  .locpage .loc:last-child{border-bottom:none}
  .locpage .card-img{aspect-ratio:4/3;margin:0}
  .locpage h3{font-size:1.2rem;margin-bottom:6px}
  .hourbox{margin:14px 0 18px;max-width:320px}
  .hourbox div{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
  @media(max-width:860px){.locpage .loc{grid-template-columns:1fr}}

  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:80px 28px;max-width:1240px;margin:0 auto}
  .about-grid .card-img{aspect-ratio:4/5;margin:0}
  .about-grid p{color:#5E4A40;margin-bottom:14px}
  @media(max-width:860px){.about-grid{grid-template-columns:1fr}}

  .form{max-width:560px}
  .form label{display:block;font-size:.8rem;font-weight:600;color:var(--olive);text-transform:uppercase;letter-spacing:.1em;margin:18px 0 6px}
  .form input,.form textarea,.form select{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:10px;background:#fff;font-family:inherit;font-size:.95rem;color:var(--ink)}
  .form .btn{margin-top:24px}
  .faq{max-width:720px}
  .faq details{border-bottom:1px solid var(--line);padding:18px 0}
  .faq summary{font-weight:600;cursor:pointer;font-size:.98rem}
  .faq p{color:var(--muted);margin-top:10px;font-size:.92rem}

  @media (prefers-reduced-motion: reduce){
    *{transition:none!important;animation:none!important}
    .rv{opacity:1;transform:none}
    .banner{background-attachment:scroll}
  }

  /* ===== alignment & motion polish ===== */
  /* pin price + button to card bottom so rows stay aligned regardless of text length */
  .card{height:100%}
  .card h3{line-height:1.35}
  .card .notes{min-height:2.75em}
  .card .price{margin-top:auto;padding-top:8px}
  .rail .card{height:auto;display:flex;flex-direction:column}
  .loc h3{min-height:auto}
  .loc p{min-height:2.4em}

  /* smoother, consistent motion curve everywhere */
  .rv{transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
  .rv.in{will-change:auto}
  .grid>.rv:nth-child(2),.tiles>.rv:nth-child(2),.gal>.rv:nth-child(2){transition-delay:.07s}
  .grid>.rv:nth-child(3),.tiles>.rv:nth-child(3),.gal>.rv:nth-child(3){transition-delay:.14s}
  .grid>.rv:nth-child(4),.tiles>.rv:nth-child(4),.gal>.rv:nth-child(4){transition-delay:.21s}
  .grid>.rv:nth-child(5),.tiles>.rv:nth-child(5){transition-delay:.28s}
  .card-img img,.tile img,.gal img{transition:transform .6s cubic-bezier(.25,.46,.45,.94);backface-visibility:hidden;transform:translateZ(0)}
  .card:hover .card-img img{transform:scale(1.05) translateZ(0)}
  .tile:hover img{transform:scale(1.05) translateZ(0)}
  .gal a:hover img{transform:scale(1.06) translateZ(0)}
  .btn{transition:transform .25s cubic-bezier(.25,.46,.45,.94),opacity .25s,background .2s,color .2s}
  .pill,.rail-btn{transition:background .2s,color .2s,border-color .2s}
  .hero-bg{animation:heroZoom 16s cubic-bezier(.16,1,.3,1) forwards}
  html{scroll-behavior:smooth}

  @media (prefers-reduced-motion: reduce){
    .rv{transition:none;transition-delay:0s}
    .card-img img,.tile img,.gal img,.btn{transition:none}
  }
