/* =========================================================
   Christina Slansky — warm redesign
   Palette sampled from the watercolour logo:
   cream paper · terracotta (heart/dots) · sage (leaves)
   warm charcoal-brown ink · warm-brown footer
   ========================================================= */
/* Newsreader – normal */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('fonts/newsreader-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('fonts/newsreader-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Newsreader – italic */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url('fonts/newsreader-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url('fonts/newsreader-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Nunito Sans */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url('fonts/nunitosans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url('fonts/nunitosans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  /* surfaces */
  --paper:        #FBF6EE;   /* page background — warm off-white */
  --paper-2:      #FFFFFF;   /* card surface */
  --cream:        #F3E7D6;   /* logo cream — hero bands */
  --cream-soft:   #F7EEE2;
  --sage-tint:    #EAEDDF;   /* soft sage band / step boxes */
  --sage-tint-2:  #F0F2E8;
  --blush-tint:   #F6E7DD;   /* warm blush band (seminare hero) */
  --blush-soft:   #FAF0E8;

  /* ink */
  --ink:          #3B342C;   /* warm charcoal-brown headings */
  --ink-soft:     #5E544A;   /* body text */
  --ink-mute:     #92897C;   /* meta / muted */

  /* accents */
  --terra:        #BD6A45;   /* terracotta — primary accent */
  --terra-dark:   #A1542F;   /* hover */
  --terra-soft:   #E2A685;
  --sage:         #8C9A6E;   /* leaf green — secondary accent */
  --sage-deep:    #6F7C52;

  /* footer */
  --brown:        #463A2F;   /* warm deep brown footer */
  --brown-2:      #3C3127;
  --on-brown:     #EDE3D6;
  --on-brown-mute:#B4A593;

  /* lines & shadow */
  --line:         rgba(59,52,44,.12);
  --line-soft:    rgba(59,52,44,.07);
  --shadow-card:  0 1px 2px rgba(70,58,47,.04), 0 10px 30px rgba(70,58,47,.07);
  --shadow-soft:  0 1px 2px rgba(70,58,47,.04), 0 6px 18px rgba(70,58,47,.05);

  /* type */
  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --sans:  'Nunito Sans', system-ui, -apple-system, sans-serif;

  --maxw: 1180px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0;
  overflow-x:hidden;
  background:var(--paper);
  color:var(--ink-soft);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

/* ---------- layout helpers ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
.section{ padding:96px 0; }
.section-sm{ padding:64px 0; }
.center{ text-align:center; }
.lead-narrow{ max-width:760px; margin-left:auto; margin-right:auto; }

/* ---------- type ---------- */
h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--ink);
  font-weight:500;
  line-height:1.18;
  margin:0;
  letter-spacing:.005em;
}
h1{ font-size:clamp(2.6rem,5vw,3.7rem); font-weight:500; }
h2{ font-size:clamp(1.9rem,3.2vw,2.5rem); }
h3{ font-size:1.5rem; }
h4{ font-size:1.18rem; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
.accent-word{ color:var(--terra); }

.eyebrow{
  font-family:var(--sans);
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--sage-deep);
  margin:0 0 18px;
}
.subtitle{
  font-size:1.18rem;
  color:var(--ink-mute);
  margin-top:14px;
}

/* small logo-echo divider: line · heart · line */
.divider{
  display:flex; align-items:center; justify-content:center;
  gap:14px; margin:0 auto 26px; max-width:220px;
}
.divider::before,.divider::after{
  content:""; height:1px; flex:1; background:var(--line);
}
.divider svg{ width:18px; height:18px; color:var(--terra); flex:none; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--sans); font-weight:700; font-size:1rem;
  padding:15px 34px; border-radius:999px;
  text-decoration:none; cursor:pointer;
  border:1.5px solid transparent; white-space:nowrap;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.btn-primary{ background:var(--terra); color:#fff; }
.btn-primary:hover{ background:var(--terra-dark); }
.btn-ghost{ background:transparent; color:var(--terra); border-color:var(--terra); }
.btn-ghost:hover{ background:var(--terra); color:#fff; }

/* arrow link */
.link-arrow{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; color:var(--terra); text-decoration:none;
  transition:gap .18s ease, color .18s ease;
}
.link-arrow:hover{ color:var(--terra-dark); gap:12px; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,246,238,.88);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line-soft);
}
.nav{
  max-width:var(--maxw); margin:0 auto; padding:14px 32px;
  display:flex; align-items:center; justify-content:space-between;
  position:relative;
}

.nav-burger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; background:none; border:none; cursor:pointer;
  padding:8px; border-radius:8px; transition:background .15s;
}
.nav-burger:hover{ background:var(--line-soft); }
.nav-burger span{
  display:block; width:22px; height:2px;
  background:var(--ink); border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-burger.active span:nth-child(1){ transform:rotate(45deg) translate(5px,5px); }
.nav-burger.active span:nth-child(2){ opacity:0; }
.nav-burger.active span:nth-child(3){ transform:rotate(-45deg) translate(5px,-5px); }
.brand{ display:flex; align-items:center; gap:14px; text-decoration:none; }
.brand img{ width:46px; height:46px; border-radius:50%; }
.brand-name{
  font-family:var(--serif); font-size:1.5rem; font-weight:500;
  color:var(--ink); letter-spacing:.01em;
}
.nav-links{ display:flex; align-items:center; gap:36px; list-style:none; margin:0; padding:0; }
.nav-links a{
  font-family:var(--sans); font-weight:600; font-size:1rem;
  color:var(--ink-soft); text-decoration:none; padding:6px 0;
  position:relative; transition:color .18s ease;
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a.active{ color:var(--terra); }
.nav-links a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px;
  height:2px; background:var(--terra); border-radius:2px;
}

/* ---------- page hero band ---------- */
.page-hero{ padding:90px 0 96px; text-align:center; }
.page-hero .subtitle{ color:var(--ink-mute); }
.hero-cream{ background:var(--cream); }
.hero-sage{  background:var(--sage-tint); }
.hero-blush{ background:var(--blush-tint); }

/* full-bleed warm photo hero (home) */
.hero-photo{
  position:relative;
  min-height:74vh;
  display:flex; align-items:center;
  padding:96px 0 104px;
  overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0;
  background-image:url('images/hero-bg.jpg');
  background-size:cover;
  background-position:center 60%;
  /* warm the cool original into a golden, sunlit tone */
  filter:sepia(.42) saturate(1.45) brightness(1.16) contrast(.92) hue-rotate(-8deg);
  transform:scale(1.04);
}
.hero-veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg,
    rgba(247,238,226,.92) 0%,
    rgba(244,232,216,.82) 48%,
    rgba(243,231,214,.76) 80%,
    rgba(243,231,214,.82) 100%);
}
.hero-photo .wrap{ position:relative; z-index:2; width:100%; }
.hero-photo .subtitle{ color:var(--ink-soft); }

