/* 0.3.17 · Shared navigation/footer and consistent mobile typography */
.terra-internal-site{padding-top:86px;min-width:0}
.terra-internal-site .terra-shared-header{position:fixed!important;top:0;left:0;right:0;z-index:110;height:86px;display:grid;opacity:1!important;pointer-events:auto!important;visibility:visible;transform:none!important;min-height:0;margin:0;grid-template-columns:minmax(0,1fr) minmax(220px,27vw) minmax(0,1fr) auto;background:#fff!important;color:#3e2622!important;box-shadow:0 1px 0 rgba(62,38,34,.13);padding:0 clamp(25px,3.3vw,68px);column-gap:clamp(16px,1.7vw,30px)}
.terra-internal-site .terra-shared-header .terra-header-nav{display:flex}
.terra-internal-site .terra-shared-header .terra-header-nav a{color:#3e2622}
.terra-internal-site .terra-shared-header .terra-menu-toggle{display:none;color:#3e2622}
.terra-internal-site .terra-shared-brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;color:#2c4a3e!important;text-align:center;font:500 clamp(27px,2.5vw,37px)/1 var(--terra-wordmark,var(--terra-serif,Georgia,serif));letter-spacing:-.055em;text-decoration:none}
.terra-internal-site .terra-shared-header .terra-header-reserve{color:#fff;background:#2c4a3e;border-color:#2c4a3e}
.terra-internal-site .terra-shared-header .terra-header-reserve:hover{background:#3d6b52;color:#fff}
.terra-internal-site .terra-shared-header.menu-open{z-index:110}
.terra-internal-site .terra-shared-menu{z-index:135}
.terra-internal-site .terra-shared-menu[open]{display:block}
.terra-internal-site .terra-shared-menu a{color:#f7f0e5}
.terra-internal-site .terra-shared-menu .terra-btn{color:#2c4a3e!important}
.terra-internal-site .terra-shared-menu button{cursor:pointer}
.terra-internal-site .terra-shared-footer{position:relative;z-index:1}
.terra-internal-site .terra-shared-footer .terra-wrap{width:min(100% - 88px,1300px);margin-inline:auto}
.terra-internal-site .terra-shared-footer a{color:inherit}
.terra-internal-site .terra-shared-footer .terra-brand strong{line-height:.85}
/* Body is naturally below the fixed header, but the immersive image extends behind it. */
body.terra-room-feature-page .terra-internal-site{padding-top:0}
body.terra-room-feature-page .terra-room-immersive-content{padding-top:clamp(170px,20vh,260px)}
.terra-internal-site .terra-menu-dialog::backdrop{background:rgba(5,20,11,.72)}
.terra-internal-site .terra-single-body-flow,.terra-internal-site .terra-single-info-stack,.terra-internal-site .terra-single-info-panel{min-width:0}
/* Comfortable, intentional information hierarchy for every accommodation. */
.terra-internal-site .terra-single-body-flow{gap:clamp(35px,5vw,64px)}
.terra-internal-site .terra-single-copy{max-width:1000px;margin-inline:auto;text-align:center}
.terra-internal-site .terra-single-description{max-width:840px;margin-inline:auto}
.terra-internal-site .terra-single-description p{margin:0 0 14px}
.terra-internal-site .terra-single-info-panel{width:100%;max-width:1130px;margin-inline:auto;padding:clamp(24px,4vw,48px);border-radius:12px;background:#f5f6f1}
.terra-internal-site .terra-single-panel-head{display:block;text-align:center;margin:0 auto clamp(25px,3vw,40px)}
.terra-internal-site .terra-single-panel-head .terra-inner-kicker{margin:0 0 10px}
.terra-internal-site .terra-single-panel-head h3{margin:0;font:500 clamp(35px,3.5vw,52px)/1.1 var(--terra-serif,Georgia,serif);letter-spacing:-.03em}
.terra-internal-site .terra-single-feature-group,.terra-internal-site .terra-single-benefits{min-width:0}
.terra-internal-site .terra-single-feature-group h4,.terra-internal-site .terra-single-benefits h4{margin:0 0 17px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#3d6b52;text-align:center}
.terra-internal-site .terra-single-features{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.terra-internal-site .terra-single-features li{display:inline-flex;align-items:center;justify-content:center;width:auto;max-width:100%;padding:11px 17px;border:1px solid #d8e1d4;border-radius:999px;min-height:42px;background:#fff;color:#344f3c;line-height:1.35;text-align:center;font-size:13px}
.terra-internal-site .terra-single-benefits{border-top:1px solid #d9e2d5;margin-top:32px;padding-top:30px}
.terra-internal-site .terra-single-benefits ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin:0;gap:12px;list-style:none}
.terra-internal-site .terra-single-benefits li{min-width:0;border:1px solid #dae4d8;background:#fff;border-radius:10px;padding:20px 13px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:#344c3c;font-size:13px;line-height:1.5}
.terra-internal-site .terra-single-benefits li span{color:#3d6b52;display:grid;place-items:center;width:31px;height:31px;border:1px solid #d1ddd1;border-radius:999px}
.terra-internal-site .terra-single-stay-notes{display:flex;justify-content:center;gap:10px 26px;flex-wrap:wrap;text-align:center;color:#526454;font-size:13px;margin:28px 0 0}
.terra-internal-site .terra-single-stay-notes p{margin:0}
.terra-internal-site .terra-single-notes{max-width:830px;margin:24px auto 0;display:grid;gap:10px}
.terra-internal-site .terra-single-notes p{margin:0;text-align:center}
@media(max-width:1080px){
 .terra-internal-site .terra-shared-header{grid-template-columns:minmax(80px,1fr) minmax(200px,1.6fr) minmax(125px,1fr);height:75px}
 .terra-internal-site{padding-top:75px}
 .terra-internal-site .terra-shared-header .terra-menu-toggle{display:flex;grid-column:1;grid-row:1;justify-self:start;padding:10px 0;min-height:44px;align-items:center}
 .terra-internal-site .terra-shared-header .terra-header-nav{display:none}
 .terra-internal-site .terra-shared-header .terra-header-reserve{grid-column:3;grid-row:1;justify-self:end;min-height:40px}
 .terra-internal-site .terra-shared-brand{grid-column:2;grid-row:1;font-size:clamp(23px,3vw,34px)}
 .terra-internal-site .terra-single-benefits ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
 .terra-internal-site{padding-top:66px}
 .terra-internal-site .terra-shared-header{height:66px;grid-template-columns:minmax(62px,1fr) minmax(120px,1.8fr) minmax(85px,1fr);padding:0 16px;column-gap:7px}
 .terra-internal-site .terra-shared-brand{font-size:clamp(21px,5.4vw,27px);letter-spacing:-.057em}
 .terra-internal-site .terra-shared-header .terra-header-reserve{padding:9px 12px;gap:5px;font-size:11px;min-height:40px;border-radius:999px}
 .terra-internal-site .terra-shared-header .terra-menu-toggle{gap:8px}
 .terra-internal-site .terra-shared-menu .terra-menu-inner{width:calc(100% - 42px)}
 .terra-internal-site .terra-shared-footer .terra-wrap{width:calc(100% - 42px)}
 .terra-internal-site .terra-shared-footer .terra-footer-top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px;padding-bottom:40px}
 .terra-internal-site .terra-shared-footer .terra-footer-brand{justify-self:center;align-items:center}
 .terra-internal-site .terra-shared-footer .terra-footer-top nav{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px;text-align:center}
 .terra-internal-site .terra-shared-footer .terra-footer-base{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
 .terra-internal-site .terra-shared-footer .terra-footer-top p{font-size:22px;text-align:center}
 /* Every public page uses a centered mobile editorial grid. */
 .terra-internal-page .terra-inner-wrap,.terra-internal-page .terra-cv-wrap{width:calc(100% - 40px)}
 .terra-internal-main section,.terra-internal-main header,.terra-internal-main .terra-breadcrumb{text-align:center}
 .terra-internal-main h1,.terra-internal-main h2,.terra-internal-main h3,.terra-internal-main h4{max-width:100%;overflow-wrap:normal;hyphens:none;text-wrap:balance;text-align:center;letter-spacing:-.036em}
 .terra-internal-main p,.terra-internal-main .terra-inner-kicker{max-width:100%;text-align:center}
 .terra-internal-main .terra-about-intro h1,.terra-internal-main .terra-related-heading h2,.terra-internal-main .terra-feature-gallery-heading h2{font-size:clamp(32px,8.1vw,44px);line-height:1.1;text-wrap:balance}
 .terra-internal-main .terra-related-heading .terra-inner-kicker{font-size:9px;letter-spacing:.075em}
 .terra-internal-main .terra-feature-gallery-heading p,.terra-internal-main .terra-related-heading p{max-width:390px;margin-inline:auto}
 .terra-internal-main .terra-related-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px}
 .terra-internal-main .terra-related-arrows{align-self:center}
 .terra-internal-main .terra-related-track .terra-accom-card h3{font-size:clamp(25px,7.2vw,34px)}
 .terra-internal-main .terra-accom-card-body,.terra-internal-main .terra-accom-facts,.terra-internal-main .terra-accom-actions{justify-content:center;text-align:center}
 .terra-internal-main .terra-accom-actions a{justify-content:center}
 .terra-internal-main .terra-cv-wrap,.terra-internal-main .terra-cv-intro-layout,.terra-internal-main .terra-cv-hero-content{text-align:center}
 .terra-internal-main .terra-cv-hero-content>p,.terra-internal-main .terra-cv-intro-layout>p{margin-left:auto!important;margin-right:auto!important}
 .terra-internal-main .terra-cv-transport article,.terra-internal-main .terra-cv-journey article{text-align:center}
 .terra-internal-main .terra-cv-place>div{left:0;right:0;max-width:100%;text-align:center}
 .terra-internal-main .terra-cv-porto-heading>p:last-child{margin-left:auto;margin-right:auto}
 .terra-internal-main .terra-cv-porto-story{text-align:center}
 .terra-internal-site .terra-single-body-flow{gap:28px}
 .terra-internal-site .terra-single-body{padding:62px 0}
 .terra-internal-site .terra-single-body h2{font-size:clamp(34px,8vw,42px);line-height:1.14}
 .terra-internal-site .terra-single-description{font-size:14.5px;line-height:1.8}
 .terra-internal-site .terra-single-info-panel{padding:27px 17px 22px;margin:0 auto;border-radius:11px}
 .terra-internal-site .terra-single-panel-head h3{font-size:clamp(29px,7.6vw,36px)}
 .terra-internal-site .terra-single-feature-group h4,.terra-internal-site .terra-single-benefits h4{font-size:11px;letter-spacing:.08em}
 .terra-internal-site .terra-single-features{gap:8px}
 .terra-internal-site .terra-single-features li{width:auto;max-width:100%;padding:9px 12px;font-size:12px;min-height:35px;border-radius:999px}
 .terra-internal-site .terra-single-benefits{margin-top:26px;padding-top:25px}
 .terra-internal-site .terra-single-benefits ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .terra-internal-site .terra-single-benefits li{padding:14px 8px;min-height:105px;font-size:11.5px;gap:6px}
 .terra-internal-site .terra-single-benefits li span{width:27px;height:27px}
 .terra-internal-site .terra-single-stay-notes{gap:10px;font-size:12px}
 .terra-internal-site .terra-single-notes{margin-top:18px}
 .terra-internal-site .terra-single-notes p{font-size:12px;line-height:1.6}
 .terra-room-feature-page .terra-room-immersive-shade{background:rgba(0,0,0,.43)!important}
 .terra-room-feature-page .terra-room-immersive-content{width:calc(100% - 42px);text-align:center;justify-items:center;align-content:end;padding:clamp(180px,30vh,340px) 0 165px}
 .terra-room-feature-page .terra-room-immersive-intro{text-align:center}
 .terra-room-feature-page .terra-room-immersive-intro h1{font-size:clamp(48px,12.5vw,70px);margin-inline:auto}
 .terra-room-feature-page .terra-room-immersive-subtitle{margin-inline:auto;text-align:center}
 .terra-room-feature-page .terra-room-immersive-facts{margin-inline:auto;text-align:center;max-width:390px}
 .terra-room-feature-page .terra-room-immersive-facts>div{align-items:center;text-align:center}
 .terra-room-feature-page .terra-room-immersive-bottom{bottom:calc(100px + env(safe-area-inset-bottom,0px))}
 .terra-room-feature-page .terra-feature-gallery-heading{text-align:center}
 .terra-room-feature-page .terra-feature-gallery-heading h2{font-size:clamp(34px,8vw,43px)}
 .terra-room-feature-page .terra-feature-gallery .terra-single-cover.has-carousel{width:calc(100% - 76px)!important}
 .terra-room-feature-page .terra-feature-gallery .terra-single-cover.has-carousel .terra-room-carousel-nav.is-prev{left:-45px}
 .terra-room-feature-page .terra-feature-gallery .terra-single-cover.has-carousel .terra-room-carousel-nav.is-next{right:-45px}
 /* Home mobile adjustments: align editorial copy, without altering hero morph/booking interactions. */
 .terra-app .terra-booking-intro-top,.terra-app .terra-story-head,.terra-app .terra-accom-titleband,.terra-app .terra-breakfast-head,.terra-app .terra-cv-home-head,.terra-app .terra-guest-reviews-head,.terra-app .terra-guest-faq-head{text-align:center!important}
 .terra-app .terra-booking-intro-top h2,.terra-app .terra-story-head h2,.terra-app .terra-accom-titleband h2,.terra-app .terra-breakfast-head h2,.terra-app .terra-cv-home-head h2{text-align:center!important}
 .terra-app .terra-booking-intro-top p,.terra-app .terra-story-head p,.terra-app .terra-accom-titleband p,.terra-app .terra-breakfast-head p,.terra-app .terra-cv-home-head p{margin-left:auto!important;margin-right:auto!important;text-align:center!important}
}
@media(max-width:375px){
 .terra-internal-site .terra-shared-header{padding-inline:12px;grid-template-columns:minmax(55px,1fr) minmax(115px,1.8fr) minmax(76px,1fr)}
 .terra-internal-site .terra-shared-brand{font-size:20px}
 .terra-internal-site .terra-shared-header .terra-header-reserve{padding:8px 9px;font-size:10px}
 .terra-internal-main .terra-related-heading h2{font-size:30px}
 .terra-internal-site .terra-single-benefits li{font-size:11px}
}
/* Prevent CSS grid's static-position area from shifting the centered brand into the booking button. */
.terra-internal-site .terra-shared-header .terra-shared-brand{grid-column:1/-1;grid-row:1;left:0;right:0;top:50%;width:max-content;max-width:calc(100% - 220px);margin-inline:auto;transform:translateY(-50%)!important;z-index:1;overflow:hidden;text-overflow:clip}
@media(max-width:680px){.terra-internal-site .terra-shared-header .terra-shared-brand{max-width:calc(100% - 185px);font-size:clamp(19px,4.9vw,24px)}}
@media(max-width:375px){.terra-internal-site .terra-shared-header .terra-shared-brand{max-width:calc(100% - 163px);font-size:19px}}
