:root{--forest:#203e35;--deep:#142e27;--paper:#f6f5ef;--white:#fff;--ink:#233b33;--muted:#637067;--line:#d9ded4;--gold:#c7b184;--serif:'Manrope',Arial,sans-serif;--sans:'Manrope',Arial,sans-serif;--gutter:clamp(24px,5vw,88px)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.75 var(--sans);-webkit-font-smoothing:antialiased}body.menu-open,body.gallery-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #b39451;outline-offset:5px}button{color:inherit}img{display:block;max-width:100%;height:auto}figure,p,h1,h2,h3,h4,h5,h6{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.06}h1{font-size:clamp(3.6rem,8vw,8.3rem);letter-spacing:-.04em}h2{font-size:clamp(2.7rem,5vw,5.3rem);letter-spacing:-.035em}h3{font-size:clamp(2.1rem,3vw,3.4rem);letter-spacing:-.025em}h4{font-size:1.2rem;font-weight:500;line-height:1.5}p+p{margin-top:1.2rem}::selection{color:white;background:var(--forest)}[hidden]{display:none!important}.wrap{width:100%;max-width:1600px;margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(70px,8.5vw,140px)}.eyebrow{display:block;font:500 .78rem/1.6 var(--sans);text-transform:uppercase;letter-spacing:.19em;margin-bottom:22px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:54px;padding:14px 24px;font-size:.875rem;font-weight:500;border:1px solid var(--forest);background:var(--forest);color:white;transition:background .2s,color .2s,transform .2s}.button:hover{background:var(--deep);transform:translateY(-2px)}.button.light{background:var(--paper);border-color:var(--paper);color:var(--ink)}.button.light:hover{background:white}.button.outline{background:transparent;color:inherit;border-color:currentColor}.text-link{display:inline-flex;align-items:center;gap:38px;font-size:.9rem;font-weight:500;border-bottom:1px solid currentColor;padding-block:12px;margin-top:20px}.text-link:hover .arrow{transform:translateX(5px)}.arrow{display:inline-block;font-family:Arial,sans-serif;transition:transform .2s}.skip-link{position:fixed;left:20px;top:12px;max-width:calc(100% - 40px);transform:translateY(calc(-100% - 24px));z-index:200;padding:12px 20px;background:var(--white)}.skip-link:focus{transform:translateY(0)}

/* A quiet masthead above a photographic opening. */
.site-header{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:1px solid rgba(32,62,53,.14)}.header-inner{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding-inline:var(--gutter)}.wordmark{display:flex;flex-direction:column;flex-shrink:0;line-height:1.05}.main-nav{display:flex;align-items:center;gap:clamp(15px,1.8vw,30px)}.main-nav>a{font-size:.82rem;position:relative;white-space:nowrap}.main-nav>a::after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s}.main-nav>a:hover::after,.main-nav>a[aria-current=page]::after{transform:scaleX(1)}.header-actions{display:flex;gap:22px;align-items:center}.header-cta{padding:12px 19px;min-height:48px;font-size:.78rem;gap:24px}.languages{position:relative}.languages summary{list-style:none;cursor:pointer;font-size:.78rem;display:flex;align-items:center;gap:7px;min-height:44px}.languages summary::-webkit-details-marker{display:none}.languages summary::after{content:'⌄';font-size:1rem}.language-options{position:absolute;top:calc(100% + 8px);right:0;background:var(--paper);box-shadow:0 10px 35px #142e2722;min-width:140px;padding:12px}.language-options a{display:block;padding:6px 10px;font-size:.875rem}.menu-toggle{display:none;align-items:center;gap:12px;border:0;background:none;min-height:44px;padding:0;font-size:.8rem}.menu-lines{width:23px;height:14px;display:block;border-top:1px solid;border-bottom:1px solid;transition:transform .2s}.mobile-extra{display:none}
.hero{position:relative;min-height:640px;height:calc(100svh - 96px);max-height:1000px;background:var(--deep);color:white;isolation:isolate;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-3}.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,31,25,.6),rgba(10,31,25,.04) 85%),linear-gradient(0deg,rgba(10,31,25,.35),transparent 60%)}.hero-content{height:100%;position:relative;padding-top:clamp(58px,8vh,110px);padding-bottom:110px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.hero .eyebrow{color:#f0eee3;margin-bottom:24px}.hero h1{max-width:900px;text-shadow:0 2px 20px #10201822}.hero h1 em{font-weight:400;color:#e5dcc4}.hero-description{font-size:1rem;line-height:1.6;max-width:400px;margin-top:26px;color:#f4f3ed}.hero-buttons{display:flex;gap:28px;align-items:center;margin-top:30px}.hero-buttons .text-link{margin-top:0}.hero-bottom{position:absolute;bottom:0;left:var(--gutter);right:var(--gutter);height:84px;border-top:1px solid #ffffff50;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:.75rem;letter-spacing:.08em}.hero-index{display:flex;gap:12px;align-items:center}.hero-index span{opacity:.65}.hero-line{height:1px;width:55px;background:#ffffff70}.essentials{background:var(--forest);color:#f5f4ed}.essentials-inner{display:grid;grid-template-columns:repeat(4,1fr);padding-block:25px}.essential{display:flex;gap:18px;align-items:center;justify-content:center;border-right:1px solid #ffffff30;font-size:.8rem}.essential:last-child{border:0}.essential svg{width:28px;height:28px;stroke:var(--gold);fill:none;stroke-width:1.2;flex-shrink:0}

/* Editorial content, with the original photo collections. */
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:48px}.section-heading .text-link{flex-shrink:0}.intro-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:start}.copy{color:#526158}.copy p,.copy ul{margin-bottom:1.5rem}.copy p:last-child{margin-bottom:0}.copy ul{padding-left:20px}.copy li{padding-left:4px;margin-bottom:10px}.copy strong,.copy b{font-weight:600;color:var(--ink)}.copy h4{color:var(--ink);margin:28px 0 14px}.copy h2,.copy h3{color:var(--ink);margin-bottom:26px}.copy a:not(.button){text-decoration:underline;text-underline-offset:4px}.copy br+br{display:block;content:'';margin-top:1rem}.intro-detail{padding-top:14px}.intro-detail p{font-size:.95rem}.intro-photos{margin-top:60px;display:grid;grid-template-columns:1.3fr .7fr;align-items:end;gap:28px}.intro-photos img{width:100%;object-fit:cover;aspect-ratio:1.55}.intro-photos figure:last-child img{aspect-ratio:1.15}.image-label{display:flex;justify-content:space-between;margin-top:14px;gap:20px;font-size:.74rem;letter-spacing:.04em;color:var(--muted)}.photo{position:relative;display:block;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.65,.3,1)}.photo:hover img{transform:scale(1.035)}.photo::after{content:'↗';position:absolute;bottom:16px;right:16px;width:38px;height:38px;display:grid;place-items:center;border:1px solid #fff9;color:white;background:#142e2733;border-radius:50%;font-size:1.3rem}.gallery-rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#b7c2b5 transparent;padding-bottom:20px}.gallery-rail .photo{aspect-ratio:1.4;scroll-snap-align:start}.gallery-tools{display:flex;gap:10px}.round-button{display:inline-grid;place-items:center;border:1px solid var(--line);width:48px;height:48px;border-radius:50%;background:none;font-size:1.3rem}.round-button:hover{background:var(--forest);color:white}.gallery-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:20px}.gallery-top .eyebrow{margin:0}.more-gallery{margin-top:28px}.more-gallery summary{font-size:.8rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;gap:20px}.more-gallery summary::after{content:'+';font-size:1.2rem}.more-gallery[open] summary::after{content:'−'}.more-gallery .gallery-rail{margin-top:25px}.rooms-home{background:#e9ede5}.rooms-home .section-heading h2{max-width:700px}.rooms-copy{max-width:900px;margin:40px auto 0;font-size:.95rem;column-count:2;column-gap:60px}.room-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.room-card:nth-child(2){margin-top:64px}.room-card .photo{aspect-ratio:.95}.room-card .photo::after{display:none}.room-card h3{margin:20px 0 4px}.room-card-label{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.room-card>a:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}.image-story{display:grid;grid-template-columns:1.1fr .9fr;min-height:570px;background:var(--forest);color:var(--paper)}.image-story>.photo{min-height:500px}.image-story-copy{padding:clamp(45px,6vw,95px);align-self:center}.image-story .copy{color:#dee5db;margin-top:30px}.image-story .eyebrow{color:var(--gold)}.image-story .text-link{margin-top:25px}.breakfast-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:center}.breakfast-grid .copy{margin-top:30px}.breakfast-images{position:relative;padding-bottom:45px;padding-right:45px}.breakfast-images .photo:first-child{aspect-ratio:1.15}.breakfast-images .photo:last-child{width:44%;aspect-ratio:.85;position:absolute;right:0;bottom:0;border:8px solid var(--paper)}.territory-banner{position:relative;padding-block:130px;color:white;isolation:isolate;background:var(--forest)}.territory-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.territory-banner::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#142e27ba,#142e2722);z-index:-1}.territory-banner h2{font-size:clamp(3.5rem,7vw,7rem);max-width:780px}.territory-banner .text-link{margin-top:30px}.reviews{background:var(--paper)}.reviews .section-heading{align-items:center}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}.review{border-top:1px solid var(--line);padding-top:30px}.quote-mark{font-family:Georgia,serif;font-size:4rem;line-height:.7;color:#8a9e84}.review h3{font:400 1.8rem/1.2 var(--serif);margin:20px 0}.review .copy{font-size:.875rem;line-height:1.8}.review cite{font-style:normal;display:block;font-size:.78rem;margin-top:24px;color:var(--ink)}

/* Internal pages share the identity, not a single repeated layout. */
.page-hero{position:relative;min-height:410px;display:flex;align-items:center;background:var(--deep);color:white;isolation:isolate;padding-block:75px}.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.page-hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#142e27b3,#142e2733)}.page-hero h1{font-size:clamp(3.8rem,7vw,7rem);max-width:1000px}.page-hero p{max-width:700px;line-height:1.65;margin-top:24px;color:#f1f1e9}.plain-hero{background:var(--paper);color:var(--ink);min-height:0;padding-block:75px 55px;border-bottom:1px solid var(--line)}.plain-hero::after{display:none}.plain-hero .eyebrow{color:var(--muted)}.breadcrumb{font-size:.75rem;margin-bottom:30px;display:flex;gap:12px;align-items:center}.breadcrumb a{border-bottom:1px solid #ffffff60}.room-nav{display:flex;gap:35px;justify-content:center;padding:24px var(--gutter);border-bottom:1px solid var(--line);flex-wrap:wrap;font-size:.875rem}.room-nav a:hover{text-decoration:underline;text-underline-offset:5px}.room-section+.room-section{padding-top:0}.room-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:7vw;align-items:center}.room-section:nth-of-type(even) .room-layout{grid-template-columns:.8fr 1.2fr}.room-section:nth-of-type(even) .room-media{order:2}.room-cover{aspect-ratio:1.35}.room-number{font:400 3rem var(--serif);color:#95a38e;display:block;margin-bottom:28px}.room-layout h2{margin-bottom:28px}.room-layout .copy{font-size:.95rem}.room-layout .copy ul{list-style:none;padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:14px}.room-layout .copy li{margin:0;padding:0}.room-layout .copy h4{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.room-thumbnails{display:flex;gap:12px;overflow:auto;padding:15px 0;scrollbar-width:thin}.room-thumbnails .photo{width:95px;aspect-ratio:1.3;flex-shrink:0}.room-thumbnails .photo::after{display:none}.wellness-intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:start}.wellness-intro h2{font-size:clamp(2.5rem,4.5vw,4.6rem)}.wellness-intro .copy h4{font-size:.95rem;border-left:2px solid var(--gold);padding:8px 20px;margin-top:0}.wellness-gallery{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.wellness-gallery .photo{aspect-ratio:1.35}.wellness-gallery .photo:nth-child(2){margin-top:55px}.wellness-gallery .photo:nth-child(3){margin-bottom:55px}.wellness-gallery .photo:nth-child(4){margin-top:0}.story-section:nth-child(even){background:#e9ede5}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.story-section:nth-child(even) .story-media{order:2}.story-grid h2{margin-bottom:30px}.story-grid .copy{font-size:.95rem}.story-media>.photo{aspect-ratio:1.15}.story-media .gallery-rail{grid-auto-columns:75%;margin-top:20px;gap:15px}.table-scroll{overflow:auto;scrollbar-width:thin;border:1px solid var(--line);background:white}.rates-table{width:100%;border-collapse:collapse;min-width:760px;line-height:1.6;font-size:.9rem}.rates-table th{background:var(--forest);color:white;padding:22px 20px;font-weight:500;text-align:center}.rates-table th:first-child{text-align:left;min-width:230px}.rates-table td{padding:19px 20px;text-align:center;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.rates-table td:first-child{text-align:left;color:var(--muted);font-size:.8rem}.rates-table td:first-child i{font:400 1.7rem/1.5 var(--serif);color:var(--ink)}.rates-table tr:nth-child(even){background:#f4f6f0}.rates-table tr:last-child td{border-bottom:0}.rates-table tr:hover td{background:#e7ece3}.rates-note{font-size:.8rem;color:var(--muted);margin:18px 0 45px}.conditions-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px}.conditions-grid h2{font-size:2.4rem;margin-bottom:22px}.conditions-grid .copy{font-size:.95rem}.rates-actions{display:flex;gap:20px;flex-wrap:wrap;margin-top:30px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.video-card:first-child{grid-column:1/-1}.video-card iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;background:var(--deep)}.video-card .image-label{font-size:.8rem}

/* Location, preserved affiliations and contact information. */
.location{border-top:1px solid var(--line);background:#e9ede5}.location-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:center}.location-copy h2{font-size:clamp(2.6rem,4vw,4.2rem)}.location-copy .copy{font-size:.875rem;margin-top:26px}.location iframe{border:0;width:100%;height:490px;display:block;background:#dce4d9}.location-address{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.8rem;margin-top:18px}.location-address a{border-bottom:1px solid;flex-shrink:0}.photo-diary{padding-block:55px;background:var(--paper)}.photo-diary .gallery-rail{grid-auto-columns:calc((100% - 64px)/5);gap:16px}.photo-diary .photo{aspect-ratio:1}.stay-cta{background:var(--forest);color:var(--paper);padding-block:85px}.stay-inner{display:flex;align-items:center;justify-content:space-between;gap:50px}.stay-cta h2{font-size:clamp(3rem,5.4vw,6rem);max-width:850px}.stay-cta .eyebrow{color:var(--gold)}.stay-cta .button{flex-shrink:0}.site-footer{background:var(--deep);color:#dce4d9;padding-top:60px}.footer-brand-line{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #ffffff25;padding-bottom:35px;margin-bottom:48px;gap:25px}.footer-place{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase}.footer-grid{display:grid;grid-template-columns:1.25fr .8fr 1fr;gap:7vw;padding-bottom:50px}.footer-grid h3{font:500 .75rem var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:24px;color:var(--gold)}.footer-about{font-size:.8rem;line-height:1.9}.footer-partners{margin-top:25px;display:flex;align-items:center;gap:15px}.footer-partners img{object-fit:contain}.footer-socials{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:0}.footer-socials a{display:flex;align-items:center;justify-content:center;background:white;padding:7px;border-radius:50%;width:43px;height:43px;transition:transform .2s}.footer-socials a:hover{transform:translateY(-3px)}.footer-socials img{width:29px;height:29px;object-fit:contain}.footer-contact ul{list-style:none;padding:0;margin:0;font-size:.84rem}.footer-contact li{margin-bottom:14px}.footer-contact p{margin:0}.footer-contact a{overflow-wrap: normal}.footer-contact a:hover{text-decoration:underline}.footer-contact .footer-contact-row{display:flex;gap:9px}.footer-contact .footer-contact-icon{display:block}.footer-contact img{margin-top:7px}.footer-bottom{border-top:1px solid #ffffff25;padding-block:23px;font-size:.67rem;line-height:1.9;color:#bac7bc}.footer-bottom img{display:inline-block;vertical-align:middle}.footer-bottom a{text-decoration:underline;text-underline-offset:3px}.mobile-booking{display:none}

/* The gallery uses a native modal: keyboard navigation and focus stay intact. */
.lightbox{padding:0;border:0;background:#10261f;color:white;width:100vw;max-width:none;height:100dvh;max-height:none}.lightbox::backdrop{background:#10261ff5}.lightbox-inner{height:100%;display:grid;grid-template-rows:70px minmax(0,1fr) 65px;padding:0 28px}.lightbox-top{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;gap:20px}.lightbox-close{background:none;border:1px solid #ffffff60;width:42px;height:42px;color:white;font-size:1.8rem}.lightbox-stage{display:grid;grid-template-columns:50px minmax(0,1fr) 50px;gap:24px;align-items:center;min-height:0}.lightbox-stage img{height:100%;max-height:calc(100dvh - 135px);width:100%;object-fit:contain;min-height:0}.lightbox-stage button{color:white;border-color:#ffffff60}.lightbox-caption{text-align:center;font-size:.8rem;padding-top:16px}

@media(min-width:1700px){.hero-content{max-width:1700px}.hero h1{font-size:9rem}}
@media(max-width:1250px){.header-inner{gap:24px;padding-inline:30px}.main-nav{gap:18px}.main-nav>a{font-size:.75rem}.header-actions{gap:15px}.header-cta{font-size:.72rem;padding:12px 14px;gap:14px}.hero{min-height:650px}.footer-grid{gap:4vw}}
@media(max-width:1180px){.main-nav{position:fixed;inset:82px 0 0;background:var(--paper);padding:35px var(--gutter);display:none;flex-direction:column;align-items:flex-start;gap:0;overflow:auto}.main-nav.open{display:flex}.main-nav>a{font:400 2.2rem/1.3 var(--serif);padding-block:10px}.main-nav>a::after{bottom:6px}.main-nav .mobile-extra{display:block;font-family:var(--sans);font-size:.9rem;margin-top:18px}.menu-toggle{display:flex}.header-inner{min-height:82px;padding-inline:var(--gutter)}.header-actions{margin-left:auto;gap:25px}.menu-open .menu-lines{transform:rotate(-15deg)}.hero{height:calc(100svh - 82px);min-height:620px}.hero h1{font-size:clamp(4.3rem,9vw,7rem)}.essential{gap:12px;font-size:.72rem}.intro-grid{gap:6vw}.room-card-grid{gap:22px}.room-layout,.room-section:nth-of-type(even) .room-layout{gap:5vw}.footer-grid{grid-template-columns:1.2fr 1fr}.footer-social{grid-column:2;grid-row:1}.footer-contact{grid-column:2;grid-row:2}.footer-about-wrap{grid-row:1/3}.image-story-copy{padding:45px}.conditions-grid{gap:40px}}
@media(max-width:760px){:root{--gutter:24px}.section{padding-block:70px}.header-inner{min-height:76px}.header-actions{gap:20px}.header-cta{display:none}.main-nav{top:76px}.hero{height:calc(100svh - 76px);min-height:640px;max-height:850px}.hero-image{object-position:61% center}.hero::after{background:linear-gradient(90deg,#142e2780,#142e271a),linear-gradient(0deg,#142e2770,transparent 65%)}.hero-content{padding-top:54px;padding-bottom:145px;justify-content:center}.hero h1{font-size:clamp(3.8rem,12vw,5.7rem);max-width:600px}.hero .eyebrow{font-size:.67rem;letter-spacing:.15em;max-width:270px;margin-bottom:22px}.hero-description{font-size:.9rem;max-width:320px}.hero-buttons{gap:20px;flex-wrap:wrap;margin-top:26px}.hero-buttons .button{font-size:.8rem;min-height:50px;padding:12px 19px}.hero-buttons .text-link{font-size:.8rem;gap:16px}.hero-bottom{height:82px;font-size:.65rem;letter-spacing:.03em}.hero-bottom .hero-location{max-width:160px}.hero-index{gap:8px}.hero-line{width:26px}.essentials-inner{grid-template-columns:1fr 1fr;gap:0;padding-block:12px}.essential{justify-content:flex-start;padding:17px 10px;gap:12px;font-size:.7rem}.essential:nth-child(2){border-right:0}.essential:nth-child(-n+2){border-bottom:1px solid #ffffff30}.essential svg{width:25px}.section-heading{display:block;margin-bottom:34px}.section-heading .text-link{margin-top:16px}.intro-grid{grid-template-columns:1fr;gap:30px}.intro-detail{padding:0}.intro-photos{margin-top:35px;grid-template-columns:1.15fr .85fr;gap:14px}.intro-photos img{aspect-ratio:.95}.intro-photos figure:last-child img{aspect-ratio:.75}.image-label{font-size:.66rem;margin-top:10px;gap:8px}.gallery-rail{grid-auto-columns:82%;gap:18px}.gallery-top .eyebrow{font-size:.7rem}.round-button{width:42px;height:42px}.room-card-grid{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:20px;gap:20px;scrollbar-width:thin}.room-card{flex:0 0 80%;scroll-snap-align:start}.room-card:nth-child(2){margin-top:0}.room-card .photo{aspect-ratio:1.05}.room-card h3{font-size:2.3rem}.rooms-copy{column-count:1;margin-top:28px}.image-story{grid-template-columns:1fr;min-height:0}.image-story>.photo{min-height:0;aspect-ratio:1.2}.image-story-copy{padding:50px var(--gutter) 60px}.breakfast-grid{grid-template-columns:1fr;gap:35px}.breakfast-images{padding-right:25px;padding-bottom:25px}.breakfast-images .photo:last-child{border-width:5px}.territory-banner{padding-block:85px}.territory-banner h2{font-size:3.6rem}.reviews-grid{grid-template-columns:1fr;gap:35px}.review{padding-top:28px}.review h3{font-size:1.85rem}.page-hero{min-height:370px;padding-block:55px}.page-hero h1{font-size:3.7rem}.page-hero p{font-size:.9rem}.plain-hero{min-height:0;padding-block:50px 40px}.breadcrumb{font-size:.72rem;margin-bottom:22px}.room-nav{gap:14px 26px;padding-block:20px;font-size:.8rem}.room-layout,.room-section:nth-of-type(even) .room-layout{grid-template-columns:1fr;gap:30px}.room-section:nth-of-type(even) .room-media{order:0}.room-number{font-size:2.3rem;margin-bottom:16px}.room-layout h2{font-size:3.1rem;margin-bottom:24px}.room-layout .copy h4{margin-top:20px}.wellness-intro{grid-template-columns:1fr;gap:30px}.wellness-gallery{gap:15px;grid-template-columns:1fr 1fr}.wellness-gallery .photo{aspect-ratio:.8}.wellness-gallery .photo:nth-child(2){margin-top:30px}.wellness-gallery .photo:nth-child(3){margin-bottom:30px}.story-grid{grid-template-columns:1fr;gap:35px}.story-section:nth-child(even) .story-media{order:0}.story-media>.photo{aspect-ratio:1.3}.story-grid h2{font-size:3rem;margin-bottom:22px}.rates-table{font-size:.85rem}.rates-table th,.rates-table td{padding:15px 17px}.rates-table th:first-child{min-width:200px}.conditions-grid{grid-template-columns:1fr;gap:30px}.rates-actions{gap:14px}.rates-actions .button{width:100%}.video-grid{grid-template-columns:1fr;gap:35px}.video-card:first-child{grid-column:auto}.location-grid{grid-template-columns:1fr;gap:35px}.location iframe{height:340px}.location-address{font-size:.73rem;align-items:flex-start}.photo-diary{padding-block:40px}.photo-diary .gallery-rail{grid-auto-columns:44%;gap:12px}.stay-cta{padding-block:65px}.stay-inner{align-items:flex-start;flex-direction:column;gap:32px}.stay-cta h2{font-size:3.5rem}.footer-brand-line{align-items:flex-start;flex-direction:column;gap:25px;margin-bottom:35px}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-about-wrap,.footer-social,.footer-contact{grid-column:auto;grid-row:auto}.footer-place{font-size:.65rem}.footer-bottom{font-size:.65rem;padding-bottom:95px}.mobile-booking{position:fixed;bottom:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:1fr 1.3fr;background:var(--paper);border-top:1px solid var(--line);padding:10px 15px calc(10px + env(safe-area-inset-bottom));align-items:center;gap:15px;box-shadow:0 -6px 30px #142e2712}.mobile-booking>a:first-child{font-size:.8rem;text-align:center}.mobile-booking .button{min-height:45px;padding:10px 16px;font-size:.75rem;gap:12px}.lightbox-inner{padding-inline:12px;grid-template-rows:65px minmax(0,1fr) 65px}.lightbox-stage{grid-template-columns:35px minmax(0,1fr) 35px;gap:8px}.lightbox-stage .round-button{width:35px;height:35px}.lightbox-top{font-size:.75rem}.lightbox-stage img{max-height:calc(100dvh - 130px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* The official artwork keeps its original colours and proportions, set in a light frame. */
.wordmark {
  display: inline-flex;
  max-width: 100%;
  padding: 5px;
  background: #f7efd3;
  border: 1px solid #c7b18470;
  border-radius: 5px;
  box-shadow: 0 3px 12px #203e3508;
}
.brand-logo {
  display: block;
  width: 158px;
  max-width: 100%;
  height: auto;
  aspect-ratio: 1599 / 773;
  object-fit: contain;
  border-radius: 2px;
}
.footer-brand-line {
  align-items: center;
  padding-bottom: 40px;
}
.footer-brand-line .wordmark {
  padding: 12px;
  border-color: #c7b184;
  border-radius: 8px;
  box-shadow: 0 16px 40px #07191240;
}
.footer-brand-line .brand-logo {
  width: 286px;
}
@media (max-width: 1180px) {
  .site-header .brand-logo { width: 136px; }
}
@media (max-width: 760px) {
  .header-inner { gap: 16px; }
  .site-header .wordmark { padding: 4px; }
  .site-header .brand-logo { width: 126px; }
  .footer-brand-line { align-items: flex-start; gap: 24px; }
  .footer-brand-line .wordmark { padding: 10px; }
  .footer-brand-line .brand-logo { width: 250px; }
}
@media (max-width: 380px) {
  .header-actions { gap: 12px; }
  .menu-toggle { justify-content: center; min-width: 44px; }
  .menu-toggle > span:first-child {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
}
/* Refined composition and fluid layout, from compact phones to wide displays. */
:root {
  --gold: #c9ac70;
  --header-height: 104px;
  --header-offset: var(--header-height);
  --anchor-header-offset: var(--header-offset);
  --room-nav-offset: var(--room-nav-height, 75px);
  --gutter: clamp(22px, 5vw, 88px);
}
html { scroll-padding-top: var(--anchor-header-offset); }
body { font-size: 1rem; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: normal; }
h2 { font-size: clamp(2.4rem, 4.65vw, 5rem); line-height: 1.1; }
h3 { line-height: 1.15; }
h2 em { color: #6e795a; font-weight: 400; }
.wrap { max-width: 1560px; }
.section { padding-block: clamp(68px, 7.8vw, 120px); }
.copy { font-size: 1rem; line-height: 1.85; }
.copy p, .copy ul { margin-bottom: 1.3rem; }
.copy p:last-child { margin-bottom: 0; }
.eyebrow { font-size: .8rem; letter-spacing: .16em; }
.intro-grid > *, .room-layout > *, .story-grid > *, .wellness-intro > *, .location-grid > *, .conditions-grid > *, .footer-grid > *, .breakfast-grid > *, .image-story > *, .room-media, .story-media { min-width: 0; }
.button { border-radius: 3px; min-height: 54px; line-height: 1.45; }
.button .arrow, .text-link .arrow { flex-shrink: 0; }
.button:hover { box-shadow: 0 7px 20px #142e2714; }
.button.outline:hover { background: var(--forest); color: white; }
.text-link { min-height: 46px; line-height: 1.5; gap: 25px; }
.image-label { font-size: .78rem; line-height: 1.5; }

.site-header { background: #f6f5effa; box-shadow: 0 2px 18px #142e2705; }
.header-inner { min-height: var(--header-height); max-width: 1740px; margin-inline: auto; }
.site-header .wordmark { padding: 6px; border-radius: 4px; }
.site-header .brand-logo { width: 168px; }
.main-nav { gap: clamp(17px, 1.65vw, 28px); }
.main-nav > a { font-size: .875rem; min-height: 44px; display: inline-flex; align-items: center; }
.main-nav > a::after { bottom: 5px; }
.main-nav > .mobile-extra { display: none; }
.header-cta { font-size: .8rem; }
.languages summary { font-size: .875rem; min-width: 44px; justify-content: center; }
.language-options { border: 1px solid var(--line); border-radius: 4px; }
.language-options a { min-height: 44px; display: flex; align-items: center; }
.menu-toggle { min-width: 44px; }

.hero {
  height: auto;
  min-height: min(860px, calc(100svh - var(--header-height)));
  max-height: none;
  display: grid;
}
.hero-content {
  height: auto;
  min-height: min(860px, calc(100svh - var(--header-height)));
  padding-block: clamp(54px, 7vh, 90px) 142px;
}
.hero-image { object-position: 64% center; }
.hero::after {
  background: linear-gradient(90deg, #0d2822ae 0%, #142e2740 56%, #142e2708 85%),
    linear-gradient(0deg, #0c2822a8, transparent 46%);
}
.hero h1 { font-size: clamp(3.5rem, 6.85vw, 7.3rem); max-width: 930px; line-height: 1.01; letter-spacing: -.035em; }
.hero h1 em { display: block; color: #f0dfb4; }
.hero-description { font-size: 1rem; max-width: 460px; margin-top: 27px; }
.hero-buttons { margin-top: 30px; gap: 30px; }
.hero-bottom { height: 78px; font-size: .78rem; max-width: 1384px; margin-inline: auto; }
.hero-bottom > a { width: 44px; height: 44px; display: grid; place-items: center; font-size: 1.25rem; }

.essentials-inner { padding-block: 25px; }
.essential { font-size: .875rem; line-height: 1.5; padding-inline: 18px; }

.intro-grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: center; gap: clamp(36px, 7vw, 100px); }
.intro-detail { padding: 0; }
.intro-detail p { font-size: 1.02rem; }
.intro-detail p:first-child { font-size: 1.17rem; color: var(--ink); line-height: 1.75; }
.intro-photos { margin-top: 50px; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); gap: clamp(22px, 4vw, 56px); align-items: center; }
.intro-photos figure:first-child .photo { aspect-ratio: 1.55; }
.intro-photos figure:first-child img { aspect-ratio: auto; }
.intro-photos figure:last-child { padding-top: 55px; }
.intro-photos figure:last-child .photo { aspect-ratio: 1.05; border-radius: 90px 3px 3px 3px; }
.intro-photos figure:last-child img { aspect-ratio: auto; }
.photo { border-radius: 3px; }
.photo > img { position: absolute; inset: 0; width: 100%; height: 100%; }
.intro-photos .photo { width: 100%; }
.hospitality-notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; margin-top: 48px; }
.hospitality-note { border-top: 1px solid #c5cdbd; padding-top: 24px; }
.note-number { display: block; font-family: var(--serif); color: #8b774d; font-size: 1.7rem; margin-bottom: 12px; line-height: 1; }
.hospitality-note .copy { font-size: .875rem; line-height: 1.8; }
.more-gallery { margin-top: 36px; }
.more-gallery summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 32px; align-items: center; gap: 24px; font-size: .875rem; padding: 19px 2px; }
.more-gallery summary span { font-size: .8rem; color: var(--muted); }
/* Draw the toggle at the circle's centre, independently of the font baseline. */
.more-gallery summary::after {
  content: '';
  display: block;
  width: 32px;
  height: 32px;
  border: 1px solid #bec8b8;
  border-radius: 50%;
  background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
  background-position: center;
  background-repeat: no-repeat;
  background-size: .5em .1em, .1em .5em;
}
.more-gallery[open] summary::after { content: ''; background-size: .5em .1em, 0 0; }
.more-gallery summary:hover::after { background-color: var(--forest); color: white; }
.gallery-rail { min-width: 0; overscroll-behavior-inline: contain; }

.rooms-home { background: #e8ece2; }
.section-heading { align-items: flex-end; gap: 36px; }
.section-heading > div { min-width: 0; }
.section-heading .text-link { max-width: 300px; }
.room-card-grid { gap: 32px; }
.room-card .photo { aspect-ratio: 1.03; }
.room-card:nth-child(2) { margin-top: 46px; }
.room-card h3 { margin-top: 20px; font-size: clamp(2rem, 2.9vw, 3rem); }
.room-card-label { border-bottom: 1px solid #c4cebc; padding-block: 10px 19px; font-size: .76rem; gap: 12px; }
.room-card-label .arrow { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #bac8b1; border-radius: 50%; }
.rooms-copy { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 85px); column-count: auto; margin-top: 45px; padding-top: 34px; border-top: 1px solid #c4cebc; }
.room-description { max-width: 580px; }
.room-description p:first-child { font: 400 clamp(1.6rem, 2.15vw, 2rem)/1.4 var(--serif); color: var(--ink); }
.room-amenities { font-size: .9rem; }

.image-story { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); min-height: 630px; }
.image-story > .photo { border-radius: 0; min-height: 560px; }
.image-story-copy { padding: clamp(38px, 5vw, 76px); }
.image-story h2 { font-size: clamp(2.6rem, 4.1vw, 4.4rem); }
.image-story .copy { font-size: .95rem; line-height: 1.85; }
.breakfast-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(36px, 6vw, 85px); }
.breakfast-images .photo:first-child { border-radius: 3px 70px 3px 3px; }
.breakfast-images .photo:last-child { border-radius: 4px; box-shadow: 0 15px 40px #142e271c; }
.territory-banner { padding-block: clamp(90px, 10vw, 155px); }
.territory-banner h2 { font-size: clamp(3.1rem, 6.5vw, 6rem); }
.reviews-grid { gap: clamp(22px, 3.2vw, 45px); }
.review { background: #eeefe7; border: 0; border-radius: 3px; padding: 34px; }
.review h3 { font-size: 1.85rem; line-height: 1.2; }
.review cite { padding-top: 22px; border-top: 1px solid #d1d8c9; font-size: .875rem; }
.quote-mark { color: #ae9560; }

.page-hero { min-height: 390px; padding-block: 60px; }
.page-hero h1 { font-size: clamp(3rem, 6.2vw, 6.5rem); max-width: 1150px; }
.page-hero .eyebrow { color: #f0dfb4; }
.page-hero p { max-width: 800px; font-size: 1rem; }
.plain-hero { min-height: 0; padding-block: 65px 55px; background: linear-gradient(110deg, #eeeede, #f6f5ef 72%); }
.plain-hero .eyebrow { color: #6e795a; }
.breadcrumb { flex-wrap: wrap; font-size: .8rem; gap: 10px; }
.room-nav { gap: clamp(20px, 4vw, 60px); padding-block: 15px; }
.room-nav a { display: flex; align-items: center; min-height: 44px; font-size: .9rem; }
.room-layout { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(30px, 6vw, 85px); }
.room-section:nth-of-type(even) .room-layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.room-media { width: 100%; }
.room-cover { width: 100%; aspect-ratio: 1.4; }
.room-thumbnails { width: 100%; overscroll-behavior-inline: contain; gap: 10px; }
.room-thumbnails .photo { width: 84px; }
.room-thumbnails .photo:hover { outline: 2px solid var(--gold); outline-offset: -2px; }
.room-number { font-size: 2.2rem; margin-bottom: 20px; color: #a7905b; }
.room-layout h2 { font-size: clamp(2.6rem, 4vw, 4.3rem); }
.room-layout .copy { font-size: 1rem; }
.room-layout .button { margin-top: 12px; }
.wellness-intro { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(36px, 6vw, 85px); }
.wellness-intro .copy h4 { padding: 16px 22px; background: #ebece2; }
.wellness-gallery { gap: 30px; }
.wellness-gallery .photo { aspect-ratio: 1.35; }
.wellness-gallery + .section { padding-block: 50px; }
.story-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 85px); }
.story-media > .photo { aspect-ratio: 1.23; }
.story-grid h2 { font-size: clamp(2.5rem, 4vw, 4.3rem); }
.story-grid .copy { font-size: 1rem; }
.story-media .gallery-rail { grid-auto-columns: 66%; }

.table-scroll { border-radius: 4px; }
.rates-table { min-width: 700px; }
.rates-table th, .rates-table td { padding: 20px 24px; }
.rates-table tbody tr:nth-child(even) { background: #f4f6f0; }
.rates-table tbody tr:nth-child(odd) { background: white; }
.rates-table tbody tr:last-child td { border-bottom: 0; }
.rates-table td:not(:first-child) { font-size: 1.05rem; }
.rates-table td:first-child { font-size: .875rem; }
.rates-note { font-size: .875rem; line-height: 1.7; }
.conditions-grid { gap: clamp(35px, 6vw, 85px); }
.conditions-grid > div { border-top: 1px solid #c5cdbd; padding-top: 28px; }
.conditions-grid h2 { font-size: 2.5rem; }
.conditions-grid .copy { font-size: 1rem; }

.video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; }
.video-card { min-width: 0; }
.video-card iframe { border-radius: 4px; }
.video-card .image-label { font-size: .875rem; }

.location-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(35px, 6vw, 85px); }
.location-copy h2 { font-size: clamp(2.5rem, 3.6vw, 4rem); }
.location-copy .copy { font-size: .95rem; }
.location iframe { height: 440px; border-radius: 4px; }
.location-address { font-size: .875rem; }
.stay-cta { position: relative; border-bottom: 1px solid #ffffff24; }
.stay-cta h2 { font-size: clamp(3rem, 5.5vw, 5.5rem); }
.stay-cta h2 em { color: #ead9ac; }
.footer-brand-line { padding-bottom: 40px; }
.footer-place { font-size: .875rem; letter-spacing: .12em; }
.footer-about { font-size: .875rem; line-height: 1.85; }
.footer-contact ul { font-size: .875rem; }
.footer-grid h3 { font-size: .8rem; }
.footer-bottom { font-size: .75rem; line-height: 1.9; }
.copyright-pec { display: inline-block; max-width: 100%; }
.copyright-pec a { overflow-wrap: normal; }
.footer-socials a { width: 46px; height: 46px; }
.footer-contact .footer-contact-value { min-width: 0; }
.footer-contact .footer-contact-icon { flex-shrink: 0; }
.mobile-booking { gap: 14px; }
.mobile-booking .button { text-align: left; }

@media (min-width: 1800px) {
  .hero h1 { font-size: 7.3rem; }
  .hero-image { object-position: center 54%; }
  .image-story { max-width: 1720px; margin-inline: auto; }
  .hero-bottom { left: 0; right: 0; }
}
@media (max-width: 1250px) {
  .header-inner { gap: 20px; padding-inline: 28px; }
  .main-nav { gap: 18px; }
  .main-nav > a { font-size: .8rem; }
  .site-header .brand-logo { width: 156px; }
  .header-cta { font-size: .75rem; padding-inline: 16px; }
  .review { padding: 26px; }
}
@media (max-width: 1180px) {
  :root { --header-height: 88px; }
  .header-inner { padding-inline: var(--gutter); }
  .site-header .brand-logo { width: 140px; }
  .main-nav { inset: var(--header-offset) 0 0; padding: 28px var(--gutter) 110px; gap: 0; }
  .main-nav > a { font-size: 2.15rem; min-height: 54px; width: 100%; padding-block: 8px; border-bottom: 1px solid #d9ded4; }
  .main-nav > a::after { display: none; }
  .main-nav > .mobile-extra { display: inline-flex; width: auto; font-size: 1rem; border: 0; }
  .main-nav > a[aria-current="page"] { color: #806b3f; }
  .hero h1 { font-size: clamp(3.6rem, 8vw, 6.2rem); }
  
  .essential { font-size: .8rem; padding-inline: 14px; gap: 12px; }
  .hero-bottom { font-size: .75rem; }
  .section-heading { flex-wrap: wrap; }
  .section-heading .text-link { margin-top: 0; }
  .hospitality-notes { gap: 26px; }
  .image-story-copy { padding: 40px; }
  .image-story h2 { font-size: 2.8rem; }
  .image-story .copy { font-size: .9rem; }
  .room-layout, .room-section:nth-of-type(even) .room-layout { gap: 35px; }
  .room-layout h2 { font-size: 2.8rem; }
  .footer-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
  .footer-place { max-width: 290px; text-align: right; line-height: 1.9; }
}
@media (max-width: 900px) {
  .intro-grid { gap: 35px; }
  .intro-detail p:first-child { font-size: 1.05rem; }
  .intro-detail p { font-size: .95rem; }
  .hospitality-notes { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .hospitality-note { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
  .hospitality-note .copy { font-size: .95rem; }
  .room-layout, .room-section:nth-of-type(even) .room-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .room-section:nth-of-type(even) .room-media { order: 0; }
  .room-cover { aspect-ratio: 1.55; }
  .room-layout h2 { font-size: 3rem; }
  .image-story { grid-template-columns: minmax(0, 1fr); }
  .image-story > .photo { min-height: 0; aspect-ratio: 1.75; }
  .image-story-copy { padding: 48px var(--gutter) 56px; }
  .image-story h2 { max-width: 620px; font-size: clamp(2.8rem, 6vw, 4rem); }
  .image-story .copy { max-width: 660px; font-size: 1rem; }
  .reviews-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .review { padding: 30px; }
  .review h3 { font-size: 2rem; }
  .review .copy { font-size: .95rem; }
  .wellness-intro { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .story-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .story-section:nth-child(even) .story-media { order: 0; }
  .story-media > .photo { aspect-ratio: 1.65; }
  .story-grid h2 { font-size: 3rem; }
  .story-media .gallery-rail { grid-auto-columns: 45%; }

  .location-grid { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .location-copy h2 { max-width: 670px; font-size: 3rem; }
  .location-copy .copy { max-width: 720px; }
  .stay-inner { flex-wrap: wrap; gap: 30px; }
}
@media (max-width: 760px) {
  :root { --header-height: 80px; --room-nav-offset: var(--room-nav-height, 65px); --gutter: clamp(20px, 5.5vw, 30px); }
  h2 { font-size: clamp(2.35rem, 7.7vw, 3.5rem); }
  h1, h2, h3 { hyphens: none; }
  .section { padding-block: 64px; }
  .header-inner { min-height: var(--header-height); gap: 14px; }
  .site-header .wordmark { padding: 4px; }
  .site-header .brand-logo { width: 128px; }
  .header-actions { gap: 17px; }
  .main-nav { top: var(--header-offset); }
  .hero, .hero-content { min-height: clamp(605px, calc(100svh - var(--header-height) - 70px), 830px); }
  .hero-content { padding-block: 55px 118px; }
  .hero-image { object-position: 66% center; }
  .hero h1 { font-size: clamp(2.9rem, 10.2vw, 4.65rem); line-height: 1.06; max-width: 550px; hyphens: none; }
  .hero h1 em { margin-top: .035em; }
  .hero .eyebrow { font-size: .7rem; max-width: 320px; letter-spacing: .15em; }
  .hero-description { font-size: .95rem; max-width: 400px; margin-top: 24px; }
  .hero-buttons { gap: 20px; margin-top: 26px; }
  .hero-buttons .button, .hero-buttons .text-link { font-size: .875rem; }
  .hero-bottom { height: 76px; font-size: .69rem; gap: 15px; }
  .hero-bottom .hero-location { max-width: 150px; }
  .hero-index { gap: 7px; }
  .hero-index .hero-line { width: 18px; }
  .hero-index > span:last-child { display: none; }
  .essentials-inner { padding-block: 10px; }
  .essential { padding: 18px 10px; font-size: .8rem; gap: 10px; }
  .essential:nth-child(odd) { padding-left: 0; }
  .essential:nth-child(even) { padding-right: 0; }
  .essential svg { width: 25px; height: 25px; }
  .intro-grid { grid-template-columns: minmax(0, 1fr); gap: 27px; }
  .intro-detail p:first-child { font-size: 1.1rem; }
  .intro-detail p { font-size: 1rem; }
  .intro-photos { margin-top: 35px; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); align-items: start; }
  .intro-photos figure:first-child .photo { aspect-ratio: .85; }
  .intro-photos figure:last-child { padding-top: 45px; }
  .intro-photos figure:last-child .photo { aspect-ratio: .78; border-top-left-radius: 50px; }
  .image-label { font-size: .75rem; }
  .intro-photos .image-label > span:last-child { display: none; }
  .hospitality-notes { margin-top: 35px; gap: 22px; }
  .hospitality-note { padding-top: 22px; }
  .hospitality-note .copy { font-size: .95rem; }
  .more-gallery { margin-top: 28px; }
  .more-gallery summary { grid-template-columns: minmax(0, 1fr) 32px; gap: 15px; font-size: .875rem; }
  .more-gallery summary > span { display: none; }
  .more-gallery summary::after { font-size: 1.15rem; }
  .gallery-rail { grid-auto-columns: 88%; }
  .section-heading { display: block; margin-bottom: 30px; }
  .section-heading .text-link { margin-top: 17px; }
  .room-card-grid { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 85%; gap: 18px; overflow-x: auto; overscroll-behavior-inline: contain; }
  .room-card { min-width: 0; margin-top: 0; }
  .room-card:nth-child(2) { margin-top: 0; }
  .room-card .photo { aspect-ratio: 1.05; }
  .room-card h3 { font-size: 2.5rem; }
  .room-card-label { padding-bottom: 16px; font-size: .75rem; }
  .rooms-copy { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 30px; padding-top: 25px; }
  .room-description p:first-child { font-size: 1.9rem; }
  .room-amenities { font-size: .95rem; }
  .image-story { min-height: 0; }
  .image-story > .photo { aspect-ratio: 1.2; }
  .image-story-copy { padding: 45px var(--gutter) 55px; }
  .image-story h2 { font-size: clamp(2.4rem, 7.7vw, 3.5rem); }
  .breakfast-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .breakfast-images .photo:first-child { border-top-right-radius: 55px; }
  .territory-banner { padding-block: 78px; }
  .territory-banner h2 { font-size: clamp(2.8rem, 8.7vw, 4rem); }
  .review { padding: 28px; }
  .review h3 { font-size: 1.85rem; }
  .page-hero { min-height: 325px; padding-block: 45px; }
  .page-hero h1 { font-size: clamp(2.7rem, 9vw, 4.25rem); }
  .page-hero p { font-size: .95rem; }
  .plain-hero { min-height: 0; padding-block: 42px; }
  .page-hero .eyebrow { font-size: .75rem; }
  .breadcrumb { margin-bottom: 20px; font-size: .8rem; }
  .room-nav { gap: 4px 23px; padding-block: 12px; }
  .room-nav a { font-size: .875rem; }
  .room-layout, .room-section:nth-of-type(even) .room-layout { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .room-cover { aspect-ratio: 1.25; }
  .room-layout h2 { font-size: clamp(2.5rem, 8vw, 3.5rem); }
  .room-thumbnails .photo { width: 72px; }
  .wellness-intro h2 { font-size: clamp(2.4rem, 7.7vw, 3.5rem); }
  .wellness-gallery { gap: 16px; }
  .wellness-gallery .photo { aspect-ratio: .85; }
  .wellness-gallery + .section { padding-block: 32px; }
  .story-grid h2 { font-size: 2.8rem; }
  .story-media > .photo { aspect-ratio: 1.2; }
  .story-media .gallery-rail { grid-auto-columns: 75%; }
  .conditions-grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .conditions-grid h2 { font-size: 2.25rem; }

  .location-copy h2 { font-size: clamp(2.35rem, 7.5vw, 3.5rem); }
  .location iframe { height: 320px; }
  .location-address { font-size: .8rem; flex-wrap: wrap; }
  .photo-diary .gallery-top { flex-wrap: wrap; gap: 17px; }
  .photo-diary .gallery-top .eyebrow { font-size: .75rem; }
  .gallery-tools { gap: 8px; }
  .gallery-tools .round-button { width: 44px; height: 44px; }
  .stay-cta { padding-block: 60px; }
  .stay-cta h2 { font-size: clamp(2.75rem, 8vw, 4rem); }
  .footer-brand-line { align-items: flex-start; }
  .footer-place { text-align: left; font-size: .8rem; max-width: none; }
  .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .footer-bottom { font-size: .75rem; padding-bottom: 115px; }
  .mobile-booking { grid-template-columns: minmax(85px, .65fr) minmax(0, 1.35fr); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
  .mobile-booking > a:first-child { font-size: .875rem; min-height: 44px; display: grid; place-items: center; }
  .mobile-booking .button { font-size: .8rem; min-height: 48px; padding: 11px 15px; }
  body.menu-open .mobile-booking { visibility: hidden; }
}
/* Each room's four seasonal prices stay visible on phones and small tablets. */
@media (max-width: 900px) {
  .table-scroll { overflow: visible; border: 0; background: transparent; }
  .rates-table { display: block; min-width: 0; }
  .rates-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .rates-table tbody { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .rates-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid #d1d8c9; border-radius: 4px; overflow: hidden; }
  .rates-table tbody tr:nth-child(n) { background: white; }
  .rates-table td { display: block; min-width: 0; padding: 18px; text-align: left; border: 0; }
  .rates-table td:first-child { grid-column: 1 / -1; background: var(--forest); color: #dae3d6; font-size: .875rem; }
  .rates-table td:first-child i { color: #fff; font-size: 2rem; }
  .rates-table td:not(:first-child) { font-size: 1.45rem; color: var(--ink); border-top: 1px solid #d9ded4; }
  .rates-table td:nth-child(odd):not(:first-child) { border-left: 1px solid #d9ded4; }
  .rates-table td[data-period]::before { content: attr(data-period); display: block; font: 400 .78rem/1.6 var(--sans); color: var(--muted); margin-bottom: 5px; }
  .rates-table tr:hover td { background: inherit; }
  .rates-table tr:hover td:first-child { background: var(--forest); }
}
@media (max-width: 380px) {
  .header-actions { gap: 10px; }
  .site-header .brand-logo { width: 120px; }
  .hero h1 { font-size: 2.85rem; }
  .hero-buttons { align-items: flex-start; gap: 10px 22px; }
  .hero-bottom .hero-location { max-width: 140px; }
  .hero-index { display: none; }
  .essential { font-size: .75rem; padding-inline: 8px; }
  .essential svg { width: 22px; }
  .mobile-booking { gap: 10px; padding-inline: 12px; }
  .mobile-booking .button { font-size: .76rem; padding-inline: 12px; }
  .mobile-booking .arrow { display: none; }
  .review { padding: 24px; }
  .footer-brand-line .brand-logo { width: min(250px, 100%); }
}
@media (max-height: 520px) and (min-width: 600px) {
  :root { --anchor-header-offset: 0px; }
  .site-header { position: relative; }
  body.menu-open .site-header { position: sticky; }
  .hero, .hero-content { min-height: 560px; }
  .hero-content { padding-block: 45px 112px; }
  .hero h1 { font-size: 3.7rem; }
  .hero-description { font-size: .95rem; }
  .main-nav > a { font-size: 1.5rem; min-height: 46px; padding-block: 5px; }
}
/* Business details, useful links and site credit form separate footer groups. */
.footer-legal {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) max-content;
  grid-template-areas: "identity links credit";
  align-items: start;
  gap: 24px 40px;
  padding-block: 5px 7px;
  font-size: .875rem;
  line-height: 1.65;
}
.footer-legal > * { min-width: 0; }
.footer-identity { grid-area: identity; }
.footer-business { margin: 0; color: #f5f1e7; font-size: 1rem; font-weight: 600; }
.footer-registration { display: flex; flex-wrap: wrap; gap: 7px 22px; margin: 12px 0 0; padding: 0; }
.footer-registration > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 6px; min-width: 0; }
.footer-registration dt { color: #c6d0c4; }
.footer-registration dd { margin: 0; color: #e0e7db; font-variant-numeric: tabular-nums; overflow-wrap: normal; }
.footer-legal-links { grid-area: links; display: grid; justify-items: start; gap: 8px; }
.footer-legal a { text-decoration-color: #dce4d975; text-underline-offset: 4px; overflow-wrap: normal; }
.footer-legal a:is(:hover, :focus-visible) { color: #fffdf5; text-decoration-color: currentColor; }
.footer-pec { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 7px; margin: 0; }
.footer-pec > span { color: #c6d0c4; }
.footer-credit { grid-area: credit; display: grid; justify-items: end; gap: 5px; margin: 0; text-align: right; }
.footer-credit-note { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.footer-credit-note img { width: 12px; height: 20px; flex: 0 0 12px; object-fit: contain; }
.footer-credit > a { color: #e8e4d7; font-weight: 600; }
@media (max-width: 1199px) {
  .footer-legal {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    grid-template-areas: "identity links" "identity credit";
    gap: 20px 36px;
  }
  .footer-credit { justify-items: start; text-align: left; }
  .footer-registration { display: grid; gap: 8px; }
  .footer-registration dt { flex: 0 0 5.5em; }
}
@media (max-width: 760px) {
  .footer-legal {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "identity" "links" "credit";
    gap: 20px;
  }
  .footer-registration { gap: 8px 20px; }
  .footer-legal-links { padding-top: 18px; border-top: 1px solid #ffffff20; }
}
@media print {
  .footer-legal { display: block; }
  .footer-legal > * + * { margin-top: 12px; }
  .footer-legal, .footer-legal p, .footer-legal dt, .footer-legal dd, .footer-legal span, .footer-legal a { color: black; }
}
/* The notice and return link have separate layout cells, with room for mobile booking. */
.footer-cookie-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px 40px;
  margin-top: 23px;
  padding-top: 23px;
  border-top: 1px solid #ffffff25;
}
.footer-cookie-row .cookie-notice {
  margin: 0;
  max-width: 108ch;
  min-width: 0;
  color: #c7d1c6;
  font-size: .875rem;
  line-height: 1.85;
  overflow-wrap: normal;
}
.footer-bottom .back-to-top {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: 12px;
  min-height: 48px;
  color: #f3eedc;
  font-size: .8125rem;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
}
.back-to-top-arrow {
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border: 1px solid #ffffff50;
  border-radius: 50%;
  font-size: 1.5rem;
  transition: background .2s, border-color .2s;
}
.back-to-top:hover .back-to-top-arrow,
.back-to-top:focus-visible .back-to-top-arrow {
  background: #ffffff12;
  border-color: #e5d6a9;
}
@media (max-width: 760px) {
  .footer-cookie-row { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .footer-bottom { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
}
@media print {
  .footer-cookie-row { display: block; border-color: #bbb; }
  .footer-cookie-row .cookie-notice { color: black; }
  .footer-bottom .back-to-top { display: none; }
}
/* Optional external media stays unloaded until its service is enabled. */
.consent-media {
  min-width: 0;
  overflow: hidden;
  border-radius: 4px;
  background: var(--deep);
  color: var(--paper);
}
.consent-media-cover {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(25px, 4vw, 60px);
  min-height: 330px;
  background: linear-gradient(130deg, #294b3e, #142e27);
}
.consent-media--maps .consent-media-cover { min-height: 440px; }
.consent-media--youtube .consent-media-cover { aspect-ratio: 16 / 9; }
.consent-media .eyebrow { color: #ded3b4; margin-bottom: 18px; }
.consent-media-title { font: 400 clamp(2rem, 3.3vw, 3.5rem)/1.15 var(--serif); }
.consent-media-description { max-width: 54ch; font-size: .9375rem; line-height: 1.7; color: #edf0e8; }
.consent-media-title + .consent-media-description { margin-top: 16px; }
.consent-media-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; margin-top: 26px; }
.consent-media-actions .button { min-height: 48px; font-size: .8125rem; line-height: 1.5; text-align: left; white-space: normal; }
.media-external-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .8125rem; text-decoration: underline; text-underline-offset: 4px; }
.consent-media iframe { width: 100%; border-radius: 0; }
.media-manage { display: block; width: 100%; min-height: 44px; padding: 9px 18px; border: 0; background: var(--deep); color: var(--paper); font-size: .8125rem; text-align: right; text-decoration: underline; text-underline-offset: 4px; }
.footer-cookie-actions { display: grid; justify-items: end; gap: 12px; }
.cookie-settings-link { min-height: 44px; padding: 5px 0; border: 0; background: transparent; color: #f3eedc; font-size: .8125rem; text-decoration: underline; text-underline-offset: 4px; }

body.consent-open { overflow: hidden; }
body.consent-open .mobile-booking { visibility: hidden; }
.consent-dialog {
  width: min(680px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  padding: clamp(23px, 4vw, 40px);
  border: 1px solid #d9ded4;
  border-radius: 4px;
  color: var(--ink);
  background: var(--paper);
  overflow: auto;
  overscroll-behavior: contain;
}
.consent-dialog::backdrop { background: #0e251fc2; }
.consent-dialog-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 10px; }
.consent-dialog-heading .eyebrow { margin: 0; }
.consent-close { flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--line); background: transparent; font-size: 1.8rem; line-height: 1; }
.consent-dialog h2 { font-size: clamp(2rem, 5vw, 2.65rem); line-height: 1.12; margin-bottom: 22px; }
.consent-dialog p { font-size: .9375rem; line-height: 1.65; }
.consent-dialog p.consent-detail { font-size: .8125rem; margin-top: 15px; color: var(--muted); }
.consent-dialog fieldset { min-width: 0; margin: 24px 0 18px; padding: 0; border: 0; }
.consent-dialog legend { font-size: .8rem; font-weight: 600; padding: 0 0 10px; }
.consent-option { display: flex; gap: 14px; align-items: flex-start; padding: 15px 0; border-top: 1px solid var(--line); cursor: pointer; }
.consent-option input { flex: 0 0 22px; width: 22px; height: 22px; margin: 3px 0 0; accent-color: var(--forest); }
.consent-option > span { min-width: 0; }
.consent-option strong { display: block; font-size: .95rem; font-weight: 600; }
.consent-option span span { display: block; font-size: .8125rem; line-height: 1.6; color: var(--muted); margin-top: 3px; }
.consent-policy-links { display: flex; gap: 8px 22px; flex-wrap: wrap; }
.consent-dialog .consent-policy-links a { font-size: .75rem; text-decoration: underline; text-underline-offset: 3px; }
.consent-dialog-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 25px; }
.consent-dialog-actions .button { justify-content: center; min-width: 0; min-height: 48px; padding: 12px; font-size: .8125rem; line-height: 1.5; text-align: center; }
@media (max-width: 760px) {
  .consent-media-cover { padding: 28px 24px; min-height: 330px; }
  .video-grid { grid-template-columns: minmax(0, 1fr); }
  .consent-media--maps .consent-media-cover { min-height: 330px; }
  .consent-media--youtube .consent-media-cover { aspect-ratio: auto; }
  .footer-cookie-actions { width: 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
}
@media (max-width: 440px) {
  .consent-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); padding: 20px; }
  .consent-dialog-actions { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .consent-dialog h2 { font-size: 2.05rem; }
  .consent-media-actions { align-items: flex-start; flex-direction: column; gap: 8px; }
}
@media print {
  .consent-dialog, .cookie-settings-link, .consent-media [data-cookie-settings] { display: none !important; }
  .consent-media-cover { min-height: 0 !important; aspect-ratio: auto; padding: 20px; background: #fff; color: #000; }
  .consent-media .eyebrow, .consent-media-description { color: #000; }
}
.menu-lines { position: relative; border: 0; height: 20px; }
.menu-lines::before, .menu-lines::after {
  content: ''; position: absolute; left: 0; width: 23px; height: 1px;
  background: currentColor; transition: transform .2s, top .2s;
}
.menu-lines::before { top: 5px; }
.menu-lines::after { top: 14px; }
.menu-open .menu-lines { transform: none; }
.menu-open .menu-lines::before { top: 10px; transform: rotate(45deg); }
.menu-open .menu-lines::after { top: 10px; transform: rotate(-45deg); }
.lightbox-close {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  line-height: 1;
}
/* A symmetric icon stays centered independently of font metrics and zoom. */
.lightbox-close svg { display: block; width: 24px; height: 24px; }
@media (max-width: 760px) {
  .lightbox-stage { display: flex; position: relative; justify-content: center; padding-bottom: 62px; }
  .lightbox-stage img { max-height: calc(100dvh - 192px); width: 100%; }
  .lightbox-stage .round-button { position: absolute; bottom: 3px; width: 44px; height: 44px; }
  .lightbox-stage [data-lightbox-prev] { left: calc(50% - 52px); }
  .lightbox-stage [data-lightbox-next] { right: calc(50% - 52px); }
}
@media print{.site-header, .mobile-booking, .gallery-tools, .stay-cta, .photo-diary, .lightbox {display:none!important}body{font-size:11pt;background:white;color:black}.hero,.page-hero{height:auto;min-height:0;color:black;padding:30px 0;background:white}.hero-image,.page-hero>img,.hero::after,.page-hero::after,.hero-bottom{display:none}.hero-content{padding:0;min-height:0}.hero-description{color:black}.section{padding-block:30px}.gallery-rail{display:flex;flex-wrap:wrap}.gallery-rail .photo{width:30%}.site-footer{background:white;color:black}.footer-contact{color:black}.room-layout,.story-grid{break-inside:avoid}.table-scroll{overflow:visible}.rates-table{min-width:0}.footer-bottom{padding-bottom:0}.footer-brand-line .wordmark{box-shadow:none}}

/* Stay planning, visual discovery and shared refinements. */
:root { --paper: #f7f5ef; }
select { font: inherit; color: inherit; }
select:focus-visible { outline: 3px solid #b39451; outline-offset: 4px; }

.button { font-weight: 600; }
.button:active { transform: translateY(0); }
.round-button:disabled { opacity: .35; cursor: default; background: transparent; color: inherit; }
.site-header { background: #f7f5eff5; backdrop-filter: blur(14px); }
/* A filtered ancestor would contain the fixed mobile menu inside the masthead. */
@media (max-width: 1180px) {
  .site-header { background: var(--paper); backdrop-filter: none; }
}
.hero, .hero-content { min-height: min(800px, max(660px, calc(100svh - 180px))); }
.hero-content { padding-block: 68px 150px; }
.hero h1 { font-size: clamp(3.5rem, 6.5vw, 7rem); }
.hero::after { background: linear-gradient(90deg, #0d2822b8, #142e2733 68%, #142e270d), linear-gradient(0deg, #102a22b0, transparent 60%); }
.hero-bottom { bottom: 57px; height: 64px; }
.hero-bottom .hero-index { display: none; }
.stay-planner { position: relative; z-index: 2; margin-top: -56px; padding-bottom: 36px; background: linear-gradient(transparent 56px, var(--paper) 56px); }
.planner-card { display: grid; grid-template-columns: minmax(190px, .8fr) minmax(0, 2fr); gap: clamp(24px, 3vw, 48px); align-items: center; padding: clamp(25px, 3vw, 42px); background: #fffdf7; border: 1px solid #d9ddce; border-radius: 5px; box-shadow: 0 16px 38px #18372a0c; }
.planner-heading .eyebrow { font-size: .67rem; letter-spacing: .14em; margin-bottom: 12px; }
.planner-heading h2 { font-size: clamp(1.9rem, 2.5vw, 2.6rem); line-height: 1.1; text-wrap: initial; }

.essentials { background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--line); }
.essentials-inner { padding-block: 0 30px; }
.essential { border-color: #d7ddce; min-width: 0; }
.essential > span { min-width: 0; overflow-wrap: normal; hyphens: none; }
.essential svg { stroke: #8a7549; }
.intro-photos figure:last-child .photo, .breakfast-images .photo:first-child { border-radius: 4px; }
.intro-photos figure:last-child { padding-top: 35px; }
.rooms-home { background: #e9eee4; }
.room-card-grid { gap: clamp(18px, 2.7vw, 38px); }
.room-card .photo { aspect-ratio: .96; }
.room-card:nth-child(2) { margin-top: 55px; }
.room-card-label { text-transform: none; letter-spacing: 0; font-size: .875rem; line-height: 1.5; }
.review { background: #fffdf8; border: 1px solid #dddccd; box-shadow: 0 9px 25px #142e2704; }
.review h3 { font-size: 1.95rem; }
.page-hero:not(.plain-hero) { min-height: 435px; }
.page-hero:not(.plain-hero)::after { background: linear-gradient(90deg, #102a23d6, #142e2740 80%); }
.plain-hero { background: #eeeede; }
.room-nav { position: sticky; top: var(--header-offset); z-index: 40; background: #f7f5effa; backdrop-filter: blur(12px); flex-wrap: nowrap; overflow-x: auto; justify-content: safe center; scrollbar-width: thin; gap: clamp(22px, 4vw, 60px); }
.room-nav a { flex-shrink: 0; border-bottom: 2px solid transparent; }
.room-nav a[aria-current=location] { border-color: #927c49; color: #755f31; }
.room-section { scroll-margin-top: var(--room-nav-offset); }
.room-overview { padding-block: 55px 70px; }
.room-overview h2 { font-size: clamp(2.2rem, 3.5vw, 3.75rem); max-width: 850px; }
.room-overview .eyebrow { margin-bottom: 15px; }
.overview-intro { color: var(--muted); margin-top: 18px; }
.room-overview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 35px; }
.room-preview { display: flex; flex-direction: column; min-width: 0; background: #fffdf8; border: 1px solid #dadccd; border-radius: 4px; overflow: hidden; transition: border-color .25s, box-shadow .25s; }
.room-preview:hover { border-color: #7b906f; box-shadow: 0 12px 30px #142e2710; }
.room-preview > img { width: 100%; aspect-ratio: 1.2; object-fit: cover; transition: filter .25s; }
.room-preview:hover > img { filter: brightness(1.06); }
.room-preview-info { display: flex; flex-direction: column; flex: 1; padding: 23px; }
.room-preview-name { font: 400 clamp(1.75rem, 2.1vw, 2.4rem)/1.2 var(--serif); }
.room-preview-feature { font-size: .8125rem; line-height: 1.55; color: var(--muted); margin-top: 9px; padding-bottom: 20px; }
.room-preview-guests { margin-top: auto; padding-top: 13px; border-top: 1px solid var(--line); font-size: .75rem; }
.room-overview + .room-section { padding-top: 35px; }
.room-section + .room-section { padding-top: 65px; border-top: 1px solid var(--line); }
.room-cover { aspect-ratio: 1.2; }
.room-actions { display: flex; flex-wrap: wrap; gap: 10px 25px; align-items: center; margin-top: 24px; }
.room-actions .button, .room-actions .text-link { margin: 0; }
.room-actions .text-link { font-size: .8125rem; }
.room-thumbnails .photo { border: 2px solid transparent; border-radius: 4px; }
.room-thumbnails .photo:focus-visible { outline-offset: -2px; }
.rate-request { display: block; width: fit-content; min-height: 44px; padding-top: 12px; font-size: .75rem; font-style: normal; text-decoration: underline; text-underline-offset: 4px; }
.rates-table tbody td { padding-block: 23px; }
.rates-table td:not(:first-child) { font-size: 1.1rem; font-weight: 500; }
.territory-navigation { padding-block: 45px 50px; border-bottom: 1px solid var(--line); }
.territory-nav-title { display: block; font: 400 clamp(1.9rem, 3vw, 3rem)/1.2 var(--serif); margin-bottom: 26px; }
.territory-navigation > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 36px; }
.territory-navigation a { display: flex; align-items: center; gap: 16px; min-height: 58px; padding-block: 14px; border-bottom: 1px solid var(--line); font-size: .875rem; line-height: 1.55; }
.territory-navigation a span { color: #947e50; font-size: .75rem; }
.territory-navigation a:hover { color: #7d693e; }

.footer-navigation { display: flex; gap: 10px 35px; flex-wrap: wrap; padding-bottom: 30px; margin-bottom: 40px; border-bottom: 1px solid #ffffff25; }
.footer-navigation a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; }
.footer-navigation a:hover, .footer-navigation a[aria-current] { color: #e6c98c; text-decoration: underline; text-underline-offset: 6px; }
.footer-brand-line { margin-bottom: 25px; border-bottom: 0; padding-bottom: 10px; }
.consent-media { border: 1px solid #496456; }
.video-card .image-label { padding-block: 10px; border-bottom: 1px solid var(--line); }

@media (min-width: 1600px) {
  .hero-image { object-position: center 55%; }
  .hero h1 { font-size: 7rem; }
}
@media (max-width: 1200px) {
  .planner-card { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .planner-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .planner-heading .eyebrow { margin: 0; max-width: 230px; }
  .planner-heading h2 { font-size: 2.3rem; }
  
  .room-preview-info { padding: 18px; }
  
}
@media (max-width: 900px) {
  .room-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .room-preview-info { padding: 24px; }
  .room-preview-name { font-size: 2.3rem; }
  .territory-navigation > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 25px; }

}
@media (max-width: 760px) {
  .hero, .hero-content { min-height: 640px; }
  .hero-content { padding-block: 50px 105px; }
  .hero h1 { font-size: clamp(3rem, 8.5vw, 4.5rem); }
  .hero-bottom { bottom: 0; height: 65px; }
  .stay-planner { margin-top: 0; padding-block: 24px 26px; background: var(--paper); }
  .planner-card { gap: 23px; padding: 24px; }
  .planner-heading { display: block; }
  .planner-heading .eyebrow { max-width: none; margin-bottom: 11px; }
  .planner-heading h2 { font-size: 2.2rem; }

  .essentials-inner { padding-bottom: 25px; }
  .essential { padding-block: 9px; }
  .room-card-grid { scroll-snap-type: x mandatory; padding-bottom: 12px; }
  .room-card { scroll-snap-align: start; }
  .room-card:nth-child(2) { margin-top: 0; }
  .room-card .photo { aspect-ratio: 1.08; }
  .room-card-label { font-size: .8125rem; }
  .page-hero:not(.plain-hero) { min-height: 360px; }
  .room-nav { padding-block: 10px; }
  .room-overview { padding-block: 40px 45px; }
  .room-overview-grid { gap: 15px; margin-top: 26px; }
  .room-preview > img { aspect-ratio: 1; }
  .room-preview-info { padding: 16px; }
  .room-preview-name { font-size: 1.85rem; }
  .room-preview-feature { font-size: .75rem; }
  .room-preview-guests { font-size: .7rem; }
  .room-overview + .room-section { padding-top: 20px; }
  .room-section + .room-section { padding-top: 45px; }
  .room-cover { aspect-ratio: 1.2; }
  .room-actions { gap: 12px; }
  .room-actions .button { width: 100%; }
  .room-actions .text-link { margin-inline: 0; }
  .territory-navigation { padding-block: 36px; }
  .territory-nav-title { font-size: 2.1rem; }

  .footer-navigation { gap: 8px 28px; margin-bottom: 30px; }
}
@media (max-width: 440px) {
  .planner-card { padding: 20px; }

  .room-overview-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .room-preview { display: grid; grid-template-columns: 42% minmax(0, 1fr); }
  .room-preview > img { height: 100%; min-height: 190px; aspect-ratio: auto; }
  .room-preview-name { font-size: 1.8rem; }
  .room-preview-info { padding: 17px; }
  .territory-navigation > div { grid-template-columns: minmax(0, 1fr); }

}
@media (max-width: 900px) {
  .rates-table td:not(:first-child) { font-size: 1.45rem; }
  .rate-request { color: #f0dfb4; }
}

@media (max-width: 320px) {
  .essentials-inner { grid-template-columns: minmax(0, 1fr); }
  .essential { justify-content: flex-start; min-height: 48px; padding-inline: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .essential:last-child { border-bottom: 0; }
}

@media (max-height: 520px) {
  :root { --room-nav-offset: 0px; }
  .room-nav { position: relative; top: auto; }
  
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0s !important; animation: none !important; }
}
@media print {
  .stay-planner, .room-nav, .room-overview, .territory-navigation, .footer-navigation, .rate-request { display: none !important; }
  .hero, .hero-content, .page-hero:not(.plain-hero) { min-height: 0; }

}

/* Contemporary typography and room for comfortable reading. */
:root {
  --sans: 'Manrope', Arial, sans-serif;
  --serif: 'Manrope', Arial, sans-serif;
  --ink: #213d33;
  --muted: #4e6258;
  --paper: #f8f8f2;
  --line: #dbe2d6;
}
body { font: 400 1.125rem/1.8 var(--sans); }
h1, h2, h3 { font-family: var(--sans); font-weight: 650; letter-spacing: -.04em; line-height: 1.15; }
h2 { font-size: clamp(2rem, 3.65vw, 3.65rem); }
h3 { font-size: clamp(1.5rem, 2.3vw, 2rem); }
h4 { font-family: var(--sans); font-size: 1.2rem; font-weight: 650; }
h2 em { font-style: normal; color: #547157; font-weight: inherit; }
.wrap { max-width: 1480px; }
.section { padding-block: clamp(64px, 7vw, 108px); }
.eyebrow { font-size: .875rem; font-weight: 650; letter-spacing: .1em; line-height: 1.6; }
.copy, .intro-detail p, .room-layout .copy, .story-grid .copy, .wellness-intro .copy,
.conditions-grid .copy, .rooms-copy, .room-amenities, .image-story .copy { font-size: 1.125rem; line-height: 1.8; }
.copy { color: var(--muted); }
.intro-detail p:first-child { font-size: 1.25rem; line-height: 1.7; }
.room-description p:first-child { font: 500 1.125rem/1.8 var(--sans); }
.button { border-radius: 999px; min-height: 56px; padding: 15px 25px; font-size: 1rem; line-height: 1.5; gap: 22px; }
.text-link { font-size: 1rem; line-height: 1.6; font-weight: 600; }
.photo, .intro-photos figure:last-child .photo, .breakfast-images .photo:first-child { border-radius: 22px; }
.photo::after { width: 44px; height: 44px; background: #173d32aa; border-color: #ffffff70; }
.image-label { font-size: .9375rem; line-height: 1.6; }
.round-button { background: #fffdf8; width: 50px; height: 50px; padding: 0; line-height: 1; }
/* Symmetric arrow artwork stays centred in every button state and size. */
.round-button svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.header-inner { gap: 24px; }
.site-header .wordmark { border-radius: 10px; }
.main-nav { gap: clamp(16px, 1.45vw, 24px); }
.main-nav > a { font-size: 1rem; font-weight: 500; }
.header-cta { font-size: .9375rem; padding: 13px 22px; gap: 16px; }
.languages summary, .language-options a, .menu-toggle { font-size: .9375rem; }
.language-options { border-radius: 12px; padding: 10px; }
.language-options a { border-radius: 7px; }
.hero, .hero-content { min-height: min(820px, max(700px, calc(100svh - 150px))); }
.hero-content { padding-block: 60px 155px; }
.hero h1 { font: 600 clamp(3.4rem, 6vw, 6.2rem)/1.07 var(--sans); letter-spacing: -.055em; max-width: 1050px; }
.hero h1 em { font-style: normal; font-weight: inherit; color: #f4dfa9; }
.hero .eyebrow { font-size: .9375rem; font-weight: 600; letter-spacing: .09em; }
.hero-description { font-size: 1.125rem; max-width: 560px; line-height: 1.75; }
.hero-bottom { font-size: .9375rem; letter-spacing: .015em; }
.hero-buttons { gap: 20px 30px; flex-wrap: wrap; }
.planner-card { border-radius: 24px; background: #fffef9; box-shadow: 0 18px 50px #1b3d2f0e; border-color: #e0e5d7; }
.planner-heading .eyebrow { font-size: .875rem; letter-spacing: .08em; }
.planner-heading h2 { font-size: clamp(1.65rem, 2.2vw, 2.15rem); font-weight: 650; line-height: 1.25; }

.essential { font-size: 1rem; gap: 14px; padding-inline: 20px; }
.essential svg { width: 30px; height: 30px; stroke: #627d57; }
.essentials-inner { padding-block: 2px 34px; }
.intro-grid { gap: clamp(36px, 5vw, 72px); align-items: start; }
.intro-photos { gap: 28px; align-items: center; margin-top: 40px; }
.intro-photos figure:last-child { padding-top: 40px; }
.hospitality-notes { gap: 22px; }
.hospitality-note { display: block; padding: 28px; background: #fffefa; border: 1px solid var(--line); border-radius: 18px; }
.hospitality-note .copy { font-size: 1.0625rem; line-height: 1.8; }
.note-number, .room-number { font: 700 1rem/1.5 var(--sans); letter-spacing: .09em; color: #66805a; margin-bottom: 18px; }
.more-gallery summary { font-size: 1rem; font-weight: 600; padding-block: 22px; }
.more-gallery summary span { font-size: .9375rem; font-weight: 400; }
.rooms-home { background: #edf1e7; }
.room-card-grid { gap: 25px; align-items: stretch; }
.room-card, .room-card:nth-child(2) { margin-top: 0; min-width: 0; background: #fffef9; border: 1px solid #dce3d4; border-radius: 22px; overflow: hidden; }
.room-card > a { display: block; height: 100%; }
.room-card .photo { aspect-ratio: 1.3; border-radius: 0; }
.room-card h3 { font-size: 1.75rem; margin: 24px 24px 0; font-weight: 650; }
.room-card-label { font-size: 1rem; padding: 15px 24px 25px; border: 0; gap: 12px; }
.room-card-label .arrow { flex: 0 0 36px; background: #edf2e6; border-color: #d5dfcc; }
.rooms-copy { margin-top: 36px; gap: 45px; }
.image-story { width: calc(100% - var(--gutter) - var(--gutter)); max-width: 1320px; margin: 70px auto; border-radius: 28px; overflow: hidden; min-height: 0; }
.image-story > .photo { border-radius: 0; min-height: 100%; }
.image-story-copy { padding: clamp(30px, 4vw, 56px); }
.image-story h2 { font-size: clamp(2rem, 3.3vw, 3.25rem); }
.image-story .copy { color: #edf2e6; }
.breakfast-images .photo:last-child { border-radius: 18px; }
.territory-banner { padding-block: clamp(90px, 10vw, 145px); }
.territory-banner h2 { font-size: clamp(2.7rem, 5.4vw, 5.1rem); font-weight: 600; max-width: 930px; }
.territory-banner .hero-description { max-width: 570px; }
.review { border-radius: 22px; padding: 32px; background: #fffefa; box-shadow: none; }
.review h3 { font-size: 1.5rem; line-height: 1.4; font-weight: 650; margin-top: 16px; }
.review .copy { font-size: 1.0625rem; line-height: 1.8; }
.review cite { font-size: 1rem; font-weight: 600; }
.quote-mark { font-family: var(--sans); font-weight: 500; color: #789268; }
.page-hero h1 { font-size: clamp(2.8rem, 5.6vw, 5.5rem); line-height: 1.1; font-weight: 650; max-width: 1100px; }
.page-hero p { font-size: 1.125rem; line-height: 1.75; max-width: 850px; }
.plain-hero { background: #eaf0e2; }
.breadcrumb { font-size: 1rem; }
.room-nav { gap: clamp(20px, 4vw, 58px); }
.room-nav a { font-size: 1rem; font-weight: 550; }
.room-overview h2 { font-size: clamp(2rem, 3.3vw, 3.2rem); }
.overview-intro { font-size: 1.125rem; }
.room-preview { border-radius: 20px; border-color: #dbe3d3; }
.room-preview-info { padding: 24px; }
.room-preview-name { font: 650 clamp(1.45rem, 2vw, 1.8rem)/1.25 var(--sans); letter-spacing: -.025em; }
.room-preview-feature { font-size: 1rem; line-height: 1.65; }
.room-preview-guests { font-size: .9375rem; line-height: 1.6; }
.room-layout { width: calc(100% - var(--gutter) - var(--gutter)); max-width: 1320px; padding: clamp(24px, 3.5vw, 48px); background: #fffef9; border: 1px solid var(--line); border-radius: 26px; gap: clamp(30px, 4vw, 55px); }
.room-section:nth-of-type(even) .room-layout { gap: clamp(30px, 4vw, 55px); }
.room-layout h2 { font-size: clamp(2rem, 3.15vw, 3rem); margin-bottom: 24px; }
.room-layout .copy h4 { font-size: .9375rem; letter-spacing: .08em; }
.room-actions .text-link { font-size: 1rem; }
.room-cover { border-radius: 18px; aspect-ratio: 1.25; }
.room-thumbnails .photo { width: 94px; border-radius: 9px; }
.room-section + .room-section { border: 0; padding-top: 0; }
.wellness-intro h2 { font-size: clamp(2rem, 3.4vw, 3.3rem); }
.wellness-intro .copy h4 { font-size: 1.0625rem; line-height: 1.75; padding: 24px; border-radius: 14px; background: #ebf0e3; }
.wellness-gallery { gap: 26px; }
.story-grid h2 { font-size: clamp(2rem, 3.5vw, 3.4rem); }
.story-section:nth-child(even) { background: #edf1e7; }
.territory-nav-title { font: 650 clamp(1.8rem, 3vw, 2.8rem)/1.25 var(--sans); letter-spacing: -.035em; }
.territory-navigation > div { gap: 16px; }
.territory-navigation a { font-size: 1rem; font-weight: 500; min-height: 96px; padding: 22px; background: #fffefa; border: 1px solid var(--line); border-radius: 16px; transition: border-color .2s, background .2s; }
.territory-navigation a { min-width: 0; overflow-wrap: normal; hyphens: none; }
.territory-navigation a:hover { background: #edf2e6; border-color: #9caf8d; color: var(--ink); }
.territory-navigation a span { font-size: .9375rem; font-weight: 650; color: #63804f; }
.table-scroll { border-radius: 20px; border-color: #d5dfcc; }
.rates-table { font-size: 1rem; }
.rates-table th { font-size: 1rem; line-height: 1.6; padding: 23px 18px; }
.rates-table td:first-child { font-size: 1rem; line-height: 1.65; }
.rates-table td:first-child i { font: 650 1.4rem/1.5 var(--sans); }
.rates-table td:not(:first-child) { font-size: 1.25rem; }
.rate-request { font-size: .9375rem; line-height: 1.6; padding-block: 12px 5px; }
.rates-note { font-size: 1rem; line-height: 1.8; }
.conditions-grid h2 { font-size: 2rem; }

.location { background: #edf1e7; }
.location-copy h2 { font-size: clamp(2rem, 3.35vw, 3.2rem); }
.location-copy .copy { font-size: 1.0625rem; line-height: 1.8; }
.location-address { font-size: 1rem; line-height: 1.7; align-items: flex-start; flex-wrap: wrap; }
.consent-media { border-radius: 22px; }
.consent-media-title { font: 650 clamp(1.7rem, 2.6vw, 2.5rem)/1.2 var(--sans); letter-spacing: -.03em; }
.consent-media-description { font-size: 1.0625rem; line-height: 1.75; }
.consent-media-actions .button, .media-external-link, .media-manage { font-size: 1rem; }
.consent-media-actions .button { text-align: center; }
.video-card .image-label { font-size: 1rem; }
.stay-cta h2 { font-size: clamp(2.4rem, 4.6vw, 4.5rem); font-weight: 600; }
.stay-cta h2 em { color: #f0dfb4; font-style: normal; }
.footer-place, .footer-grid h3 { font-size: .9375rem; line-height: 1.8; letter-spacing: .09em; }
.footer-about, .footer-contact ul { font-size: 1rem; line-height: 1.85; }
.footer-navigation a { font-size: 1.0625rem; }
.footer-bottom { font-size: .9375rem; line-height: 1.9; }
.footer-cookie-row .cookie-notice { font-size: 1rem; line-height: 1.85; }
.cookie-settings-link, .footer-bottom .back-to-top { font-size: 1rem; }
.footer-brand-line .wordmark { border-radius: 14px; }
.lightbox-top, .lightbox-caption { font-size: 1rem; }
.lightbox-inner { grid-template-rows: auto minmax(0, 1fr) auto; }
.lightbox-top { min-height: 70px; }
.lightbox-stage img { max-height: 100%; }
/* A lone photo uses the full stage when the navigation buttons are hidden. */
.lightbox-single .lightbox-stage { grid-template-columns: minmax(0, 1fr); padding-bottom: 0; }
.lightbox-caption { padding: 12px 0 16px; line-height: 1.5; overflow-wrap: normal; hyphens: none; }
.lightbox .round-button { background: #ffffff14; color: #fff; border-color: #ffffff65; }
.lightbox .round-button:hover { background: #ffffff2b; }
.consent-dialog { border-radius: 22px; }
.consent-dialog h2 { font-size: 2rem; line-height: 1.2; }
.consent-dialog p { font-size: 1rem; line-height: 1.75; }
.consent-dialog p.consent-detail, .consent-option span span, .consent-dialog legend { font-size: .9375rem; }
.consent-option strong { font-size: 1.0625rem; }
.consent-dialog .consent-policy-links a { font-size: .9375rem; }
.consent-dialog-actions .button { font-size: 1rem; border-radius: 12px; padding: 12px 10px; }
.consent-close { border-radius: 10px; }

@media (max-width: 1360px) and (min-width: 1181px) {
  .main-nav { gap: 14px; }
  .main-nav > a { font-size: .9375rem; }
  .header-actions { gap: 14px; }
  .header-cta { font-size: .875rem; padding-inline: 18px; }
}
@media (max-width: 1200px) {
  .planner-heading h2 { font-size: 2rem; }
  .planner-heading .eyebrow { max-width: none; }
  
  .room-preview-info { padding: 20px; }
}
@media (max-width: 1180px) {
  .site-header { background: var(--paper); backdrop-filter: none; }
  .main-nav { gap: 0; padding-bottom: max(24px, env(safe-area-inset-bottom)); overscroll-behavior: contain; }
  .main-nav > a { flex-shrink: 0; font-size: 1.7rem; min-height: 60px; font-weight: 550; white-space: normal; overflow-wrap: normal; }
  .main-nav > .mobile-extra { font-size: 1.0625rem; }
  .header-cta { font-size: .9375rem; }
  .essential { font-size: 1rem; padding-inline: 14px; }
}
@media (max-width: 900px) {
  .image-story > .photo { min-height: 0; aspect-ratio: 1.65; }
  .room-layout, .room-section:nth-of-type(even) .room-layout { gap: 28px; }
  .hospitality-note { padding: 25px; }
  .room-preview-info { padding: 24px; }
  
  .review h3 { font-size: 1.55rem; }
}

@media (max-width: 760px) {
  body { font-size: 1.0625rem; }
  h1, h2, h3 { hyphens: none; }
  h2 { font-size: clamp(2rem, 6.5vw, 2.7rem); }
  .copy, .intro-detail p, .room-layout .copy, .story-grid .copy, .wellness-intro .copy,
  .conditions-grid .copy, .rooms-copy, .room-amenities, .image-story .copy { font-size: 1.0625rem; line-height: 1.8; }
  .intro-detail p:first-child { font-size: 1.125rem; }
  .eyebrow, .hero .eyebrow, .page-hero .eyebrow, .photo-diary .gallery-top .eyebrow { font-size: .875rem; }
  .hero, .hero-content { min-height: 670px; }
  .hero-content { padding-block: 46px 115px; }
  .hero h1 { font-size: clamp(2.6rem, 7.6vw, 3.8rem); line-height: 1.1; }
  .hero-description { font-size: 1.0625rem; }
  .hero-buttons { gap: 10px 22px; }
  .hero-bottom { font-size: .875rem; }
  .button { font-size: 1rem; padding-inline: 22px; }
  .planner-card { border-radius: 20px; padding: 25px; }
  .planner-heading h2 { font-size: 1.9rem; }

  .essential { font-size: .9375rem; padding: 13px 12px; }
  .essential svg { width: 26px; height: 26px; }
  .intro-photos { gap: 20px; }
  .intro-photos figure:last-child { padding-top: 0; }
  .photo { border-radius: 18px; }
  .image-label { font-size: .9375rem; }
  .more-gallery summary { font-size: 1rem; }
  .room-card-grid { grid-auto-flow: row; grid-template-columns: minmax(0, 1fr); grid-auto-columns: auto; overflow: visible; gap: 20px; padding: 0; }
  .room-card > a { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); grid-template-rows: auto auto; }
  .room-card .photo { grid-row: 1 / 3; height: 100%; min-height: 190px; aspect-ratio: auto; }
  .room-card h3 { align-self: end; margin: 22px 20px 0; font-size: 1.55rem; }
  .room-card-label { padding: 12px 20px 22px; font-size: .9375rem; align-items: flex-end; flex-wrap: wrap; }
  .room-card-label .arrow { width: 32px; height: 32px; flex-basis: 32px; }
  .rooms-copy { gap: 26px; }
  .image-story { margin-block: 45px; border-radius: 22px; }
  .image-story-copy { padding: 30px 25px 38px; }
  .image-story h2 { font-size: clamp(1.85rem, 6vw, 2.7rem); }
  .territory-banner h2 { font-size: clamp(2.35rem, 7.2vw, 3.5rem); }
  .review { padding: 27px; }
  .page-hero h1 { font-size: clamp(2.35rem, 7.5vw, 3.75rem); }
  .page-hero p, .overview-intro { font-size: 1.0625rem; }
  .breadcrumb { font-size: .9375rem; }
  .room-nav a { font-size: 1rem; }
  .room-overview h2 { font-size: clamp(2rem, 6.4vw, 2.7rem); }
  .room-preview-name { font-size: 1.5rem; }
  .room-preview-info { padding: 20px; }
  .room-preview-feature, .room-preview-guests { font-size: .9375rem; }
  .room-layout { padding: 25px; border-radius: 22px; }
  .room-layout h2 { font-size: clamp(1.85rem, 6vw, 2.7rem); }
  .room-thumbnails .photo { width: 78px; }
  .wellness-intro h2, .story-grid h2 { font-size: clamp(2rem, 6.4vw, 2.75rem); }
  .wellness-intro .copy h4 { font-size: 1rem; padding: 22px; }
  .wellness-gallery { gap: 18px; }
  .territory-nav-title { font-size: 1.85rem; }
  .territory-navigation a { font-size: 1rem; padding: 20px; }

  .location-copy h2 { font-size: clamp(2rem, 6.4vw, 2.8rem); }
  .location-address { font-size: 1rem; }
  .consent-media-cover { padding: 30px 25px; }
  .consent-media-title { font-size: 1.75rem; }
  .stay-cta h2 { font-size: clamp(2.25rem, 7vw, 3.4rem); }
  .footer-place { font-size: .9375rem; }
  .footer-bottom { font-size: .9375rem; padding-bottom: calc(140px + env(safe-area-inset-bottom)); }
  .lightbox-top { min-height: 65px; }
  .mobile-booking { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 12px; }
  .mobile-booking > a:first-child { font-size: .9375rem; }
  .mobile-booking .button { border-radius: 13px; font-size: .9375rem; min-height: 54px; padding: 12px 15px; }
}
@media (max-width: 600px) {
  .territory-navigation > div { grid-template-columns: minmax(0, 1fr); }
  .rates-table tbody tr { border-radius: 18px; }
  .rates-table td:first-child { font-size: 1rem; }
  .rates-table td:first-child i { font-size: 1.5rem; }
  .rates-table td[data-period]::before { font-size: .9375rem; line-height: 1.6; }
  .rates-table td:not(:first-child) { font-size: 1.5rem; }
}
@media (max-width: 440px) {
  .planner-card { padding: 22px 19px; }

  .room-preview { grid-template-columns: 40% minmax(0, 1fr); }
  .room-preview-info { padding: 20px 17px; }
  .room-preview > img { min-height: 210px; }
  .room-card h3 { margin-inline: 16px; font-size: 1.45rem; }
  .room-card-label { padding-inline: 16px; }

  .consent-dialog h2 { font-size: 1.75rem; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 2.35rem; }
  .hero-buttons .button { width: 100%; }
  .planner-heading h2 { font-size: 1.7rem; }

  .room-layout { padding: 22px 19px; }
  .room-preview { grid-template-columns: minmax(0, 1fr); }
  .room-preview > img { aspect-ratio: 1.4; min-height: 0; height: auto; }
  .room-card > a { display: block; }
  .room-card .photo { aspect-ratio: 1.4; min-height: 0; height: auto; }
  .room-card h3 { margin-inline: 22px; font-size: 1.6rem; }
  .room-card-label { padding-inline: 22px; }
  .essential { justify-content: flex-start; padding-inline: 0; }
  .mobile-booking .button { font-size: .875rem; padding-inline: 10px; }
  .mobile-booking > a:first-child { font-size: .875rem; }
}
@media (max-width: 320px) {
  .header-inner { gap: 12px; }
  .header-actions { gap: 6px; }
  .site-header .brand-logo { width: 110px; }
}
/* Keep all eight links visible on short phones; landscape menus can scroll. */
@media (max-height: 680px) and (max-width: 1180px) {
  .main-nav { padding-block: 16px max(20px, env(safe-area-inset-bottom)); }
  .main-nav > a { min-height: 48px; font-size: 1.4rem; }
}
@media (max-height: 480px) and (max-width: 760px) {
  :root { --anchor-header-offset: 0px; }
  .site-header { position: relative; }
  body.menu-open .site-header { position: sticky; }
  .mobile-booking { display: none; }
  .footer-bottom { padding-bottom: 35px; }
}
@media print {
  body, .copy { font-size: 11pt; }
  .hero, .hero-content { min-height: 0; }
  .image-story, .room-layout, .review { border: 0; box-shadow: none; }
  .footer-bottom { padding-bottom: 0; }
}

/* Photographic compositions, warm materials and comfortable interactive details. */
@media screen {
  :root { --paper: #f7f5ee; --line: #dce1d4; }
  .header-inner { max-width: 1680px; margin-inline: auto; }
  .language-options { max-height: calc(100dvh - var(--header-offset) - 12px); overflow-y: auto; overscroll-behavior: contain; }
  .site-header .wordmark { box-shadow: none; border-color: #e5dec4; }
  .button { box-shadow: 0 3px 0 #102c2110; }
  .button.light { background: #faf7ee; border-color: #faf7ee; }
  .text-link { text-underline-offset: 6px; }
  .section-heading { margin-bottom: clamp(30px, 4vw, 52px); }
  .section-heading .eyebrow, .intro-copy > .eyebrow, .story-grid .eyebrow {
    color: #5d7253; padding-left: 38px; position: relative;
  }
  .section-heading .eyebrow::before, .intro-copy > .eyebrow::before, .story-grid .eyebrow::before {
    content: ''; position: absolute; left: 0; top: .78em; width: 24px; height: 1px; background: currentColor;
  }
  .hero { width: calc(100% - 48px); max-width: 1800px; margin: 14px auto 0; border-radius: 30px; }
  .hero-image { filter: brightness(1.12); object-position: 66% center; }
  .hero::after {
    background: linear-gradient(90deg, #102d25e8, #17392b80 48%, #17392b08 82%),
      linear-gradient(0deg, #102b24b3, transparent 52%);
  }
  .hero-content { padding-inline: clamp(34px, 5vw, 88px); }
  .hero h1 { max-width: 780px; font-weight: 600; letter-spacing: -.055em; }
  .hero .eyebrow { border: 1px solid #e4e8d95c; padding: 9px 14px; border-radius: 7px; background: #12352a42; }
  .hero-description { max-width: 520px; color: #fffdf6; }
  .hero-bottom { left: clamp(34px, 5vw, 88px); right: clamp(34px, 5vw, 88px); }
  .planner-card { border: 1px solid #d9ddcc; box-shadow: 0 16px 40px #203e3510; background: #fffdf7; }
  .planner-heading .eyebrow { color: #68754e; }
  
  .essentials { border-bottom: 0; }
  .essentials-inner { padding-top: 8px; padding-bottom: 30px; }
  .essential svg { stroke: #748454; stroke-width: 1.45; }
  #welcome { padding-top: clamp(45px, 6vw, 86px); }
  .intro-photos { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(24px, 3.5vw, 48px); }
  .intro-photos figure:first-child .photo { border-radius: 22px 22px 6px 22px; }
  .intro-photos figure:last-child .photo { border-radius: 22px 22px 22px 6px; }
  .intro-photos .image-label { padding-top: 6px; }
  .hospitality-note { border: 0; border-left: 1px solid #b5c2a6; border-radius: 0; background: transparent; padding: 4px 26px 4px 24px; }
  .note-number { color: #788657; font-size: 1.125rem; margin-bottom: 14px; }
  .more-gallery summary { border-color: #cbd5be; }
  .rooms-home { background: #e8eddf; }
  .room-card-grid { gap: 24px; }
  .room-card { position: relative; border: 0; background: var(--deep); border-radius: 22px; color: #fffdf5; }
  .room-card:focus-within { outline: 3px solid #8b6c2e; outline-offset: 5px; }
  .room-card > a { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: clamp(380px, 35vw, 500px); padding: 30px; }
  .room-card .photo { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; z-index: -2; border-radius: 0; }
  .room-card > a::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 28%, #10281e85 60%, #10281ef5); pointer-events: none; }
  .room-card h3 { margin: 0; font-size: clamp(1.75rem, 2.3vw, 2.3rem); line-height: 1.15; font-weight: 600; letter-spacing: -.025em; }
  .room-card-label { margin-top: 18px; padding: 16px 0 0; border-top: 1px solid #ffffff57; font-size: 1rem; color: #f0f2e8; gap: 14px; align-items: center; }
  .room-card-label .arrow { width: 40px; height: 40px; flex-basis: 40px; display: grid; place-items: center; background: #faf7ed; color: #203e35; border: 0; }
  .rooms-copy { max-width: 960px; padding-top: 32px; border-top: 1px solid #c3ceb6; margin-top: 40px; }
  .image-story { box-shadow: 0 16px 44px #1835270b; }
  .image-story-copy .eyebrow { color: #e2d2a7; }
  .image-story .text-link { border-color: #d6d9c9; }
  .breakfast-grid { gap: clamp(36px, 6vw, 86px); }
  .breakfast-images { padding-bottom: 54px; padding-right: 34px; }
  .breakfast-images .photo:first-child { border-radius: 22px; }
  .breakfast-images .photo:last-child { width: 43%; border: 7px solid var(--paper); box-shadow: 0 12px 30px #203e3514; }
  .territory-banner { width: calc(100% - 48px); max-width: 1800px; margin-inline: auto; border-radius: 28px; overflow: hidden; padding-block: clamp(95px, 11vw, 155px); }
  .territory-banner::after { background: linear-gradient(90deg, #112b22de, #142e2766 65%, #142e271a); }
  .territory-banner .wrap { padding-inline: clamp(34px, 5vw, 88px); }
  .territory-banner h2 { max-width: 830px; }
  .reviews-grid { gap: 24px; align-items: start; }
  .review { background: #fffdf7; border-color: #e0e3d7; padding: clamp(25px, 2.5vw, 36px); }
  .review .quote-mark { color: #879669; }
  .review cite { padding-top: 20px; border-top: 1px solid var(--line); }
  .page-hero:not(.plain-hero) { width: calc(100% - 48px); max-width: 1800px; margin: 14px auto 0; border-radius: 28px; overflow: hidden; }
  .page-hero:not(.plain-hero) .wrap { padding-inline: clamp(34px, 5vw, 88px); }
  .page-hero:not(.plain-hero)::after { background: linear-gradient(90deg, #112d24e0, #142e2740 80%); }
  .plain-hero { background: #e9eddf; }
  .plain-hero h1 { max-width: 1080px; }
  .breadcrumb { gap: 14px; }
  .room-nav { border-bottom-color: #d2dbc6; background: #f7f5ee; }
  .room-nav a[aria-current=location] { color: #52673e; border-color: #7e8c5d; }
  .room-overview { padding-top: 64px; }
  .room-preview { border-color: #d7dfcc; background: #fffdf7; }
  .room-preview > img { aspect-ratio: 1.3; }
  .room-preview-info { padding: 23px; }
  .room-preview-feature { padding-bottom: 18px; }
  .room-preview-guests { color: #5c6c52; }
  .room-layout { border-color: #e0e3d7; box-shadow: 0 12px 32px #203e3505; }
  .room-number { color: #748252; font-size: 1rem; padding-bottom: 12px; border-bottom: 1px solid #cbd5bb; width: fit-content; min-width: 48px; }
  .room-cover { aspect-ratio: 1.15; }
  .room-thumbnails { gap: 10px; }
  .room-thumbnails .photo { border-color: #e1e6d8; }
  .wellness-intro .copy h4 { background: #e9eddf; border-left-color: #98a775; }
  .wellness-gallery .photo { border-radius: 22px; }
  .territory-navigation a { position: relative; padding: 18px; gap: 16px; border-color: #d7dfcc; }
  .territory-navigation a::before { content: ''; display: block; width: 76px; height: 86px; flex: 0 0 76px; border-radius: 10px; background-size: cover; background-position: center; }
  .territory-navigation a[href='#discover-1']::before { background-image: url('../images/amenities-1-652x486.jpg'); }
  .territory-navigation a[href='#discover-2']::before { background-image: url('../images/portfolio/ciaspolate1.jpg'); }
  .territory-navigation a[href='#discover-3']::before { background-image: url('../images/amenities-4-652x486.jpg'); }
  .territory-navigation a[href='#discover-4']::before { background-image: url('../images/amenities-3-652x486.jpg'); }
  .territory-navigation a[href='#discover-5']::before { background-image: url('../images/amenities-5-652x486.jpg'); }
  .territory-navigation a[href='#discover-6']::before { background-image: url('../images/amenities-6-652x486.jpg'); }
  .territory-navigation a span { margin-left: auto; align-self: flex-start; padding-top: 2px; flex: 0 0 auto; white-space: nowrap; }
  .story-grid { gap: clamp(35px, 6vw, 86px); }
  .story-media > .photo { border-radius: 22px; }
  .story-section:nth-child(even) { background: #ecf0e5; }
  .rates-table th { padding-block: 24px; }
  .rates-note { padding: 22px 25px; border-left: 2px solid #95a276; background: #ecf0e4; border-radius: 0 12px 12px 0; }
  .conditions-grid { gap: 24px; }
  .conditions-grid > div { min-width: 0; padding: clamp(25px, 3vw, 42px); border: 1px solid #dde2d4; background: #fffdf7; border-radius: 20px; }
  .conditions-grid .copy { overflow-wrap: normal; hyphens: none; }

  .location { background: #e9eede; }
  .consent-media--maps .consent-media-cover { background: linear-gradient(110deg, #193d30f5, #193d30cc), url('../images/portfolio/struttura4.jpg') center / cover; }
  .consent-media { border-color: #6c805b; }
  .location-address { padding-top: 5px; }
  .photo-diary .photo { border-radius: 15px; }
  .stay-cta { background: #254638; padding-block: clamp(65px, 7vw, 100px); border-bottom: 1px solid #e0e5ce24; }
  .stay-cta .eyebrow { color: #d9cd9e; }
  .stay-inner { align-items: center; }
  .site-footer { background: #18352b; }
  .footer-brand-line { align-items: center; }
  .footer-brand-line .wordmark { padding: 12px; background: #f2eccf; border: 1px solid #e9e1bc; box-shadow: 0 8px 25px #0d211722; }
  .footer-navigation { gap: 8px 32px; }
  .footer-bottom .cookie-settings-link { padding: 9px 15px; border: 1px solid #ffffff45; border-radius: 9px; text-decoration: none; text-align: center; }
  .footer-bottom .cookie-settings-link:hover { background: #ffffff0d; border-color: #e4d7b1; }
  .back-to-top-arrow { border-radius: 12px; }

  @media (hover: hover) and (pointer: fine) {
    .room-card { transition: transform .3s, box-shadow .3s; }
    .room-card:hover { transform: translateY(-5px); box-shadow: 0 20px 35px #18382721; }
    .room-card > a:hover h3 { text-decoration: none; }
    .room-card > a:hover img { transform: scale(1.045); }
    .room-card .arrow { transition: transform .25s; }
    .room-card:hover .arrow { transform: translateX(3px); }
    .room-preview:hover { box-shadow: 0 12px 25px #203e3510; }
  }
  @media (min-width: 901px) and (max-width: 1199px) {
    .room-overview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .room-card > a { padding: 24px; min-height: 390px; }
  }
  @media (max-width: 1000px) {
    .territory-navigation a::before { width: 64px; height: 78px; flex-basis: 64px; }
    .territory-navigation a { gap: 12px; }
  }
  @media (max-width: 900px) {
    .intro-photos { gap: 24px; }
    .room-card > a { padding: 23px; min-height: 365px; }
    .room-card h3 { font-size: 1.8rem; }
    .room-card-label { font-size: .9375rem; }
    .room-card-label .arrow { width: 34px; height: 34px; flex-basis: 34px; }
    .territory-navigation a::before { width: 76px; height: 86px; flex-basis: 76px; }
  }
  @media (max-width: 760px) {
    .hero { width: calc(100% - 20px); margin-top: 8px; border-radius: 22px; }
    .hero-content { padding-inline: 24px; padding-bottom: 108px; }
    .hero .eyebrow { padding: 8px 11px; font-size: .8125rem; letter-spacing: .07em; max-width: 100%; }
    .hero h1 { font-size: clamp(2.55rem, 7.5vw, 3.8rem); }
    .hero::after { background: linear-gradient(90deg, #102d25c9, #15352763), linear-gradient(0deg, #102b24c9, transparent 70%); }
    .hero-bottom { left: 24px; right: 24px; bottom: 0; }
    .hero-description { font-size: 1.0625rem; }
    .hero-buttons { row-gap: 14px; }
    .stay-planner { padding-top: 22px; }
    .planner-card { border-radius: 18px; }
    .essentials-inner { padding-top: 0; }
    .section-heading .eyebrow, .intro-copy > .eyebrow, .story-grid .eyebrow { padding-left: 28px; }
    .section-heading .eyebrow::before, .intro-copy > .eyebrow::before, .story-grid .eyebrow::before { width: 17px; }
    .intro-photos { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .intro-photos figure:last-child { width: 85%; margin-left: auto; }
    .intro-photos figure:last-child img { aspect-ratio: 1.5; }
    .hospitality-note { padding: 0 0 0 21px; }
    .room-card-grid { gap: 20px; }
    .room-card > a { display: flex; min-height: 360px; padding: 26px; }
    .room-card h3 { margin: 0; font-size: 2rem; }
    .room-card-label { padding: 16px 0 0; margin-top: 16px; flex-wrap: nowrap; }
    .room-card .photo { min-height: 0; aspect-ratio: auto; }
    .room-card-label .arrow { width: 40px; height: 40px; flex-basis: 40px; }
    .rooms-copy { padding-top: 27px; margin-top: 32px; }
    .breakfast-images { padding-right: 25px; padding-bottom: 40px; }
    .territory-banner, .page-hero:not(.plain-hero) { width: calc(100% - 20px); border-radius: 22px; }
    .territory-banner .wrap, .page-hero:not(.plain-hero) .wrap { padding-inline: 24px; }
    .territory-banner { padding-block: 75px; }
    .territory-banner h2 { font-size: clamp(2.2rem, 7vw, 3.3rem); }
    .page-hero:not(.plain-hero) { margin-top: 8px; }
    .reviews-grid { gap: 20px; }
    .review { padding: 28px; }
    .room-overview { padding-top: 40px; }
    .room-preview-info { padding: 20px; }
    .room-cover { aspect-ratio: 1.2; }
    .rates-note { padding: 20px; }
    .conditions-grid > div { padding: 25px; }
    .territory-navigation a::before { width: 64px; height: 78px; flex-basis: 64px; }
    .territory-navigation a { padding: 16px; gap: 12px; }
    .stay-inner { align-items: flex-start; }
    .footer-brand-line { align-items: flex-start; }
    .footer-brand-line .wordmark { padding: 10px; }
    .footer-cookie-actions { gap: 16px; }
    .mobile-booking { left: 10px; right: 10px; bottom: 10px; border: 1px solid #d5ddc8; border-radius: 19px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); box-shadow: 0 4px 26px #15352624; }
    .mobile-booking .button { min-height: 50px; }
    .footer-bottom { padding-bottom: max(calc(150px + env(safe-area-inset-bottom)), var(--booking-clearance, 0px)); }
  }
  @media (max-width: 440px) {
    .room-preview > img { aspect-ratio: auto; }
    .room-preview-info { padding: 20px 17px; }
    .territory-navigation a span { display: none; }
  }
  @media (max-width: 360px) {
    .hero-content { padding-inline: 20px; }
    .hero h1 { font-size: 2.3rem; }
    .hero-bottom { left: 20px; right: 20px; }
    .room-card > a { min-height: 330px; padding: 23px; }
    .room-card h3 { font-size: 1.8rem; }
    .room-preview > img { aspect-ratio: 1.4; }
    .room-preview-info { padding: 22px; }
    .room-card-label .arrow { width: 34px; height: 34px; flex-basis: 34px; }
    .territory-navigation a::before { width: 54px; height: 72px; flex-basis: 54px; }
    .mobile-booking { left: 7px; right: 7px; padding-inline: 7px; gap: 6px; }
  }
  @media (max-height: 480px) and (max-width: 760px) {
    .footer-bottom { padding-bottom: 35px; }
    /* Side controls leave more height for photos on short screens. */
    .lightbox:not(.lightbox-single) .lightbox-stage {
      display: grid;
      grid-template-columns: 44px minmax(0, 1fr) 44px;
      gap: 12px;
      padding-bottom: 0;
    }
    .lightbox-stage .round-button { position: static; }
  }
}

/* Direct contact: a photographic welcome, clear channels and practical details. */
.contact-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  width: calc(100% - 48px);
  max-width: 1800px;
  margin: 14px auto 0;
  overflow: hidden;
  border-radius: 28px;
  background: #203e35;
  color: #fffdf5;
}
.contact-hero-copy { padding: clamp(32px, 4.4vw, 78px); align-self: center; min-width: 0; }
.contact-hero .breadcrumb { color: #e2e8da; font-size: .9375rem; margin-bottom: 38px; }
.contact-hero .eyebrow { color: #e8d8af; margin-bottom: 18px; }
.contact-hero h1 { font-size: clamp(2.4rem, 4.5vw, 5.1rem); line-height: 1.09; font-weight: 600; letter-spacing: -.05em; }
.contact-hero h1 em { color: #f4dfa9; font-style: normal; }
.contact-hero-copy > p { max-width: 42ch; margin-top: 26px; font-size: 1.125rem; line-height: 1.8; color: #eef2e7; }
.contact-hero .text-link { margin-top: 25px; }
.contact-hero-photo { min-width: 0; position: relative; min-height: 540px; isolation: isolate; }
.contact-hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 45% center; z-index: -2; }
.contact-hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #112a23d9, transparent 35%); z-index: -1; }
.contact-hero-photo figcaption { position: absolute; bottom: 30px; left: 30px; right: 30px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; font-size: .9375rem; line-height: 1.6; }
.contact-hero-photo figcaption span:last-child { color: #e7e3d2; }
.contact-hub { padding-bottom: 56px; }
.contact-introduction { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 6vw, 90px); align-items: end; margin-bottom: 44px; }
.contact-introduction h2 { font-size: clamp(1.9rem, 3vw, 3rem); line-height: 1.2; }
.contact-introduction .eyebrow { color: #526c45; margin-bottom: 18px; }
.contact-introduction > p { color: #59695c; font-size: 1.125rem; line-height: 1.8; max-width: 44ch; }
.contact-channels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.contact-channel { display: flex; flex-direction: column; min-width: 0; padding: clamp(24px, 2.5vw, 38px); border: 1px solid #d9dfcf; border-radius: 22px; background: #fffdf7; }
.contact-icon { display: inline-grid; place-items: center; flex: 0 0 50px; width: 50px; height: 50px; background: #eaf0e2; color: #34573d; border-radius: 14px; margin-bottom: 30px; }
.contact-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.contact-channel h3 { font-size: clamp(1.35rem, 1.8vw, 1.75rem); line-height: 1.3; letter-spacing: -.025em; text-wrap: initial; hyphens: none; }
.contact-channel > p { font-size: 1.0625rem; line-height: 1.75; color: #59695c; margin-top: 16px; margin-bottom: 32px; }
.contact-channel--whatsapp { background: #244a38; border-color: #244a38; color: #fffdf5; }
.contact-channel--whatsapp > p { color: #e7eddf; }
.contact-channel--whatsapp .contact-icon { background: #ffffff14; color: #f4dfa9; }
.contact-channel--email { background: #eaf0e1; }
.contact-channel--email .contact-icon { background: #fffdf5; }
.contact-numbers { margin: auto 0 0; }
.contact-numbers > div + div { padding-top: 17px; margin-top: 12px; border-top: 1px solid #dbe2d2; }
.contact-numbers dt { color: #59695c; font-size: .9375rem; }
.contact-numbers dd { margin: 0; }
.contact-numbers a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; font-size: clamp(1.125rem, 1.6vw, 1.35rem); font-weight: 650; }
.contact-numbers .arrow, .contact-email .arrow { flex-shrink: 0; font-size: 1.2rem; }
.contact-channel-action { margin-top: auto; }
.contact-account { display: block; font-size: 1.25rem; font-weight: 600; margin-bottom: 18px; }
.contact-channel .button { width: 100%; gap: 12px; justify-content: center; border-radius: 12px; padding-inline: 18px; }
.contact-channel .button img { flex: 0 0 20px; }
.contact-channel .button .arrow { margin-left: auto; }
.contact-email { display: block; min-height: 44px; padding-block: 10px; font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 650; overflow-wrap: normal; line-height: 1.6; text-decoration: underline; text-decoration-color: #84967a; text-underline-offset: 6px; }
.contact-email .arrow { margin-left: 8px; }
.contact-action-caption { display: block; margin-top: 8px; font-size: .9375rem; color: #52654d; }
.contact-registration { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 22px 30px; margin-top: 30px; padding-top: 26px; border-top: 1px solid #d5ddcb; color: #59695c; font-size: .9375rem; }
.contact-registration > span { color: #294534; }
.contact-registration dl { margin: 0; display: flex; flex-wrap: wrap; gap: 12px 28px; }
.contact-registration dl > div { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.contact-registration dt { font-weight: 650; }
.contact-registration dd { margin: 0; overflow-wrap: normal; }
.contact-location .location-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: clamp(32px, 5vw, 78px); }
.contact-location h2 { font-size: clamp(2rem, 3.1vw, 3rem); line-height: 1.18; }
.contact-address { display: flex; align-items: center; gap: 18px; padding-block: 26px; margin-block: 28px; border-block: 1px solid #c7d2b9; }
.contact-address .contact-icon { margin: 0; background: #fffdf3; }
.contact-address-label { display: block; font-size: .9375rem; color: #52654d; margin-bottom: 6px; }
.contact-address address { font: 600 1.125rem/1.7 var(--sans); }
.contact-welcome { font-weight: 650; font-size: 1.125rem; line-height: 1.7; margin-bottom: 18px; }
.contact-location .copy { font-size: 1.0625rem; line-height: 1.8; }
.contact-location .location-address { flex-wrap: wrap; gap: 16px 24px; font-size: 1rem; }
.contact-location .location-address a { min-height: 44px; display: inline-flex; align-items: center; gap: 16px; font-weight: 600; }
.direct-stay > p { color: #59695c; font-size: 1.125rem; }
.direct-stay-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 20px; }
.direct-stay-actions .text-link { margin: 0; }

/* Explicit foreground/background pairs keep hovered links readable. */
:root { --link-hover: #31563a; }

.main-nav > a:is(:hover, :focus-visible), .language-options a:is(:hover, :focus-visible) { color: #244a38; }
.button:is(:hover, :focus-visible), .button.outline:is(:hover, :focus-visible) {
  background: #142e27; border-color: #142e27; color: #fff; text-decoration: none;
}
.button.light:is(:hover, :focus-visible) { background: #fff; border-color: #fff; color: #142e27; }
.round-button:not(:disabled):is(:hover, :focus-visible) { background: #203e35; color: #fff; border-color: #203e35; }
.lightbox .round-button:is(:hover, :focus-visible) { background: #ffffff2b; border-color: #ffffff80; color: #fff; }
@media (min-width: 901px) and (max-width: 1100px) {
  .contact-channel { padding: 26px 22px; }
}
@media (max-width: 1000px) {
  .contact-hero { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); }
  .contact-hero-copy { padding: 36px; }
  .contact-hero h1 { font-size: clamp(2.5rem, 4.8vw, 3.5rem); }
}
@media (max-width: 900px) {
  .contact-introduction { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .contact-introduction > p { max-width: 60ch; }
  .contact-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-channel--email { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 30px; }
  .contact-channel--email .contact-icon { grid-column: 1 / -1; }
  .contact-channel--email > p { grid-column: 1; margin-bottom: 0; }
  .contact-channel--email .contact-channel-action { grid-column: 2; grid-row: 2 / 4; align-self: center; margin: 0; }
  .contact-location .location-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .contact-hero { grid-template-columns: minmax(0, 1fr); width: calc(100% - 24px); margin-top: 10px; border-radius: 22px; }
  .contact-hero-copy { padding: 30px; }
  .contact-hero .breadcrumb { margin-bottom: 28px; }
  .contact-hero h1 { font-size: clamp(2.35rem, 8vw, 3.7rem); }
  .contact-hero-copy > p { font-size: 1.0625rem; margin-top: 22px; }
  .contact-hero-photo { min-height: 0; aspect-ratio: 1.6; }
  .contact-hero-photo img { object-position: center; }
  .contact-hero-photo figcaption { bottom: 20px; left: 24px; right: 24px; font-size: .875rem; }
  .contact-hero-photo figcaption span:last-child { display: none; }
  .contact-hub { padding-block: 56px 42px; }
  .contact-introduction { margin-bottom: 30px; }
  .contact-introduction h2 { font-size: clamp(1.8rem, 5.5vw, 2.5rem); }
  .contact-channel { padding: 28px; }
  .contact-channel h3 { font-size: 1.5rem; }
  .contact-registration { font-size: .9375rem; }
  .contact-address { align-items: flex-start; gap: 14px; }
  .contact-address address { font-size: 1.0625rem; }
}
@media (max-width: 600px) {
  /* Match the dark price cards, including the shared hover/focus rule. */
  .rate-request { --link-hover: #fff2c7; }
  .contact-channels { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .contact-channel--email { grid-column: auto; display: flex; }
  .contact-channel--email > p { margin-bottom: 32px; }
  .contact-channel--email .contact-channel-action { align-self: stretch; margin-top: auto; }
  .contact-icon { margin-bottom: 24px; }
  .contact-numbers a { font-size: 1.25rem; }
  .contact-email { font-size: 1.125rem; }
  .contact-registration dl { flex-direction: column; }
  .direct-stay-actions { align-items: stretch; flex-direction: column; gap: 14px; }
  .direct-stay-actions .text-link { align-self: flex-start; }
}
@media (max-width: 360px) {
  .contact-hero-copy { padding: 27px 22px; }
  .contact-channel { padding: 25px 22px; }
  .contact-channel h3 { font-size: 1.4rem; }
  .contact-numbers a { font-size: 1rem; }
  .contact-account { font-size: 1.125rem; }
  .contact-address { flex-direction: column; }
}
@media print {
  .contact-hero { width: 100%; display: block; background: white; color: black; }
  .contact-hero-photo, .contact-hero .text-link, .contact-icon { display: none; }
  .contact-hero h1 em, .contact-hero .eyebrow, .contact-hero .breadcrumb, .contact-hero-copy > p { color: black; }
  .contact-channels { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .contact-channel { background: white; color: black; padding: 16px; break-inside: avoid; }
  .contact-channel p, .contact-action-caption { color: black; }
  .contact-channel--email { grid-column: auto; display: flex; }
  .contact-channel a { font-size: 10pt; }
}

/* Composition refinement: photography, reading rhythm and shared surfaces. */
@media screen {
  :root {
    --paper: #f7f5ef;
    --ink: #203b32;
    --muted: #5e6c60;
    --line: #d9dfd1;
    --section-space: clamp(64px, 7.5vw, 118px);
  }
  .section { padding-block: var(--section-space); }
  .copy { line-height: 1.85; }
  .eyebrow { font-weight: 650; letter-spacing: .105em; }
  .section-heading { gap: 28px 54px; margin-bottom: 42px; }
  .section-heading h2 { max-width: 22ch; }
  .button { font-weight: 650; box-shadow: none; }
  .button:focus-visible, .text-link:focus-visible { outline-offset: 5px; }
  .text-link { gap: 26px; text-decoration: none; }
  .site-header { background: #f7f5ef; border-bottom-color: #203e3514; }
  .header-inner { min-height: var(--header-height); }
  .site-header .wordmark { box-shadow: none; border-color: #d9cea9; }
  .main-nav > a { font-weight: 550; }

  /* The panorama stays open, with a strong, quiet reading area. */
  .hero { border-radius: 30px; background: #183b30; }
  .hero-content { padding-top: clamp(62px, 7vh, 110px); padding-bottom: 136px; }
  .hero h1 { max-width: 930px; font-size: clamp(3.4rem, 6.1vw, 6.25rem); line-height: 1.04; letter-spacing: -.055em; }
  .hero h1 em { color: #f4dfa9; }
  .hero .eyebrow { background: #163b304d; border: 1px solid #ffffff4d; border-radius: 7px; padding: 10px 15px; }
  .hero::after { background: linear-gradient(90deg, #0c2b22cf, #12382b65 58%, #16362b0a), linear-gradient(0deg, #102c24bc, transparent 64%); }
  .hero-description { max-width: 48ch; font-size: 1.1875rem; line-height: 1.75; }
  .hero-bottom { border-color: #ffffff47; }
  .planner-card { background: #fffdf7; border: 1px solid #d8ddcd; box-shadow: 0 14px 45px #173d2d09; border-radius: 22px; }
  .planner-heading { padding-right: 22px; border-right: 1px solid #d9dfd1; }
  .planner-heading h2 { font-size: clamp(1.8rem, 2.25vw, 2.35rem); }
  .direct-stay-actions { gap: 14px 28px; }
  .essentials { background: var(--paper); }
  .essentials-inner { gap: 0; padding-block: 8px 30px; border-bottom: 1px solid var(--line); }
  .essential { color: #355342; background: transparent; border-radius: 0; border: 0; border-right: 1px solid #d7dfcd; font-weight: 550; }
  .essential:last-child { border-right: 0; }
  .essential svg { stroke: #61764c; }

  .intro-grid { gap: clamp(36px, 7vw, 100px); align-items: start; }
  .intro-copy h2 { font-size: clamp(2.5rem, 4vw, 4rem); line-height: 1.12; }
  .intro-detail { padding-top: 8px; }
  .intro-detail p:first-child { color: #294334; }
  .intro-photos { gap: 30px; align-items: start; margin-top: 52px; }
  .intro-photos figure:first-child .photo { border-radius: 24px; aspect-ratio: 1.5; }
  .intro-photos figure:last-child { padding-top: 64px; }
  .intro-photos figure:last-child .photo { border-radius: 24px; aspect-ratio: 1.15; }
  .image-label { padding-top: 4px; color: #52664f; font-size: .9375rem; }
  .hospitality-notes { gap: 30px; margin-top: 50px; }
  .hospitality-note { padding: 26px 0 0; border: 0; border-top: 1px solid #bdc9ad; background: transparent; }
  .note-number { display: block; color: #566c41; font-size: 1rem; letter-spacing: .1em; margin-bottom: 14px; }
  .hospitality-note .copy { font-size: 1.0625rem; }
  .more-gallery summary { border: 1px solid #d3dcca; border-radius: 14px; background: #edf1e5; padding: 19px 24px; gap: 18px; }
  .more-gallery[open] summary { background: #e4ebd9; }

  /* Rooms: images and descriptions each have their own readable space. */
  .rooms-home { background: #edf0e6; border-block: 1px solid #dfe5d5; }
  .room-card-grid { gap: 26px; align-items: stretch; }
  .room-card { min-width: 0; margin: 0; border: 1px solid #d6decb; border-radius: 22px; overflow: hidden; background: #fffdf8; box-shadow: 0 8px 22px #203e3506; }
  .room-card:nth-child(2) { margin-top: 0; }
  .room-card > a { display: flex; flex-direction: column; justify-content: flex-start; text-align: left; position: relative; isolation: auto; min-height: 0; height: 100%; padding: 0; color: #203e35; background: #fffdf8; }
  .room-card > a::after { display: none; }
  .room-card .photo { position: relative; inset: auto; z-index: auto; width: 100%; height: auto; min-height: 0; flex: 0 0 auto; aspect-ratio: 1.35; border-radius: 0; }
  .room-card .photo img { height: 100%; object-fit: cover; }
  .room-card h3 { color: #203e35; margin: 24px 26px 0; font-size: clamp(1.5rem, 2.2vw, 2.2rem); line-height: 1.25; }
  .room-card-label { color: #556a4d; margin: 17px 26px 0; padding: 17px 0 24px; border-top: 1px solid #d8dfcf; gap: 14px; font-size: 1rem; flex-wrap: nowrap; overflow-wrap: normal; }
  .room-card-label .arrow { display: grid; place-items: center; width: 38px; height: 38px; flex-basis: 38px; border: 1px solid #c6d0b9; background: #edf2e4; color: #244a38; border-radius: 10px; }
  .room-card > a:is(:hover, :focus-visible) .arrow { transform: none; }
  .rooms-copy { max-width: none; padding-top: 40px; margin-top: 44px; gap: clamp(32px, 6vw, 86px); }
  .room-amenities { border-left: 1px solid #c6d0b9; padding-left: 32px; }
  .image-story { width: calc(100% - 48px); max-width: 1600px; margin: 48px auto 0; border-radius: 28px; overflow: hidden; background: #203e35; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .image-story > .photo { border-radius: 0; min-height: 100%; }
  .image-story-copy { padding: clamp(36px, 5vw, 76px); }
  .image-story h2 { font-size: clamp(2.3rem, 3.6vw, 3.6rem); line-height: 1.15; }
  .image-story .copy { color: #e2e8dc; font-size: 1.0625rem; }
  .image-story .eyebrow { color: #e7ce98; }
  .breakfast-grid { gap: clamp(36px, 6vw, 86px); }
  .breakfast-images { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); gap: 20px; align-items: end; padding: 0 0 32px; }
  .breakfast-images .photo:first-child { aspect-ratio: .8; border-radius: 24px; }
  .breakfast-images .photo:last-child { position: relative; right: auto; bottom: auto; width: 100%; aspect-ratio: .8; margin-bottom: -32px; border: 0; border-radius: 20px; }
  .territory-banner { border-radius: 28px; padding-block: clamp(84px, 10vw, 148px); }
  .territory-banner::after { background: linear-gradient(90deg, #102d25db, #153b2852 70%); }

  .reviews-grid { gap: 24px; align-items: stretch; }
  .review { display: flex; flex-direction: column; padding: clamp(28px, 3vw, 42px); border: 1px solid #d8dfd0; border-radius: 20px; background: #fffdf8; box-shadow: none; }
  .review h3 { font-size: clamp(1.35rem, 1.6vw, 1.75rem); line-height: 1.35; letter-spacing: -.025em; margin-block: 22px; }
  .review .copy { font-size: 1rem; line-height: 1.85; }
  .review cite { padding-top: 26px; margin-top: auto; font-size: .9375rem; font-weight: 650; }
  .review:first-child { background: #254a39; border-color: #254a39; color: #fffdf5; }
  .review:first-child h3, .review:first-child cite { color: #fffdf5; }
  .review:first-child .copy { color: #e8eddf; }
  .review:first-child .quote-mark { color: #ead3a3; }

  /* Each internal page gets a clear photographic introduction. */
  .page-hero { align-items: flex-end; min-height: 460px; padding-block: 48px; }
  .page-hero .breadcrumb { margin-bottom: 56px; }
  .page-hero h1 { font-size: clamp(2.7rem, 5.5vw, 5.4rem); line-height: 1.12; }
  .page-hero::after { background: linear-gradient(90deg, #132f25c9, #12372921), linear-gradient(0deg, #152e2770, transparent); }
  .page-hero.plain-hero { width: calc(100% - 48px); max-width: 1800px; margin: 14px auto 0; border-radius: 28px; border: 0; min-height: 350px; color: #fffdf5; background: #203e35; overflow: hidden; isolation: isolate; }
  .plain-hero::before { content: ''; position: absolute; inset: 0; z-index: -2; background-position: center; background-size: cover; }
  .page-prezzi .plain-hero::before { background-image: url('../images/portfolio/camera-arnica3.jpg'); }
  .page-video .plain-hero::before { background-image: url('../images/parallax-4.jpg'); }
  .plain-hero::after { display: block; background: linear-gradient(90deg, #143427ed, #143427ad 50%, #14342730); }
  .plain-hero .eyebrow, .plain-hero .breadcrumb { color: #f0e4c8; }
  .plain-hero .breadcrumb a { color: #fffdf5; border-color: #fff9; }
  .page-hero .breadcrumb a:is(:hover, :focus-visible) { color: #f4dfa9; border-color: currentColor; }
  .plain-hero h1 { color: #fffdf5; max-width: 22ch; }
  .room-overview-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
  .room-preview { display: flex; flex-direction: column; overflow: hidden; background: #fffdf7; border-color: #d7dfcd; border-radius: 18px; }
  .room-preview > img { width: 100%; height: auto; aspect-ratio: 1.4; object-fit: cover; }
  .room-preview-info { padding: 24px; }
  .room-preview-name { font-size: 1.3rem; }
  .room-section { padding-block: 36px 66px; }
  .room-layout { width: calc(100% - 2 * var(--gutter)); max-width: 1460px; padding: clamp(24px, 3vw, 44px); border: 1px solid #dbe1d1; border-radius: 28px; background: #fffdf8; gap: clamp(28px, 4.5vw, 68px); box-shadow: 0 10px 36px #25463804; }
  .room-layout h2 { font-size: clamp(2rem, 3.3vw, 3.2rem); }
  .room-number { font-size: 1rem; font-weight: 650; letter-spacing: .1em; color: #566c41; margin-bottom: 22px; }
  .room-cover { aspect-ratio: 1.4; border-radius: 19px; }
  .room-thumbnails { gap: 10px; padding-bottom: 6px; }
  .room-thumbnails .photo { border-radius: 8px; }
  .room-actions { gap: 16px 22px; }
  .room-actions .text-link { font-size: .9375rem; }
  .wellness-intro { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(36px, 7vw, 100px); }
  .wellness-intro h2 { font-size: clamp(2.2rem, 3.5vw, 3.5rem); line-height: 1.16; }
  .wellness-intro .copy h4 { background: #e9edde; border: 1px solid #c9d4b8; border-left: 3px solid #879568; border-radius: 0 14px 14px 0; padding: 23px 26px; line-height: 1.65; }
  .wellness-gallery { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; margin-top: 50px; }
  .wellness-gallery .photo { width: 100%; aspect-ratio: 1.4; margin: 0; border-radius: 24px; }
  .wellness-gallery .photo:nth-child(2), .wellness-gallery .photo:nth-child(3) { margin: 0; }
  .territory-navigation { gap: 18px; }
  .territory-navigation a { background: #fffdf8; border: 1px solid #d8dfce; border-radius: 16px; }
  .territory-navigation a::before { border-radius: 10px; }
  .territory-navigation a span { color: #566c41; }
  .story-grid { align-items: center; gap: clamp(36px, 6vw, 86px); }
  .story-grid h2 { font-size: clamp(2.2rem, 3.5vw, 3.5rem); line-height: 1.2; }
  .story-media > .photo { aspect-ratio: 1.4; border-radius: 24px; }
  .story-section:nth-child(even) { background: #ecf0e4; border-block: 1px solid #e0e5d6; }
  .rates-note { background: #e8eedc; color: #365039; border-color: #7b9563; }
  .conditions-grid > div { padding: clamp(28px, 3.5vw, 48px); border-radius: 22px; }
  .conditions-grid h2 { font-size: clamp(1.85rem, 2.5vw, 2.6rem); padding-bottom: 22px; margin-bottom: 26px; border-bottom: 1px solid #d5dec9; }
  .conditions-grid .copy li { margin-bottom: 18px; }
  .video-grid { gap: 32px; }
  .video-card { background: #fffdf7; border: 1px solid #d5deca; border-radius: 24px; padding: 12px 12px 0; }
  .video-card .consent-media { border-radius: 16px; }
  .video-card .consent-media-cover { background: linear-gradient(90deg, #142f25f0, #183d30c7), url('../images/parallax-4.jpg') center / cover; }
  .video-card .image-label { margin: 0; padding: 18px 12px 21px; border: 0; color: #426044; }

  .location { background: #e9eede; border-top: 1px solid #dae1ce; }
  .location-grid { gap: clamp(36px, 5vw, 78px); align-items: center; }
  .location-copy h2 { font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.2; }
  .location .consent-media { border-radius: 24px; border-color: #637d55; box-shadow: 0 14px 40px #203e3510; }
  .location-address { margin-top: 22px; line-height: 1.7; }
  .photo-diary { background: #f7f5ef; padding-block: 52px; }
  .photo-diary .gallery-rail { gap: 18px; }
  .photo-diary .photo { border-radius: 16px; }
  .stay-cta { background: #e8d6af; border-top: 1px solid #d3c097; color: #203e35; --link-hover: #254a38; }
  .stay-cta .eyebrow { color: #526443; }
  .stay-cta h2 { color: #203e35; font-size: clamp(2.35rem, 4.2vw, 4.25rem); }
  .stay-cta h2 em { color: #4c603c; }
  .stay-cta .button.light { background: #203e35; border-color: #203e35; color: #fffdf5; }
  .stay-cta .button.light:is(:hover, :focus-visible) { background: #142e27; border-color: #142e27; color: #fff; }
  .site-footer { background: #17382c; }
  .footer-navigation { padding-top: 24px; border-top: 1px solid #ffffff26; }
  .footer-contact { padding-top: 24px; border-top: 1px solid #ffffff35; }
  .footer-about { line-height: 1.85; }
  .contact-hero { border-radius: 30px; box-shadow: 0 12px 38px #203e3507; }
  .contact-channels { gap: 24px; }
  .contact-channel { border-radius: 20px; box-shadow: 0 8px 25px #203e3505; }
  .contact-icon { border-radius: 12px; border: 1px solid #d4dec7; }
  .contact-channel--whatsapp .contact-icon { border-color: #ffffff38; }

  @media (min-width: 901px) {
    .rates-table { border-collapse: separate; border-spacing: 0; border: 1px solid #d4ddc7; border-radius: 22px; overflow: hidden; }
    .rates-table th { background: #254a39; color: #fffdf3; font-weight: 600; }
    .rates-table td { border-bottom-color: #e1e6d9; padding-block: 24px; }
    .rates-table tr:nth-child(even) td { background: #eff3e9; }
    .rates-table td:first-child i { font-size: 1.3rem; font-style: normal; font-weight: 650; }
    .rates-table td:not(:first-child) { font-weight: 650; font-variant-numeric: tabular-nums; }
  }
  @media (hover: hover) and (pointer: fine) {
    .room-card:hover { transform: translateY(-4px); box-shadow: 0 16px 32px #203e3512; }
    .room-preview:hover, .contact-channel:hover { border-color: #9eaf89; }
    .territory-navigation a:hover { background: #e8eedb; border-color: #aebd99; }
  }
  @media (max-width: 1180px) {
    .room-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .planner-heading { border-right: 0; padding-right: 0; }
    .room-card h3 { margin-inline: 20px; }
    .room-card-label { margin-inline: 20px; gap: 10px; font-size: .9375rem; }
    .room-card-label .arrow { width: 32px; height: 32px; flex-basis: 32px; }
  }
  @media (max-width: 1000px) {
    .image-story { grid-template-columns: minmax(0, 1fr); }
    .image-story > .photo { min-height: 0; height: auto; aspect-ratio: 1.9; }
    .image-story-copy { padding: 42px; }
    .room-layout, .room-section:nth-of-type(even) .room-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .room-section:nth-of-type(even) .room-media { order: 0; }
    .room-cover { aspect-ratio: 1.6; }
    .wellness-intro { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  }
  @media (max-width: 760px) {
    .hero { border-radius: 22px; }
    .hero-content { padding: 42px 25px 106px; }
    .hero h1 { font-size: clamp(2.35rem, 7.5vw, 3.7rem); line-height: 1.08; }
    .hero-description { font-size: 1.0625rem; }
    .hero .eyebrow { font-size: .75rem; padding: 9px 12px; }
    .hero-bottom { left: 25px; right: 25px; }
    .section-heading { margin-bottom: 30px; }
    .section-heading h2, .intro-copy h2 { font-size: clamp(2rem, 6vw, 2.75rem); }
    .essentials-inner { gap: 12px 0; }
    .essential { padding: 12px; font-size: .9375rem; }
    .essential:nth-child(2) { border-right: 0; }
    .intro-photos { margin-top: 34px; gap: 25px; }
    .intro-photos figure:last-child { padding-top: 0; width: 100%; }
    .intro-photos figure:last-child .photo { aspect-ratio: 1.5; }
    .hospitality-notes { gap: 25px; margin-top: 36px; }
    .hospitality-note { padding-top: 22px; }
    .more-gallery summary { padding: 18px; }
    .room-card-grid { gap: 24px; }
    .room-card .photo { aspect-ratio: 1.45; }
    .room-card h3 { margin: 24px 24px 0; font-size: 1.85rem; }
    .room-card-label { margin-inline: 24px; font-size: 1rem; }
    .rooms-copy { padding-top: 30px; gap: 26px; }
    .room-amenities { padding: 25px 0 0; border-left: 0; border-top: 1px solid #c6d0b9; }
    .image-story { width: calc(100% - 24px); margin-top: 30px; border-radius: 22px; }
    .image-story > .photo { aspect-ratio: 1.4; }
    .image-story-copy { padding: 32px; }
    .image-story h2 { font-size: clamp(2rem, 6vw, 2.7rem); }
    .breakfast-images { gap: 16px; padding-bottom: 22px; }
    .breakfast-images .photo:last-child { margin-bottom: -22px; }
    .review { padding: 28px; }
    .review h3 { font-size: 1.45rem; }
    .page-hero, .page-hero.plain-hero { min-height: 300px; padding-block: 30px; }
    .page-hero.plain-hero { width: calc(100% - 20px); margin-top: 8px; border-radius: 22px; }
    .page-hero .breadcrumb { margin-bottom: 35px; }
    .page-hero h1 { font-size: clamp(2.35rem, 7vw, 3.5rem); }
    .room-layout { width: calc(100% - 24px); padding: 22px; border-radius: 22px; }
    .room-section { padding-block: 22px 38px; }
    .room-layout h2 { font-size: clamp(1.9rem, 6vw, 2.6rem); }
    .room-cover { aspect-ratio: 1.3; border-radius: 15px; }
    .room-preview-info { padding: 22px; }
    .wellness-gallery { gap: 16px; margin-top: 35px; }
    .wellness-gallery .photo { aspect-ratio: 1.15; border-radius: 16px; }
    .wellness-intro .copy h4 { padding: 20px; }
    .story-grid h2 { font-size: clamp(2rem, 6vw, 2.75rem); }
    .video-grid { gap: 25px; }
    .video-card { padding: 8px 8px 0; border-radius: 20px; }
    .video-card .image-label { padding: 16px 10px; font-size: .9375rem; }
    .photo-diary { padding-block: 38px; }
    .photo-diary .gallery-rail { gap: 13px; }
    .stay-cta h2 { font-size: clamp(2.2rem, 6.5vw, 3.25rem); }
    .contact-channels { gap: 20px; }
  }
  @media (max-width: 600px) {
    .room-overview-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .room-preview > img { aspect-ratio: 1.65; }
    .breakfast-grid { gap: 30px; }
    .wellness-gallery { grid-template-columns: minmax(0, 1fr); }
    .wellness-gallery .photo { aspect-ratio: 1.4; }
  }
  @media (max-width: 900px) {
    .rates-table tbody tr { border: 1px solid #d5ddc8; border-radius: 20px; overflow: hidden; }
    .rates-table td:first-child { padding: 24px; }
    .rates-table td:first-child i { color: #fffdf5; font-size: 1.5rem; }
    .rates-table td[data-period] { font-size: 1.5rem; font-variant-numeric: tabular-nums; }
    .rates-table td[data-period]::before { font-size: .9375rem; line-height: 1.6; }
    .rate-request:is(:hover, :focus-visible) { color: #fff2c7; }
  }
  @media (max-width: 360px) {
    .hero-content { padding-inline: 20px; }
    .hero h1 { font-size: 2.15rem; }
    .hero-bottom { left: 20px; right: 20px; }
    .image-story-copy { padding: 26px 22px; }
    .room-layout { padding: 18px; }
    .room-card h3 { margin-inline: 22px; font-size: 1.65rem; }
    .room-card-label { margin-inline: 22px; font-size: .9375rem; }
    .room-card-label .arrow { width: 32px; height: 32px; flex-basis: 32px; }
    .review { padding: 24px; }
    .wellness-intro .copy h4 { padding: 17px; }
  }
  @media (max-height: 480px) and (max-width: 900px) {
    .hero-content { padding-top: 34px; }
    .page-hero, .page-hero.plain-hero { min-height: 260px; }
  }
}

/* Wrap at word boundaries in every language, without automatic hyphenation. */
html { -webkit-hyphens: none; hyphens: none; word-break: normal; overflow-wrap: normal; }
.copy, .footer-about, .contact-channel > p, .consent-dialog { overflow-wrap: normal; hyphens: none; }
.eyebrow, .mobile-booking > a { overflow-wrap: normal; }
.button { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: normal; }
.stay-inner > * { min-width: 0; max-width: 100%; }
.stay-inner h2 { overflow-wrap: normal; hyphens: none; }
.hero { grid-template-columns: minmax(0, 1fr); }
.hero-content, .hero-content > * { min-width: 0; overflow-wrap: normal; }
.hero h1 { hyphens: none; }
.consent-media--youtube .consent-media-cover { width: 100%; aspect-ratio: auto; }
@media screen and (min-width: 1181px) {
  .header-inner { display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content; }
  .main-nav { min-width: 0; flex-wrap: wrap; justify-content: center; row-gap: 8px; }
}

/* Give the current language, hover and keyboard focus distinct states. */
.language-options { display: grid; gap: 4px; width: max-content; min-width: 176px; max-width: calc(100vw - 40px); }
.language-options a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px;
  column-gap: 12px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  line-height: 1.4;
  overflow-wrap: normal;
  color: var(--ink);
  transition: background-color .15s, border-color .15s, color .15s;
}
.language-options a::after {
  content: '';
  width: 7px;
  height: 11px;
  justify-self: center;
  align-self: center;
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  transform: translateY(-2px) rotate(45deg);
  opacity: 0;
}
.language-options a:not([aria-current="true"]):is(:hover, :focus-visible) {
  background: #e9eee1;
  border-color: #d1dac6;
  color: #244a38;
}
.language-options a[aria-current="true"] { background: #244a38; border-color: #244a38; color: #fffdf5; font-weight: 600; }
.language-options a[aria-current="true"]::after { opacity: 1; }
.language-options a:focus-visible { outline: 2px solid #92733e; outline-offset: -3px; }
.language-options a[aria-current="true"]:focus-visible { outline-color: #f4dfa9; }
@media (max-width: 760px) {
  .header-actions { position: relative; }
  .languages { position: static; }
}

/* A calm introduction with separate notes for hospitality and wellness. */
.location-welcome {
  padding: clamp(24px, 3vw, 42px);
  border: 1px solid #d4ddc7;
  border-radius: 26px;
  background: #fffdf7;
  box-shadow: 0 12px 36px #29453306;
}
.location-welcome > .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  color: #526943;
  font-size: .8125rem;
  letter-spacing: .09em;
}
.location-welcome svg {
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.location-welcome > .eyebrow > svg { flex: 0 0 22px; width: 22px; height: 22px; }
.location-welcome h2 {
  max-width: 22ch;
  margin-bottom: 22px;
  font-size: clamp(1.875rem, 2.8vw, 2.65rem);
  line-height: 1.22;
  letter-spacing: -.035em;
  text-wrap: balance;
  overflow-wrap: normal;
  hyphens: none;
}
.location-welcome h2 > span { color: #607448; }
.location-intro, .location-highlight p {
  color: #56654f;
  font-size: 1rem;
  line-height: 1.8;
  overflow-wrap: normal;
  hyphens: none;
}
.location-highlights { display: grid; gap: 0; margin: 26px 0 0; padding: 0; list-style: none; }
.location-highlight {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  column-gap: 14px;
  row-gap: 6px;
  align-items: center;
  padding-block: 21px;
  border-top: 1px solid #dce3d2;
}
.location-highlight:last-child { padding-bottom: 0; }
.location-highlight > svg { width: 36px; height: 36px; padding: 7px; border-radius: 50%; background: #edf1e5; color: #526943; }
.location-highlight h3 {
  min-width: 0;
  font: 650 1rem/1.5 var(--sans);
  letter-spacing: 0;
  color: #294534;
  overflow-wrap: normal;
  hyphens: none;
}
.location-highlight p { grid-column: 2; }
@media (max-width: 420px) {
  .location-welcome { padding: 24px 20px; border-radius: 22px; }
  .location-highlight { column-gap: 12px; row-gap: 10px; }
  .location-highlight p { grid-column: 1 / -1; }
}

/* Give complete words enough room in compact cards and translated headings. */
.territory-navigation > div { grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); }
@media (min-width: 761px) and (max-width: 1000px) {
  .essentials-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .essential:nth-child(2) { border-right: 0; }
}
@media (min-width: 321px) and (max-width: 440px) {
  .essential { flex-direction: column; align-items: flex-start; gap: 10px; }
  .essential > span { width: 100%; }
}
@media (max-width: 760px) {
  html[lang="de"] .story-grid h2 { font-size: clamp(1.45rem, 7.4vw, 2.75rem); }
  html[lang="fr"] .territory-banner h2 { font-size: clamp(1.65rem, 7.8vw, 3.3rem); }
}
@media (max-width: 360px) {
  .territory-navigation a { flex-wrap: wrap; }
  .wellness-intro h2 { font-size: clamp(1.85rem, 10vw, 2.2rem); }
  .contact-hero h1 { font-size: clamp(2.1rem, 11vw, 2.5rem); }
  .conditions-grid > div { padding-inline: 20px; }
}

/* A compact footer: the story and contact details above one shared social bar. */
.footer-note-icon svg, .footer-contact-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.footer-word { white-space: nowrap; }
@media screen {
  .footer-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    grid-template-areas: "about contact" "social social";
    gap: 20px;
    padding-bottom: 36px;
  }
  .footer-about-wrap {
    grid-area: about;
    padding: clamp(24px, 2.4vw, 36px);
    border: 1px solid #ffffff24;
    border-radius: 22px;
    background: #ffffff05;
  }
  .footer-about { display: grid; align-content: space-between; gap: 24px; height: 100%; font-size: 1rem; line-height: 1.8; color: #e0e8db; }
  .footer-note { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: start; align-content: start; gap: 16px; }
  .footer-note + .footer-note { padding-top: 24px; border-top: 1px solid #ffffff1c; }
  .footer-note p { margin: 0; }
  .footer-note-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #ffffff0c; color: #dfc890; }
  .footer-grid h3 { margin: 0; font-size: 1.0625rem; line-height: 1.45; font-weight: 600; letter-spacing: 0; text-transform: none; }

  .footer-contact {
    grid-area: contact;
    padding: clamp(24px, 2.4vw, 36px);
    border: 1px solid #e0e5d5;
    border-radius: 22px;
    background: #eff2e7;
    color: #244536;
  }
  .footer-contact h3 { color: #244536; margin-bottom: 18px; }
  .footer-contact ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; font-size: .9375rem; line-height: 1.6; }
  .footer-contact li { min-width: 0; margin: 0; }
  .footer-contact-address { grid-column: 1 / -1; padding-bottom: 6px; }
  .footer-contact .footer-contact-row { align-items: center; gap: 12px; min-width: 0; }
  .footer-contact .footer-contact-icon { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; color: #59744d; }
  .footer-contact .footer-contact-icon img { width: 22px; height: 22px; margin: 0; object-fit: contain; }
  .footer-contact-address .footer-contact-icon { align-self: flex-start; margin-top: 3px; }
  .footer-contact-link {
    height: 100%;
    min-height: 76px;
    padding: 13px 12px;
    border: 1px solid #d6decc;
    border-radius: 12px;
    background: #fffdf7;
    transition: background-color .2s, border-color .2s;
  }
  .footer-contact a.footer-contact-link:hover { text-decoration: none; background: #e5ecd9; border-color: #afbd9e; }
  .footer-contact-link:focus-visible { outline: 2px solid #587544; outline-offset: 3px; }
  .footer-contact-label { display: block; color: #65725f; font-size: .8125rem; }
  .footer-contact-detail { display: block; font-weight: 650; font-size: .9375rem; }
  .footer-contact-whatsapp .footer-contact-link, .footer-contact-email .footer-contact-link { font-weight: 600; }

  .footer-social {
    grid-area: social;
    display: grid;
    grid-template-columns: minmax(140px, .65fr) minmax(0, 2fr) auto;
    align-items: center;
    gap: 24px;
    padding: 22px 26px;
    border: 1px solid #ffffff24;
    border-radius: 18px;
    background: #ffffff05;
  }
  .footer-social h3 { max-width: 23ch; color: #e5d4a8; }
  .footer-socials { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .footer-socials a {
    min-width: 0;
    width: auto;
    height: auto;
    min-height: 50px;
    justify-content: flex-start;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid #ffffff24;
    border-radius: 12px;
    background: #ffffff07;
    color: #f5f4eb;
    font-size: .8125rem;
    font-weight: 500;
    line-height: 1.4;
  }
  .footer-socials a:hover { background: #ffffff14; border-color: #d9c39490; }
  .footer-socials img { flex: 0 0 32px; width: 32px; height: 32px; padding: 4px; background: white; border-radius: 50%; }
  .footer-partners { margin: 0; padding-left: 24px; border-left: 1px solid #ffffff24; }
  .footer-partners a { display: flex; align-items: center; min-height: 44px; }
  .footer-partners img { width: 130px; height: auto; }

  @media (min-width: 1001px) and (max-width: 1360px) {
    .footer-contact .footer-contact-link { flex-direction: column; align-items: flex-start; gap: 8px; }
    .footer-contact-link .footer-contact-value { width: 100%; }
  }
  @media (max-width: 1180px) {
    .footer-social { grid-template-columns: minmax(0, 1fr) auto; gap: 16px 24px; }
    .footer-social h3 { grid-column: 1 / -1; max-width: none; }
  }
  @media (max-width: 1000px) {
    .footer-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "about" "contact" "social"; }
    .footer-about { grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; }
    .footer-note { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .footer-note + .footer-note { padding-top: 0; border-top: 0; }
  }
  @media (max-width: 900px) {
    .footer-socials a { flex-direction: column; justify-content: center; gap: 8px; }
  }
  @media (max-width: 760px) {
    .footer-social { grid-template-columns: minmax(0, 1fr); }
    .footer-partners { justify-content: flex-start; padding: 16px 0 0; border-left: 0; border-top: 1px solid #ffffff24; }
  }
  @media (max-width: 600px) {
    .footer-about { grid-template-columns: minmax(0, 1fr); }
    .footer-note + .footer-note { padding-top: 22px; border-top: 1px solid #ffffff1c; }
    .footer-contact ul { grid-template-columns: minmax(0, 1fr); }
    .footer-contact-link { min-height: 66px; }
    .footer-socials { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 380px) {
    .footer-about-wrap, .footer-contact, .footer-social { padding: 20px 16px; border-radius: 18px; }
    .footer-about { font-size: .9375rem; }
    .footer-contact .footer-contact-row { gap: 8px; }
    .footer-contact .footer-contact-icon { flex-basis: 24px; width: 24px; }
    .footer-contact-link { padding-inline: 10px; font-size: .875rem; }
    .footer-socials a { flex-direction: column; justify-content: center; gap: 8px; padding: 12px 6px; }
  }
}

/* Territory stories: calm reading panels and compact photographic sequences. */
.story-word { white-space: nowrap; }
.story-emblem svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@media screen {
  .story-section { padding-block: clamp(48px, 5.5vw, 88px); }
  .story-grid { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: start; gap: clamp(24px, 3vw, 44px); }
  .story-section:nth-child(even) .story-grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
  .story-content { min-width: 0; padding: clamp(28px, 3vw, 44px); background: #fffdf7; border: 1px solid #d7dfcd; border-radius: 24px; box-shadow: 0 12px 36px #203e3506; }
  .story-heading { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
  .story-emblem { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; color: #476340; background: #edf1e5; border: 1px solid #d9e1cd; border-radius: 14px; }
  .story-heading .eyebrow { min-width: 0; margin: 0; padding: 0; color: #526b43; }
  .story-heading .eyebrow::before { display: none; }
  .story-content h2 { margin-bottom: 26px; font-size: clamp(1.9rem, 2.9vw, 2.8rem); line-height: 1.2; }
  .story-content .copy { color: #566456; font-size: 1.0625rem; line-height: 1.85; }
  .story-content .copy > p { margin: 0; }
  .story-content .copy > p:first-child { color: #304b3a; }
  .story-content .copy > p + p { margin-top: 22px; padding-top: 22px; border-top: 1px solid #e0e5d8; }
  .story-media { min-width: 0; }
  .story-media > .photo { aspect-ratio: 1.16; border-radius: 24px; }
  .story-media .gallery-rail { grid-auto-columns: calc((100% - 24px) / 3.2); gap: 12px; margin-top: 12px; padding: 10px 10px 12px; scroll-padding-inline: 10px; scrollbar-width: thin; scrollbar-color: #8a9c75 #e4e9dc; }
  .story-media .gallery-rail .photo { aspect-ratio: 1.2; border-radius: 12px; scroll-margin-inline: 8px; }
  .story-media .gallery-rail .photo::after { width: 30px; height: 30px; right: 8px; bottom: 8px; font-size: 1rem; }
  .story-media .gallery-rail:has(> .photo:only-child) { grid-template-columns: minmax(0, 1fr); }
  .story-media .gallery-rail > .photo:only-child { aspect-ratio: 2.6; }
  @media (min-width: 1001px) and (min-height: 1000px) {
    .story-media { position: sticky; top: calc(var(--header-height) + 24px); }
  }
  @media (max-width: 1180px) and (min-width: 1001px) {
    .story-content { padding: 28px; }
    .story-content h2 { font-size: 1.85rem; }
    html[lang="de"] .story-content h2 { font-size: 1.65rem; }
  }
  @media (max-width: 1000px) {
    .story-grid, .story-section:nth-child(even) .story-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .story-section:nth-child(even) .story-media { order: 0; }
    .story-media > .photo { aspect-ratio: 1.8; }
    .story-media .gallery-rail { grid-auto-columns: calc((100% - 36px) / 4.2); }
  }
  @media (max-width: 600px) {
    .story-section { padding-block: 36px; }
    .story-content { padding: 24px; border-radius: 20px; }
    .story-heading { gap: 12px; margin-bottom: 20px; }
    .story-emblem { flex-basis: 42px; width: 42px; height: 42px; border-radius: 12px; }
    .story-content h2 { margin-bottom: 22px; font-size: clamp(1.65rem, 6.2vw, 2.3rem); }
    html[lang="de"] .story-content h2 { font-size: clamp(1.2rem, 6.8vw, 2rem); }
    .story-content .copy { font-size: 1rem; line-height: 1.8; }
    .story-content .copy > p + p { margin-top: 20px; padding-top: 20px; }
    .story-media > .photo { aspect-ratio: 1.4; border-radius: 20px; }
    .story-media .gallery-rail { grid-auto-columns: calc((100% - 20px) / 2.7); gap: 10px; }
  }
  @media (max-width: 360px) {
    .story-content { padding: 22px 16px; }
    .story-heading { gap: 10px; }
    .story-heading .eyebrow { font-size: .6875rem; }
  }
}
@media print {
  .story-heading { display: flex; align-items: center; gap: 12px; }
  .story-emblem { display: none; }
  .story-content .copy > p + p { margin-top: 1em; }
}

/* Link direction describes its destination; gallery photos use a zoom symbol. */
a .link-arrow { display: inline-grid; place-items: center; width: 1.125em; height: 1.125em; flex-shrink: 0; line-height: 1; vertical-align: -.16em; }
.link-arrow svg { display: block; width: 1.125em; height: 1.125em; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.link-label { min-width: 0; }
.photo[data-gallery]::after { content: ''; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2210.5%22%20cy%3D%2210.5%22%20r%3D%226.5%22%2F%3E%3Cpath%20d%3D%22m16%2016%205%205M7.5%2010.5h6m-3-3v6%22%2F%3E%3C%2Fsvg%3E"); background-position: center; background-repeat: no-repeat; background-size: 20px 20px; }
.story-media .gallery-rail .photo[data-gallery]::after { background-size: 16px 16px; }

/* Keep inline arrows with the last word and reserve room beside email addresses. */
.link-ending { white-space: nowrap; }
.contact-email { display: flex; align-items: center; gap: 8px; }
.contact-email-address { min-width: 0; }
.contact-email .arrow { margin-left: 0; }
@media screen and (max-width: 760px) {
  .mobile-booking { grid-template-columns: minmax(max-content, .7fr) minmax(0, 1.3fr); }
}
@media (max-width: 360px) {
  .contact-email { font-size: 1rem; gap: 6px; }
}
