:root {
--olive-900: #21492b;
--olive-700: #3e8b49;
--olive-600: #57a761;
--cream-50: #fff9ef;
--cream-100: #fff0d8;
--gold-300: #e8ae57;
--charcoal: #2b382d;
--muted: #4d5f50;
--line: rgba(62, 139, 73, 0.22);
--radius: 14px;
--shadow-soft: 0 18px 34px -24px rgba(29, 56, 32, 0.26);
--ease-soft: cubic-bezier(0.22, 0.61, 0.36, 1);
}

html {
scroll-behavior: smooth;
}

body {
background: linear-gradient(180deg, #fff9ef 0%, #fff4e2 45%, #fffbf3 100%);
color: var(--charcoal);
text-rendering: optimizeLegibility;
}

section[id] {
scroll-margin-top: 8rem;
}

.eyebrow {
display: inline-block;
margin-bottom: 0.9rem;
font-size: 0.69rem;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--gold-300);
font-weight: 600;
}

.btn-primary {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border: 1px solid transparent;
background: var(--olive-700);
color: var(--cream-50);
padding: 0.72rem 1.35rem;
font-size: 0.82rem;
letter-spacing: 0.12em;
text-transform: uppercase;
transition: background 320ms var(--ease-soft), transform 320ms var(--ease-soft);
}

.btn-primary:hover,
.btn-primary:focus-visible {
background: #425139;
transform: translateY(-1px);
}

.btn-secondary {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border: 1px solid var(--line);
color: var(--olive-900);
padding: 0.72rem 1.35rem;
font-size: 0.82rem;
letter-spacing: 0.12em;
text-transform: uppercase;
transition: background 320ms var(--ease-soft), border-color 320ms var(--ease-soft), color 320ms var(--ease-soft);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
background: rgba(79, 91, 68, 0.08);
border-color: rgba(79, 91, 68, 0.45);
}

.btn-ghost {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border: 1px solid var(--line);
color: var(--olive-900);
padding: 0.64rem 1.2rem;
font-size: 0.75rem;
letter-spacing: 0.12em;
text-transform: uppercase;
transition: background 300ms var(--ease-soft), border-color 300ms var(--ease-soft), transform 300ms var(--ease-soft);
}

.btn-ghost:hover,
.btn-ghost:focus-visible {
background: rgba(79, 91, 68, 0.08);
border-color: rgba(79, 91, 68, 0.45);
transform: translateY(-1px);
}

#site-header {
transition: color 360ms var(--ease-soft);
}

#site-header .brand,
#site-header .nav-link,
#site-header .menu-shell {
color: rgba(246, 240, 227, 0.95);
}

#site-header.scrolled #header-shell {
background: rgba(255, 249, 239, 0.92);
border-color: var(--line);
box-shadow: var(--shadow-soft);
backdrop-filter: blur(10px);
}

#site-header.scrolled .brand,
#site-header.scrolled .nav-link,
#site-header.scrolled .menu-shell {
color: var(--olive-900);
}

#site-header .header-cta {
box-shadow: 0 10px 24px -20px rgba(26, 33, 27, 0.62);
}

.nav-link[aria-current="page"] {
color: var(--cream-50);
text-decoration: underline;
text-underline-offset: 0.34rem;
text-decoration-thickness: 1px;
}

#site-header.scrolled .nav-link[aria-current="page"] {
color: var(--olive-900);
}

#mobile-menu a[aria-current="page"] {
background: rgba(62, 139, 73, 0.12);
border-color: rgba(62, 139, 73, 0.28);
}

.page-hero {
position: relative;
min-height: 58svh;
display: flex;
align-items: flex-end;
overflow: hidden;
}

.page-hero-image {
position: absolute;
inset: 0;
height: 100%;
width: 100%;
object-fit: cover;
}

.page-hero::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(180deg, rgba(35, 88, 46, 0.24) 0%, rgba(35, 88, 46, 0.62) 100%);
}

.page-hero::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(circle at 24% 20%, rgba(255, 238, 201, 0.45), transparent 42%);
}

.section-panel {
border: 1px solid var(--line);
border-radius: var(--radius);
background: rgba(255, 249, 239, 0.78);
box-shadow: var(--shadow-soft);
}

.content-prose p {
line-height: 1.95;
font-size: 1rem;
color: var(--muted);
}

.content-prose p + p {
margin-top: 1rem;
}

.detail-list {
display: grid;
gap: 0.6rem;
color: var(--muted);
font-size: 0.95rem;
}

.detail-list strong {
color: var(--olive-900);
font-weight: 600;
}

.cta-panel {
border-radius: var(--radius);
border: 1px solid rgba(245, 241, 231, 0.55);
background: linear-gradient(140deg, rgba(41, 98, 53, 0.9), rgba(31, 58, 35, 0.94));
color: var(--cream-50);
box-shadow: var(--shadow-soft);
}

.link-understated {
text-decoration: underline;
text-decoration-color: rgba(62, 139, 73, 0.4);
text-underline-offset: 0.2rem;
}

.link-understated:hover,
.link-understated:focus-visible {
text-decoration-color: rgba(62, 139, 73, 0.9);
}

.room-card {
display: grid;
gap: 1.1rem;
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 1.35rem;
background: rgba(255, 249, 239, 0.86);
}

@media (max-width: 767px) {
html {
scroll-behavior: auto;
}
}
