.page-template { font-size: clamp(15px, .8vw + 11px, 16px); line-height: 1.7; color: var(--ink); }
.page-template main { min-height: 55vh; }
.page-hero { display: grid; align-items: end; min-height: clamp(13rem, 28vw, 21rem); color: #fff; background: linear-gradient(90deg, rgba(12,45,15,.7), rgba(12,45,15,.25)), var(--hero-image) center / cover; }
.page-hero__inner { padding-block: clamp(2.5rem, 6vw, 5rem); }
.page-hero p { margin: 0 0 .45rem; color: #d4efca; font-size: .82rem; font-weight: 700; letter-spacing: .12em; }
.page-hero h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.2; }
.breadcrumbs { padding-block: .85rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .86rem; }
.breadcrumbs a:hover { color: var(--brand); }
.page-section { padding-block: clamp(3rem, 6vw, 5.5rem); }
.section-title { margin: 0 0 1.8rem; color: var(--brand-dark); font-size: clamp(1.6rem, 2.7vw, 2.35rem); line-height: 1.25; }
.listing-layout { display: grid; grid-template-columns: minmax(12.5rem,.62fr) minmax(0,2.4fr); gap: clamp(1.4rem,3vw,3rem); }
.sidebar { align-self: start; padding: 1.25rem; border: 1px solid var(--line); background: #f7faf6; }
.sidebar h2 { margin: 0 0 .7rem; color: var(--brand-dark); font-size: 1.1rem; }
.sidebar a { display:block; padding:.55rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.sidebar a:hover,.sidebar a.is-current { color:var(--brand); font-weight:700; }
.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2vw,1.5rem); }
.content-card { overflow:hidden; background:#fff; border:1px solid var(--line); box-shadow:0 8px 22px rgba(18,55,20,.06); }
.content-card img { width:100%; aspect-ratio:1.25/1; object-fit:cover; }
.content-card__body { padding:1rem; }
.content-card h2,.content-card h3 { margin:0; color:var(--brand-dark); font-size:1.05rem; line-height:1.45; }
.content-card p { margin:.45rem 0 0; color:var(--muted); font-size:.88rem; }
.pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:.45rem; margin-top:2.5rem; }
.pagination a,.pagination span { display:grid; place-items:center; min-width:2.45rem; min-height:2.45rem; padding:.25rem .5rem; border:1px solid var(--line); }
.pagination .is-current { color:#fff; border-color:var(--brand); background:var(--brand); }
.detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(17rem,.78fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.detail__image { width:100%; aspect-ratio:1/1; object-fit:cover; }
.detail__summary { padding:clamp(1.2rem,3vw,2rem); background:#f5f8f4; }
.detail__summary h2 { margin:0; color:var(--brand-dark); font-size:clamp(1.8rem,3.3vw,2.8rem); line-height:1.25; }
.detail__summary p { color:var(--muted); }
.prose { max-width:52rem; } .service-plan-content { width:100%; max-width:none; padding:40px; } .service-plan-content .button { display:flex; width:max-content; align-items:center; justify-content:center; min-height:3rem; margin-left:auto; margin-right:auto; padding:.72rem 1.35rem; border:1px solid transparent; border-radius:.28rem; color:#fff; background:var(--brand); font:inherit; font-weight:800; line-height:1.2; cursor:pointer; } .service-plan-content img { margin-left:auto !important; margin-right:auto !important; }
.prose h2 { margin:2rem 0 .85rem; color:var(--brand-dark); font-size:clamp(1.35rem,2vw,1.8rem); }
.prose p,.prose li { color:#3d493e; }
.prose img { margin:1.2rem 0; border-radius:.2rem; }
.article { max-width:52rem; margin-inline:auto; }
.article__meta { color:var(--muted); font-size:.88rem; }
.article__cover { width:100%; margin:1.5rem 0; aspect-ratio:1.7/1; object-fit:cover; }
.split-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(18rem,.9fr); gap:clamp(2rem,6vw,6rem); align-items:center; }
.split-content img { width:100%; aspect-ratio:1.3/1; object-fit:cover; }
.contact-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.75rem; }
.contact-card { padding:1.4rem; background:#f5f8f4; }
.contact-card h2 { margin:0 0 .55rem; color:var(--brand-dark); font-size:1.05rem; }
.contact-card p,.contact-card a { color:var(--muted); }
@media(max-width:62rem){.listing-layout,.detail,.split-content{grid-template-columns:1fr}.sidebar ul{display:grid;grid-template-columns:repeat(3,1fr);gap:0 1rem}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-grid{grid-template-columns:1fr 1fr}}
@media(max-width:42rem){.page-hero{min-height:14rem}.card-grid,.contact-grid{grid-template-columns:1fr}.sidebar ul{grid-template-columns:1fr 1fr}.page-template .site-footer{padding-bottom:5rem}}
@media(max-width:46rem){.detail__summary .button[data-open-booking]{display:none}}

.error-page { display:grid; min-height:clamp(28rem,58vh,42rem); place-items:center; padding-block:clamp(4rem,10vw,8rem); background:linear-gradient(135deg,#f4f8f3,#e9f2e7); }
.error-page__content { max-width:44rem; text-align:center; }
.error-page__code { margin:0; color:var(--brand); font-size:clamp(5rem,16vw,11rem); font-weight:800; line-height:.9; letter-spacing:-.08em; }
.error-page h1 { margin:1.25rem 0 .7rem; color:var(--brand-dark); font-size:clamp(1.8rem,4vw,3rem); line-height:1.25; }
.error-page h1 + p { margin:0 auto; max-width:34rem; color:var(--muted); }
.error-page .actions { justify-content:center; }
