
  :root{
    --bg:#f1f4ff;
    --ink:#33384d;
    --muted:#6b7088;
    --soft:#8a90a8;
    --card:#ffffff;
    --line:#e3e7f6;
    --sage:#9db8a4;
    --blush:#e8b4b8;
    --lav:#b7bce0;
    --amber:#e0c9a6;
    --radius:22px;
    --shadow:0 12px 34px rgba(120,130,180,.16);
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--bg);
    color:var(--ink);
    font-family:"Avenir Next","Segoe UI","Helvetica Neue",Arial,sans-serif;
    line-height:1.75;
    font-size:16.5px;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }

  h1,h2,h3,.serif{
    font-family:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;
    font-weight:600;
    letter-spacing:.2px;
  }

  .wrap{max-width:1100px;margin:0 auto;padding:0 22px;}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    padding:56px 0 20px;
    text-align:center;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute;inset:0;
    background:
      radial-gradient(circle at 12% 18%, rgba(231,180,184,.35), transparent 42%),
      radial-gradient(circle at 88% 12%, rgba(183,188,224,.40), transparent 45%),
      radial-gradient(circle at 50% 100%, rgba(157,184,164,.30), transparent 55%);
    z-index:0;
  }
  .hero .wrap{position:relative;z-index:1;}
  .eyebrow{
    display:inline-block;
    font-size:12.5px;
    letter-spacing:.32em;
    text-transform:uppercase;
    color:var(--muted);
    padding:8px 18px;
    border:1px solid var(--line);
    border-radius:999px;
    background:rgba(255,255,255,.55);
    margin-bottom:22px;
  }
  .hero h1{
    font-size:clamp(2rem,5.4vw,3.4rem);
    line-height:1.12;
    color:var(--ink);
    max-width:820px;
    margin:0 auto 18px;
  }
  .hero .lead{
    font-size:clamp(1.02rem,2.2vw,1.2rem);
    color:var(--muted);
    max-width:640px;
    margin:0 auto 30px;
  }
  .hero-img{
    width:min(560px,86vw);
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:26px;
    box-shadow:var(--shadow);
    background:#fff;
  }

  /* ---------- Sections ---------- */
  section{padding:58px 0;}

  .kicker{
    display:block;
    font-size:12px;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:12px;
  }
  h2{
    font-size:clamp(1.55rem,3.6vw,2.3rem);
    line-height:1.2;
    margin-bottom:16px;
  }
  .lead-p{color:var(--muted);max-width:720px;}
  .lead-p + .lead-p{margin-top:12px;}

  /* text-only intro */
  .intro-card{
    background:var(--card);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:clamp(26px,5vw,52px);
  }
  .intro-card p{color:var(--muted);max-width:900px;}
  .intro-card p + p{margin-top:14px;}

  /* image + text feature */
  .feature{display:grid;gap:34px;align-items:center;}
  .feature.g2{grid-template-columns:repeat(2,1fr);gap:26px;}
  .feature .media img{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    background:#fff;
    display:block;
  }
  .feature .txt p{color:var(--muted);}
  .feature .txt p + p{margin-top:12px;}
  .feature .txt ul{list-style:none;margin-top:18px;}
  .feature .txt ul li{
    position:relative;
    padding-left:24px;
    margin-top:10px;
    color:var(--muted);
  }
  .feature .txt ul li::before{
    content:"✿";
    position:absolute;left:0;top:0;
    color:var(--blush);
  }

  @media(min-width:820px){
    .feature{grid-template-columns:1fr 1fr;}
    .feature.rev .media{order:2;}
    .feature.rev .txt{order:1;}
  }
  @media(max-width:819px){
    .feature{grid-template-columns:1fr;}
    .feature.g2{grid-template-columns:1fr;}
  }

  /* detail strip */
  .strip{display:grid;gap:26px;}
  @media(min-width:700px){
    .strip.cols3{grid-template-columns:repeat(3,1fr);}
    .strip.cols2{grid-template-columns:repeat(2,1fr);}
  }
  .strip .cell{
    background:var(--card);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:18px 18px 22px;
  }
  .strip .cell img{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:16px;
    background:#fff;
    display:block;
  }
  .strip .cell h3{
    font-size:1.12rem;
    margin:16px 2px 6px;
  }
  .strip .cell p{color:var(--muted);font-size:.95rem;}

  /* banner quote */
  .banner{
    text-align:center;
    max-width:760px;
    margin:0 auto;
    padding:12px 0;
  }
  .banner .quote{
    font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif;
    font-size:clamp(1.3rem,3vw,1.8rem);
    line-height:1.45;
    color:var(--ink);
    font-style:italic;
  }

  /* ---------- FAQ ---------- */
  .faq-list{max-width:820px;margin:26px auto 0;}
  .faq-item{
    background:var(--card);
    border-radius:16px;
    box-shadow:var(--shadow);
    padding:22px 26px;
    margin-bottom:16px;
  }
  .faq-item h3{
    font-size:1.12rem;
    margin-bottom:8px;
    color:var(--ink);
  }
  .faq-item p{color:var(--muted);}
  .faq-item .tag{
    display:inline-block;
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--soft);
    margin-bottom:6px;
  }

  /* ---------- Footer ---------- */
  footer{
    padding:48px 0 70px;
    text-align:center;
    color:var(--muted);
    font-size:.92rem;
  }
  footer .orn{font-size:1.6rem;color:var(--blush);display:block;margin-bottom:10px;}
  .hr{border:none;border-top:1px solid var(--line);margin:8px auto 26px;max-width:200px;}

  /* placeholder notice */
  .note{
    font-size:.8rem;
    color:var(--soft);
    font-style:italic;
  }
