@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@500;600&display=swap');

:root{
  --ink:#25231f;
  --muted:#777168;
  --cream:#f7f3ec;
  --sand:#eee6d9;
  --card:#fbf9f5;
  --line:#ddd4c7;
  --accent:#806f58;
  --dark:#292821;
  --white:#fffdf9;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--white);font-family:"DM Sans",Arial,sans-serif;line-height:1.6}
a{color:inherit}
.container{width:min(1120px,calc(100% - 40px));margin:auto}
.narrow{width:min(900px,calc(100% - 40px));margin:auto}
.section{padding:110px 0}
.soft{background:#f5f1e9}.sand{background:var(--sand)}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,253,249,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(221,212,199,.65)}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{font-size:14px;text-decoration:none;letter-spacing:.02em}
.nav-book{font-size:13px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:2px}
.hero{padding-top:90px;padding-bottom:120px;background:linear-gradient(135deg,#fbf8f2,#f1e9dd)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:70px}
.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--accent);font-weight:600;margin:0 0 20px}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:500;line-height:1.12}
h1{font-size:clamp(48px,7vw,88px);max-width:760px;margin:0 0 28px;letter-spacing:-.035em}
h2{font-size:clamp(36px,5vw,58px);margin:0 0 40px;letter-spacing:-.025em}
h3{font-size:23px;margin:0 0 8px}
.hero-subtitle{font-family:"Playfair Display",Georgia,serif;font-size:clamp(22px,2.5vw,30px);max-width:650px;margin:0 0 38px;color:#514b43}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 23px;border-radius:2px;text-decoration:none;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:.25s ease}
.button-primary{background:var(--dark);color:white}.button-primary:hover{transform:translateY(-2px);opacity:.92}
.button-ghost{border-color:var(--line);background:rgba(255,255,255,.45)}.button-ghost:hover{background:white}
.portrait-wrap{display:flex;justify-content:center}
.portrait-placeholder{width:min(100%,430px);aspect-ratio:4/5;border:1px solid #cfc4b5;background:linear-gradient(145deg,#ddd2c2,#f6f0e7);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#827766;text-align:center}
.portrait-placeholder span{font-size:12px;letter-spacing:.16em}.portrait-placeholder small{margin-top:8px;font-size:12px}
.reason-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}
.reason{padding:23px 0;border-bottom:1px solid var(--line);font-family:"Playfair Display",Georgia,serif;font-size:21px}
.reason:nth-child(odd){padding-right:30px}.reason:nth-child(even){padding-left:30px;border-left:1px solid var(--line)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.muted{color:var(--muted)}.placeholder-copy{font-style:italic}
.education-card{background:var(--cream);padding:38px}
.education-card h3{font-size:25px}
.education-card ul{list-style:none;padding:0;margin:28px 0}
.education-card li{padding:16px 0;border-top:1px solid var(--line)}
.education-card li strong{display:block;font-size:11px;letter-spacing:.12em;color:var(--accent);margin-bottom:6px}
.education-card li span{display:block;font-size:14px}
.experience{font-size:13px;color:var(--muted);margin:0}
.steps{border-top:1px solid #d2c7b7}
.step{display:grid;grid-template-columns:70px 1fr;gap:25px;padding:27px 0;border-bottom:1px solid #d2c7b7}
.step>span{font-size:12px;color:var(--accent);padding-top:5px}.step p{margin:0;color:#696257;font-size:14px}
.service-list{border-top:1px solid var(--line)}
.service{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:28px 0;border-bottom:1px solid var(--line)}
.service p{margin:0;color:var(--muted);font-size:14px}.service>strong{font-size:16px;white-space:nowrap;text-align:right}
.dark-section{background:var(--dark);color:#f7f2e9}
.dark-section .eyebrow{color:#c9b89d}.booking-intro{color:#c7c0b5;max-width:650px}
.booking-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}
.booking-card{border:1px solid #4a4840;padding:28px;display:flex;flex-direction:column;min-height:270px}
.booking-card h3{font-size:24px}.booking-card p{color:#c7c0b5;font-size:14px;margin:0 0 auto}.booking-card small{display:block;color:#8f8b83;font-size:11px;margin-top:13px}
.button-light{background:#f5efe4;color:#2a2823}.button-outline-light{background:transparent;color:#f5efe4;border-color:#777267}
.button-outline-light:hover{background:#f5efe4;color:#2a2823}.callback{margin-top:20px;padding:25px;border:1px solid #4a4840}
.faq-list{border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line);padding:0}
summary{list-style:none;cursor:pointer;padding:24px 35px 24px 0;font-family:"Playfair Display",Georgia,serif;font-size:21px;position:relative}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";position:absolute;right:5px;top:21px;font-family:Arial;font-size:20px;color:var(--accent)}
details[open] summary:after{content:"−"}
details p{margin:0 0 24px;color:var(--muted);font-size:14px}
address{font-style:normal;font-family:"Playfair Display",Georgia,serif;font-size:24px;line-height:1.4;max-width:450px}
.route-link{display:inline-block;margin-top:25px;text-decoration:none;border-bottom:1px solid var(--ink);font-size:13px}
.contact-card{padding:35px;background:var(--cream)}
.phone{font-family:"Playfair Display",Georgia,serif;font-size:30px;text-decoration:none}
.socials{display:flex;gap:22px;margin:22px 0}.socials a{text-decoration:none;font-size:13px;border-bottom:1px solid var(--line)}
.placeholder-link{opacity:.6}
.hours{font-size:14px;color:var(--muted);line-height:1.9;margin:20px 0 28px}
.notice{background:#eee9e0;padding:24px 0}.notice-inner{font-size:12px;color:#686157;max-width:900px}
.notice p{margin:0}
.footer{border-top:1px solid var(--line);padding:25px 0;background:var(--white)}
.footer-inner{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.footer a{text-decoration:none}
.legal{padding:80px 0 110px}.legal h1{font-size:clamp(42px,6vw,70px);max-width:800px}.legal h2{font-size:31px;margin:48px 0 16px}.legal p{max-width:800px;color:#625c54;font-size:15px}.legal-date{color:var(--muted);font-size:12px!important}.back-link{display:inline-block;margin-bottom:55px;font-size:13px;text-decoration:none;border-bottom:1px solid var(--line)}
.legal-note{margin-top:50px;padding:24px;background:var(--cream);font-size:13px;color:#635c52}.legal-note strong{color:var(--ink)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
[hidden]{display:none!important}
@media(max-width:800px){
  .container,.narrow{width:min(100% - 28px,600px)}
  .nav{height:64px}.brand{font-size:12px}.nav-book{font-size:12px}
  .section{padding:75px 0}.hero{padding-top:60px}
  .hero-grid,.two-col{grid-template-columns:1fr;gap:45px}
  h1{font-size:48px}.hero-subtitle{font-size:23px}
  .portrait-wrap{order:-1}.portrait-placeholder{max-width:340px}
  .reason-grid{grid-template-columns:1fr}.reason,.reason:nth-child(odd),.reason:nth-child(even){padding:18px 0;border-left:0}
  .education-card{padding:27px}
  .booking-grid{grid-template-columns:1fr}
  .booking-card{min-height:220px}
  .service{align-items:flex-start;flex-direction:column}.service>strong{text-align:left;white-space:normal}
  address{font-size:22px}.phone{font-size:27px}
  .footer-inner{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