/* ---------- cards ---------- */
.card{
  background:var(--paper-2);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow-card);
  padding:40px;
}
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }

.bullets{ list-style:none; margin:18px 0 0; padding:0; }
.bullets li{
  position:relative; padding-left:26px; margin-bottom:12px;
}
.bullets li::before{
  content:""; position:absolute; left:4px; top:.62em;
  width:8px; height:8px; border-radius:50%;
  background:var(--sage);
}

/* feature band */
.band-soft{ background:var(--sage-tint-2); }
.band-cream{ background:var(--cream-soft); }

/* ---------- footer ---------- */
.site-footer{
  background:var(--brown); color:var(--on-brown);
  padding:72px 0 32px;
}
.footer-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:40px;
  align-items:start;
}
.site-footer h4{ color:#fff; font-family:var(--serif); font-weight:500; margin-bottom:18px; }
.footer-brand p, .footer-hours p{ color:var(--on-brown-mute); margin:0 0 14px; line-height:1.6; }
.footer-nav{ list-style:none; margin:0; padding:0; }
.footer-nav li{ margin-bottom:12px; }
.footer-nav a{ color:var(--on-brown); text-decoration:none; transition:color .18s; }
.footer-nav a:hover{ color:var(--terra-soft); }
.footer-logo{ display:flex; justify-content:flex-end; }
.footer-logo img{ width:96px; height:96px; border-radius:50%; opacity:.95; }
.footer-bottom{
  margin-top:56px; padding-top:24px;
  border-top:1px solid rgba(237,227,214,.15);
  text-align:center; color:var(--on-brown-mute); font-size:.92rem;
}
.footer-bottom a{ color:var(--on-brown-mute); text-decoration:none; }
.footer-bottom a:hover{ color:var(--terra-soft); }

/* ---------- misc ---------- */
.portrait-frame{
  background:#fff; padding:14px; border-radius:14px;
  box-shadow:var(--shadow-card); border:1px solid var(--line);
  transform:rotate(-1.2deg);
}
.portrait-frame img{ border-radius:6px; }
.placeholder-photo{
  aspect-ratio:4/5; width:100%; border-radius:6px;
  background:
    radial-gradient(120% 90% at 50% 18%, var(--cream) 0%, var(--sage-tint) 100%);
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-mute); font-size:.95rem; text-align:center;
}

.step{
  display:flex; gap:18px; align-items:flex-start;
  background:var(--sage-tint); border-radius:12px;
  padding:20px 24px; margin-bottom:16px;
}
.step-num{
  font-family:var(--serif); font-size:1.3rem; font-weight:600;
  color:var(--sage-deep); flex:none; line-height:1.4;
}

.back-top{
  position:fixed; right:28px; bottom:28px; z-index:40;
  width:46px; height:46px; border-radius:50%;
  background:var(--terra); color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-soft); transition:background .18s, transform .18s;
}
.back-top:hover{ background:var(--terra-dark); transform:translateY(-2px); }

/* ---------- responsive ---------- */
@media (max-width:860px){
  .grid-2{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .footer-logo{ display:none; }
  .nav-links{ gap:20px; }
  .brand-name{ font-size:1.25rem; }
  .section{ padding:64px 0; }
}
@media (max-width:560px){
  body{ font-size:17px; }
  .wrap{ padding:0 22px; }
  .portrait-frame{ transform:none; }
  .nav-burger{ display:flex; }
  .nav-links{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    background:rgba(251,246,238,.97);
    backdrop-filter:saturate(140%) blur(8px);
    flex-direction:column; gap:0;
    padding:8px 22px 20px;
    border-bottom:1px solid var(--line-soft);
    box-shadow:0 8px 24px rgba(70,58,47,.08);
    z-index:100;
  }
  .nav-links.open{ display:flex; }
  .nav-links li{ border-bottom:1px solid var(--line-soft); }
  .nav-links li:last-child{ border-bottom:none; }
  .nav-links a{ padding:14px 0; font-size:1.05rem; display:block; }
  .footer-grid{ grid-template-columns:1fr; }
  .card{ padding:28px; }
  .page-hero h1{ font-size:clamp(1.4rem,7vw,2.6rem); }
}
