:root {
    --forest: #173c31;
    --forest-deep: #0d2922;
    --forest-soft: #275346;
    --moss: #6e8068;
    --sage: #c8d1bf;
    --sand: #e9c995;
    --sand-light: #f3e3c6;
    --cream: #f5f1e9;
    --paper: #fbfaf6;
    --ink: #1d2722;
    --muted: #677069;
    --line: rgba(23, 60, 49, .16);
    --serif: "Newsreader", Georgia, serif;
    --sans: "DM Sans", Arial, sans-serif;
    --display: "Manrope", Arial, sans-serif;
    --shadow: 0 24px 70px rgba(20, 43, 35, .14);
    --radius: 4px;
    --type-hero: clamp(3.6rem, 7.2vw, 6.8rem);
    --type-page-hero: clamp(3.2rem, 6.2vw, 5.7rem);
    --type-section: clamp(2.25rem, 3.8vw, 4rem);
    --type-section-compact: clamp(2rem, 3.2vw, 3.35rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: var(--sand); color: var(--forest-deep); }
.shell { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.shell-wide { width: min(1440px, calc(100% - 44px)); margin-inline: auto; }
.section-pad { padding-top: clamp(88px, 9vw, 150px); padding-bottom: clamp(88px, 9vw, 150px); }
.sr-only { position: absolute; width: 1px; height: 1px; clip: rect(0,0,0,0); overflow: hidden; white-space: nowrap; }
.skip-link { position: fixed; z-index: 999; top: -50px; left: 20px; background: white; padding: 10px 16px; }
.skip-link:focus { top: 20px; }
.eyebrow { margin: 0 0 18px; color: var(--forest-soft); font-family: var(--display); font-size: .68rem; font-weight: 600; letter-spacing: .18em; line-height: 1.25; text-transform: uppercase; }
.eyebrow.light { color: var(--sand-light); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--display); font-weight: 400; letter-spacing: -.035em; line-height: 1.08; }
h1 em, h2 em { font-family: var(--serif); font-weight: 400; }
h2 { font-size: var(--type-section); }
.button { align-items: center; border: 1px solid transparent; border-radius: 999px; cursor: pointer; display: inline-flex; font-family: var(--display); font-size: .76rem; font-weight: 700; justify-content: center; letter-spacing: .1em; min-height: 52px; padding: 0 28px; text-transform: uppercase; transition: transform .25s, background .25s, color .25s, border .25s; }
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 42px; padding: 0 21px; font-size: .7rem; }
.button-large { min-height: 58px; padding-inline: 36px; }
.button-full { width: 100%; }
.button-forest { background: var(--forest); color: white; }
.button-forest:hover { background: var(--forest-deep); }
.button-sand { background: var(--sand); color: var(--forest-deep); }
.button-sand:hover { background: #f0d7ab; }
.button-outline-light { border-color: rgba(255,255,255,.6); color: white; }
.button-outline-light:hover { background: white; color: var(--forest); }
.text-link { align-items: center; background: none; border: 0; border-bottom: 1px solid var(--forest); cursor: pointer; display: inline-flex; font-size: .82rem; font-weight: 700; gap: 26px; letter-spacing: .08em; padding: 0 0 7px; text-transform: uppercase; }
.text-link span { font-size: 1rem; transition: transform .2s; }
.text-link:hover span { transform: translate(3px,-3px); }
.light-link { border-color: rgba(255,255,255,.7); color: white; }

/* Public content: complete information, restrained photo captions. */
.lightbox figcaption[hidden] { display:none; }
.guest-reviews { background:var(--cream); }
.guest-reviews-heading { align-items:center; display:flex; gap:28px; justify-content:space-between; margin-bottom:32px; }
.guest-reviews-heading h2 { font-size:var(--type-section-compact); margin:0; }
.review-controls { align-items:center; display:flex; flex-shrink:0; gap:16px; }
.review-controls button { background:transparent; border:1px solid var(--line); border-radius:50%; cursor:pointer; height:44px; width:44px; }
.review-controls button:disabled { cursor:default; opacity:.3; }
.review-controls span { color:var(--muted); font-size:.8rem; min-width:35px; text-align:center; }
.review-track { display:grid; gap:22px; grid-auto-columns:calc((100% - 22px) / 2); grid-auto-flow:column; overflow-x:auto; padding-bottom:18px; position:relative; scrollbar-color:var(--sage) transparent; scrollbar-width:thin; scroll-snap-type:x mandatory; }
.guest-review { background:var(--paper); border:1px solid var(--line); display:flex; flex-direction:column; margin:0; padding:30px; scroll-snap-align:start; }
.review-quote-mark { color:var(--moss); font-family:var(--serif); font-size:2.9rem; height:44px; line-height:1; }
.guest-review blockquote { flex:1; font-family:var(--serif); font-size:1.15rem; line-height:1.7; margin:0 0 24px; }
.guest-review figcaption { border-top:1px solid var(--line); display:flex; flex-wrap:wrap; font-size:.8rem; gap:12px; justify-content:space-between; padding-top:16px; }
.guest-review figcaption strong { font-weight:500; }
.guest-review figcaption span { color:var(--muted); }
.cabin-common-photos figure > button { background:none; border:0; cursor:zoom-in; display:block; height:100%; padding:0; width:100%; }
.cabin-common-photos figcaption { pointer-events:none; }
.cabin-facilities-title { font-size:1rem; font-weight:500; margin:0 0 15px; }
.cabin-common-copy .cabin-facilities ul { column-gap:24px; columns:2; font-size:.88rem; margin:0 0 20px; padding-left:18px; }
.cabin-common-copy .cabin-facilities li { break-inside:avoid; }
.cabin-original-description { border-top:1px solid var(--line); display:grid; gap:48px; grid-template-columns:.7fr 1fr; margin-top:65px; padding-top:45px; }
.cabin-original-description h2 { font-size:var(--type-section-compact); }
.cabin-full-rules { padding-top:20px; padding-bottom:55px; scroll-margin-top:110px; }
.cabin-full-rules h2,.cabin-promotions h2 { font-size:var(--type-section-compact); }
.cabin-rule-details { border-top:1px solid var(--line); }
.cabin-rule-details details { border-bottom:1px solid var(--line); }
.cabin-rule-details summary,.promotion-conditions summary { cursor:pointer; font-size:1rem; font-weight:500; padding:22px 0; }
.cabin-rule-details .rich-content { max-width:960px; padding-bottom:22px; }
.cabin-promotions { background:var(--cream); margin-bottom:35px; padding:40px; }
.cabin-promotions .rich-content { font-size:.94rem; }
.promotion-conditions { border-top:1px solid var(--line); margin-top:25px; }
.promotion-conditions .rich-content { padding-bottom:8px; }
.contact-form-intro { color:var(--muted); font-size:.9rem; margin:0 0 28px; }
.contact-access { align-items:center; border-top:1px solid var(--line); display:grid; gap:30px 55px; grid-template-columns:1fr 1.25fr; padding:32px 0; }
.contact-location { font-family:var(--serif); font-size:1.25rem; margin:10px 0 0; }
.contact-access dl { display:grid; gap:16px; margin:0; }
.contact-access dl > div { align-items:center; display:flex; gap:24px; justify-content:space-between; }
.contact-access dt { color:var(--muted); font-size:.9rem; }
.contact-access dd { color:var(--forest); flex-shrink:0; font-family:var(--serif); font-size:1.45rem; margin:0; }
.contact-travel-note { color:var(--muted); font-size:.75rem; grid-column:1/-1; margin:0; }
.contact-map-section { padding-bottom:100px; }
.contact-map-heading { align-items:center; display:flex; gap:28px; justify-content:space-between; margin-bottom:30px; }
.contact-map-heading h2 { font-size:var(--type-section-compact); margin:12px 0; }
.contact-map-heading p:not(.eyebrow) { color:var(--muted); font-size:.94rem; }
.contact-map-heading > a { flex-shrink:0; }
.contact-map { background:#e9ede5; border:1px solid var(--line); height:480px; position:relative; }
.contact-map iframe { border:0; height:100%; width:100%; }
.contact-map-placeholder { align-items:center; display:flex; flex-direction:column; height:100%; justify-content:center; padding:32px; text-align:center; }
.contact-map-placeholder[hidden] { display:none; }
.contact-map-placeholder > span { align-items:center; border:1px solid #b6c6b8; border-radius:50%; color:var(--forest); display:flex; font-size:1.7rem; height:58px; justify-content:center; margin-bottom:18px; width:58px; }
.contact-map-placeholder h3 { font-size:1.5rem; font-weight:400; margin:0; }
.contact-map-placeholder p { color:var(--muted); font-size:.86rem; max-width:410px; }
.contact-map-placeholder > a { font-size:.76rem; margin-top:14px; text-decoration:underline; }
body { padding-bottom:var(--cookie-notice-height,0px); }
.cookie-notice { background:#fffdf8; border:1px solid #d9dfd7; bottom:16px; box-shadow:0 6px 40px rgba(9,35,27,.18); color:var(--forest); left:16px; max-height:calc(100dvh - 32px); overflow:auto; padding:22px 28px; position:fixed; right:16px; z-index:140; }
.cookie-notice[hidden] { display:none; }
.cookie-notice-summary { align-items:center; display:flex; gap:28px; justify-content:space-between; }
.cookie-notice-summary > div { max-width:680px; }
.cookie-notice h2 { font-family:var(--display); font-size:1.05rem; font-weight:500; letter-spacing:0; margin:0 0 7px; }
.cookie-notice p { color:var(--muted); font-size:.8rem; line-height:1.6; margin:0; }
.cookie-notice p a { color:var(--forest); text-decoration:underline; }
.cookie-notice-summary form { align-items:center; display:flex; flex-shrink:0; gap:10px; }
.cookie-notice .button { font-size:.65rem; min-height:42px; padding:12px 18px; }
.cookie-text-button { background:none; border:0; color:var(--forest); cursor:pointer; font-family:inherit; font-size:.73rem; padding:10px 4px; text-decoration:underline; }
.cookie-notice-details { align-items:start; border-top:1px solid var(--line); display:grid; gap:30px; grid-template-columns:1fr 1fr auto; margin-top:20px; padding-top:20px; }
.cookie-notice-details[hidden] { display:none; }
.cookie-notice-details strong { font-size:.82rem; font-weight:500; }
.cookie-notice-details strong small { color:var(--muted); font-size:.65rem; margin-left:10px; }
.cookie-notice-details p { margin-top:7px; }
.cookie-external-choice { align-items:center; display:flex; gap:9px; margin:0; }
.cookie-external-choice input { accent-color:var(--forest); height:18px; margin:0; width:18px; }
.cookie-inventory { border-top:1px solid var(--line); margin:28px 0; }
.cookie-inventory > div { border-bottom:1px solid var(--line); padding:18px 0; }
.cookie-inventory dt { color:var(--forest); font-family:monospace; font-size:.85rem; overflow-wrap:anywhere; }
.cookie-inventory dd { margin:7px 0 0; }
@media(max-width:1050px) {
    .cookie-notice-summary { align-items:stretch; flex-direction:column; gap:16px; }
    .cookie-notice-summary > div { max-width:none; }
    .cookie-notice-details { grid-template-columns:1fr 1fr; }
    .cookie-notice-details > button { justify-self:start; }
}
@media(max-width:760px) {
    .contact-access { gap:24px; grid-template-columns:1fr; }
    .contact-map-heading { align-items:start; flex-direction:column; }
    .contact-map { height:420px; }
    .cookie-notice { bottom:8px; left:8px; padding:18px; right:8px; max-height:calc(100dvh - 16px); }
    .cookie-notice-summary form { flex-wrap:wrap; gap:8px; }
    .cookie-notice-details { gap:18px; grid-template-columns:1fr; }
    .cookie-notice-summary form .button { flex:1; white-space:nowrap; }
}
.contact-details a.button { align-self:flex-start; font-family:var(--display); font-size:.72rem; font-weight:600; margin-top:16px; }
.cabin-rate-notes { color:var(--muted); display:grid; gap:24px; grid-template-columns:1fr 1fr; margin:22px 0; font-size:.86rem; }
.cabin-rate-notes p { margin:0; }
.cabin-video { display:grid; gap:48px; grid-template-columns:.65fr 1fr; align-items:center; }
.cabin-video h2 { font-size:var(--type-section-compact); }
.cabin-video video { aspect-ratio:16/9; background:var(--forest-deep); object-fit:cover; width:100%; }
.about-values-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; padding-bottom:35px; }
.about-values article { border-top:1px solid var(--line); padding-top:24px; }
.about-values h2 { font-size:1.45rem; line-height:1.25; }
.about-values p { color:var(--muted); font-size:.94rem; line-height:1.8; margin:0; }
.leisure-carriage:not(.has-photo) { display:block; min-height:0; }
.leisure-carriage:not(.has-photo) .leisure-story-copy { display:block; max-width:860px; margin:auto; }
@media(max-width:760px) {
    .guest-reviews-heading { align-items:flex-start; flex-direction:column; gap:20px; }
    .review-track { grid-auto-columns:100%; }
    .guest-review { padding:25px; }
    .cabin-original-description { gap:18px; grid-template-columns:1fr; }
    .cabin-rate-notes,.cabin-video,.about-values-grid { grid-template-columns:1fr; }
    .cabin-promotions { padding:26px; }
    .leisure-carriage:not(.has-photo) .leisure-story-copy > small { display:block; margin-top:28px; }
}
@media(max-width:480px) { .cabin-common-copy .cabin-facilities ul { columns:1; } }

/* Header */
.site-header { color: white; left: 0; padding: 18px 0; position: fixed; right: 0; top: 0; transition: background .3s, padding .3s, box-shadow .3s; z-index: 80; }
.site-header::before { background: linear-gradient(to bottom, rgba(5,27,21,.62), transparent); content: ""; inset: 0 0 -45px; pointer-events: none; position: absolute; }
.site-header.is-scrolled { background: rgba(13,41,34,.95); box-shadow: 0 12px 38px rgba(0,0,0,.12); padding-block: 10px; }
.site-header.is-scrolled::before { opacity: 0; }
.header-inner { align-items: center; display: grid; gap: 32px; grid-template-columns: auto 1fr auto; margin: auto; max-width: 1460px; padding: 0 30px; position: relative; z-index: 1; }
.brand { align-items: center; display: inline-flex; gap: 12px; }
.brand-logo { height: 58px; object-fit: contain; width: auto; }
.site-header .brand-logo { filter: brightness(0) invert(1); }
.site-footer .brand-logo { filter: brightness(0) invert(1); }
.site-header.is-scrolled .brand-logo { height: 51px; }
.brand-mark { border-bottom: 3px solid #9baa70; height: 43px; position: relative; width: 48px; }
.brand-mark::before, .brand-mark::after { border-left: 2px solid currentColor; border-top: 2px solid currentColor; content: ""; position: absolute; transform: rotate(45deg); }
.brand-mark::before { height: 25px; left: 6px; top: 9px; width: 25px; }
.brand-mark::after { height: 18px; left: 25px; top: 16px; width: 18px; }
.brand-mark i { background: var(--sand); bottom: 3px; height: 16px; left: 19px; position: absolute; width: 12px; }
.brand-mark b { border: 2px solid currentColor; border-bottom: 0; border-radius: 24px 24px 0 0; inset: 0 1px 0; position: absolute; }
.brand-copy { display: flex; flex-direction: column; font-family: var(--display); line-height: .9; text-transform: uppercase; }
.brand-copy strong { font-size: .68rem; letter-spacing: .22em; }
.brand-copy em { font-size: 1.12rem; font-style: normal; font-weight: 600; letter-spacing: .05em; }
.site-nav { align-items: center; display: flex; gap: clamp(16px, 2.4vw, 38px); justify-content: center; }
.site-nav a { font-size: .72rem; font-weight: 700; letter-spacing: .1em; opacity: .78; position: relative; text-transform: uppercase; }
.site-nav a::after { background: var(--sand); bottom: -8px; content: ""; height: 1px; left: 50%; position: absolute; transition: .2s; width: 0; }
.site-nav a:hover, .site-nav a.is-active { opacity: 1; }
.site-nav a:hover::after, .site-nav a.is-active::after { left: 0; width: 100%; }
.header-actions { align-items: center; display: flex; gap: 22px; }
.account-link { align-items: center; display: flex; font-size: .72rem; font-weight: 700; gap: 7px; letter-spacing: .08em; text-transform: uppercase; }
.account-link span { font-size: 1.55rem; font-weight: 400; line-height: 0; }
.nav-toggle { background: none; border: 0; cursor: pointer; display: none; height: 44px; width: 44px; }
.nav-toggle > span:not(.sr-only) { background: white; display: block; height: 1px; margin: 6px auto; width: 25px; }

/* Feedback */
.flash-stack { display: grid; gap: 10px; position: fixed; right: 24px; top: 95px; width: min(440px, calc(100% - 48px)); z-index: 110; }
.flash { align-items: flex-start; background: white; border-left: 4px solid var(--forest); box-shadow: var(--shadow); display: flex; font-size: .9rem; gap: 15px; justify-content: space-between; padding: 17px 18px; }
.flash-error { border-color: #a8493e; }
.flash-success { border-color: #5e8b64; }
.flash-info { border-color: #ba924e; }
.flash button { background: none; border: 0; cursor: pointer; font-size: 1.2rem; }

/* Home */
.hero-home { align-items: flex-end; color: white; display: flex; min-height: min(890px, 92vh); overflow: hidden; padding-bottom: clamp(125px, 14vh, 175px); position: relative; }
.hero-media, .hero-shade { inset: 0; position: absolute; }
.hero-media { background-position: center 42%; background-size: cover; transform: scale(1.01); }
.photo-background { background-image: var(--hero); }
@media (max-width: 760px) {
    .photo-background[style], .leisure-hero[style] { background-image: var(--hero-small, var(--hero)); }
    .page-hero[style] { background-image: linear-gradient(to top, rgba(5,29,22,.7), rgba(5,29,22,.08)), var(--hero-small, var(--hero)); }
}
.hero-shade { background: linear-gradient(90deg, rgba(5,28,22,.7) 0%, rgba(5,28,22,.2) 59%, rgba(5,28,22,.08)), linear-gradient(to top, rgba(4,24,19,.42), transparent 55%); }
.hero-content { position: relative; z-index: 1; }
.hero-content h1 { font-size: var(--type-hero); margin-bottom: 22px; max-width: 900px; }
.hero-lead { font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.6; max-width: 620px; }
.hero-buttons { align-items: center; display: flex; gap: 34px; margin-top: 36px; }
.hero-note { bottom: 34px; display: flex; font-size: .65rem; gap: 20px; left: 32px; letter-spacing: .16em; opacity: .75; position: absolute; text-transform: uppercase; writing-mode: vertical-rl; }
.availability-wrap { margin-top: -45px; position: relative; z-index: 4; }
.availability-bar { align-items: stretch; background: var(--paper); box-shadow: var(--shadow); display: grid; grid-template-columns: repeat(4, 1fr) auto; padding: 14px; }
.availability-bar label { border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; justify-content: center; min-height: 74px; padding: 0 28px; }
.availability-bar label span { color: var(--moss); font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.availability-bar input, .availability-bar select { appearance: none; background: transparent; border: 0; color: var(--ink); font-family: var(--serif); font-size: 1.16rem; outline: none; padding: 0; }
.availability-bar .button { border-radius: 0; min-width: 230px; }
.intro-section { display: grid; gap: clamp(60px, 10vw, 160px); grid-template-columns: 1.08fr .92fr; }
.intro-section h2 { margin: 0; }
.intro-copy { max-width: 570px; padding-top: 45px; }
.intro-copy > p { color: #4c5750; font-family: var(--serif); font-size: 1.18rem; line-height: 1.65; }
.intro-copy .text-link { margin-top: 18px; }
.cabins-section { background: var(--cream); overflow: hidden; }
.heading-row { align-items: flex-end; display: flex; gap: 50px; justify-content: space-between; }
.heading-row h2 { margin-bottom: 0; }
.heading-row > p { color: var(--muted); max-width: 390px; }
.cabin-cards { display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); margin-top: 70px; }
.cabin-card { background: var(--paper); }
.cabin-image { display: block; height: 450px; overflow: hidden; position: relative; }
.cabin-image img { height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1); width: 100%; }
.cabin-card:hover .cabin-image img { transform: scale(1.04); }
.cabin-image .number { background: var(--paper); bottom: 0; color: var(--forest); font-family: var(--serif); font-size: 1.2rem; padding: 12px 17px; position: absolute; right: 0; }
.cabin-body { align-items: center; display: grid; grid-template-columns: 1fr auto; padding: 28px 28px 30px; }
.cabin-body h3 { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; margin: 0 0 4px; }
.cabin-body p { color: var(--muted); font-size: .8rem; margin: 0; }
.round-arrow { align-items: center; border: 1px solid var(--line); border-radius: 50%; display: flex; font-size: 1.1rem; height: 48px; justify-content: center; transition: .2s; width: 48px; }
.round-arrow:hover { background: var(--forest); color: white; }
.experience-section { background: var(--forest); color: white; display: grid; grid-template-columns: 55% 45%; min-height: 720px; }
.experience-photo { min-height: 720px; overflow: hidden; }
.experience-photo img { height: 100%; object-fit: cover; width: 100%; }
.experience-copy { align-self: center; max-width: 650px; padding: 80px clamp(50px, 7vw, 120px); }
.experience-copy h2 { font-size: var(--type-section); }
.experience-copy > p:not(.eyebrow) { color: rgba(255,255,255,.72); font-family: var(--serif); font-size: 1.1rem; line-height:1.65; margin: 28px 0 40px; }
.center-heading { margin: auto; max-width: 930px; text-align: center; }
.slow-grid { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); margin: 75px 0 55px; }
.slow-grid article { padding: 42px 38px 45px; }
.slow-grid article + article { border-left: 1px solid var(--line); }
.slow-grid span { color: var(--moss); font-family: var(--serif); }
.slow-grid h3 { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; margin: 28px 0 12px; }
.slow-grid p { color: var(--muted); margin: 0; }
.slow-image { height: min(60vw, 680px); overflow: hidden; }
.slow-image img { height: 100%; object-fit: cover; width: 100%; }
.film-section { align-items: center; color: white; display: flex; justify-content: center; min-height: 760px; overflow: hidden; position: relative; text-align: center; }
.film-section > video, .film-overlay { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.film-section > video { z-index: 0; }
.film-overlay { background: rgba(9,35,27,.47); }
.film-overlay { pointer-events: none; z-index: 1; }
.film-copy { pointer-events: none; position: relative; z-index: 2; }
.film-copy a { pointer-events: auto; }
.film-copy h2 { font-size: clamp(2.7rem, 4.8vw, 4.7rem); }
.circle-play { align-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; display: inline-flex; flex-direction: column; font-size: .65rem; font-weight: 700; height: 122px; justify-content: center; letter-spacing: .13em; text-transform: uppercase; transition: .25s; width: 122px; }
.circle-play b { font-size: .75rem; margin-top: 6px; }
.circle-play:hover { background: white; color: var(--forest); transform: scale(1.05); }
.home-gallery { background: var(--cream); }
.home-mosaic { display: grid; gap: 14px; grid-template-columns: 1.2fr .8fr 1fr; grid-template-rows: 340px 280px; margin-top: 70px; }
.mosaic-item { border: 0; cursor: zoom-in; overflow: hidden; padding: 0; }
.mosaic-item img { height: 100%; object-fit: cover; transition: .5s; width: 100%; }
.mosaic-item:hover img { transform: scale(1.035); }
.mosaic-1 { grid-row: 1 / 3; }
.mosaic-2 { grid-column: 2; }
.mosaic-3 { grid-column: 3; grid-row: 1 / 3; }
.testimonial-section { background: var(--sand); padding: clamp(90px, 11vw, 170px) 0; }
.testimonial-card { max-width: 970px; text-align: center; }
.quote-mark { color: var(--forest); display: block; font-family: var(--serif); font-size: 5rem; height: 65px; }
.testimonial-card blockquote { font-family: var(--serif); font-size: clamp(1.55rem, 2.8vw, 2.8rem); font-weight:400; line-height: 1.38; margin: 20px 0 35px; }
.testimonial-card p { font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.final-cta { text-align: center; }
.final-cta h2 { margin-bottom: 45px; }

/* Interior pages */
.page-hero { align-items: flex-end; background-image: linear-gradient(to top, rgba(5,29,22,.7), rgba(5,29,22,.08)), var(--hero); background-position: center; background-size: cover; color: white; display: flex; min-height: 700px; padding: 180px 0 90px; }
.page-hero-inner h1 { font-size: var(--type-page-hero); margin-bottom: 20px; max-width: 980px; }
.page-hero-inner > p:last-child { font-family: var(--serif); font-size: 1.1rem; line-height:1.65; max-width: 610px; }
.page-hero-compact { min-height: 470px; }
.page-hero-compact .page-hero-inner h1 { font-size: clamp(2.8rem, 5vw, 4.7rem); }
.content-layout { display: grid; gap: 80px; grid-template-columns: 220px 1fr; }
.content-layout aside { color: var(--muted); font-size: .85rem; }
.vertical-line { background: var(--line); height: 130px; margin: 25px 0; width: 1px; }
.rich-content { color: #35443d; font-family: var(--serif); font-size: 1.1rem; line-height: 1.82; max-width: 900px; }
.rich-content h2, .rich-content h3 { color: var(--ink); font-family: var(--display); font-weight: 400; letter-spacing: -.025em; line-height: 1.2; }
.rich-content h2 { font-size: var(--type-section-compact); margin: 0 0 30px; }
.rich-content h3 { font-size: 1.6rem; margin-top: 40px; }
.rich-content a { color: var(--forest-soft); text-decoration: underline; text-underline-offset: 4px; }
.rich-content li { margin-bottom: 8px; }
.secondary-content { border-top: 1px solid var(--line); margin-top: 50px; padding-top: 50px; }
/* About: a quieter, editorial heading hierarchy, scoped to this page. */
.about-page { --type-section:clamp(1.875rem,2.7vw,2.5rem); --type-section-compact:clamp(1.625rem,2.25vw,2.125rem); }
.about-page .page-hero-inner h1 { font-family:var(--serif); font-size:clamp(2.625rem,4.6vw,4.25rem); font-weight:400; letter-spacing:-.025em; line-height:1.12; }
.about-page .rich-content h2,.about-page .rich-content h3,.about-page .about-values h2,.about-page .page-gallery .section-heading h2,.about-page .about-video-heading h2,.about-page .inline-cta h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.018em; line-height:1.24; text-wrap:pretty; }
.about-page .rich-content h2 { font-size:var(--type-section-compact); margin:40px 0 16px; }
.about-page .rich-content > h2:first-child,.about-page .secondary-content > h2:first-child { margin-top:0; }
.about-page .rich-content h3 { font-size:clamp(1.375rem,1.75vw,1.625rem); margin:32px 0 14px; }
.legal-layout { display: block; max-width: 980px; }
.legal-layout .rich-content { font-family: var(--sans); font-size: 1rem; }
.simple-hero { padding-top: 190px; padding-bottom: 70px; }
.simple-hero h1 { font-size: var(--type-page-hero); margin: 0 0 20px; }
.simple-hero > p:last-child { color: var(--muted); font-family: var(--serif); font-size: 1.1rem; line-height:1.65; max-width: 600px; }
.page-gallery { background: var(--cream); }
.page-gallery > .section-heading { margin-bottom: 60px; }
.gallery-grid { display: grid; gap: 12px; grid-auto-flow: dense; grid-template-columns: repeat(4, 1fr); }
.gallery-item { background: #e5e2da; border: 0; cursor: zoom-in; height: 300px; overflow: hidden; padding: 0; position: relative; }
.gallery-item:nth-child(7n+1) { grid-row: span 2; height: 612px; }
.gallery-item:nth-child(9n+4) { grid-column: span 2; }
.gallery-item img { height: 100%; object-fit: cover; transition: transform .55s, filter .3s; width: 100%; }
.gallery-item:hover img { filter: brightness(.87); transform: scale(1.04); }
.gallery-item > span { background: rgba(13,41,34,.8); bottom: 10px; color: white; font-size: .65rem; left: 10px; letter-spacing: .08em; padding: 5px 8px; position: absolute; text-transform: uppercase; }
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 auto 35px; max-width: 1300px; }
.filter-row button { background: none; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; font-size: .72rem; font-weight: 700; letter-spacing: .08em; padding: 10px 18px; text-transform: uppercase; }
.filter-row button.is-active { background: var(--forest); color: white; }
.gallery-page { padding-bottom: 130px; }
.gallery-item[hidden] { display: none; }
.gallery-media-section { background: var(--forest-deep); color: white; }
.gallery-media-heading { align-items: end; display: grid; gap: 70px; grid-template-columns: 1fr .72fr; margin-bottom: 60px; }
.gallery-media-heading h2 { font-size: var(--type-section); margin: 0; }
.gallery-media-heading > p { color: rgba(255,255,255,.65); font-family: var(--serif); font-size: 1.02rem; line-height: 1.72; margin: 0; max-width: 560px; }
.media-video-grid { display: grid; gap: 60px 18px; grid-template-columns: repeat(3,1fr); }
.media-video-grid video { aspect-ratio: 16/9; background: #071d17; object-fit: cover; width: 100%; }
.media-video-grid article > .eyebrow { margin: 20px 0 8px; }
.media-video-grid h3 { font-family: var(--serif); font-size: 1.4rem; font-weight: 400; line-height: 1.3; margin: 0 0 8px; }
.media-video-grid article > p:last-child { color: rgba(255,255,255,.58); font-size: .84rem; margin: 0; }
.about-video-section { background: #0b2a21; color: white; }
.about-video-heading { align-items: end; display: grid; gap: 70px; grid-template-columns: 1fr .72fr; margin-bottom: 60px; }
.about-video-heading h2 { font-size: var(--type-section); margin: 0; max-width: 780px; }
.about-video-heading > p { color: rgba(255,255,255,.62); font-family: var(--serif); font-size: 1.02rem; line-height: 1.72; margin: 0; max-width: 560px; }
.about-video-grid { display: grid; gap: 55px 18px; grid-template-columns: 1fr 1fr; }
.about-video-grid article { display: grid; grid-template-columns: 48px 1fr; }
.about-video-grid video { aspect-ratio: 4/3; background: #061b15; grid-column: 1/3; object-fit: cover; width: 100%; }
.about-video-grid article > span { color: var(--sage); font-family: var(--serif); font-size: 1rem; padding-top: 19px; }
.about-video-grid h3 { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; margin: 15px 0 0; }
.inline-cta { align-items: center; background: var(--forest); color: white; display: flex; justify-content: space-between; margin-bottom: 100px; padding: 65px 75px; }
.inline-cta h2 { font-size: var(--type-section-compact); margin: 0; }
.cabin-intro { max-width: 920px; text-align: center; }
.cabin-intro > p:last-child { color: var(--muted); font-family: var(--serif); font-size: 1.08rem; line-height:1.7; margin: 30px auto 0; max-width: 720px; }
.cabin-detail-list { padding-bottom: 80px; }
.cabin-detail { align-items: stretch; display: grid; grid-template-columns: 56% 44%; margin-bottom: 90px; }
.cabin-detail:nth-child(even) .cabin-detail-image { order: 2; }
.cabin-detail-image { height: 650px; overflow: hidden; position: relative; }
.cabin-detail-image img { height: 100%; object-fit: cover; width: 100%; }
.cabin-detail-image > span { background: var(--sand); bottom: 0; font-family: var(--serif); font-size: 1.2rem; padding: 15px 20px; position: absolute; right: 0; }
.cabin-detail-copy { align-self: center; padding: 60px clamp(50px, 7vw, 110px); }
.cabin-detail-copy h2 { font-size: var(--type-section-compact); margin-bottom: 23px; }
.cabin-detail-copy > p:not(.eyebrow) { color: var(--muted); }
.cabin-detail-copy dl { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,1fr); margin: 32px 0; padding: 25px 0; }
.cabin-detail-copy dl div { display: flex; flex-direction: column; }
.cabin-detail-copy dt { font-family: var(--serif); font-size: 1.8rem; }
.cabin-detail-copy dd { color: var(--muted); font-size: .7rem; margin: 0; text-transform: uppercase; }
.amenity-list { display: grid; font-size: .84rem; gap: 7px; grid-template-columns: 1fr 1fr; list-style: none; margin: 0 0 34px; padding: 0; }
.amenity-list li::before { color: var(--forest); content: "✓"; margin-right: 8px; }
.cabin-common { padding-top: 20px; }
.cabin-common-intro { margin-bottom: 65px; text-align: center; }
.cabin-common-intro h2 { margin-inline: auto; max-width: 900px; }
.cabin-common-intro > p:last-child { color: var(--muted); font-family: var(--serif); font-size: 1.08rem; line-height:1.7; margin: 28px auto 0; max-width: 760px; }
.cabin-common-layout { align-items: stretch; display: grid; grid-template-columns: 58% 42%; }
.cabin-common-photos { display: grid; gap: 7px; grid-template-columns: 1.25fr .75fr; grid-template-rows: 1fr 1fr; min-height: 760px; }
.cabin-common-photos figure { margin: 0; overflow: hidden; position: relative; }
.cabin-common-photos figure:first-child { grid-row: 1/3; }
.cabin-common-photos img { height: 100%; object-fit: cover; transition: transform .5s; width: 100%; }
.cabin-common-photos figure:hover img { transform: scale(1.025); }
.cabin-common-photos figcaption { background: rgba(11,42,33,.84); bottom: 12px; color: white; font-size: .62rem; left: 12px; letter-spacing: .1em; padding: 7px 10px; position: absolute; text-transform: uppercase; }
.cabin-common-copy { align-content: center; background: var(--cream); display: grid; padding: 65px clamp(45px,6vw,95px); }
.cabin-common-copy h2 { font-size: var(--type-section-compact); margin-bottom: 22px; }
.cabin-common-copy > p:not(.eyebrow,.cabin-allocation-note) { color: var(--muted); }
.cabin-common-copy dl { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,1fr); margin: 30px 0; padding: 23px 0; }
.cabin-common-copy dl div { display: flex; flex-direction: column; }
.cabin-common-copy dt { font-family: var(--serif); font-size: 1.8rem; }
.cabin-common-copy dd { color: var(--muted); font-size: .68rem; margin: 0; text-transform: uppercase; }
.cabin-allocation-note { align-items: center; background: white; display: flex; font-size: .72rem; gap: 12px; line-height: 1.45; margin: 0 0 26px; padding: 12px 15px; }
.cabin-allocation-note span { align-items: center; background: var(--forest); border-radius: 50%; color: white; display: flex; flex: 0 0 36px; font-family: var(--serif); height: 36px; justify-content: center; }
.cabin-common-copy .button { justify-self: start; }
.cabin-practical { padding-top:clamp(70px,8vw,125px); }
.cabin-practical-heading { margin-bottom:46px; max-width:780px; }
.cabin-practical-heading h2 { font-size:var(--type-section-compact); }
.cabin-rate-strip { align-items:center; background:var(--forest); color:white; display:grid; gap:45px; grid-template-columns:minmax(220px,.75fr) minmax(280px,1fr) auto; padding:34px clamp(28px,4vw,55px); }
.cabin-rate-strip > div { display:flex; flex-direction:column; }
.cabin-rate-strip > div > span { color:var(--sage); font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.cabin-rate-strip > div > strong { font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:500; margin:5px 0 2px; }
.cabin-rate-strip > div > small { color:rgba(255,255,255,.62); }
.cabin-rate-strip > p { color:rgba(255,255,255,.72); font-size:.78rem; line-height:1.65; margin:0; }
.cabin-rate-strip dl { display:grid; gap:0; grid-template-columns:repeat(3,minmax(88px,1fr)); margin:0; }
.cabin-rate-strip dl div { border-left:1px solid rgba(255,255,255,.18); padding:3px 18px; }
.cabin-rate-strip dt { font-family:var(--serif); font-size:1.25rem; white-space:nowrap; }
.cabin-rate-strip dd { color:rgba(255,255,255,.58); font-size:.58rem; letter-spacing:.06em; margin:2px 0 0; text-transform:uppercase; }
.cabin-practical-grid { border:1px solid var(--line); border-top:0; display:grid; grid-template-columns:repeat(3,1fr); }
.cabin-practical-grid article { padding:38px clamp(25px,3vw,42px) 42px; }
.cabin-practical-grid article + article { border-left:1px solid var(--line); }
.cabin-practical-grid article > span { color:var(--moss); font-family:var(--serif); font-size:.85rem; }
.cabin-practical-grid h3 { font-family:var(--serif); font-size:1.45rem; font-weight:500; margin:16px 0 22px; }
.cabin-practical-grid ul { color:var(--muted); display:grid; gap:13px; line-height:1.55; list-style:none; margin:0; padding:0; }
.cabin-practical-grid li { padding-left:18px; position:relative; }
.cabin-practical-grid li::before { color:var(--moss); content:'—'; left:0; position:absolute; }

/* Timp liber — editorial journey */
.leisure-hero { background:center/cover no-repeat var(--hero); color:white; min-height:min(820px,88vh); position:relative; }
.leisure-hero-overlay { background:linear-gradient(90deg,rgba(7,31,24,.8) 0%,rgba(7,31,24,.32) 56%,rgba(7,31,24,.52) 100%); inset:0; position:absolute; }
.leisure-hero-content { align-items:end; display:grid; gap:80px; grid-template-columns:minmax(0,1fr) 280px; min-height:min(820px,88vh); padding-bottom:clamp(55px,8vw,105px); padding-top:160px; position:relative; z-index:1; }
.leisure-hero-content > div { max-width:760px; }
.leisure-hero h1 { font-size:clamp(3.1rem,6vw,5.5rem); margin:12px 0 22px; }
.leisure-hero-content > div > p:last-child { color:rgba(255,255,255,.82); font-family:var(--serif); font-size:clamp(1.05rem,1.5vw,1.3rem); line-height:1.6; max-width:650px; }
.leisure-hero ol { border-top:1px solid rgba(255,255,255,.36); list-style:none; margin:0; padding:0; }
.leisure-hero li { align-items:center; border-bottom:1px solid rgba(255,255,255,.24); display:grid; font-size:.7rem; font-weight:600; grid-template-columns:45px 1fr; letter-spacing:.06em; padding:17px 2px; text-transform:uppercase; }
.leisure-hero li span { color:var(--sand); font-family:var(--serif); font-size:.9rem; }
.leisure-intro { align-items:start; display:grid; gap:45px; grid-template-columns:110px minmax(300px,.85fr) minmax(320px,1fr); }
.leisure-intro-number { color:var(--moss); font-family:var(--serif); font-size:.92rem; padding-top:29px; }
.leisure-intro h2 { font-size:var(--type-section-compact); margin-top:12px; }
.leisure-intro > p { color:var(--muted); font-family:var(--serif); font-size:1.12rem; line-height:1.75; margin:30px 0 0; }
.leisure-stories { display:grid; gap:10px; }
.leisure-story { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr); min-height:650px; }
.leisure-story.is-reversed { grid-template-columns:minmax(390px,.65fr) minmax(0,1.35fr); }
.leisure-story.is-reversed .leisure-story-image { grid-column:2; }
.leisure-story.is-reversed .leisure-story-copy { grid-column:1; grid-row:1; }
.leisure-story-image { background:none; border:0; cursor:zoom-in; overflow:hidden; padding:0; position:relative; text-align:left; }
.leisure-story-image img { height:100%; inset:0; object-fit:cover; position:absolute; transition:transform .7s cubic-bezier(.2,.7,.2,1); width:100%; }
.leisure-story-image:hover img { transform:scale(1.025); }
.leisure-story-copy { align-content:center; background:var(--cream); display:grid; padding:clamp(45px,6vw,90px); }
.leisure-story:nth-child(2) .leisure-story-copy { background:#f0e3ca; }
.leisure-story:nth-child(3) .leisure-story-copy { background:#eef1e9; }
.leisure-story-copy > span { color:var(--moss); font-family:var(--serif); font-size:1rem; }
.leisure-story-copy .eyebrow { margin-top:35px; }
.leisure-story-copy h2 { font-size:var(--type-section-compact); margin:14px 0 24px; }
.leisure-story-copy > p:not(.eyebrow) { color:var(--muted); font-family:var(--serif); font-size:1.03rem; line-height:1.72; }
.leisure-story-copy > small { border-top:1px solid rgba(20,56,44,.15); color:#737c77; line-height:1.55; margin-top:28px; padding-top:18px; }
.leisure-places { background:var(--forest); color:white; margin-top:10px; }
.leisure-places-layout { display:grid; gap:clamp(55px,8vw,120px); grid-template-columns:minmax(320px,.8fr) minmax(420px,1.2fr); }
.leisure-places-heading h2 { font-size:var(--type-section-compact); margin:15px 0 25px; }
.leisure-places-heading > p:not(.eyebrow) { color:rgba(255,255,255,.7); font-family:var(--serif); font-size:1.02rem; line-height:1.7; }
.leisure-places-heading > button { aspect-ratio:4/3; background:none; border:0; color:white; cursor:zoom-in; display:block; margin-top:40px; overflow:hidden; padding:0; position:relative; width:100%; }
.leisure-places-heading > button img { display:block; height:100%; inset:0; object-fit:cover; position:absolute; width:100%; }
.leisure-places-heading > button span { background:rgba(8,38,29,.88); bottom:12px; font-size:.6rem; left:12px; letter-spacing:.08em; padding:8px 11px; position:absolute; text-transform:uppercase; }
.leisure-place-lists { border-top:1px solid rgba(255,255,255,.23); }
.leisure-place-lists article { border-bottom:1px solid rgba(255,255,255,.18); display:grid; gap:20px; grid-template-columns:45px 180px 1fr; padding:31px 0; }
.leisure-place-lists article > span { color:var(--sand); font-family:var(--serif); }
.leisure-place-lists h3 { font-family:var(--serif); font-size:1.3rem; font-weight:500; margin:0; }
.leisure-place-lists ul { color:rgba(255,255,255,.68); display:grid; gap:10px; list-style:none; margin:0; padding:0; }
.leisure-place-lists li { line-height:1.45; padding-left:15px; position:relative; }
.leisure-place-lists li::before { color:var(--sand); content:'·'; left:0; position:absolute; }
.leisure-journal { overflow:hidden; }
.leisure-journal-heading { align-items:end; display:flex; gap:40px; justify-content:space-between; margin-bottom:38px; }
.leisure-journal-heading h2 { font-size:var(--type-section-compact); max-width:780px; }
.leisure-journal-heading > p { color:var(--muted); font-size:.68rem; margin:0 0 8px; white-space:nowrap; }
.leisure-photo-ribbon { display:grid; gap:8px; grid-auto-columns:minmax(220px,27vw); grid-auto-flow:column dense; grid-template-rows:190px 190px; overflow-x:auto; overscroll-behavior-x:contain; padding-bottom:12px; scroll-snap-type:x proximity; scrollbar-color:var(--moss) var(--line); scrollbar-width:thin; }
.leisure-photo { background:#dde2dc; border:0; cursor:zoom-in; overflow:hidden; padding:0; position:relative; scroll-snap-align:start; }
.leisure-photo:nth-child(5n+1),.leisure-photo:nth-child(5n+4) { grid-row:span 2; }
.leisure-photo:nth-child(7n+3) { grid-column:span 2; }
.leisure-photo img { height:100%; object-fit:cover; transition:transform .5s; width:100%; }
.leisure-photo:hover img { transform:scale(1.035); }
.leisure-photo span { align-items:center; background:rgba(10,43,33,.82); bottom:10px; color:white; display:flex; font-family:var(--serif); height:34px; justify-content:center; position:absolute; right:10px; width:34px; }
.leisure-scroll-hint { color:var(--muted); font-size:.68rem; letter-spacing:.06em; margin:13px 0 0; text-align:right; text-transform:uppercase; }
.video-page { max-width: 1100px; }
.video-intro { margin-bottom: 70px; }
.video-grid { display: grid; gap: 70px 28px; grid-template-columns: 1fr 1fr; }
.video-grid video { aspect-ratio: 16/9; background: var(--forest-deep); object-fit: cover; width: 100%; }
.video-grid h2 { font-family: var(--serif); font-size: 1.55rem; font-weight:400; margin: 20px 0 5px; }
.video-grid p { color: var(--muted); }

/* Booking and contact */
.booking-hero { background: var(--forest); color: white; display: grid; grid-template-columns: 52% 48%; min-height: 650px; padding-top: 80px; }
.booking-hero-image { background-position: center; background-size: cover; grid-column: 1; grid-row: 1; }
.booking-hero > .shell { align-self: center; grid-column: 2; grid-row: 1; padding: 70px 7vw; width: auto; }
.booking-hero h1 { font-size: var(--type-page-hero); }
.booking-hero > .shell > p:last-child { color: rgba(255,255,255,.75); font-family: var(--serif); font-size: 1.08rem; line-height:1.68; max-width: 520px; }
.booking-section { align-items: start; display: grid; gap: clamp(50px,7vw,110px); grid-template-columns: 1fr 310px; }
.form-section { border-top: 1px solid var(--line); display: grid; gap: 28px; grid-template-columns: 48px 1fr; padding: 46px 0 60px; }
.form-step { color: var(--moss); font-family: var(--serif); font-size: 1.1rem; }
.form-section h2 { font-size: 2.2rem; margin: 0 0 30px; }
.form-grid { display: grid; gap: 22px; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
.form-grid.three { grid-template-columns: repeat(3,1fr); }
.form-grid .full, .full-row { grid-column: 1/-1; }
label { display: flex; flex-direction: column; gap: 8px; }
label > span { color: #536059; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
label > span small { font-weight: 400; }
input, select, textarea { background: white; border: 1px solid var(--line); border-radius: 0; color: var(--ink); outline: none; padding: 14px 16px; transition: border .2s, box-shadow .2s; width: 100%; }
input, select { min-height: 52px; }
input:focus, select:focus, textarea:focus { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(23,60,49,.09); }
.cabin-options { display: grid; gap: 12px; }
.cabin-option { align-items: center; border: 1px solid var(--line); cursor: pointer; display: grid; gap: 18px; grid-template-columns: 110px 1fr 30px; padding: 10px; }
.cabin-option:has(input:checked) { background: rgba(200,209,191,.3); border-color: var(--forest); }
.cabin-option input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.cabin-option img { height: 82px; object-fit: cover; width: 110px; }
.cabin-option span { display: flex; flex-direction: column; }
.cabin-option strong { font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }
.cabin-option small { color: var(--muted); }
.cabin-option b { align-items: center; background: var(--forest); border-radius: 50%; color: white; display: none; height: 26px; justify-content: center; width: 26px; }
.cabin-option:has(input:checked) b { display: flex; }
.compact { margin-top: 22px; }
.consent { align-items: flex-start; display: flex; flex-direction: row; gap: 10px; margin: 24px 0; }
.consent input { flex: 0 0 18px; min-height: 18px; padding: 0; width: 18px; }
.consent span { letter-spacing: 0; line-height: 1.45; text-transform: none; }
.form-note { color: var(--muted); font-size: .75rem; margin: 15px 0 0; }
.booking-aside { position: sticky; top: 110px; }
.booking-aside > div { background: var(--cream); padding: 35px; }
.booking-aside ul { list-style: none; margin: 0; padding: 0; }
.booking-aside li { border-top: 1px solid var(--line); display: flex; flex-direction: column; padding: 17px 0; }
.booking-aside li span { color: var(--muted); }
.contact-mini { background: var(--forest) !important; color: white; display: flex; flex-direction: column; margin-top: 12px; }
.contact-mini span { color: var(--sage); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.contact-mini a { font-family: var(--serif); font-size: 1.2rem; margin-top: 9px; }
.success-page { max-width: 850px; padding-top: 200px; text-align: center; }
.success-mark { align-items: center; border: 1px solid var(--forest); border-radius: 50%; color: var(--forest); display: flex; font-size: 2rem; height: 80px; justify-content: center; margin: 0 auto 40px; width: 80px; }
.success-page h1 { font-size: var(--type-page-hero); }
.success-page > p:not(.eyebrow) { color: var(--muted); font-family: var(--serif); font-size: 1.08rem; line-height:1.7; margin: 28px auto 38px; max-width: 620px; }
.success-page > div:last-child { align-items: center; display: flex; gap: 30px; justify-content: center; }
.contact-hero { align-items: center; display: grid; gap: 90px; grid-template-columns: .85fr 1.15fr; padding-top: 180px; }
.contact-hero h1 { font-size: var(--type-page-hero); }
.contact-hero > div:first-child > p:last-child { color: var(--muted); font-family: var(--serif); font-size: 1.08rem; line-height:1.68; }
.contact-photo { height: 600px; }
.contact-photo img { height: 100%; object-fit: cover; width: 100%; }
.contact-section { border-top: 1px solid var(--line); display: grid; gap: 100px; grid-template-columns: .65fr 1.35fr; padding-bottom: 130px; padding-top: 80px; }
.contact-details > div { border-bottom: 1px solid var(--line); display: flex; flex-direction: column; padding: 20px 0; }
.contact-details span { color: var(--moss); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-details a, .contact-details p { font-family: var(--serif); font-size: 1.18rem; margin: 5px 0 0; }
.contact-form .button { margin-top: 24px; }

/* Auth & account */
.auth-page { background: var(--cream); display: grid; grid-template-columns: 50% 50%; min-height: 100vh; }
.auth-photo { background-position: center; background-size: cover; color: white; display: flex; flex-direction: column; justify-content: space-between; padding: 120px 60px 55px; position: relative; }
.auth-photo::before { background: linear-gradient(to bottom,rgba(6,28,22,.4),rgba(6,28,22,.65)); content:""; inset:0; position:absolute; }
.auth-photo > * { position: relative; }
.auth-photo > div p { font-family: var(--serif); font-size: 1.55rem; font-weight:400; line-height: 1.42; max-width: 540px; }
.auth-panel { align-items: center; display: flex; justify-content: center; padding: 130px 60px 80px; }
.auth-box { max-width: 510px; width: 100%; }
.auth-box h1 { font-size: var(--type-section-compact); margin-bottom: 15px; }
.auth-box > p:not(.eyebrow,.auth-switch) { color: var(--muted); margin-bottom: 30px; }
.auth-box form { display: grid; gap: 18px; }
.auth-switch { border-top: 1px solid var(--line); margin: 28px 0 18px; padding-top: 24px; text-align: center; }
.auth-switch a { color: var(--forest); font-weight: 700; text-decoration: underline; }
.back-link { color: var(--muted); font-size: .8rem; }
.account-hero { align-items: end; display: flex; justify-content: space-between; padding-top: 180px; }
.account-hero h1 { font-size: clamp(2.7rem,4.7vw,4.4rem); margin-bottom: 12px; }
.account-hero > div > p:last-child { color: var(--muted); }
.account-page { align-items: start; display: grid; gap: 60px; grid-template-columns: 280px 1fr; }
.profile-card { background: var(--cream); padding: 38px; text-align: center; }
.avatar { align-items: center; background: var(--forest); border-radius: 50%; color: white; display: flex; font-family: var(--serif); font-size: 2rem; height: 80px; justify-content: center; margin: 0 auto 20px; width: 80px; }
.profile-card h2 { font-family: var(--serif); font-size: 1.5rem; margin: 0 0 6px; }
.profile-card a, .profile-card p { color: var(--muted); display: block; font-size: .85rem; margin: 2px 0; }
.profile-card small { border-top: 1px solid var(--line); color: var(--muted); display: block; margin-top: 24px; padding-top: 20px; }
.account-main .heading-row h2 { font-size: 2.2rem; }
.empty-state { border: 1px solid var(--line); margin-top: 40px; padding: 70px; text-align: center; }
.empty-state > span { font-size: 2rem; }
.empty-state h3 { font-family: var(--serif); font-size: 1.6rem; margin: 16px 0 5px; }
.empty-state p { color: var(--muted); }
.booking-list { display: grid; gap: 14px; margin-top: 35px; }
.booking-list article { align-items: center; border: 1px solid var(--line); display: flex; justify-content: space-between; padding: 25px 28px; }
.booking-list h3 { font-family: var(--serif); font-size: 1.45rem; margin: 12px 0 2px; }
.booking-list p { color: var(--muted); margin: 0; }
.booking-list article > div:last-child { text-align: right; }
.booking-list article > div:last-child span { color: var(--muted); display: block; font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.status { background: #ebe9e1; border-radius: 999px; color: #555; display: inline-flex; font-size: .65rem; font-weight: 700; letter-spacing: .06em; padding: 5px 10px; text-transform: uppercase; }
.status-pending { background: #f7e8c8; color: #815f20; }
.status-confirmed, .status-published, .status-active { background: #dceade; color: #376940; }
.status-cancelled, .status-disabled { background: #f2dcd8; color: #8c443b; }
.status-completed { background: #dce7ec; color: #3b6677; }

/* Footer */
.site-footer { background: var(--forest-deep); color: white; }
.footer-top { display: grid; gap: 55px; grid-template-columns: 1.4fr .7fr .7fr 1fr; padding-bottom: 80px; padding-top: 90px; }
.footer-intro p { color: rgba(255,255,255,.62); font-family: var(--serif); font-size: 1.2rem; margin-top: 28px; max-width: 330px; }
.footer-links, .footer-contact { display: flex; flex-direction: column; }
.footer-links h3, .footer-contact h3 { color: var(--sage); font-size: .65rem; letter-spacing: .14em; margin-bottom: 24px; text-transform: uppercase; }
.footer-links a, .footer-contact a, .footer-contact p { color: rgba(255,255,255,.72); font-size: .84rem; margin: 4px 0; }
.footer-links a:hover, .footer-contact a:hover { color: white; }
.footer-trust { align-items:center; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; padding:30px 0; }
.footer-consumer-links { align-items:center; display:flex; flex-wrap:wrap; gap:16px; }
.footer-consumer-badge { border-radius:4px; display:block; outline-offset:5px; }
.footer-consumer-badge:focus-visible { outline:2px solid var(--sand); }
.footer-consumer-badge img { height:50px; width:250px; }
.footer-payment-marks img { height:auto; width:286px; }
.social-row { display: flex; gap: 20px; margin-top: 22px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.45); display: flex; font-size: .65rem; justify-content: space-between; letter-spacing: .1em; padding-bottom: 28px; padding-top: 28px; text-transform: uppercase; }
.lightbox { align-items: center; background: rgba(5,20,16,.96); display: none; inset: 0; justify-content: center; position: fixed; z-index: 200; }
.lightbox.is-open { display: flex; }
.lightbox figure { margin: 40px; max-height: 88vh; max-width: 88vw; }
.lightbox img { max-height: 82vh; object-fit: contain; }
.lightbox figcaption { color: white; font-size: .75rem; margin-top: 10px; text-align: center; }
.lightbox button { background: transparent; border: 0; color: white; cursor: pointer; font-size: 3rem; padding: 20px; position: absolute; }
.lightbox-close { right: 20px; top: 5px; }
.lightbox-prev { left: 15px; top: 45%; }
.lightbox-next { right: 15px; top: 45%; }
.not-found { max-width: 850px; padding-top: 200px; text-align: center; }
.not-found > span { color: var(--sand); font-family: var(--serif); font-size: 8rem; line-height: 1; }
.not-found h1 { font-size: var(--type-section); }
.not-found > p:not(.eyebrow) { color: var(--muted); margin: 0 auto 35px; max-width: 550px; }

@media (max-width: 1120px) {
    .header-inner { grid-template-columns: auto auto 1fr; }
    .nav-toggle { display: block; order: 2; }
    .site-nav { background: var(--forest-deep); display: none; flex-direction: column; inset: 78px 0 auto; padding: 35px; position: fixed; }
    .site-nav.is-open { display: flex; }
    .site-nav a { font-family: var(--serif); font-size: 1.7rem; font-weight: 400; text-transform: none; }
    .header-actions { justify-content: flex-end; order: 3; }
    .experience-section { grid-template-columns: 50% 50%; }
    .cabin-detail-copy { padding-inline: 45px; }
    .gallery-grid { grid-template-columns: repeat(3,1fr); }
    .media-video-grid { grid-template-columns: repeat(2,1fr); }
    .booking-section { grid-template-columns: 1fr 280px; }
}

@media (max-width: 820px) {
    .shell { width: min(100% - 36px, 680px); }
    .shell-wide { width: calc(100% - 20px); }
    .section-pad { padding-block: 80px; }
    .header-inner { gap: 8px; padding-inline: 18px; }
    .brand-logo { height: 48px; }
    .header-actions { gap: 10px; }
    .account-link { display: none; }
    .hero-home { min-height: 760px; padding-bottom: 140px; }
    .hero-content h1 { font-size: clamp(3.4rem, 13vw, 5rem); }
    .hero-note { display: none; }
    .availability-wrap { margin-top: -80px; }
    .availability-bar { grid-template-columns: 1fr 1fr; }
    .availability-bar label { border-bottom: 1px solid var(--line); padding: 12px 16px; }
    .availability-bar label:nth-child(3), .availability-bar label:nth-child(4) { border-bottom: 0; }
    .availability-bar .button { border-radius: 0; min-width: 0; }
    .intro-section, .contact-hero, .contact-section, .account-page { gap: 45px; grid-template-columns: 1fr; }
    .intro-copy { padding-top: 0; }
    .heading-row { align-items: flex-start; flex-direction: column; }
    .cabin-cards { grid-template-columns: 1fr; }
    .cabin-image { height: 450px; }
    .experience-section { grid-template-columns: 1fr; }
    .experience-photo { min-height: 520px; }
    .experience-copy { padding: 80px 30px; }
    .slow-grid { grid-template-columns: 1fr; }
    .slow-grid article + article { border-left: 0; border-top: 1px solid var(--line); }
    .film-section { min-height: 650px; }
    .home-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 420px 250px 250px; }
    .mosaic-1 { grid-column: 1/3; grid-row: 1; }
    .mosaic-2 { grid-column: 1; grid-row: 2; }
    .mosaic-3 { grid-column: 2; grid-row: 2/4; }
    .page-hero { min-height: 620px; }
    .content-layout { display: block; }
    .content-layout aside { display: none; }
    .cabin-detail { grid-template-columns: 1fr; }
    .cabin-detail:nth-child(even) .cabin-detail-image { order: 0; }
    .cabin-detail-image { height: 500px; }
    .cabin-detail-copy { padding: 50px 20px; }
    .cabin-common-layout { grid-template-columns: 1fr; }
    .cabin-common-photos { min-height: 580px; }
    .cabin-common-copy { padding: 65px 35px; }
    .gallery-media-heading { align-items: start; gap: 25px; grid-template-columns: 1fr; }
    .about-video-heading { align-items: start; gap: 25px; grid-template-columns: 1fr; }
    .gallery-grid { grid-template-columns: 1fr 1fr; }
    .gallery-item:nth-child(7n+1) { height: 500px; }
    .inline-cta { align-items: flex-start; flex-direction: column; gap: 35px; padding: 45px 30px; }
    .booking-hero { display: block; padding: 0; }
    .booking-hero-image { height: 480px; }
    .booking-hero > .shell { padding: 75px 30px; }
    .booking-section { grid-template-columns: 1fr; }
    .booking-aside { position: static; }
    .contact-hero { padding-top: 150px; }
    .contact-photo { height: 460px; }
    .auth-page { grid-template-columns: 1fr; }
    .auth-photo { min-height: 420px; padding: 120px 30px 35px; }
    .auth-panel { padding: 70px 25px; }
    .account-hero { align-items: flex-start; flex-direction: column; gap: 20px; }
    .footer-top { grid-template-columns: 1fr 1fr; }
    .footer-intro { grid-column: 1/3; }
}

@media (max-width: 560px) {
    .hero-content h1 { font-size: 3.05rem; }
    .hero-buttons { align-items: flex-start; flex-direction: column; gap: 25px; }
    .availability-bar { grid-template-columns: 1fr; }
    .availability-bar label { border-right: 0; }
    .availability-bar label:nth-child(3), .availability-bar label:nth-child(4) { border-bottom: 1px solid var(--line); }
    .availability-bar .button { min-height: 60px; }
    h2 { font-size: 2.2rem; }
    .cabin-image { height: 360px; }
    .home-mosaic { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(5,310px); }
    .mosaic-item { grid-column: auto !important; grid-row: auto !important; }
    .page-hero-inner h1 { font-size: 2.9rem; }
    .gallery-grid { grid-template-columns: 1fr; }
    .gallery-item, .gallery-item:nth-child(7n+1), .gallery-item:nth-child(9n+4) { grid-column: auto; grid-row: auto; height: 400px; }
    .media-video-grid { grid-template-columns: 1fr; }
    .about-video-grid { grid-template-columns: 1fr; }
    .cabin-common-photos { grid-template-columns: 1fr 1fr; grid-template-rows: 360px 190px; min-height: 0; }
    .cabin-common-photos figure:first-child { grid-column: 1/3; grid-row: 1; }
    .cabin-common-copy { padding: 50px 22px; }
    .cabin-common-copy dl { gap: 10px; }
    .video-grid { grid-template-columns: 1fr; }
    .form-section { grid-template-columns: 1fr; }
    .form-grid.two, .form-grid.three { grid-template-columns: 1fr; }
    .cabin-option { grid-template-columns: 80px 1fr 25px; }
    .cabin-option img { height: 68px; width: 80px; }
    .success-page > div:last-child { flex-direction: column; }
    .contact-photo { height: 360px; }
    .booking-list article { align-items: flex-start; flex-direction: column; gap: 20px; }
    .booking-list article > div:last-child { text-align: left; }
    .footer-top { grid-template-columns: 1fr; }
    .footer-intro { grid-column: auto; }
    .footer-bottom { flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
    .film-section video { display: block; }
    .film-section { background: var(--forest); min-height: 560px; }
}

/* Complete booking engine */
.booking-engine-hero { background: var(--forest); color: white; display: grid; grid-template-columns: 58% 42%; min-height: 690px; padding-top: 80px; }
.booking-engine-photo { background-position: center; background-size: cover; min-height: 610px; }
.booking-engine-intro { align-self: center; padding: 75px clamp(45px,6vw,105px); }
.booking-engine-intro h1 { font-size: var(--type-page-hero); margin-bottom: 24px; }
.booking-engine-intro > p:not(.eyebrow) { color: rgba(255,255,255,.72); font-family: var(--serif); font-size: 1.06rem; line-height:1.68; max-width: 520px; }
.price-from { align-items: flex-end; border-top: 1px solid rgba(255,255,255,.2); display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: 40px; padding-top: 25px; }
.price-from > span { color: var(--sage); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; width: 100%; }
.price-from strong { font-family: var(--serif); font-size: 2.4rem; font-weight: 500; line-height: 1; }
.price-from small { color: rgba(255,255,255,.58); line-height: 1.3; }
.booking-search-wrap { background: var(--forest); padding: 0 0 25px; position: sticky; top: 78px; z-index: 45; }
#verifica-disponibilitatea, #booking-arrival { scroll-margin-top: 105px; }
#rezultat-disponibilitate, #finalizeaza-rezervarea { scroll-margin-top: 240px; }
@media(max-width:1100px){
  #verifica-disponibilitatea, #rezultat-disponibilitate, #finalizeaza-rezervarea, #booking-arrival { scroll-margin-top: 92px; }
}
.booking-search { align-items: stretch; background: white; box-shadow: 0 18px 50px rgba(0,0,0,.18); display: grid; grid-template-columns: 1.12fr 1.12fr .7fr .7fr .95fr auto; min-height: 86px; }
.search-field { border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; padding: 12px 20px; }
.search-field label { color: var(--moss); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.search-field input, .search-field select { appearance: none; background: transparent; border: 0; box-shadow: none; font-family: var(--serif); font-size: 1.06rem; min-height: 32px; padding: 0; }
.guest-details { border-right: 1px solid var(--line); position: relative; }
.guest-details summary { align-items: center; cursor: pointer; display: flex; font-size: .75rem; font-weight: 700; height: 100%; justify-content: space-between; list-style: none; padding: 18px; text-transform: uppercase; }
.guest-details summary::-webkit-details-marker { display: none; }
.guest-details summary span { align-items:center; background:var(--cream); border-radius:50%; display:flex; height:26px; justify-content:center; width:26px; }
.guest-popover { background: white; box-shadow: var(--shadow); left: 0; min-width: 340px; padding: 22px; position: absolute; top: calc(100% + 8px); }
.guest-popover label { align-items: center; border-bottom: 1px solid var(--line); display: flex; flex-direction: row; justify-content: space-between; padding: 12px 0; }
.guest-popover label > span { display:flex; flex-direction:column; letter-spacing:0; text-transform:none; }
.guest-popover label strong { color:var(--ink); font-size:.8rem; }
.guest-popover label small { color:var(--muted); font-size:.68rem; font-weight:400; }
.guest-popover select { min-height:36px; padding:4px 8px; width:70px; }
.guest-popover .guest-voucher-input { background:#f7f5ee; border:1px solid var(--line); min-height:38px; padding:5px 9px; text-transform:uppercase; width:125px; }
.booking-search-button { border-radius: 0; min-width: 235px; }
.availability-result { align-items: center; border: 1px solid var(--line); display: grid; gap: 28px; grid-template-columns: 72px 1fr auto; margin-top: 70px; padding: 30px 36px; }
.available-result { background: #edf3ec; border-color: #bfd0bf; }
.unavailable-result { background: #f7ece7; border-color: #dfc4b8; }
.result-symbol { align-items: center; border: 1px solid currentColor; border-radius: 50%; color: var(--forest); display:flex; font-family:var(--serif); font-size:2rem; height:62px; justify-content:center; width:62px; }
.unavailable-result .result-symbol { color:#974d40; }
.availability-result .eyebrow { margin-bottom:8px; }
.availability-result h2 { font-size:1.65rem; margin:0 0 3px; }
.availability-result p { color:var(--muted); margin:3px 0; }
.result-total { display:flex; flex-direction:column; text-align:right; }
.result-total span,.result-total small { color:var(--muted); font-size:.68rem; text-transform:uppercase; }
.result-total strong { font-family:var(--serif); font-size:2.2rem; font-weight:500; }
.complete-booking-form { align-items:start; display:grid; gap:70px; grid-template-columns:minmax(0,1fr) 390px; }
.checkout-main { border-top:1px solid var(--line); }
.checkout-step { border-bottom:1px solid var(--line); display:grid; gap:25px; grid-template-columns:44px 1fr; padding:48px 0 58px; }
.checkout-step > span { color:var(--moss); font-family:var(--serif); font-size:1.1rem; }
.checkout-step h2 { font-size:clamp(1.9rem,3vw,2.8rem); margin-bottom:17px; }
.checkout-step > div > p:not(.eyebrow,.login-hint) { color:var(--muted); max-width:680px; }
.allocated-cabins { display:grid; gap:10px; margin-top:28px; }
.allocated-cabins article { align-items:center; border:1px solid var(--line); display:grid; gap:18px; grid-template-columns:105px 1fr 30px; padding:9px; }
.allocated-cabins img { height:78px; object-fit:cover; width:105px; }
.allocated-cabins article > div { display:flex; flex-direction:column; }
.allocated-cabins strong { font-family:var(--serif); font-size:1.25rem; }
.allocated-cabins span { color:var(--muted); font-size:.74rem; }
.allocated-cabins b { align-items:center; background:var(--forest); border-radius:50%; color:white; display:flex; height:25px; justify-content:center; width:25px; }
.login-hint { background:var(--cream); font-size:.78rem; margin-top:20px; padding:12px 15px; }
.login-hint a { color:var(--forest); font-weight:700; text-decoration:underline; }
.invoice-toggle { display:grid; gap:10px; grid-template-columns:1fr 1fr; margin-bottom:20px; }
.invoice-toggle label { cursor:pointer; }
.invoice-toggle input { height:1px; opacity:0; position:absolute; width:1px; }
.invoice-toggle span { border:1px solid var(--line); color:var(--ink); font-size:.75rem; letter-spacing:0; padding:14px 16px; text-align:center; text-transform:none; }
.invoice-toggle label:has(input:checked) span { background:var(--forest); color:white; }
.company-fields { margin-bottom:20px; }
.checkout-summary { background:var(--forest); color:white; padding:36px; position:sticky; top:188px; }
.summary-head { border-bottom:1px solid rgba(255,255,255,.16); padding-bottom:25px; }
.summary-head .eyebrow { color:var(--sand); }
.summary-head h2 { font-family:var(--serif); font-size:1.65rem; font-weight:500; letter-spacing:-.02em; margin:0 0 5px; }
.summary-head > p:last-child { color:rgba(255,255,255,.62); margin:0; }
.summary-lines { border-bottom:1px solid rgba(255,255,255,.16); padding:20px 0; }
.summary-lines > div,.nightly-details > div { display:flex; justify-content:space-between; padding:5px 0; }
.summary-lines span,.nightly-details span { color:rgba(255,255,255,.68); }
.discount-line strong { color:var(--sand); }
.nightly-details { border-bottom:1px solid rgba(255,255,255,.16); padding:16px 0; }
.nightly-details summary { cursor:pointer; display:flex; font-size:.74rem; font-weight:700; justify-content:space-between; list-style:none; text-transform:uppercase; }
.nightly-details > div { font-size:.72rem; }
.voucher-field { margin:18px 0; }
.voucher-field > span { color:var(--sage); }
.voucher-field > div { display:flex; }
.voucher-field input { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); color:white; }
.voucher-field a { align-items:center; background:white; color:var(--forest); display:flex; font-size:.68rem; font-weight:700; padding:0 12px; text-transform:uppercase; }
.summary-total { display:grid; grid-template-columns:1fr auto; padding:20px 0; }
.summary-total span { color:var(--sage); font-size:.68rem; text-transform:uppercase; }
.summary-total strong { font-family:var(--serif); font-size:2.3rem; font-weight:500; grid-column:2; grid-row:1/3; }
.summary-total small { color:rgba(255,255,255,.5); }
.hold-note { align-items:center; display:flex; gap:12px; margin-top:18px; }
.hold-note b { align-items:center; border:1px solid rgba(255,255,255,.35); border-radius:50%; display:flex; flex:0 0 47px; height:47px; justify-content:center; }
.hold-note p { color:rgba(255,255,255,.56); font-size:.67rem; line-height:1.45; margin:0; }
.nearby-periods { max-width:1180px; overflow:hidden; }
.nearby-periods-heading { margin-bottom:34px; max-width:820px; }
.nearby-periods-heading h2 { font-size:var(--type-section-compact); margin-bottom:18px; }
.nearby-periods-heading > p:last-child { color:var(--muted); font-family:var(--serif); font-size:1.02rem; line-height:1.68; max-width:680px; }
.nearby-period-toolbar { align-items:center; border-top:1px solid var(--line); display:flex; justify-content:space-between; padding:17px 0 15px; }
.nearby-period-toolbar p { color:var(--muted); font-size:.72rem; margin:0; }
.nearby-period-toolbar p strong { color:var(--forest); font-size:.9rem; margin-right:4px; }
.nearby-period-toolbar p span { margin-left:8px; }
.nearby-period-controls { display:flex; gap:7px; }
.nearby-period-controls button { align-items:center; background:transparent; border:1px solid var(--line); border-radius:50%; color:var(--forest); cursor:pointer; display:flex; font-size:1rem; height:38px; justify-content:center; transition:background .2s,border-color .2s,color .2s; width:38px; }
.nearby-period-controls button:hover:not(:disabled) { background:var(--forest); border-color:var(--forest); color:white; }
.nearby-period-controls button:disabled { cursor:default; opacity:.3; }
.nearby-period-grid { display:flex; gap:12px; overflow-x:auto; overscroll-behavior-x:contain; padding:2px 1px 17px; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-color:var(--moss) var(--line); scrollbar-width:thin; }
.nearby-period-grid::-webkit-scrollbar { height:6px; }
.nearby-period-grid::-webkit-scrollbar-track { background:var(--line); }
.nearby-period-grid::-webkit-scrollbar-thumb { background:var(--moss); }
.nearby-period-grid > a { border:1px solid var(--line); display:grid; flex:0 0 clamp(295px,31.5%,365px); min-height:255px; padding:27px; scroll-snap-align:start; transition:border-color .2s,transform .2s,box-shadow .2s; }
.nearby-period-grid > a:hover { border-color:var(--forest); box-shadow:0 12px 35px rgba(16,54,42,.1); transform:translateY(-3px); }
.nearby-period-grid > a > .suggestion-label { color:var(--moss); font-size:.62rem; font-weight:700; letter-spacing:.065em; line-height:1.45; text-transform:uppercase; }
.nearby-period-grid > a > strong { font-family:var(--serif); font-size:1.45rem; font-weight:500; margin:17px 0 5px; }
.nearby-period-grid > a > small { color:var(--muted); }
.nearby-period-grid > a > div { align-items:end; border-top:1px solid var(--line); display:flex; justify-content:space-between; margin-top:22px; padding-top:17px; }
.nearby-period-grid > a > div span { color:var(--muted); font-size:.65rem; text-transform:uppercase; }
.nearby-period-grid > a > div b { font-family:var(--serif); font-size:1.35rem; font-weight:500; }
.nearby-period-grid > a > em { color:var(--forest); font-size:.68rem; font-style:normal; font-weight:700; letter-spacing:.07em; margin-top:20px; text-transform:uppercase; }
.nearby-periods-empty { align-items:center; background:var(--cream); display:flex; gap:30px; justify-content:space-between; padding:30px; }
.nearby-periods-empty p { color:var(--muted); margin:0; }
.booking-inclusions { display:grid; gap:80px; grid-template-columns:.8fr 1.2fr; }
.inclusion-grid { display:grid; gap:0; }
.inclusion-grid article { border-top:1px solid var(--line); display:grid; gap:20px; grid-template-columns:40px 170px 1fr; padding:25px 0; }
.inclusion-grid article > span { color:var(--moss); font-family:var(--serif); }
.inclusion-grid h3 { font-family:var(--serif); font-size:1.3rem; font-weight:500; margin:0; }
.inclusion-grid p { color:var(--muted); margin:0; }
.booking-confirmed-page { max-width:980px; }
.confirmation-steps { border-bottom:1px solid var(--line); border-top:1px solid var(--line); display:grid !important; grid-template-columns:repeat(3,1fr); margin:45px 0 !important; }
.confirmation-steps article { display:flex; flex-direction:column; padding:25px; text-align:left; }
.confirmation-steps article + article { border-left:1px solid var(--line); }
.confirmation-steps span { color:var(--moss); font-family:var(--serif); }
.confirmation-steps strong { font-family:var(--serif); font-size:1.2rem; margin-top:12px; }
.confirmation-steps small { color:var(--muted); }

@media (max-width:1100px){
  .booking-search { grid-template-columns:repeat(4,1fr); }
  .guest-details { grid-column:1/3; min-height:65px; }
  .booking-search-button { grid-column:3/5; }
  .complete-booking-form { gap:35px; grid-template-columns:minmax(0,1fr) 340px; }
  .nearby-period-grid > a { flex-basis:43vw; }
  .cabin-rate-strip { grid-template-columns:1fr 1fr; }
  .cabin-rate-strip dl { grid-column:1/3; }
  .leisure-story,.leisure-story.is-reversed { grid-template-columns:1.1fr .9fr; min-height:560px; }
  .leisure-places-layout { grid-template-columns:.8fr 1.2fr; }
  .leisure-place-lists article { grid-template-columns:35px 140px 1fr; }
}
@media (max-width:820px){
  .booking-engine-hero { grid-template-columns:1fr; padding-top:80px; }
  .booking-engine-photo { min-height:470px; }
  .booking-engine-intro { padding:65px 30px; }
  .booking-search-wrap { position:relative; top:auto; }
  .booking-search { grid-template-columns:1fr 1fr; }
  .guest-details,.booking-search-button { grid-column:auto; }
  .availability-result { align-items:start; grid-template-columns:55px 1fr; }
  .availability-result > :last-child { grid-column:2; text-align:left; }
  .complete-booking-form { grid-template-columns:1fr; }
  .checkout-summary { position:static; }
  .booking-inclusions { gap:35px; grid-template-columns:1fr; }
  .nearby-period-grid > a { flex-basis:min(78vw,360px); }
  .cabin-practical-grid { grid-template-columns:1fr; }
  .cabin-practical-grid article + article { border-left:0; border-top:1px solid var(--line); }
  .leisure-hero-content { gap:45px; grid-template-columns:1fr; }
  .leisure-hero ol { display:grid; grid-template-columns:repeat(3,1fr); }
  .leisure-hero li { align-content:start; gap:8px; grid-template-columns:1fr; padding-right:12px; }
  .leisure-intro { grid-template-columns:70px 1fr; }
  .leisure-intro > p { grid-column:2; margin-top:0; }
  .leisure-story,.leisure-story.is-reversed { grid-template-columns:1fr; min-height:0; }
  .leisure-story-image,.leisure-story.is-reversed .leisure-story-image { grid-column:1; grid-row:1; min-height:500px; }
  .leisure-story-copy,.leisure-story.is-reversed .leisure-story-copy { grid-column:1; grid-row:2; }
  .leisure-places-layout { grid-template-columns:1fr; }
  .leisure-places-heading > button { max-width:520px; }
  .leisure-photo-ribbon { grid-auto-columns:minmax(230px,48vw); }
}
@media (max-width:560px){
  .booking-search { grid-template-columns:1fr; }
  .search-field { border-bottom:1px solid var(--line); border-right:0; min-height:70px; }
  .guest-details,.booking-search-button { grid-column:auto; }
  .guest-popover { min-width:calc(100vw - 20px); }
  .availability-result { display:block; padding:25px; }
  .result-symbol { margin-bottom:18px; }
  .result-total { margin-top:20px; text-align:left; }
  .checkout-step { grid-template-columns:1fr; }
  .allocated-cabins article { grid-template-columns:80px 1fr 25px; }
  .allocated-cabins img { height:65px; width:80px; }
  .invoice-toggle { grid-template-columns:1fr; }
  .nearby-periods-empty { align-items:flex-start; flex-direction:column; }
  .nearby-period-toolbar p span { display:none; }
  .nearby-period-grid > a { flex-basis:calc(100vw - 54px); padding:23px; }
  .cabin-rate-strip { gap:24px; grid-template-columns:1fr; padding:28px 23px; }
  .cabin-rate-strip dl { grid-column:auto; grid-template-columns:1fr; }
  .cabin-rate-strip dl div { border-left:0; border-top:1px solid rgba(255,255,255,.16); padding:13px 0; }
  .leisure-hero,.leisure-hero-content { min-height:720px; }
  .leisure-hero-content { padding-bottom:45px; padding-top:120px; }
  .leisure-hero h1 { font-size:3.25rem; }
  .leisure-hero ol { grid-template-columns:1fr; }
  .leisure-hero li { grid-template-columns:38px 1fr; }
  .leisure-intro { gap:24px; grid-template-columns:1fr; }
  .leisure-intro-number,.leisure-intro > p { grid-column:1; }
  .leisure-intro-number { padding-top:0; }
  .leisure-story-image,.leisure-story.is-reversed .leisure-story-image { min-height:360px; }
  .leisure-story-copy { padding:42px 24px; }
  .leisure-place-lists article { grid-template-columns:32px 1fr; }
  .leisure-place-lists article ul { grid-column:2; }
  .leisure-journal-heading { align-items:start; flex-direction:column; }
  .leisure-photo-ribbon { grid-auto-columns:76vw; grid-template-rows:165px 165px; }
  .inclusion-grid article { grid-template-columns:35px 1fr; }
  .inclusion-grid p { grid-column:2; }
  .confirmation-steps { grid-template-columns:1fr; }
  .confirmation-steps article + article { border-left:0; border-top:1px solid var(--line); }
}

/* Partners: compact, local, editable brand cards; no photo-gallery layout. */
.partners-hero .page-hero-inner { padding-bottom:42px; }
.partners-hero h1 { font-size:clamp(2.5rem,4.5vw,4rem); }
.partners-section { padding-top:65px; padding-bottom:90px; }
.partners-intro { color:var(--muted); max-width:760px; margin-bottom:36px; }
.partners-heading { font-size:clamp(1.5rem,2.7vw,2.25rem); margin-bottom:28px; }
.partners-grid { display:grid; gap:20px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.partner-card { background:white; border:1px solid var(--line); min-width:0; }
.partner-card-content { display:flex; flex-direction:column; gap:24px; height:100%; padding:28px 22px 22px; }
a.partner-card-content:hover { background:var(--cream); }
.partner-logo { align-items:center; display:flex; height:112px; justify-content:center; }
.partner-logo img { max-height:112px; max-width:100%; height:auto; width:auto; object-fit:contain; }
.partner-card h3 { align-items:center; border-top:1px solid var(--line); display:flex; font-size:.85rem; font-weight:500; gap:12px; justify-content:space-between; line-height:1.4; margin:0; padding-top:18px; }
.partner-card h3 span { color:var(--forest-soft); }
.partner-card-content:focus-visible { outline:3px solid var(--forest); outline-offset:4px; }
.partners-secondary { margin-top:45px; }
@media(max-width:1000px) { .partners-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .partners-grid { gap:14px; grid-template-columns:1fr; } .partner-card-content { padding:24px; } .partner-logo { height:96px; } .partner-logo img { max-height:96px; } .partners-section { padding-top:40px; padding-bottom:55px; } }

/* Payment test gateway */
.payment-test-note { background:rgba(233,201,149,.12); border:1px solid rgba(233,201,149,.28); display:grid; gap:5px; margin-top:18px; padding:15px; }
.payment-test-note > span { color:var(--sand); font-size:.62rem; font-weight:700; letter-spacing:.16em; }
.payment-test-note p { color:rgba(255,255,255,.7); font-size:.68rem; line-height:1.55; margin:0; }
.payment-page { background:#f1eee6; }
.test-gateway { padding-top:clamp(70px,8vw,120px); }
.test-gateway-head { align-items:end; display:grid; gap:50px; grid-template-columns:minmax(0,1fr) 130px; margin-bottom:58px; }
.test-gateway-head h1,.payment-result h1 { font-size:var(--type-page-hero); margin:14px 0 22px; max-width:820px; }
.test-gateway-head p:not(.eyebrow) { color:var(--muted); font-size:1rem; max-width:690px; }
.test-gateway-badge { background:#dff0df; border:1px solid #b9d5b9; color:#27603a; display:inline-flex; font-size:.62rem; font-weight:700; letter-spacing:.14em; padding:7px 10px; }
.test-gateway-head .eyebrow { margin-top:25px; }
.test-gateway-shield { align-items:center; aspect-ratio:1; background:var(--forest); border-radius:50%; color:white; display:flex; flex-direction:column; justify-content:center; }
.test-gateway-shield > span { color:var(--sand); font-size:2rem; line-height:1; }
.test-gateway-shield small { font-size:.6rem; letter-spacing:.12em; line-height:1.2; margin-top:7px; text-align:center; text-transform:uppercase; }
.test-gateway-layout { align-items:stretch; display:grid; gap:clamp(35px,7vw,100px); grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr); }
.test-gateway-card { background:linear-gradient(145deg,#163f33,#0b2821); box-shadow:0 28px 65px rgba(10,38,30,.2); color:white; display:flex; flex-direction:column; min-height:520px; padding:34px; position:relative; }
.test-gateway-card::after { border:1px solid rgba(255,255,255,.12); content:""; inset:12px; pointer-events:none; position:absolute; }
.test-card-top { align-items:center; display:flex; font-size:.65rem; justify-content:space-between; letter-spacing:.14em; position:relative; text-transform:uppercase; z-index:1; }
.test-card-top strong { color:var(--sand); }
.test-card-amount { margin:auto 0; position:relative; z-index:1; }
.test-card-amount small { color:rgba(255,255,255,.55); display:block; font-size:.65rem; letter-spacing:.11em; text-transform:uppercase; }
.test-card-amount strong { display:block; font-family:var(--serif); font-size:clamp(3.2rem,6vw,5.3rem); font-weight:400; line-height:1.05; }
.test-gateway-card dl { border-top:1px solid rgba(255,255,255,.17); margin:0; position:relative; z-index:1; }
.test-gateway-card dl > div { align-items:center; border-bottom:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; padding:12px 0; }
.test-gateway-card dt { color:rgba(255,255,255,.54); font-size:.66rem; }
.test-gateway-card dd { font-size:.7rem; margin:0; text-align:right; }
.test-gateway-card dd span { background:var(--sand); color:var(--forest-deep); font-size:.57rem; font-weight:700; letter-spacing:.1em; padding:4px 7px; }
.test-gateway-actions { align-content:center; display:grid; gap:24px; }
.test-gateway-actions h2 { font-size:var(--type-section-compact); margin-bottom:15px; }
.test-gateway-actions > div:first-child > p:last-child { color:var(--muted); max-width:620px; }
.test-outcome-list { display:grid; gap:10px; }
.test-outcome { align-items:center; background:var(--paper); border:1px solid var(--line); cursor:pointer; display:grid; gap:15px; grid-template-columns:46px 1fr auto; padding:16px; text-align:left; transition:border .2s,transform .2s,box-shadow .2s; width:100%; }
.test-outcome:hover { border-color:var(--forest); box-shadow:0 12px 30px rgba(23,60,49,.09); transform:translateX(4px); }
.test-outcome > span { align-items:center; background:#e6eee5; border-radius:50%; color:#356343; display:flex; font-size:1.1rem; height:46px; justify-content:center; }
.test-outcome.declined > span { background:#f1dfdb; color:#9e4d42; }
.test-outcome.cancelled > span { background:#eceae4; color:#6a716d; }
.test-outcome div { display:grid; }
.test-outcome strong { font-size:.78rem; }
.test-outcome small { color:var(--muted); font-size:.64rem; }
.test-outcome > b { color:var(--forest); }
.test-gateway-safety { display:flex; flex-wrap:wrap; gap:8px; }
.test-gateway-safety strong { font-size:.65rem; margin-right:5px; padding:5px 0; }
.test-gateway-safety span { background:#e5e4dd; color:#59635d; font-size:.6rem; padding:5px 8px; }
.payment-result { min-height:72vh; text-align:center; }
.payment-result-mark { align-items:center; border-radius:50%; display:flex; font-size:2.5rem; height:90px; justify-content:center; margin:0 auto 25px; width:90px; }
.payment-result-mark.approved { background:#dceddc; color:#2d6b3f; }
.payment-result-mark.declined { background:#f1dfdb; color:#a24d42; }
.payment-result-mark.cancelled { background:#e3e2dc; color:#606963; }
.payment-result .eyebrow { margin-top:22px; }
.payment-result h1 { margin-inline:auto; }
.payment-result > p:not(.eyebrow) { color:var(--muted); font-size:1.02rem; margin:0 auto 35px; max-width:680px; }
.payment-result-facts { background:var(--paper); border:1px solid var(--line); display:grid; grid-template-columns:repeat(5,1fr); margin:0 auto 36px; max-width:1080px; }
.payment-result-facts > div { padding:21px; }
.payment-result-facts > div + div { border-left:1px solid var(--line); }
.payment-result-facts dt { color:var(--muted); font-size:.59rem; letter-spacing:.1em; text-transform:uppercase; }
.payment-result-facts dd { font-family:var(--serif); font-size:1.2rem; margin:5px 0 0; }
.payment-result-actions { align-items:center; display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.email-delivery-note { align-items:center; background:#f8f1e2; border:1px solid #ddc99d; display:flex; gap:14px; margin:28px auto; max-width:760px; padding:16px 18px; text-align:left; }
.email-delivery-note > span { align-items:center; background:#e9c995; border-radius:50%; color:#173c31; display:flex; flex:0 0 42px; height:42px; justify-content:center; }
.email-delivery-note p { color:#665f50; font-size:.72rem; line-height:1.55; margin:0; }
.email-delivery-note strong { color:#173c31; display:block; font-size:.68rem; letter-spacing:.06em; margin-bottom:2px; text-transform:uppercase; }
.email-delivery-note.sent { background:#e7f0e6; border-color:#bcd0bc; }
.email-delivery-note.failed { background:#f4e4df; border-color:#d9b3aa; }
.payment-email-note { margin-top:-12px; margin-bottom:34px; }
.button-outline { border-color:var(--forest); color:var(--forest); }
.button-outline:hover { background:var(--forest); color:white; }
@media(max-width:850px){
  .test-gateway-head { grid-template-columns:1fr; }
  .test-gateway-shield { display:none; }
  .test-gateway-layout { grid-template-columns:1fr; }
  .test-gateway-card { min-height:450px; }
  .payment-result-facts { grid-template-columns:1fr 1fr; }
  .payment-result-facts > div:nth-child(odd) { border-left:0; }
  .payment-result-facts > div:nth-child(n+3) { border-top:1px solid var(--line); }
}
@media(max-width:560px){
  .test-gateway { width:min(100% - 28px,1180px); }
  .test-gateway-head h1,.payment-result h1 { font-size:2.65rem; }
  .test-gateway-card { min-height:410px; padding:26px; }
  .test-outcome { grid-template-columns:42px 1fr auto; padding:13px; }
  .payment-result-facts { grid-template-columns:1fr; }
  .payment-result-facts > div + div { border-left:0; border-top:1px solid var(--line); }
}
.local-payment-lab{max-width:1380px}.local-payment-layout{display:grid;grid-template-columns:minmax(280px,.68fr) minmax(0,1.5fr);gap:34px;margin-top:44px}.local-payment-summary{background:#133f34;color:#fff;padding:34px;align-self:start;position:sticky;top:24px}.local-payment-summary>.eyebrow{color:#d9bd83}.local-payment-summary>strong{display:block;font-family:var(--font-serif);font-size:clamp(38px,5vw,64px);font-weight:500;margin:15px 0 28px}.local-payment-summary dl{display:grid;gap:0}.local-payment-summary dl div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.15);padding:15px 0}.local-payment-summary dt{color:rgba(255,255,255,.6);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.local-payment-summary dd{font-size:13px;text-align:right}.local-payment-safety{display:grid;grid-template-columns:34px 1fr;gap:12px;background:rgba(255,255,255,.08);margin-top:22px;padding:15px}.local-payment-safety>span{border:1px solid #d9bd83;border-radius:50%;color:#d9bd83;display:grid;place-items:center;width:30px;height:30px}.local-payment-safety p{font-size:12px;line-height:1.55;margin:0}.local-payment-safety strong{display:block;color:#fff}.local-payment-console{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(300px,1.1fr);gap:26px;align-items:start}.local-card-form{background:linear-gradient(145deg,#173f37,#0b2922);border-radius:22px;color:#fff;box-shadow:0 24px 55px rgba(9,39,31,.25);padding:27px;display:grid;gap:18px;position:relative;overflow:hidden}.local-card-form:before{content:"";position:absolute;width:280px;height:280px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-120px;top:-150px}.local-card-heading{display:flex;justify-content:space-between;align-items:start;position:relative}.local-card-heading span,.local-card-heading small{display:block}.local-card-heading span{font-size:13px;font-weight:700;letter-spacing:.14em}.local-card-heading small{color:rgba(255,255,255,.55);margin-top:3px}.local-card-heading b{color:#eacb90;font-family:var(--font-serif);font-size:19px}.local-card-form label{display:grid;gap:7px;position:relative}.local-card-form label>span{color:rgba(255,255,255,.68);font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.local-card-form input[type=text],.local-card-form input:not([type]){font-family:inherit}.local-card-form input[name=card_holder],.local-card-form input[name=card_number],.local-card-form input[name=card_expiry],.local-card-form input[name=card_cvv]{border:1px solid rgba(255,255,255,.22);border-radius:7px;background:rgba(255,255,255,.08);color:#fff;font-size:15px;padding:13px 14px;outline:0}.local-card-form input:focus{border-color:#eacb90;box-shadow:0 0 0 3px rgba(234,203,144,.12)}.local-card-form input[name=card_number]{font-family:monospace;font-size:18px;letter-spacing:.08em}.local-card-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.local-test-consent{grid-template-columns:18px 1fr!important;align-items:start}.local-test-consent input{accent-color:#eacb90}.local-test-consent span{font-size:11px!important;letter-spacing:0!important;text-transform:none!important}.local-pay-submit{width:100%}.local-no-storage{color:rgba(255,255,255,.5);font-size:10px;line-height:1.5;text-align:center}.local-test-scenarios{border:1px solid #dbddd7;padding:24px}.local-test-scenarios h2{font-size:clamp(24px,3vw,36px);font-weight:450;line-height:1.1;margin:7px 0 19px}.local-scenario-scroll{display:grid;gap:9px;max-height:410px;overflow-y:auto;padding-right:7px}.local-scenario-scroll button{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;text-align:left;column-gap:11px;border:1px solid #dedfd9;background:#fff;padding:11px;cursor:pointer}.local-scenario-scroll button:hover{border-color:#17483a;background:#f6f7f3}.local-scenario-scroll i{grid-row:1/3;border-radius:50%;display:grid;place-items:center;font-style:normal;width:30px;height:30px}.local-scenario-scroll i.approved{background:#dceadf;color:#164c34}.local-scenario-scroll i.declined{background:#f2deda;color:#8d3022}.local-scenario-scroll i.warning{background:#f3e8cc;color:#785a16}.local-scenario-scroll strong{font-size:13px}.local-scenario-scroll span{color:#7a827d;font:11px monospace;margin-top:3px}.local-cancel-form{border-top:1px solid #e1e2dc;margin-top:16px;padding-top:14px}.local-cancel-form button{border:0;background:transparent;color:#6e756f;cursor:pointer;text-decoration:underline;padding:0}.payment-result.is-live .test-gateway-badge{background:#153e33;color:#fff}@media(max-width:1100px){.local-payment-console{grid-template-columns:1fr}.local-payment-summary{position:static}}@media(max-width:800px){.local-payment-layout{grid-template-columns:1fr}.local-card-form{border-radius:14px}}@media(max-width:520px){.local-card-row{grid-template-columns:1fr}.local-payment-summary,.local-card-form,.local-test-scenarios{padding:20px}}
.local-confirmation-form { max-width:560px; margin:28px auto 0; text-align:left; }
.local-confirmation-form .consent { display:flex; gap:12px; align-items:flex-start; margin-bottom:24px; line-height:1.6; }
.local-confirmation-form .consent input { flex:0 0 auto; margin-top:5px; }
.local-confirmation-form>.button { display:block; margin:0 auto; }
