:root{
    --bg: #12140f;
    --bg-alt: #191c14;
    --panel: #20241a;
    --ink: #ece5d6;
    --ink-dim: #a9a28c;
    --gold: #c7a467;
    --gold-dim: #8f7a4e;
    --green: #3a4a2c;
    --line: rgba(236,229,214,0.14);
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'EB Garamond', serif;
    font-size:18px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:450;
    line-height:1.08;
    margin:0;
    letter-spacing:0.001em;
  }
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  /* -------- header -------- */
  header{
    position:sticky; top:0; z-index:40;
    background:rgba(18,20,15,0.86);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    padding:20px 32px;
    max-width:var(--maxw);
    margin:0 auto;
    gap:16px;
  }
  .nav .logo{
    font-family:'Fraunces', serif;
    font-size:1.5rem;
    font-style:italic;
    font-weight:450;
    letter-spacing:0.01em;
  }
  .nav .links{
    display:flex; gap:36px; justify-content:center;
    font-size:0.98rem;
  }
  .nav .links a{ color:var(--ink-dim); transition:color .25s ease; }
  .nav .links a:hover{ color:var(--ink); }
  .nav .side{ display:flex; gap:22px; justify-content:flex-end; align-items:center; }
  .nav .side a{ color:var(--ink-dim); }
  .nav .side a:hover{ color:var(--ink); }
  .icon{ width:19px; height:19px; }
  @media (max-width:820px){
    .nav{ grid-template-columns:1fr auto; }
    .nav .links{ display:none; }
  }

  /* -------- hero -------- */
  .hero{
    position:relative;
    min-height:88vh;
    display:flex;
    align-items:center;
    overflow:hidden;
    background:
      radial-gradient(ellipse at 78% 30%, rgba(58,74,44,0.55), transparent 55%),
      var(--bg);
  }
  .hero-fern{
    position:absolute;
    right:-6%;
    top:50%;
    transform:translateY(-50%);
    width:56%;
    opacity:0.9;
    pointer-events:none;
  }
  @media (max-width:900px){
    .hero-fern{ width:85%; right:-20%; opacity:0.5; }
  }
  .hero-inner{
    position:relative;
    z-index:2;
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 32px;
    width:100%;
  }
  .hero-eyebrow{
    color:var(--gold);
    font-family:'EB Garamond', serif;
    font-style:italic;
    font-size:1.05rem;
    margin-bottom:18px;
  }
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    max-width:11ch;
    color:var(--ink);
  }
  .hero p{
    max-width:38ch;
    color:var(--ink-dim);
    font-size:1.18rem;
    margin-top:22px;
  }
  .btn{
    display:inline-block;
    margin-top:34px;
    padding:15px 34px;
    border:1px solid var(--gold-dim);
    color:var(--ink);
    font-family:'EB Garamond', serif;
    font-size:1.02rem;
    letter-spacing:0.02em;
    transition:background .25s ease, border-color .25s ease, color .25s ease;
  }
  .btn:hover{ background:var(--gold); border-color:var(--gold); color:#171a11; }
  .btn.ghost{ border-color:var(--line); color:var(--ink-dim); }
  .btn.ghost:hover{ border-color:var(--ink-dim); color:var(--ink); background:transparent; }

  /* -------- intro statement -------- */
  .statement{
    padding:120px 0 100px;
    text-align:center;
  }
  .statement p{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:400;
    font-size:clamp(1.5rem, 3vw, 2.1rem);
    line-height:1.5;
    max-width:26ch;
    margin:0 auto;
    color:var(--ink);
  }
  .statement span{ color:var(--gold); font-style:normal; }

  /* -------- section headers -------- */
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-bottom:44px;
    gap:20px;
    flex-wrap:wrap;
  }
  .section-head h2{ font-size:clamp(1.7rem,3vw,2.3rem); }
  .section-head a{
    color:var(--ink-dim);
    font-style:italic;
    border-bottom:1px solid var(--line);
    padding-bottom:2px;
  }
  .section-head a:hover{ color:var(--gold); border-color:var(--gold-dim); }

  section.block{ padding:70px 0; }

  /* -------- product grid -------- */
  .grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:2px;
    background:var(--line);
  }
  @media (max-width:820px){ .grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .grid{ grid-template-columns:1fr; } }
  .card{
    background:var(--bg);
    padding:38px 30px 32px;
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .card figure{
    margin:0;
    aspect-ratio:4/5;
    background:var(--panel);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }
  .card figure svg{ width:58%; height:58%; }
  .card figure img{ width:100%; height:100%; object-fit:cover; }
  .card h3{
    font-size:1.28rem;
    font-weight:450;
  }
  .card .meta{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    color:var(--ink-dim);
    font-size:1.02rem;
  }
  .card .meta .price{ color:var(--ink); font-family:'Fraunces', serif; }
  .tag{
    color:var(--gold);
    font-style:italic;
    font-size:0.92rem;
  }

  /* -------- banner -------- */
  .banner{
    position:relative;
    background:var(--panel);
    padding:110px 0;
    overflow:hidden;
  }
  .banner-leaf{
    position:absolute;
    left:-8%;
    top:-15%;
    width:46%;
    opacity:0.5;
  }
  .banner-inner{
    position:relative;
    z-index:2;
    max-width:640px;
  }
  .banner blockquote{
    margin:0;
    font-family:'Fraunces', serif;
    font-size:clamp(1.6rem,3.4vw,2.4rem);
    font-style:italic;
    line-height:1.35;
  }
  .banner cite{
    display:block;
    margin-top:22px;
    font-style:normal;
    color:var(--ink-dim);
    font-size:1rem;
  }

  /* -------- journal -------- */
  .journal-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:44px;
  }
  @media (max-width:820px){ .journal-grid{ grid-template-columns:1fr; gap:40px; } }
  .journal-card .date{ color:var(--gold); font-style:italic; font-size:0.95rem; }
  .journal-card h3{ font-size:1.35rem; margin-top:10px; }
  .journal-card p{ color:var(--ink-dim); margin-top:10px; font-size:1rem; }

  /* -------- newsletter -------- */
  .newsletter{
    background:linear-gradient(180deg, var(--green), var(--bg-alt));
    padding:100px 0;
    text-align:center;
  }
  .newsletter h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); max-width:16ch; margin:0 auto; }
  .newsletter p{ color:var(--ink-dim); margin-top:16px; max-width:42ch; margin-left:auto; margin-right:auto; }
  .newsletter form{
    margin:36px auto 0;
    display:flex;
    max-width:440px;
    border-bottom:1px solid var(--ink-dim);
    padding-bottom:8px;
  }
  .newsletter input{
    flex:1;
    background:transparent;
    border:none;
    color:var(--ink);
    font-family:'EB Garamond', serif;
    font-size:1.05rem;
    padding:8px 4px;
  }
  .newsletter input::placeholder{ color:var(--ink-dim); }
  .newsletter input:focus{ outline:none; }
  .newsletter button{
    background:none;
    border:none;
    color:var(--gold);
    font-family:'EB Garamond', serif;
    font-style:italic;
    font-size:1.05rem;
    cursor:pointer;
  }
  .newsletter button:hover{ color:var(--ink); }
  .newsletter .note{ margin-top:14px; font-size:0.9rem; color:var(--ink-dim); opacity:0; transition:opacity .3s ease; }
  .newsletter .note.show{ opacity:1; }

  /* -------- footer -------- */
  footer{
    border-top:1px solid var(--line);
    padding:60px 0 40px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:36px;
  }
  @media (max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  .footer-grid h4{
    font-family:'EB Garamond', serif;
    font-style:italic;
    color:var(--ink-dim);
    font-weight:400;
    margin:0 0 16px;
    font-size:1rem;
  }
  .footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
  .footer-grid a{ color:var(--ink-dim); font-size:0.98rem; }
  .footer-grid a:hover{ color:var(--gold); }
  .footer-logo{ font-family:'Fraunces', serif; font-style:italic; font-size:1.5rem; }
  .footer-tag{ color:var(--ink-dim); margin-top:14px; max-width:26ch; font-size:0.98rem; }
  .footer-bottom{
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    margin-top:56px; padding-top:26px; border-top:1px solid var(--line);
    color:var(--ink-dim); font-size:0.88rem;
  }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ transition:none !important; }
  }
