  :root { --rose:#d9ada0; --rose-deep:#c48b7c; --ink:#1d1614; --ink-2:#271e1b; --cream:#fbf6f3; --line:rgba(217,173,160,.22); }
  * { box-sizing:border-box; margin:0; padding:0; }
  html { scroll-behavior:smooth; }
  body { font-family:Inter,system-ui,sans-serif; font-weight:300; background:var(--ink); color:#efe6e2; line-height:1.65; }
  a { color:inherit; text-decoration:none; }
  h1,h2,h3 { font-family:"Cormorant Garamond",Georgia,serif; font-weight:600; line-height:1.02; letter-spacing:-.01em; }
  em { font-style:italic; color:var(--rose); font-family:"Cormorant Garamond",serif; font-weight:500; }
  .wrap { max-width:1180px; margin:0 auto; padding:0 28px; }
  .eyebrow { font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--rose); font-weight:600; margin-bottom:22px; display:block; }
  .btn { display:inline-flex; gap:14px; align-items:center; background:var(--rose); color:var(--ink); padding:16px 26px; font-weight:600; font-size:.92rem; transition:.2s; }
  .btn:hover { background:#fff; }
  .btn.ghost { background:none; color:#fff; border:1px solid rgba(255,255,255,.35); }
  .link { border-bottom:1px solid var(--rose); padding-bottom:6px; font-weight:500; font-size:.92rem; }
  .arrow::after { content:"↗"; font-size:1rem; }

  .topbar { background:var(--rose); color:var(--ink); font-size:.74rem; font-weight:600; letter-spacing:.08em; }
  .topbar .wrap { display:flex; justify-content:space-between; padding-top:9px; padding-bottom:9px; }
  nav { border-bottom:1px solid var(--line); }
  nav .wrap { display:flex; align-items:center; justify-content:space-between; padding-top:20px; padding-bottom:20px; }
  .logo { font-family:"Cormorant Garamond",serif; font-size:1.8rem; line-height:1; }
  .logo small { display:block; font-family:Inter; font-size:.6rem; letter-spacing:.35em; color:var(--rose); margin-top:4px; }
  .menu { display:flex; gap:34px; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; }

  .hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:60px; align-items:center; padding:80px 28px 100px; }
  .hero h1 { font-size:clamp(3rem,7vw,5.6rem); }
  .hero h1 em { display:block; }
  .hero p { max-width:470px; margin:28px 0 36px; font-size:1.06rem; color:#d8ccc7; }
  .actions { display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
  .note { display:flex; gap:18px; align-items:center; margin-top:44px; font-size:.82rem; color:#bfaea8; }
  .note::before { content:""; width:46px; height:1px; background:#8c7670; }
  .arch-wrap { max-width:440px; margin-left:auto; width:100%; }
  .arch { position:relative; padding:0 0 30px 30px; }
  .arch::before { content:""; position:absolute; top:-14px; right:14px; bottom:14px; left:16px; border:1px solid var(--rose-deep); border-radius:260px 260px 0 0; opacity:.6; }
  .arch img { display:block; width:100%; height:auto; aspect-ratio:696/972; object-fit:cover; border-radius:240px 240px 0 0; position:relative; }
  .tag { position:absolute; left:-10px; bottom:70px; background:var(--rose); color:var(--ink); padding:14px 22px; transform:rotate(-6deg); box-shadow:0 18px 40px rgba(0,0,0,.45); text-align:center; }
  .tag small { display:block; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
  .tag b { font-family:"Cormorant Garamond",serif; font-size:2.2rem; line-height:1.05; display:block; }
  .arch-caption { display:flex; justify-content:space-between; align-items:center; margin-top:16px; font-size:.7rem; letter-spacing:.3em; color:#bfaea8; }
  .arch-caption em { letter-spacing:0; font-size:1.2rem; }

  .marquee { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:26px 0; text-align:center; font-size:.78rem; letter-spacing:.24em; font-weight:500; }
  .marquee span { margin:0 24px; } .marquee i { color:var(--rose); font-style:normal; }

  section { padding:110px 0; }
  .split-head { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px; align-items:end; margin-bottom:56px; }
  .split-head h2 { font-size:clamp(2.4rem,5vw,3.8rem); }
  .split-head p { color:#cbbdb8; }
  .cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
  .card { border-top:1px solid var(--rose-deep); padding-top:26px; }
  .card .num { font-size:.75rem; font-weight:600; color:var(--rose); letter-spacing:.2em; }
  .card h3 { font-size:2rem; margin:14px 0 12px; }
  .card p { color:#cbbdb8; font-size:.95rem; }

  .light { background:var(--cream); color:var(--ink); }
  .light em { color:var(--rose-deep); }
  .process { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:80px; }
  .process h2 { font-size:clamp(2.6rem,5vw,4rem); margin-bottom:22px; }
  .process .btn { background:var(--ink); color:#fff; margin:30px 0 22px; }
  .process .btn:hover { background:var(--rose-deep); }
  .small { font-size:.8rem; color:#7d6a64; max-width:330px; }
  .step { display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px; padding:24px 0; border-bottom:1px solid #e8dbd6; }
  .step:first-child { padding-top:0; }
  .step span { font-family:"Cormorant Garamond",serif; font-size:2rem; color:var(--rose-deep); line-height:1; }
  .step b { font-weight:500; display:block; margin-bottom:4px; font-size:1.05rem; }
  .step p { color:#6f5d58; font-size:.93rem; }

  .closer { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:80px; align-items:center; }
  .framed { position:relative; }
  .framed::after { content:""; position:absolute; top:18px; left:18px; right:-18px; bottom:-18px; border:1px solid var(--rose-deep); z-index:0; }
  .framed img { position:relative; z-index:1; width:100%; height:auto; display:block; aspect-ratio:4/5; object-fit:cover; }
  .framed .lbl { position:absolute; z-index:2; left:16px; bottom:16px; background:var(--ink); padding:7px 14px; font-size:.68rem; letter-spacing:.16em; font-weight:600; }
  .closer h2 { font-size:clamp(2.4rem,5vw,3.8rem); margin-bottom:26px; }
  .closer p { color:#cbbdb8; margin-bottom:18px; max-width:500px; }
  .trust { display:grid; grid-template-columns:1fr 1fr; gap:18px 28px; margin:30px 0 34px; }
  .trust div { border-top:1px solid var(--line); padding-top:14px; font-size:.9rem; }
  .trust b { display:block; font-family:"Cormorant Garamond",serif; font-size:1.5rem; color:#fff; font-weight:600; }

  .heal { background:var(--ink-2); }
  .heal h2 { font-size:clamp(2.4rem,5vw,3.6rem); text-align:center; margin-bottom:60px; }
  .timeline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); }
  .timeline div { padding:30px 24px 0 0; position:relative; }
  .timeline div::before { content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; border-radius:50%; background:var(--rose); }
  .timeline b { font-family:"Cormorant Garamond",serif; font-size:1.6rem; display:block; margin-bottom:8px; }
  .timeline p { color:#cbbdb8; font-size:.92rem; }

  .faq { max-width:820px; margin:0 auto; }
  .faq h2 { font-size:clamp(2.4rem,5vw,3.6rem); text-align:center; margin-bottom:46px; }
  details { border-bottom:1px solid var(--line); padding:24px 0; }
  summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px; font-family:"Cormorant Garamond",serif; font-size:1.45rem; font-weight:600; }
  summary::-webkit-details-marker { display:none; }
  summary::after { content:"+"; color:var(--rose); font-family:Inter; font-weight:300; }
  details[open] summary::after { content:"–"; }
  details p { color:#cbbdb8; margin-top:12px; max-width:680px; }
  details a { color:var(--rose); }

  .visit { background:var(--ink-2); text-align:center; border-top:1px solid var(--line); }
  .visit h2 { font-size:clamp(2.8rem,6vw,4.6rem); margin-bottom:22px; }
  .visit h2 em { display:block; }
  .visit .lead { color:#cbbdb8; margin-bottom:34px; }
  .visit .actions { justify-content:center; }
  .info { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; text-align:left; margin-top:90px; padding-top:44px; border-top:1px solid var(--line); font-size:.95rem; }
  .info h4 { font-size:.7rem; letter-spacing:.22em; color:var(--rose); margin-bottom:14px; }
  .info a.dir { color:var(--rose); font-size:.85rem; display:inline-block; margin-top:10px; }
  footer { border-top:1px solid var(--line); }
  footer .wrap { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:26px; padding-bottom:26px; font-size:.8rem; color:#a8958f; }
  .sticky { position:fixed; bottom:14px; left:14px; right:14px; display:none; justify-content:center; z-index:9; box-shadow:0 12px 30px rgba(0,0,0,.5); }

  @media (max-width:860px) {
    .menu, .topbar .hide-m, nav .btn { display:none; }
    .hero, .split-head, .process, .closer { grid-template-columns:minmax(0,1fr); gap:44px; }
    .hero { padding-top:44px; }
    .arch-wrap { margin:0 auto; max-width:380px; }
    .cards, .timeline, .info { grid-template-columns:minmax(0,1fr); }
    .timeline { border-top:0; border-left:1px solid var(--line); padding-left:22px; gap:28px; }
    .timeline div { padding-top:0; } .timeline div::before { left:-27px; top:10px; }
    .marquee span { margin:0 8px; display:inline-block; }
    .sticky { display:flex; }
    section { padding:80px 0; }
    footer .wrap { flex-direction:column; padding-bottom:90px; }
  }

  .menu a.active { color:var(--rose); }
  .m-link { display:none; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; border-bottom:1px solid var(--rose); padding-bottom:4px; }
  .tcard figure { position:relative; margin-bottom:22px; }
  .tcard img { width:100%; height:auto; aspect-ratio:5/4; object-fit:cover; display:block; }
  .tcard .num { position:absolute; top:14px; left:14px; width:34px; height:34px; border-radius:50%; background:rgba(29,22,20,.8); display:grid; place-items:center; font-size:.75rem; font-weight:600; }
  .tcard h3 { font-size:1.9rem; margin-bottom:10px; }
  .tcard p { color:#cbbdb8; font-size:.95rem; margin-bottom:20px; }
  .crosslink { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:30px; align-items:center; }
  .crosslink h2 { font-size:clamp(2.2rem,4.5vw,3.4rem); }
  .crosslink p { color:#6f5d58; margin-top:12px; max-width:520px; }
  .crosslink .btn { background:var(--ink); color:#fff; }
  .crosslink .btn:hover { background:var(--rose-deep); }
  @media (max-width:860px) {
    .m-link { display:inline-block; }
    .crosslink { grid-template-columns:minmax(0,1fr); }
  }
  @media (min-width:861px) and (max-width:1100px) {
    .menu { gap:18px; font-size:.72rem; letter-spacing:.08em; }
  }
