
  :root{
    --bg:#f1f4ff;
    --card:#ffffff;
    --ink:#2e3349;
    --muted:#6d7290;
    --gold:#b8925c;
    --gold-soft:#d6bc8f;
    --blush:#e9b7ba;
    --line:#e3e8f9;
    --serif:Georgia,'Iowan Old Style','Palatino Linotype','Times New Roman',serif;
    --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1120px;margin:0 auto;padding:0 22px;}

  /* ---------- Header ---------- */
  header{
    text-align:center;
    padding:88px 22px 52px;
    position:relative;
  }
  header::after{
    content:"";
    display:block;
    width:64px;height:2px;
    background:linear-gradient(90deg,var(--gold-soft),var(--gold),var(--gold-soft));
    margin:30px auto 0;
    border-radius:2px;
  }
  .kicker{
    font-family:var(--sans);
    text-transform:uppercase;
    letter-spacing:.28em;
    font-size:.74rem;
    color:var(--gold);
    margin-bottom:20px;
  }
  header h1{
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(1.9rem,4.4vw,3.2rem);
    line-height:1.18;
    color:var(--ink);
    max-width:820px;
    margin:0 auto 20px;
  }
  header .lead{
    font-size:1.06rem;
    color:var(--muted);
    max-width:640px;
    margin:0 auto;
  }

  /* ---------- Sections ---------- */
  section{padding:26px 0 20px;}
  .card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:20px;
    padding:clamp(28px,5vw,56px);
    box-shadow:0 14px 40px rgba(120,130,190,.10);
  }
  h2{
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(1.5rem,3vw,2rem);
    color:var(--ink);
    margin-bottom:14px;
  }
  .section-intro{
    color:var(--muted);
    font-size:1.02rem;
    margin-bottom:26px;
  }
  p{margin-bottom:1.05em;}
  .text-col p:last-child{margin-bottom:0;}

  /* ---------- Feature list ---------- */
  .features{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:20px;
    margin-top:8px;
  }
  .feature{
    background:var(--bg);
    border-radius:16px;
    padding:22px 22px;
  }
  .feature h3{
    font-family:var(--serif);
    font-weight:500;
    font-size:1.12rem;
    color:var(--ink);
    margin-bottom:8px;
  }
  .feature h3 span{
    display:block;
    font-family:var(--sans);
    font-size:.72rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:6px;
  }
  .feature p{font-size:.94rem;color:var(--muted);margin-bottom:0;}

  /* ---------- Gallery ---------- */
  .gallery{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(min(100%,272px),1fr));
    gap:18px;
  }
  figure{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 8px 24px rgba(120,130,190,.08);
    transition:transform .35s ease, box-shadow .35s ease;
  }
  figure:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 40px rgba(120,130,190,.16);
  }
  figure img{
    display:block;
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    background:var(--bg);
  }
  figure figcaption{
    padding:13px 15px 15px;
    font-family:var(--serif);
    font-size:.95rem;
    color:var(--ink);
    text-align:center;
  }

  /* ---------- FAQ ---------- */
  .faq-list{margin-top:6px;}
  .faq-item{
    border-bottom:1px solid var(--line);
    padding:20px 2px;
  }
  .faq-item:last-child{border-bottom:none;}
  .faq-q{
    font-family:var(--serif);
    font-size:1.08rem;
    color:var(--ink);
    margin-bottom:8px;
    display:flex;
    gap:12px;
    align-items:flex-start;
  }
  .faq-q::before{
    content:"Q";
    flex:0 0 auto;
    width:26px;height:26px;
    border-radius:50%;
    background:var(--bg);
    color:var(--gold);
    font-family:var(--sans);
    font-size:.72rem;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:3px;
  }
  .faq-a{
    color:var(--muted);
    font-size:.97rem;
    padding-left:38px;
  }

  /* ---------- Footer ---------- */
  footer{
    text-align:center;
    padding:46px 22px 64px;
    color:var(--muted);
    font-size:.9rem;
  }
  footer .serif{
    font-family:var(--serif);
    font-size:1.15rem;
    color:var(--ink);
    display:block;
    margin-bottom:6px;
  }

  @media (max-width:560px){
    header{padding:60px 18px 40px;}
    .card{padding:26px 20px;border-radius:16px;}
    .gallery{grid-template-columns:repeat(2,1fr);gap:12px;}
    figure figcaption{font-size:.85rem;padding:10px 8px 12px;}
  }
