:root { --ink:#17251f; --paper:#fffdf8; --soft:#eef4ed; --accent:#2f6b50; --line:#d9e4d8; --warm:#f4e8ce; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; color:var(--ink); background:var(--paper); font:16px/1.55 Inter, ui-sans-serif, system-ui, sans-serif; }
.site-header, .section, footer { width:min(1120px, calc(100% - 40px)); margin-inline:auto; }
.site-header { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { color:var(--ink); font-size:1.1rem; font-weight:750; text-decoration:none; }.brand span,.eyebrow { color:var(--accent); }.brand span{font-size:.8rem;font-weight:650;}
.text-link { color:var(--ink); text-decoration-thickness:1px; text-underline-offset:4px; }
.section { padding:72px 0; }.hero { min-height:calc(100vh - 76px); display:grid; grid-template-columns:1.12fr .88fr; align-items:center; gap:clamp(32px,7vw,100px); padding-top:42px; }
.eyebrow { margin:0 0 12px; font-size:.78rem; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }h1,h2,h3 { line-height:1.08; letter-spacing:-.04em; }h1 { max-width:720px; margin:0; font-size:clamp(2.8rem,6.8vw,5.7rem); }h2 { margin:0 0 20px; font-size:clamp(2rem,4vw,3.2rem); }h3 { margin:12px 0 8px; font-size:1.35rem; }.lead { max-width:590px; font-size:clamp(1.1rem,2vw,1.32rem); }.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }.button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:11px 18px; border:1px solid var(--accent); border-radius:999px; font-weight:700; text-decoration:none; }.button-primary { color:white;background:var(--accent); }.button-secondary { color:var(--accent);background:transparent; }.button-ghost { color:var(--ink);border-color:var(--line); }.notice { color:#53635a; font-size:.88rem; }
.portrait-wrap { position:relative; }.portrait { display:block; width:100%; max-width:420px; margin-inline:auto; border-radius:48% 48% 28px 28px; background:var(--soft); }.portrait-caption { text-align:center; color:#53635a; font-size:.85rem; }.two-column { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(28px,8vw,120px); border-top:1px solid var(--line); }.two-column p { margin-top:0; font-size:1.08rem; }.check-list { padding-left:20px; }.check-list li { margin:10px 0; }.muted { width:100%; padding-inline:max(20px, calc((100% - 1120px)/2)); background:var(--soft); }.cards,.benefit-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.card { min-height:205px; padding:26px; background:var(--paper); border-radius:20px; }.card span { color:var(--accent); font-weight:750; }.steps { display:grid; gap:6px; }.steps p { margin:0; padding:16px 0; border-bottom:1px solid var(--line); }.benefits { border-top:1px solid var(--line); }.benefit-grid p { margin:0; padding:22px 0; border-top:3px solid var(--accent); }.final-cta { margin-bottom:72px; padding:clamp(35px,7vw,80px); text-align:center; background:var(--warm); border-radius:28px; }.final-cta .button { margin-top:12px; }footer { padding:28px 0 42px; color:#53635a; font-size:.88rem; }
.booking { border-top:1px solid var(--line); }.booking-intro { max-width:640px; font-size:1.08rem; }.booking form { max-width:760px; }.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:22px 0; }.booking label { display:grid; gap:7px; font-weight:700; }.booking input:not([type="radio"]),.booking select { width:100%; min-height:48px; padding:10px 12px; border:1px solid #b8c9b8; border-radius:10px; background:white; color:var(--ink); font:inherit; }.booking fieldset { margin:22px 0; padding:0; border:0; }.booking legend { margin-bottom:10px; font-weight:750; }.slot-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.booking .slot { display:block; }.slot input { position:absolute; opacity:0; }.slot span { display:block; min-height:48px; padding:11px; border:1px solid #b8c9b8; border-radius:10px; text-align:center; background:#fff; }.slot input:checked + span { border-color:var(--accent); background:var(--soft); box-shadow:inset 0 0 0 1px var(--accent); }.booking input:focus-visible,.booking select:focus-visible,.slot input:focus-visible + span,.button:focus-visible { outline:3px solid #bd9b54; outline-offset:3px; }.form-note { color:#53635a; font-size:.9rem; }.booking-summary { max-width:760px; margin-top:28px; padding:25px; border-radius:18px; background:var(--soft); }.booking-summary h3 { margin-top:0; }.booking-summary dl { display:grid; grid-template-columns:150px 1fr; gap:8px 16px; }.booking-summary dt { font-weight:750; }.booking-summary dd { margin:0; }.booking-summary [role="status"] { min-height:1.55em; font-weight:650; }
@media (max-width:700px) { .site-header,.section,footer { width:min(100% - 32px,1120px); }.hero,.two-column,.form-grid { grid-template-columns:1fr; }.hero { min-height:unset; padding-top:24px; }.portrait-wrap { max-width:330px; margin:auto; }.cards,.benefit-grid { grid-template-columns:1fr; }.section { padding:52px 0; }.muted { width:100%; padding-inline:16px; }.final-cta { margin-bottom:40px; }.actions { display:grid; }.button { width:100%; }.slot-grid { grid-template-columns:1fr; }.booking-summary dl { grid-template-columns:1fr; gap:2px; }.booking-summary dd { margin-bottom:10px; } }
