:root{font-family:DM Sans,sans-serif;color:#24312a;background:#f7f3ec;font-synthesis:none;--ink:#24312a;--muted:#6b746d;--paper:#f7f3ec;--surface:#fffdf9;--sage:#9caf99;--deep:#1f2a24;--line:#d9d8cd;--sand:#e8dfd0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}.container{width:min(1120px,calc(100% - 48px));margin:0 auto}.site-header{padding:24px 0;border-bottom:1px solid var(--line);background:var(--paper)}.nav-wrap,.footer-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:22px;font-weight:700;letter-spacing:-.05em}.brand span{color:#71846e}nav{display:flex;align-items:center;gap:32px;font-size:14px;color:var(--muted)}nav a{transition:color .2s ease-out}nav a:hover,nav a:focus-visible{color:var(--ink)}.nav-cta{border-bottom:1px solid var(--ink);padding-bottom:3px;color:var(--ink)}.mobile-cta{display:none}.hero{padding:76px 0 92px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center}.eyebrow,.section-kicker,.card-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted);margin:0}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:var(--sage)}h1,h2,h3{font-family:Playfair Display,serif;letter-spacing:-.045em;line-height:1.05;margin:0}h1{font-size:clamp(48px,6vw,78px);font-weight:700;margin:24px 0 26px}h1 em,h2 em{font-weight:600;color:#71846e;font-style:italic}.hero-text{max-width:450px;color:var(--muted);font-size:18px;line-height:1.65}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:32px}.button{min-height:48px;border-radius:9px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid transparent;font:600 14px DM Sans,sans-serif;cursor:pointer;transition:transform .2s ease-out,background .2s ease-out}.button:hover{transform:translateY(-2px)}.button:focus-visible,.text-link:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--sage);outline-offset:3px}.button-primary{background:var(--deep);color:var(--surface)}.button-primary:hover{background:#304238}.text-link{font-size:14px;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:4px}.proof-strip{display:flex;gap:24px;margin-top:64px;padding-top:18px;border-top:1px solid var(--line);max-width:520px}.proof-strip div{display:flex;flex-direction:column;gap:5px}.proof-strip strong{font-size:11px;color:#71846e}.proof-strip span{font-size:12px;color:var(--muted)}.hero-media{position:relative}.hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:130px 130px 12px 12px;display:block}.media-note{position:absolute;right:-34px;bottom:34px;display:flex;align-items:center;gap:12px;background:var(--surface);padding:16px 18px;border:1px solid var(--line);border-radius:10px;font-size:12px;line-height:1.4}.note-mark{font-size:23px;color:#71846e}.intro{padding:112px 0;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.intro-grid{display:grid;grid-template-columns:1fr 2fr;gap:80px}.intro h2,.booking h2{font-size:clamp(38px,5vw,62px);margin-bottom:24px}.intro p:not(.section-kicker),.booking-grid>div>p:last-child{max-width:540px;color:var(--muted);font-size:17px;line-height:1.7}.experience{padding:92px 0}.experience-grid{display:grid;grid-template-columns:1.05fr 1.2fr .85fr;gap:18px}.experience-card{min-height:430px;border-radius:12px;overflow:hidden}.dark-card{background:var(--deep);color:var(--surface);padding:38px 34px;display:flex;flex-direction:column}.dark-card .card-label{color:var(--sage)}.dark-card h2{font-size:46px;margin:44px 0 20px}.dark-card p:not(.card-label){color:#c7d0c9;max-width:210px;font-size:14px}.card-link{margin-top:auto;font-weight:600;font-size:14px}.image-card{position:relative}.image-card img{width:100%;height:100%;object-fit:cover;display:block}.image-caption{position:absolute;left:26px;bottom:26px;background:var(--surface);padding:14px 18px;border-radius:8px;font-family:Playfair Display,serif;font-size:20px;line-height:1.15}.warm-card{background:var(--sand);padding:38px 30px}.warm-card h3{font-size:38px;margin:44px 0 20px}.warm-card p:not(.card-label){color:#59635b;font-size:14px}.booking{padding:104px 0;background:var(--sage)}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}.booking .section-kicker{color:#53634f}.booking-grid>div>p:last-child{color:#3d4d40}.booking-form{background:var(--surface);padding:34px;border-radius:12px;display:flex;flex-direction:column;gap:10px}.booking-form label{font-size:13px;font-weight:600;margin-top:5px}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:12px 13px;color:var(--ink);font:15px DM Sans,sans-serif}.booking-form input,.booking-form select{height:48px;padding-top:0;padding-bottom:0}.booking-form textarea{resize:vertical;min-height:78px}.optional{font-weight:400;color:var(--muted)}.booking-form button:disabled{opacity:.6;cursor:wait;transform:none}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 14px}.form-row div{display:flex;flex-direction:column;gap:10px}.form-message{display:none;margin:8px 0 0;color:#53634f;font-size:13px}.form-message.is-visible{display:block}.site-footer{padding:28px 0;background:var(--deep);color:var(--surface)}.site-footer .brand span{color:var(--sage)}.site-footer p{margin:0;color:#bdc8bf;font-size:13px}.footer-meta{margin-left:auto!important;color:#89968c!important}@media(max-width:800px){.container{width:min(100% - 36px,560px)}nav{display:none}.mobile-cta{display:block;font-size:13px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:3px}.hero{padding:54px 0 70px}.hero-grid,.booking-grid{grid-template-columns:1fr;gap:52px}.hero-media{width:88%;margin-left:auto}.media-note{right:-16px;bottom:22px}.proof-strip{margin-top:46px}.intro{padding:76px 0}.intro-grid{grid-template-columns:1fr;gap:22px}.experience{padding:70px 0}.experience-grid{grid-template-columns:1fr;gap:14px}.experience-card{min-height:350px}.dark-card h2,.warm-card h3{margin-top:32px}.booking{padding:76px 0}.footer-wrap{flex-wrap:wrap}.footer-meta{margin-left:0!important;width:100%;padding-top:12px;border-top:1px solid #3b493f}}@media(max-width:420px){h1{font-size:46px}.hero-media{width:94%}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.proof-strip{gap:13px}.proof-strip span{font-size:11px}.booking-form{padding:24px 18px}.form-row{gap:10px}}.field-help{display:block;color:var(--muted);font-size:12px;margin-top:-5px}.reservation-summary{grid-column:2;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px 28px}.reservation-summary h3{font-size:30px;margin:10px 0}.reservation-summary p{margin:8px 0;color:var(--muted);font-size:14px}.reservation-summary strong{color:var(--ink)}.reservation-summary dl{display:grid;gap:10px;margin:18px 0}.reservation-summary dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:8px}.reservation-summary dt{color:var(--muted);font-size:13px}.reservation-summary dd{margin:0;text-align:right;font-weight:600}.form-message{max-width:42ch}.form-message:not(:empty){color:var(--ink)}@media(max-width:800px){.reservation-summary{grid-column:auto}}@media(max-width:420px){.reservation-summary{padding:22px 18px}.reservation-summary dl div{display:block}.reservation-summary dd{text-align:left;margin-top:2px}}.admin-panel{padding:96px 0;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.admin-heading{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:end;margin-bottom:44px}.admin-heading h2{font-size:clamp(42px,5vw,64px);margin-top:18px}.admin-heading>p{max-width:420px;color:var(--muted);font-size:17px;line-height:1.7;margin:0 0 4px}.admin-filters{display:flex;align-items:end;gap:14px;padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:10px}.admin-filters div{display:flex;flex-direction:column;gap:8px;flex:1}.admin-filters label{font-size:12px;font-weight:700}.admin-filters input,.admin-filters select{height:46px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 12px;color:var(--ink);font:14px DM Sans,sans-serif}.admin-filters .button{height:46px;white-space:nowrap}.admin-message{min-height:24px;color:var(--muted);font-size:13px;margin:18px 2px 10px}.reservation-list{display:grid;gap:10px}.reservation-row{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:20px 22px}.reservation-main{display:flex;justify-content:space-between;align-items:start;gap:20px}.reservation-main>div{display:flex;flex-direction:column;gap:3px}.reservation-main strong{font-size:17px}.reservation-main span:not(.status){color:var(--muted);font-size:13px}.status{border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;white-space:nowrap}.status-pending{background:#f4e5bd;color:#75581d}.status-confirmed{background:#dce9d9;color:#3f6043}.status-cancelled{background:#eadbd7;color:#7c4941}.reservation-details{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px;color:var(--muted);font-size:13px}.reservation-actions{display:flex;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.reservation-actions .button{min-height:38px;padding:0 14px;font-size:13px}.button-confirm{background:var(--deep);color:var(--surface)}.button-cancel{background:transparent;color:#7c4941;border-color:#cdb7b1}.reservation-actions .button:disabled{opacity:.55;cursor:wait}.admin-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:44px 20px;background:var(--paper);border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center}.admin-empty strong{color:var(--ink)}.admin-error strong{color:#7c4941}@media(max-width:800px){.admin-panel{padding:72px 0}.admin-heading{grid-template-columns:1fr;gap:22px;margin-bottom:30px}.admin-filters{align-items:stretch;flex-direction:column}.admin-filters .button{width:100%}.reservation-main{gap:12px}.reservation-details{gap:8px 14px}}
