:root {
    --forest: #20372b;
    --forest-2: #2e4a3b;
    --forest-3: #13251c;
    --sage: #899d89;
    --sage-light: #dce5d9;
    --cream: #f4efe5;
    --cream-2: #fbf8f2;
    --sand: #d8c5a6;
    --copper: #a36f45;
    --ink: #202a24;
    --muted: #667069;
    --white: #ffffff;
    --border: rgba(32, 55, 43, .13);
    --shadow: 0 24px 70px rgba(24, 45, 34, .13);
    --shadow-soft: 0 16px 42px rgba(24, 45, 34, .08);
    --radius: 28px;
    --radius-sm: 18px;
    --container: 1180px;
    --container-wide: 1360px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--cream-2);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 17px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.container-wide { width: min(calc(100% - 48px), var(--container-wide)); margin-inline: auto; }
.section { padding: 118px 0; position: relative; }
.screen-reader-text {
    border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus { clip: auto !important; clip-path: none; display: block; height: auto; left: 12px; top: 12px; width: auto; z-index: 99999; padding: 12px 16px; background: #fff; color: #000; }

h1,h2,h3,h4 { color: var(--forest); margin: 0 0 .5em; font-family: Georgia, "Times New Roman", serif; font-weight: 500; line-height: 1.04; letter-spacing: -.035em; }
h1 { font-size: clamp(3.4rem, 7vw, 7.4rem); }
h2 { font-size: clamp(2.6rem, 5vw, 5.2rem); }
h3 { font-size: clamp(1.45rem, 2.2vw, 2rem); }
h1 em,h2 em { color: var(--copper); font-weight: 400; }
p { margin: 0 0 1.2em; }
.lead { font-size: clamp(1.2rem, 2vw, 1.55rem); color: var(--forest); line-height: 1.5; }

.eyebrow { display: inline-flex; align-items: center; gap: 11px; text-transform: uppercase; letter-spacing: .16em; font-size: .74rem; font-weight: 800; color: var(--copper); margin-bottom: 22px; }
.eyebrow > span { display: inline-block; width: 34px; height: 1px; background: currentColor; }
.eyebrow--light { color: #d9c7a9; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 56px; padding: 0 27px; border: 1px solid transparent; border-radius: 999px; font-weight: 750; font-size: .95rem; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--forest); color: var(--white); box-shadow: 0 14px 28px rgba(32,55,43,.18); }
.button--primary:hover { background: var(--forest-2); box-shadow: 0 18px 34px rgba(32,55,43,.24); }
.button--text { padding-inline: 7px; color: var(--forest); border-radius: 0; }
.button--cream { background: var(--cream); color: var(--forest); }
.button--cream:hover { background: #fff; }
.button--outline { border-color: rgba(32,55,43,.28); color: var(--forest); background: transparent; }
.button--outline:hover { background: var(--forest); color: #fff; border-color: var(--forest); }
.button--full { width: 100%; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 50; padding: 16px 0; transition: background .3s ease, box-shadow .3s ease, padding .3s ease; }
.site-header.is-scrolled { background: rgba(251,248,242,.94); backdrop-filter: blur(18px); box-shadow: 0 8px 30px rgba(26,48,37,.08); padding: 10px 0; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 62px; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: 240px; }
.brand__mark { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; background: var(--forest); color: #f4eee2; box-shadow: 0 9px 25px rgba(32,55,43,.18); }
.brand__mark svg { width: 30px; height: 30px; }
.brand__copy { display: flex; flex-direction: column; line-height: 1.15; }
.brand__copy strong { color: var(--forest); font-family: Georgia, serif; font-size: 1.17rem; letter-spacing: -.02em; }
.brand__copy small { color: var(--muted); font-size: .7rem; margin-top: 4px; text-transform: uppercase; letter-spacing: .08em; }
.brand__custom-logo img { max-height: 58px; width: auto; }
.site-nav__list { display: flex; align-items: center; gap: 27px; list-style: none; margin: 0; padding: 0; }
.site-nav__list a { font-size: .89rem; font-weight: 680; color: var(--forest); position: relative; }
.site-nav__list a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--copper); transition: right .25s ease; }
.site-nav__list a:hover::after { right: 0; }
.header-phone { display: inline-flex; align-items: center; gap: 9px; min-height: 46px; padding: 0 18px; border: 1px solid rgba(32,55,43,.18); border-radius: 999px; color: var(--forest); font-size: .88rem; font-weight: 780; background: rgba(255,255,255,.55); }
.menu-toggle { display: none; width: 46px; height: 46px; border: 0; border-radius: 14px; background: var(--forest); padding: 12px; cursor: pointer; }
.menu-toggle span:not(.screen-reader-text) { display: block; height: 2px; background: #fff; margin: 5px 0; transition: transform .25s ease, opacity .25s ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hero { min-height: 940px; padding: 150px 0 100px; display: flex; align-items: center; background: linear-gradient(135deg,#f8f4ec 0%,#edf2e9 58%,#e4eadf 100%); position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; opacity: .35; background-image: radial-gradient(rgba(32,55,43,.28) .65px, transparent .65px); background-size: 15px 15px; mask-image: linear-gradient(to right,#000,transparent 42%); }
.hero__grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(55px,7vw,110px); align-items: center; position: relative; z-index: 2; }
.hero__content { padding-left: clamp(0px,2vw,24px); max-width: 680px; }
.hero h1 { margin-bottom: 29px; }
.hero__content > p { color: #55635b; font-size: clamp(1.1rem,1.5vw,1.28rem); max-width: 590px; line-height: 1.72; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 24px; margin: 35px 0 45px; align-items: center; }
.hero__trust { display: flex; align-items: center; gap: 27px; color: var(--forest); }
.hero__trust > div { display: grid; }
.hero__trust strong { font-size: 1.4rem; line-height: 1.1; }
.hero__trust small { color: var(--muted); font-size: .78rem; margin-top: 4px; }
.hero__trust .rating { grid-template-columns: auto auto; column-gap: 11px; }
.hero__trust .rating span { color: #c28a48; letter-spacing: .08em; font-size: .8rem; align-self: center; }
.hero__trust .rating small { grid-column: 1/-1; }
.hero__divider { height: 40px; width: 1px; background: rgba(32,55,43,.2); }
.hero__glow { position: absolute; border-radius: 50%; filter: blur(4px); opacity: .7; }
.hero__glow--one { width: 520px; height: 520px; right: -160px; top: -130px; background: rgba(144,165,137,.22); }
.hero__glow--two { width: 420px; height: 420px; left: -250px; bottom: -190px; background: rgba(163,111,69,.12); }
.hero__scroll { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: .73rem; text-transform: uppercase; letter-spacing: .14em; z-index: 4; }
.hero__scroll span { width: 1px; height: 34px; background: var(--copper); animation: scrollPulse 1.8s infinite; }
@keyframes scrollPulse { 0%,100%{transform:scaleY(.5);transform-origin:top;opacity:.5}50%{transform:scaleY(1);opacity:1} }

.hero-visual { position: relative; min-height: 690px; }
.hero-visual__main { position: absolute; inset: 30px 50px 42px 30px; border-radius: 170px 170px 34px 34px; overflow: hidden; box-shadow: 0 35px 85px rgba(26,50,38,.2); background: var(--forest); }
.hero-visual__main img { width: 100%; height: 100%; object-fit: cover; image-rendering: auto; transform: scale(1.05); filter: saturate(.92) contrast(1.04); }
.hero-visual__shade { position: absolute; inset: 0; background: linear-gradient(to top,rgba(13,32,23,.55),transparent 48%); }
.hero-visual__location { position: absolute; left: 30px; bottom: 24px; color: #fff; font-size: .8rem; font-weight: 700; backdrop-filter: blur(10px); background: rgba(17,37,27,.36); padding: 9px 14px; border-radius: 999px; }
.hero-visual__small { position: absolute; width: 180px; aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 10px solid var(--cream-2); box-shadow: var(--shadow); z-index: 3; }
.hero-visual__small img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.05); }
.hero-visual__small--top { top: 32px; right: -12px; }
.hero-visual__small--bottom { left: -25px; bottom: 8px; width: 160px; }
.hero-price { position: absolute; right: 0; bottom: 25px; z-index: 4; background: var(--forest); color: #fff; border-radius: 20px; padding: 17px 21px; box-shadow: var(--shadow); display: flex; flex-direction: column; min-width: 170px; }
.hero-price small { color: #c6d2c7; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; }
.hero-price strong { font-size: 1rem; margin-top: 3px; }

.quick-facts { margin-top: -1px; background: var(--forest); color: #fff; }
.quick-facts__grid { display: grid; grid-template-columns: repeat(4,1fr); }
.quick-facts article { display: flex; align-items: center; gap: 15px; padding: 28px 26px; border-right: 1px solid rgba(255,255,255,.12); }
.quick-facts article:last-child { border-right: 0; }
.quick-facts strong,.quick-facts small { display: block; }
.quick-facts strong { font-size: .95rem; }
.quick-facts small { color: #bac7bc; font-size: .74rem; margin-top: 2px; }
.fact-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,255,255,.09); color: #d9c7a9; font-size: 1.15rem; flex: 0 0 auto; }

.about { background: var(--cream-2); }
.about__grid { display: grid; grid-template-columns: 1fr .86fr; gap: clamp(60px,8vw,120px); align-items: center; }
.about__media { min-height: 670px; position: relative; }
.about__image { position: absolute; inset: 0 45px 35px 0; overflow: hidden; border-radius: 30px 130px 30px 30px; box-shadow: var(--shadow); }
.about__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) contrast(1.03); }
.about__mini { position: absolute; width: 220px; height: 260px; right: -35px; bottom: -15px; overflow: hidden; border-radius: 110px 110px 24px 24px; border: 10px solid var(--cream-2); box-shadow: var(--shadow-soft); }
.about__mini img { width: 100%; height: 100%; object-fit: cover; }
.about__badge { position: absolute; left: -30px; top: 70px; z-index: 3; background: var(--cream); padding: 17px 22px; border-radius: 16px; box-shadow: var(--shadow-soft); display: flex; flex-direction: column; color: var(--forest); transform: rotate(-4deg); }
.about__badge strong { font-family: Georgia,serif; font-size: 1.3rem; }
.about__badge span { font-size: .73rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.about__content p:not(.lead) { color: var(--muted); }
.signature-row { display: flex; align-items: center; gap: 15px; margin-top: 33px; padding-top: 27px; border-top: 1px solid var(--border); }
.signature-mark { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--forest); color: var(--cream); font-family: Georgia,serif; font-size: 1.6rem; }
.signature-row strong,.signature-row small { display: block; }
.signature-row small { color: var(--muted); font-size: .77rem; }

.amenities { background: #eef2ea; overflow: hidden; }
.amenities::before { content:""; position:absolute; width:520px; height:520px; border-radius:50%; border:1px solid rgba(32,55,43,.08); left:-280px; top:70px; box-shadow: 0 0 0 60px rgba(32,55,43,.02),0 0 0 120px rgba(32,55,43,.015); }
.section-heading { max-width: 760px; position: relative; z-index: 2; }
.section-heading p { color: var(--muted); max-width: 620px; }
.section-heading--center { text-align: center; margin: 0 auto 60px; }
.section-heading--center p { margin-inline: auto; }
.section-heading--split { max-width: none; display: flex; justify-content: space-between; align-items: end; gap: 60px; margin-bottom: 55px; }
.section-heading--split > div { max-width: 720px; }
.section-heading--split > p { max-width: 400px; margin-bottom: 14px; }
.amenities-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.amenity-card { border-radius: var(--radius); overflow: hidden; background: #fff; box-shadow: var(--shadow-soft); transition: transform .3s ease, box-shadow .3s ease; }
.amenity-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.amenity-card__image { height: 260px; overflow: hidden; position: relative; }
.amenity-card__image::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(21,40,30,.28),transparent 55%); }
.amenity-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.amenity-card:hover .amenity-card__image img { transform: scale(1.06); }
.amenity-card__content { padding: 30px 29px 32px; position: relative; }
.amenity-card__icon { width: 51px; height: 51px; display: grid; place-items: center; border-radius: 15px; background: var(--forest); color: var(--cream); position: absolute; right: 24px; top: -28px; box-shadow: 0 11px 25px rgba(32,55,43,.22); font-size: 1.2rem; }
.amenity-card__content p { color: var(--muted); font-size: .92rem; }
.amenity-card__content small { color: var(--copper); text-transform: uppercase; letter-spacing: .09em; font-size: .71rem; font-weight: 800; }

.gallery-section { background: var(--cream-2); }
.gallery-grid { display: grid; grid-template-columns: repeat(12,1fr); grid-auto-rows: 170px; gap: 15px; }
.gallery-item { border: 0; padding: 0; cursor: zoom-in; overflow: hidden; border-radius: 18px; position: relative; background: #dbe2d9; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease, filter .35s ease; }
.gallery-item::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(14,34,24,.45),transparent 50%); opacity:0; transition:opacity .3s ease; }
.gallery-item span { position:absolute; left:18px; bottom:13px; z-index:2; color:#fff; font-size:.75rem; font-weight:750; opacity:0; transform:translateY(8px); transition:.3s ease; }
.gallery-item:hover img { transform:scale(1.07); filter:saturate(1.05); }
.gallery-item:hover::after,.gallery-item:hover span { opacity:1; }
.gallery-item:hover span { transform:none; }
.gallery-item--1 { grid-column: span 5; grid-row: span 3; border-radius: 26px 100px 26px 26px; }
.gallery-item--2 { grid-column: span 4; grid-row: span 2; }
.gallery-item--3 { grid-column: span 3; grid-row: span 2; }
.gallery-item--4 { grid-column: span 3; grid-row: span 2; }
.gallery-item--5 { grid-column: span 4; grid-row: span 2; }
.gallery-item--6 { grid-column: span 5; grid-row: span 2; }
.gallery-item--7 { grid-column: span 3; grid-row: span 2; }
.gallery-item--8 { grid-column: span 4; grid-row: span 2; border-radius: 22px 22px 80px 22px; }
.lightbox { position:fixed; inset:0; z-index:100; background:rgba(7,18,12,.92); display:grid; place-items:center; padding:35px; opacity:0; pointer-events:none; transition:opacity .25s ease; }
.lightbox.is-open { opacity:1; pointer-events:auto; }
.lightbox img { max-width:min(1100px,92vw); max-height:88vh; border-radius:20px; box-shadow:0 30px 100px rgba(0,0,0,.45); }
.lightbox__close { position:absolute; top:24px; right:28px; width:48px; height:48px; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:#fff; background:rgba(255,255,255,.08); font-size:1.8rem; cursor:pointer; }

.ritual-section { background: var(--forest-3); color: #dce6dd; overflow: hidden; }
.ritual-section::before { content:""; position:absolute; inset:auto -140px -250px auto; width:650px; height:650px; border-radius:50%; border:1px solid rgba(255,255,255,.07); box-shadow:0 0 0 70px rgba(255,255,255,.02),0 0 0 140px rgba(255,255,255,.014); }
.ritual-section__grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(60px,9vw,130px); align-items:center; }
.ritual-section h2 { color:#fff; }
.ritual-section h2 em { color:#d9c7a9; }
.ritual-section__content > p { color:#afbeb2; max-width:560px; }
.check-list { list-style:none; padding:0; margin:30px 0 38px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 28px; }
.check-list li { display:flex; align-items:center; gap:10px; font-size:.9rem; color:#d5dfd7; }
.check-list span { width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:rgba(217,199,169,.14); color:#d9c7a9; font-size:.72rem; }
.ritual-section__media { min-height:620px; position:relative; }
.ritual-section__media > img { position:absolute; inset:25px 0 25px 25px; width:calc(100% - 25px); height:calc(100% - 50px); object-fit:cover; border-radius:180px 180px 28px 28px; filter:saturate(.88) brightness(.9); box-shadow:0 35px 90px rgba(0,0,0,.35); }
.ritual-section__halo { position:absolute; width:310px; height:310px; border-radius:50%; background:#9b7654; filter:blur(75px); opacity:.22; right:-40px; top:30px; }
.ritual-quote { position:absolute; left:-55px; bottom:0; max-width:260px; padding:22px 24px; border-radius:18px; background:#f2eadc; color:var(--forest); font-family:Georgia,serif; font-size:1.13rem; line-height:1.4; box-shadow:var(--shadow); transform:rotate(-2deg); }

.reviews { background:#edf2ea; }
.reviews-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:1000px; margin:0 auto; }
.review-card { margin:0; background:#fff; padding:38px 38px 32px; border-radius:var(--radius); box-shadow:var(--shadow-soft); position:relative; }
.review-card::before { content:"“"; position:absolute; top:5px; right:28px; color:#e5ece3; font:6rem/1 Georgia,serif; }
.review-card__stars { color:#c28a48; letter-spacing:.12em; font-size:.82rem; margin-bottom:17px; }
.review-card p { color:var(--forest); font-family:Georgia,serif; font-size:1.22rem; line-height:1.55; position:relative; z-index:1; }
.review-card footer { display:flex; align-items:center; gap:12px; padding-top:17px; border-top:1px solid var(--border); }
.review-card footer > span { width:43px; height:43px; display:grid; place-items:center; border-radius:50%; background:var(--forest); color:#fff; font-family:Georgia,serif; }
.review-card footer strong,.review-card footer small { display:block; }
.review-card footer small { color:var(--muted); font-size:.75rem; }

.faq-section { background:var(--cream-2); }
.faq-grid { display:grid; grid-template-columns:.68fr 1.1fr; gap:clamp(55px,8vw,110px); align-items:start; }
.accordion { border-top:1px solid var(--border); }
.accordion-item { border-bottom:1px solid var(--border); }
.accordion-item button { width:100%; display:flex; justify-content:space-between; gap:20px; align-items:center; padding:25px 0; border:0; background:transparent; cursor:pointer; text-align:left; font-weight:750; color:var(--forest); }
.accordion-item button b { width:34px; height:34px; border-radius:50%; border:1px solid rgba(32,55,43,.22); display:grid; place-items:center; font-weight:400; transition:.25s ease; flex:0 0 auto; }
.accordion-item.is-open button b { transform:rotate(45deg); background:var(--forest); color:#fff; }
.accordion-panel { display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease; }
.accordion-panel > p { overflow:hidden; color:var(--muted); margin:0; padding-right:55px; }
.accordion-item.is-open .accordion-panel { grid-template-rows:1fr; }
.accordion-item.is-open .accordion-panel > p { padding-bottom:26px; }

.booking-section { position:relative; overflow:hidden; padding:125px 0; background:var(--forest); }
.booking-section__background { position:absolute; inset:0; }
.booking-section__background img { width:100%; height:100%; object-fit:cover; filter:blur(2px) saturate(.65); transform:scale(1.05); }
.booking-section__background::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(14,34,24,.95) 0%,rgba(14,34,24,.82) 44%,rgba(14,34,24,.58) 100%); }
.booking-section__grid { display:grid; grid-template-columns:.85fr 1.05fr; gap:clamp(65px,8vw,120px); align-items:center; position:relative; z-index:2; }
.booking-copy { color:#cbd7cd; }
.booking-copy h2 { color:#fff; }
.booking-copy > p { max-width:560px; color:#b7c5ba; }
.booking-contact-list { display:grid; gap:12px; margin-top:35px; }
.booking-contact-list > * { display:flex; align-items:center; gap:14px; color:#fff; }
.booking-contact-list > * > span { width:45px; height:45px; display:grid; place-items:center; border-radius:14px; background:rgba(255,255,255,.09); color:#d9c7a9; }
.booking-contact-list small,.booking-contact-list strong { display:block; }
.booking-contact-list small { color:#9eafa2; font-size:.71rem; text-transform:uppercase; letter-spacing:.1em; }
.booking-contact-list strong { font-size:.93rem; }
.booking-card { background:#fff; padding:38px; border-radius:32px; box-shadow:0 40px 110px rgba(0,0,0,.28); }
.booking-card__header { display:flex; justify-content:space-between; align-items:start; gap:20px; margin-bottom:25px; }
.booking-card__header small { color:var(--copper); text-transform:uppercase; letter-spacing:.11em; font-size:.68rem; font-weight:800; }
.booking-card__header h3 { margin-top:4px; }
.booking-card__header > span { white-space:nowrap; background:#edf2ea; color:var(--forest); padding:8px 12px; border-radius:999px; font-size:.72rem; font-weight:800; }
.booking-form { display:grid; gap:15px; }
.form-row--two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.booking-form label { display:grid; gap:6px; color:var(--forest); font-size:.76rem; font-weight:750; }
.booking-form label > span small { color:var(--muted); font-weight:500; }
.booking-form input,.booking-form select,.booking-form textarea { width:100%; border:1px solid #dde4dc; border-radius:13px; background:#f9fbf8; color:var(--ink); padding:12px 14px; outline:none; transition:border-color .2s ease,box-shadow .2s ease; }
.booking-form input,.booking-form select { height:48px; }
.booking-form textarea { resize:vertical; min-height:90px; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { border-color:#859b88; box-shadow:0 0 0 4px rgba(133,155,136,.13); }
.booking-form .consent { display:flex; grid-template:none; align-items:flex-start; gap:10px; font-weight:500; color:var(--muted); line-height:1.4; }
.booking-form .consent input { width:17px; height:17px; margin-top:2px; flex:0 0 auto; }
.form-message { padding:13px 15px; border-radius:12px; font-size:.84rem; margin-bottom:18px; }
.form-message--success { background:#e6f4e6; color:#23562e; }
.form-message--error { background:#fbe8e5; color:#8a3028; }
.hp-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

.site-footer { background:#101e17; color:#9eaca1; padding:74px 0 24px; }
.site-footer__grid { display:grid; grid-template-columns:1.2fr .65fr .8fr; gap:70px; padding-bottom:52px; }
.brand--footer .brand__copy strong { color:#fff; }
.brand--footer .brand__copy small { color:#98a69b; }
.site-footer__grid > div:first-child p { max-width:420px; margin-top:20px; font-size:.88rem; }
.site-footer h3 { color:#fff; font-family:Inter,sans-serif; font-size:.86rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:17px; }
.footer-links,.footer-contact { list-style:none; padding:0; margin:0; display:grid; gap:9px; font-size:.86rem; }
.footer-links a:hover,.footer-contact a:hover { color:#fff; }
.site-footer .menu + .footer-links--fallback { display:none; }
.site-footer__bottom { padding-top:20px; border-top:1px solid rgba(255,255,255,.08); display:flex; justify-content:space-between; gap:25px; font-size:.75rem; }
.mobile-cta { display:none; }

.content-page { min-height:70vh; padding-top:160px; }
.content-page__inner { max-width:900px; }
.content-page__inner--center { text-align:center; }
.error-code { font:700 7rem/1 Georgia,serif; color:var(--sage); }

[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
[data-reveal].is-visible { opacity:1; transform:none; }

@media (max-width: 1180px) {
    .site-nav__list { gap:18px; }
    .header-phone { display:none; }
    .hero { min-height:860px; }
    .hero-visual { min-height:600px; }
    .hero-visual__small--top { right:-2px; }
    .about__badge { left:0; }
}

@media (max-width: 980px) {
    body { font-size:16px; }
    .section { padding:90px 0; }
    .site-nav { position:fixed; inset:82px 18px auto; background:#fff; border-radius:22px; padding:24px; box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(-10px); transition:.25s ease; }
    .site-nav.is-open { opacity:1; visibility:visible; transform:none; }
    .site-nav__list { flex-direction:column; align-items:stretch; gap:0; }
    .site-nav__list a { display:block; padding:12px 5px; border-bottom:1px solid var(--border); font-size:1rem; }
    .menu-toggle { display:block; }
    .hero { padding-top:140px; min-height:auto; }
    .hero__grid,.about__grid,.ritual-section__grid,.booking-section__grid { grid-template-columns:1fr; }
    .hero__content { max-width:760px; }
    .hero-visual { min-height:670px; max-width:710px; width:100%; margin:0 auto; }
    .quick-facts__grid { grid-template-columns:repeat(2,1fr); }
    .quick-facts article:nth-child(2) { border-right:0; }
    .quick-facts article:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.12); }
    .about__grid { gap:70px; }
    .about__media { max-width:680px; width:100%; }
    .about__content { max-width:760px; }
    .amenities-grid { grid-template-columns:1fr; max-width:720px; margin-inline:auto; }
    .amenity-card { display:grid; grid-template-columns:.9fr 1.1fr; }
    .amenity-card__image { height:100%; min-height:300px; }
    .gallery-grid { grid-auto-rows:150px; }
    .gallery-item--1 { grid-column:span 7; }
    .gallery-item--2 { grid-column:span 5; }
    .gallery-item--3 { grid-column:span 5; }
    .gallery-item--4 { grid-column:span 7; }
    .gallery-item--5 { grid-column:span 6; }
    .gallery-item--6 { grid-column:span 6; }
    .gallery-item--7 { grid-column:span 5; }
    .gallery-item--8 { grid-column:span 7; }
    .ritual-section__content { max-width:760px; }
    .ritual-section__media { max-width:700px; width:100%; }
    .faq-grid { grid-template-columns:1fr; }
    .booking-card { max-width:720px; }
}

@media (max-width: 720px) {
    :root { --radius:22px; }
    .container { width:min(calc(100% - 30px),var(--container)); }
    .container-wide { width:min(calc(100% - 30px),var(--container-wide)); }
    .site-header { padding:10px 0; }
    .site-header__inner { min-height:58px; }
    .brand { min-width:0; }
    .brand__mark { width:42px; height:42px; }
    .brand__copy strong { font-size:1.02rem; }
    .brand__copy small { display:none; }
    .site-nav { inset:75px 15px auto; }
    .hero { padding:120px 0 74px; }
    .hero::before { display:none; }
    .hero h1 { font-size:clamp(3rem,14vw,4.4rem); }
    .hero__actions { align-items:stretch; flex-direction:column; gap:12px; }
    .hero__actions .button { width:100%; }
    .hero__trust { gap:17px; }
    .hero-visual { min-height:520px; }
    .hero-visual__main { inset:20px 18px 35px 18px; border-radius:95px 95px 25px 25px; }
    .hero-visual__small { width:120px; border-width:7px; }
    .hero-visual__small--top { top:0; right:-3px; }
    .hero-visual__small--bottom { left:-3px; width:105px; }
    .hero-price { right:5px; bottom:18px; min-width:145px; padding:13px 15px; }
    .hero__scroll { display:none; }
    .quick-facts__grid { grid-template-columns:1fr; }
    .quick-facts article { border-right:0; border-bottom:1px solid rgba(255,255,255,.12); padding:21px 6px; }
    .quick-facts article:last-child { border-bottom:0; }
    .about__media { min-height:500px; }
    .about__image { inset:0 20px 20px 0; border-radius:24px 80px 24px 24px; }
    .about__mini { width:145px; height:190px; right:-8px; border-width:7px; }
    .about__badge { top:30px; left:-4px; padding:12px 15px; }
    .about__badge strong { font-size:1.05rem; }
    .section-heading--split { display:block; }
    .amenity-card { display:block; }
    .amenity-card__image { min-height:230px; height:230px; }
    .gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
    .gallery-item { grid-column:span 1 !important; grid-row:span 1 !important; border-radius:17px !important; }
    .gallery-item--1,.gallery-item--6 { grid-column:span 2 !important; }
    .ritual-section__media { min-height:510px; }
    .ritual-section__media > img { inset:15px 0 20px 0; width:100%; height:calc(100% - 35px); border-radius:110px 110px 24px 24px; }
    .ritual-quote { left:10px; bottom:-10px; max-width:225px; font-size:1rem; }
    .check-list { grid-template-columns:1fr; }
    .reviews-grid { grid-template-columns:1fr; }
    .review-card { padding:31px 26px 27px; }
    .form-row--two { grid-template-columns:1fr; }
    .booking-card { padding:28px 20px; border-radius:24px; }
    .booking-card__header { display:block; }
    .booking-card__header > span { display:inline-flex; margin-top:8px; }
    .site-footer { padding-bottom:88px; }
    .site-footer__grid { grid-template-columns:1fr; gap:36px; }
    .site-footer__bottom { flex-direction:column; gap:8px; }
    .mobile-cta { display:grid; grid-template-columns:1fr 1fr; position:fixed; left:12px; right:12px; bottom:10px; z-index:49; background:rgba(255,255,255,.96); backdrop-filter:blur(16px); padding:7px; border-radius:17px; box-shadow:0 13px 40px rgba(21,40,30,.22); }
    .mobile-cta a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; border-radius:12px; font-weight:800; font-size:.86rem; color:var(--forest); }
    .mobile-cta a:last-child { background:var(--forest); color:#fff; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    [data-reveal] { opacity:1; transform:none; }
}
