:root{--paper:#f5f2ec;--ink:#242923;--muted:#73776f;--line:#d9d6ce;--gold:#aa8c58}body{font-size:16px;background:var(--paper)}.site-header{height:106px;background:#202622;color:#f6f3ed;padding:0 4%;position:relative;z-index:5}.brand{display:flex;align-items:center;flex-shrink:0;width:250px;max-width:100%;height:85px}.brand img{height:100%;width:100%;object-fit:contain;object-position:center}.site-header nav{gap:29px;font-size:16px;letter-spacing:.5px}.site-header select.language{color:#eee;width:49px;font-size:16px}.site-header select.language option{color:#222;background:#fff}.site-header .button{background:transparent;border-color:#a88d61;color:#ece7dc}.site-header .button:hover{background:#a88d61;color:#171f19}.menu-toggle{display:none}.hero{margin:0;height:calc(100svh - 106px);min-height:640px;max-height:960px}.hero>img{object-position:50% 47%}.hero-shade{background:linear-gradient(0deg,rgba(10,21,17,.78),transparent 80%),linear-gradient(90deg,#12221935,transparent 75%)}.hero-copy{left:7%;bottom:125px}.hero-copy .eyebrow{font-size:16px;letter-spacing:3.5px}.hero h1{font-size:clamp(68px,7vw,118px);font-weight:400;letter-spacing:-4px;line-height:.98}.hero-copy p:not(.eyebrow){font-size:16px;letter-spacing:.3px}.hero-bottom{bottom:35px;left:7%;right:7%}.facts{max-width:none;margin:0;padding:38px 7%;background:#eae6dd}.facts>div{width:25%}.facts strong{font-size:33px}.facts span{font-size:16px;letter-spacing:1.3px}.section{max-width:1450px;padding:110px 7%}.intro{padding-top:130px;padding-bottom:130px}.intro-grid{gap:100px;grid-template-columns:1.25fr 1fr}.intro h2{font-size:clamp(44px,4.7vw,70px);letter-spacing:-2px}.intro-grid p{font-size:16px}.eyebrow{color:#9c8159;letter-spacing:2.5px;font-size:16px}.hero .eyebrow,.pool-feature .eyebrow,.closing .eyebrow,.page-hero .eyebrow,.contact-visual .eyebrow{color:#f3e7cb}.pool-feature{margin:0 3%;height:620px}.pool-caption h2{font-size:64px}.pool-caption{left:5%;bottom:55px}.comfort{padding-bottom:55px}.comfort-grid{gap:30px}.comfort-grid article:nth-child(2){padding-top:70px}.comfort-grid article:nth-child(3){padding-top:140px}.comfort-grid img{height:350px}.comfort-grid p:last-child{font-size:16px}.amenities{margin-top:44px;padding:30px 0}.extra-facilities{max-width:1250px;margin:0 auto 65px;padding:30px 35px;background:#eae6df}.extra-facilities h3{font-size:30px}.extra-facilities .amenities{margin:20px 0;padding:20px 0}.extra-facilities .amenities span{font-size:16px}.gallery-section{padding-top:50px}.gallery-grid{grid-template-columns:1.35fr 1fr;grid-template-rows:280px 280px;gap:20px}.section-head h2{font-size:clamp(40px,4.2vw,64px)}.gallery-grid span{padding:55px 25px 24px}.discovery-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.discovery-card{display:block;position:relative;background:#202622;color:#fff;overflow:hidden}.discovery-card img{height:470px;opacity:.83;transition:transform .7s}.discovery-card:hover img{transform:scale(1.04)}.discovery-card>div{position:absolute;bottom:0;padding:55px 26px 28px;width:100%;background:linear-gradient(transparent,#10221bd9)}.discovery-card h3{font-size:30px;max-width:80%}.discovery-card .eyebrow{color:#e2d1ae;margin-bottom:16px}.round-arrow{position:absolute;right:20px;bottom:28px;border:1px solid #ffffff88;border-radius:50%;width:35px;height:35px;text-align:center;font-size:21px}.closing{height:620px;position:relative;color:white}.closing>img{height:100%;object-position:center 60%}.closing:after{content:'';position:absolute;inset:0;background:#12221966}.closing>div{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.closing h2{font-size:72px}.closing .button{margin-top:35px;background:#f4f0e8;color:#202622;border:0}.faq{max-width:1350px;padding-top:95px;padding-bottom:95px}.faq details{padding:25px 0}.faq summary{font-size:16px}footer{background:#202622;color:#e4e6dd;padding:60px 7% 30px;text-align:left}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:40px}.footer-top .brand{width:280px;height:100px}.footer-top .brand img{width:100%;height:100%}.footer-top>p{font:italic 24px Georgia,serif;color:#d1d1c5;max-width:250px}.footer-top>.line-link{font-size:16px}.footer-bottom{border-color:#ffffff25;margin-top:40px;color:#bcc3b8;font-size:16px}.page-hero{position:relative;height:630px;color:white}.page-hero>img{height:100%;object-position:center}.page-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#10251cbd,#10251c15)}.page-hero>div{position:absolute;bottom:65px;left:7%;right:7%;z-index:1}.page-hero h1{font-size:clamp(50px,6vw,88px);line-height:1.06;letter-spacing:-2px}.guide-intro{max-width:1100px;text-align:center;padding-top:65px;padding-bottom:50px}.guide-intro>p{font:27px/1.6 Georgia,serif}.filters{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:35px}.filters button{border:1px solid #b6b7ac;border-radius:0;padding:12px 22px;background:none;font-size:16px}.filters button[aria-pressed=true]{background:#242f27;color:#fff;border-color:#242f27}.guide-list{max-width:1320px;margin:auto;padding:0 5% 60px}.guide-entry{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:65px;margin:35px 0 90px;scroll-margin-top:30px}.guide-entry[hidden]{display:none}.guide-entry:nth-child(even) .guide-photo{order:2}.guide-photo img{height:450px}.guide-copy h2{font-size:44px}.guide-copy>p:not(.eyebrow){font-size:16px;color:#5a6357;line-height:1.9}.guide-copy .editor-note{border-left:1px solid #a68c5f;padding:10px 0 10px 20px;font:italic 18px/1.5 Georgia,serif!important;margin:25px 0}.guide-copy .line-link{margin-top:12px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;min-height:900px}.contact-visual{position:relative}.contact-visual>img{height:100%;object-position:50% center}.contact-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#14271bbb,transparent)}.contact-visual>div{position:absolute;left:10%;right:8%;bottom:80px;z-index:1;color:white}.contact-visual h1{font-size:60px;letter-spacing:-2px}.contact-content{padding:80px 13% 75px 11%}.contact-content h2{font-size:46px}.contact-content>p:not(.eyebrow){color:#68705f;font-size:16px;line-height:1.9}.contact-method{display:flex;gap:25px;border-top:1px solid #c8cdbe;padding:25px 0}.contact-method>span{font-size:16px;color:#9d835c}.contact-method h3{font-size:23px;margin-bottom:15px}.address{border-top:1px solid #c8cdbe;padding-top:25px;margin-top:10px}.address .eyebrow{margin-bottom:8px}.address p{font-size:16px}.reservation-heading{text-align:center;padding:75px 25px 35px}.reservation-heading h1{font-size:65px;letter-spacing:-2px}.reservation-heading>p:last-child{font-size:16px;color:#73796c}.reservation-shell{max-width:1200px;display:grid;grid-template-columns:340px 1fr;gap:35px;margin:20px auto 100px;padding:0 30px;align-items:start}.reservation-shell aside{background:#e9e5dc;position:sticky;top:30px}.reservation-shell aside>img{height:250px}.reservation-shell aside>div{padding:30px}.reservation-shell aside p{font-size:16px;line-height:2}.reservation-shell aside .eyebrow{font-size:16px;line-height:1.8;margin-bottom:12px}.reservation-shell aside h3{font-size:34px}.reservation-main{background:#fff;padding:40px}.wizard-steps{display:flex;gap:30px;border-bottom:1px solid #ddd;padding-bottom:20px;margin-bottom:30px;color:#92978c;font-size:16px}.wizard-steps .active{color:#927347}.reservation-main h2{font-size:34px;letter-spacing:-.7px}.availability-note{font-size:16px;color:#697262;padding:13px;background:#eeefe8}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin:23px 0 12px}.calendar-toolbar strong{font-weight:normal;font:22px Georgia,serif}.calendar-toolbar button{background:transparent;border:1px solid #d6dbcd;width:35px;height:35px}.calendar-toolbar button:disabled{opacity:.25;cursor:default}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar .weekday{font-size:16px;text-align:center;color:#828779;padding:5px}.calendar button{border:0;background:#f7f6f1;min-height:38px;font-size:16px;padding:8px}.calendar button:hover:not(:disabled){background:#e2e4da}.calendar button:disabled{opacity:.35;cursor:default}.calendar button.selected{background:#28392b!important;color:white}.calendar button.in-range{background:#e0e5d8}.calendar button.today{box-shadow:inset 0 -2px #a88c56}.reservation-main .button{margin-top:20px}.reservation-main label{margin-top:22px}.reservation-main textarea{width:100%;border:1px solid #bfc4b6;background:#fff;padding:12px;resize:vertical;font:16px/1.6 Arial,sans-serif}.reservation-main .line-link{margin-top:22px}.reservation-main .fine{font-size:16px;text-align:left;line-height:1.8}.enquiry-review{white-space:pre-line;background:#f1f1e8;padding:22px;font-size:16px;line-height:1.9;margin-top:20px}#night-count{font-size:16px;color:#617054}.credits{max-width:850px;margin:auto;padding:80px 30px}.credits h1{font-size:50px;letter-spacing:-1px}.credits h2{font-size:30px;margin:40px 0 20px}.credits p,.credits li{font-size:16px}.credits a{text-decoration:underline}.credits li{margin-bottom:12px}a,button,summary{transition:background .25s,color .25s}a:hover{color:inherit}h2,h3{overflow-wrap:normal}
@media(max-width:1100px){.site-header{padding:0 25px;gap:15px}.brand{width:200px}.brand img{width:100%}.site-header nav{gap:18px}.nav-end{gap:13px}.section{padding:80px 5%}.intro-grid{gap:55px}.comfort-grid img{height:270px}.comfort-grid article:nth-child(3){padding-top:80px}.comfort-grid article:nth-child(2){padding-top:40px}.contact-content{padding:65px 8%}.contact-visual h1{font-size:48px}.guide-entry{gap:40px}.guide-photo img{height:390px}.footer-top>p{font-size:21px}.reservation-shell{grid-template-columns:280px 1fr}.reservation-main{padding:30px}}
@media(max-width:760px){.site-header{height:86px;padding:0 17px;gap:8px}.brand{width:175px;height:70px}.brand img{width:100%;height:100%}.site-header nav{display:none;position:absolute;top:86px;left:0;right:0;background:#202622;padding:25px;flex-direction:column;gap:25px}.site-header nav.open{display:flex}.nav-end>.button{display:none}.site-header select.language{width:45px}.menu-toggle{display:block;border:0;background:none;color:#cdb98d;padding:8px;font-size:23px}.nav-end{margin-left:auto}.hero{min-height:600px;height:calc(90svh - 86px);max-height:850px}.hero-copy{left:7%;right:6%;bottom:110px}.hero h1,html[lang=fr] .hero h1,html[lang=de] .hero h1{font-size:58px;letter-spacing:-2px;line-height:1.05}.hero .eyebrow{font-size:16px;letter-spacing:2px;max-width:270px}.hero-copy>p:not(.eyebrow){font-size:16px}.facts{padding:28px 15px;gap:25px 0}.facts>div{width:100%}.facts strong{font-size:27px}.facts span{font-size:16px;letter-spacing:.4px}.section{padding:65px 25px}.intro h2{font-size:43px}.intro-grid{gap:30px}.pool-feature{height:510px;margin:0 12px}.pool-caption h2{font-size:43px}.comfort-grid article:nth-child(n){padding:0}.comfort-grid{gap:38px}.comfort-grid img{height:330px}.comfort-grid h3{font-size:28px}.extra-facilities{margin:0 25px 30px;padding:28px 22px}.extra-facilities .amenities{gap:10px 20px}.extra-facilities h3{font-size:26px}.extra-facilities .amenities span{font-size:16px}.gallery-grid{grid-template-rows:330px 190px;gap:10px}.gallery-grid span{padding:40px 15px 15px}.discovery-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:15px;padding-bottom:15px}.discovery-card{flex:0 0 85%;scroll-snap-align:start}.discovery-card img{height:420px}.discovery-card h3{font-size:30px}.closing{height:540px}.closing h2{font-size:50px}.closing .eyebrow{font-size:16px}.faq{padding-top:65px;padding-bottom:65px}.faq summary{font-size:16px}footer{padding:35px 25px 25px}.footer-top{display:block;text-align:center}.footer-top .brand{margin:auto}.footer-top>p{max-width:none;margin:10px 0 25px}.footer-bottom{gap:20px 25px}.page-hero{height:560px}.page-hero h1,html[lang=fr] .page-hero h1{font-size:46px;letter-spacing:-1.5px}.page-hero>div{bottom:50px}.guide-intro{padding:35px 25px}.guide-intro>p{font-size:24px}.filters{gap:8px}.filters button{padding:10px 16px;font-size:16px}.guide-list{padding:0 25px 25px}.guide-entry{display:flex;flex-direction:column;gap:30px;margin:25px 0 65px;align-items:stretch}.guide-entry:nth-child(even) .guide-photo{order:0}.guide-photo img{height:300px}.guide-copy h2{font-size:38px}.guide-copy>p:not(.eyebrow){font-size:16px}.contact-layout{grid-template-columns:1fr}.contact-visual{height:500px}.contact-visual>div{bottom:50px;left:7%}.contact-visual h1{font-size:49px}.contact-content{padding:55px 25px}.contact-content h2{font-size:40px}.reservation-heading{padding:50px 25px 20px}.reservation-heading h1{font-size:44px}.reservation-heading p:last-child{font-size:16px}.reservation-shell{display:flex;flex-direction:column;padding:0 18px;gap:20px;margin-bottom:65px}.reservation-shell aside{position:static;display:flex;width:100%;align-items:center}.reservation-shell aside>img{width:35%;height:230px}.reservation-shell aside>div{padding:20px}.reservation-shell aside h3{font-size:28px}.reservation-shell aside p{font-size:16px;line-height:1.7}.reservation-shell aside .fine{margin-bottom:0}.reservation-main{width:100%;padding:25px 20px}.reservation-main h2{font-size:29px}.wizard-steps{gap:25px;font-size:16px}.calendar button{min-height:36px}.reservation-main input{font-size:16px;padding:12px 7px}.credits{padding-top:50px}.credits h1{font-size:39px}}
/* Direct stay enquiries */
.reservation-main fieldset{border:0;padding:0;margin:0;min-width:0}.reservation-main [hidden]{display:none!important}.calendar button.occupied{text-decoration:line-through;color:#a05240;background:#f1e9e4}.calendar-legend{font-size:16px;color:#72796c;margin:12px 0}.booking-feedback{font-size:16px;line-height:1.7;color:#8b4431;margin-top:18px}.booking-feedback:empty{display:none}.price-review{border:1px solid #ddd7c9;padding:22px;margin-top:18px}.price-review h3{font-size:26px;margin-bottom:12px}.price-row{display:flex;justify-content:space-between;gap:20px;font-size:16px;line-height:2.2}.price-row strong{font-weight:normal}.price-total{border-top:1px solid #ddd7c9;margin-top:10px;padding-top:10px;font-weight:bold}.price-total strong{font-weight:bold}.reservation-main .check-label{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.7}.reservation-main .check-label input{width:18px;height:18px;flex:0 0 18px;margin-top:3px;accent-color:#76603e}.reservation-main button:disabled{opacity:.55;cursor:wait}.honey-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%)}.booking-receipt .receipt-mark{display:inline-grid;place-items:center;width:52px;height:52px;border:1px solid #b6ab92;border-radius:50%;color:#7a704e;font-size:28px;margin:0 0 30px}.booking-receipt p{font-size:16px;line-height:1.8}.booking-receipt .eyebrow{font-size:16px}.booking-receipt #receipt-reference{display:block;font:22px Georgia,serif;padding:20px 0;color:#8f7348}.booking-receipt .button{width:100%}.contact-content .line-link{overflow-wrap:anywhere}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #a38651;outline-offset:4px}
@media print{.site-header,footer,.reservation-heading,.reservation-shell aside,.wizard-steps,#print-receipt{display:none!important}.reservation-shell{display:block;margin:0;padding:0}.reservation-main{padding:0}.booking-receipt{color:#000;background:#fff}}
.public-rates{max-width:1200px;margin:0 auto 90px;padding:0 30px}.public-rates .section-heading{max-width:620px}.public-rates h2{font-size:44px}.public-rates p{font-size:16px;line-height:1.8;color:#68705f}.public-rate-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:30px 0}.public-rate-grid article{padding:24px 18px;background:#eeebe2}.public-rate-grid h3{font-size:22px;margin-bottom:12px}.public-rate-grid p{font-size:16px;min-height:42px}.public-rate-grid strong{font:32px Georgia,serif;color:#8a7047}.public-rate-grid p:last-child{min-height:0;font-size:16px;margin-bottom:0}.winter-rate{display:grid;grid-template-columns:1.3fr 1fr 1.5fr;align-items:center;gap:30px;background:#273329;color:white;padding:30px}.winter-rate h3{font-size:28px;margin:0}.winter-rate strong{font:32px Georgia,serif;color:#c7b080}.winter-rate strong span{font:12px Arial,sans-serif}.winter-rate p{color:#d4d8cb;margin:0;font-size:16px}.public-rates>.fine{font-size:16px;margin-top:22px}@media(max-width:900px){.public-rate-grid{grid-template-columns:repeat(3,1fr)}.winter-rate{grid-template-columns:1fr 1fr}.winter-rate p{grid-column:1/-1}}@media(max-width:600px){.public-rates{padding:0 20px}.public-rates h2{font-size:36px}.public-rate-grid{grid-template-columns:1fr 1fr;gap:10px}.public-rate-grid article{padding:20px 15px}.public-rate-grid article:last-child{grid-column:1/-1}.public-rate-grid p{min-height:35px}.winter-rate{display:block;padding:25px}.winter-rate h3{font-size:27px;margin-bottom:20px}.winter-rate p{margin-top:20px}}@media print{.public-rates{display:none}}
.deposit-note{padding:14px 0 0;border-top:1px solid #ddd7c9;font-size:16px;line-height:1.8;color:#776345}.reservation-shell aside .stay-conditions{font-size:16px;border-top:1px solid #d2cbbd;padding-top:18px;margin-top:18px}.holiday-dates{border-top:1px solid #d5d5c8;padding:20px 0;margin-top:25px}.holiday-dates summary{font-size:16px;cursor:pointer}.holiday-dates p,.holiday-dates li,.holiday-dates a{font-size:16px;line-height:1.8}.holiday-dates ul{padding-left:20px}.holiday-dates a{text-decoration:underline}.winter-rate>p:last-child{grid-column:1/-1;padding-top:15px;border-top:1px solid #ffffff33;font-size:16px}

/* Direct booking and payment return */
.checkout-banner{background:#ede5d5;color:#755c39;padding:13px 18px;font:16px/1.8 Arial,sans-serif;letter-spacing:1.4px;border:1px solid #d5c3a4;max-width:720px;margin:0 auto 28px}.confirmation-shell{display:grid;grid-template-columns:1fr 1.1fr;max-width:1200px;margin:70px auto 100px;background:#faf8f1}.confirmation-photo{width:100%;height:100%;min-height:600px;object-fit:cover}.confirmation-card{padding:65px 50px}.confirmation-card h1{font-size:43px;line-height:1.12}.confirmation-card>p{font-size:16px;line-height:1.9}.confirmation-card>strong{display:block;letter-spacing:1px;margin-top:28px}.confirmation-card>.line-link{display:block;margin-top:25px}.confirmation-card .enquiry-review{white-space:pre-line}.confirmation-card .checkout-banner{font-size:16px}[hidden]{display:none!important}@media(max-width:760px){.confirmation-shell{display:block;margin:0 0 50px}.confirmation-photo{height:240px;min-height:0}.confirmation-card{padding:35px 25px}.confirmation-card h1{font-size:34px}}

/* Keep the complete wordmark and controls usable on phones and tablets. */
@media(max-width:1000px){
 .site-header{height:86px;padding:0 20px;gap:12px}
 .site-header .brand{width:210px;min-width:0;flex:0 1 210px;height:70px}
 .site-header nav{display:none;position:absolute;top:86px;left:0;right:0;background:#202622;padding:25px;flex-direction:column;gap:20px}
 .site-header nav.open{display:flex}
 .site-header nav a{display:block;padding:8px 0}
 .nav-end{margin-left:auto;flex-shrink:0;gap:10px}
 .nav-end>.button{display:none}
 .site-header select.language{width:60px;min-height:44px;font-size:16px;padding:8px 3px;color:#eee}
 .menu-toggle{display:block;min-width:44px;min-height:44px;border:0;background:none;color:#cdb98d;padding:8px;font-size:23px}
}
@media(max-width:760px){
 .site-header{padding:0 16px;gap:8px}
 .site-header .brand{width:190px;flex-basis:190px}
 .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .facts>div:nth-child(2){border:0}
 .intro-grid,.comfort-grid{grid-template-columns:minmax(0,1fr)}
 .footer-bottom{flex-wrap:wrap;justify-content:center}
 .footer-bottom>span{width:100%}
 .hero h1,html[lang=fr] .hero h1,html[lang=de] .hero h1{font-size:clamp(42px,13.5vw,58px);overflow-wrap:break-word}
 .hero-copy>p:not(.eyebrow){font-size:16px}
 .reservation-main input,.reservation-main select,.reservation-main textarea{font-size:16px;min-height:44px}
 .reservation-main .check-label input{min-height:18px}
 .wizard-steps{gap:14px;flex-wrap:wrap}
 .reservation-shell aside>div{min-width:0}
 .price-row>span,.price-row>strong{overflow-wrap:anywhere}
 .footer-top .brand{max-width:100%}
}
@media(max-width:380px){
 .site-header{padding:0 12px}
 .nav-end{gap:4px}
 .date-fields{grid-template-columns:minmax(0,1fr)}
 .reservation-shell aside{display:block}
 .reservation-shell aside>img{width:100%;height:180px}
 .price-review{padding:16px}
 .hero-bottom{gap:15px}
}

.mobile-booking-link{display:none}
@media(max-width:1000px){.site-header nav .mobile-booking-link{display:block;border-top:1px solid #a88d6160;padding-top:20px;color:#d9c396}}

/* Let rate cards shrink and wrap within a narrow viewport. */
.public-rate-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.public-rate-grid article{min-width:0}
.public-rate-grid h3{overflow-wrap:anywhere;hyphens:auto}
@media(max-width:900px){.public-rate-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.public-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.public-rate-grid{grid-template-columns:minmax(0,1fr)}.public-rate-grid p{min-height:0}}

.credits h1{overflow-wrap:anywhere;hyphens:auto}

/* Legal information stays readable at every screen width. */
.legal-page{max-width:940px;margin:auto;padding:70px 32px 90px;overflow-wrap:anywhere}
.legal-page h1{font-size:clamp(35px,5vw,62px);letter-spacing:-1.5px;line-height:1.1;max-width:19ch}
.legal-page h2{font-size:clamp(25px,3vw,35px);line-height:1.2;margin:0 0 20px;overflow-wrap:anywhere}
.legal-page h3{font-size:23px;line-height:1.3;margin:30px 0 12px}
.legal-page p,.legal-page li{font-size:16px;line-height:1.85;color:#495046}
.legal-page a{text-decoration:underline;text-underline-offset:4px}
.legal-page section{padding:34px 0;border-top:1px solid var(--line);scroll-margin-top:30px}
.legal-page ul{padding-left:22px}.legal-page li{margin-bottom:12px}
.legal-date{margin:24px 0;color:var(--muted)}
.legal-nav{display:flex;flex-wrap:wrap;gap:12px 24px;padding:0 0 30px;font-size:16px;line-height:1.7}
.booking-privacy{font-size:16px;line-height:1.8;color:#545d50;margin:24px 0;overflow-wrap:anywhere}
.booking-privacy a{text-decoration:underline}
.footer-bottom{flex-wrap:wrap;row-gap:16px}.footer-bottom a{overflow-wrap:anywhere}
.map-widget{min-width:0;background:#eae6dd;border:1px solid #d9d4c7;padding:30px}
.map-widget h3{font-size:30px;line-height:1.2}.map-widget p{font-size:16px;line-height:1.8}
.map-widget #map-choice>a{display:block;font-size:16px;text-decoration:underline;margin:18px 0}
.map-widget .button{white-space:normal;text-align:center;line-height:1.5;max-width:100%;font:inherit;font-size:16px}
.map-widget #map-disable{margin-top:16px;background:none;border:0;border-bottom:1px solid;font:inherit;font-size:16px;line-height:1.5;padding:10px 0;text-align:left}
.map-widget iframe{display:block}
@media(max-width:600px){.legal-page{padding:45px 24px 60px}.legal-page section{padding:28px 0}.legal-page p,.legal-page li{font-size:16px}.map-widget{padding:22px}.legal-nav{gap:12px 20px}}

.villa-location{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:center}.villa-location address{font-style:normal;line-height:1.8;margin:1.5rem 0}.villa-location iframe{width:100%;height:420px;border:0;border-radius:8px}.villa-location p{max-width:52ch}@media(max-width:760px){.villa-location{grid-template-columns:1fr;gap:2rem}.villa-location iframe{height:320px}}

.family-guide{margin:35px 0 90px;scroll-margin-top:30px}.family-guide[hidden]{display:none}.family-feature{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:65px}.family-ideas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}.family-idea{background:#eae6dd;padding:30px;display:flex;flex-direction:column;min-width:0}.family-idea h3{font-size:29px;line-height:1.2;overflow-wrap:anywhere}.family-idea>p:not(.eyebrow){font-size:16px;color:#5a6357;line-height:1.8}.family-idea .family-note{font-size:16px!important}.family-idea .line-link{margin-top:auto;align-self:flex-start}.family-feature h2{overflow-wrap:anywhere}@media(max-width:1100px){.family-feature{gap:40px}.family-idea{padding:24px}}@media(max-width:760px){.family-feature{grid-template-columns:minmax(0,1fr);gap:30px}.family-ideas{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:28px}.family-guide{margin:25px 0 65px}.family-idea .line-link{margin-top:12px}}
.legal-es-header{justify-content:space-between}.legal-es-header>a:last-child{white-space:nowrap;font-size:16px}

/* Readable brand and type, shared across all visitor pages. */
:root{--brand-gold:#b5a17e;--muted:#596151}
body{line-height:1.75}
.site-header .button{border-color:var(--brand-gold)}
.brand{position:relative;width:320px;height:84px}
.brand img{opacity:0}
.brand::after{content:"";position:absolute;inset:0;background:var(--brand-gold);mask:url("assets/villa-sophia-logo.png") center/100% auto no-repeat;-webkit-mask:url("assets/villa-sophia-logo.png") center/100% auto no-repeat;pointer-events:none}
.site-header nav{gap:24px;font-size:16px;letter-spacing:0}
.site-header select.language{font-size:16px;width:54px}
.eyebrow,.hero-copy .eyebrow,.hero .eyebrow,.closing .eyebrow,.reservation-shell aside .eyebrow,.booking-receipt .eyebrow{font-size:12px;letter-spacing:2px}
.facts span{font-size:14px;letter-spacing:.6px}
.hero-bottom,.hero-bottom>span{font-size:12px;letter-spacing:1px;max-width:none}
.footer-bottom,.footer-bottom button{font-size:14px}
.footer-top>.line-link,.line-link,.photo-link,.filters button{font-size:15px}
.footer-top .brand{width:320px;height:90px;max-width:100%}
.footer-bottom{column-gap:24px;justify-content:flex-start}
.reservation-shell{grid-template-columns:320px minmax(0,1fr)}
.reservation-main,.guide-copy,.contact-content{min-width:0}
.reservation-main input,.reservation-main select,.reservation-main textarea{font-size:16px}
.calendar button{min-height:44px;padding:6px 2px}
.calendar .weekday{font-size:13px}
.calendar-toolbar button{width:44px;height:44px}
.wizard-steps{flex-wrap:wrap;gap:12px 22px}
.price-row{line-height:1.6;padding:7px 0}
.price-row strong{flex-shrink:0}
.public-rate-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.public-rate-grid p{min-height:0}
@media(max-width:1150px){.site-header{padding:0 24px;gap:16px}.site-header .brand{width:245px}.site-header nav{gap:16px}.nav-end{gap:14px}.site-header .button{padding:12px 16px}}
@media(min-width:761px) and (max-width:980px){.site-header{height:auto;min-height:106px;flex-wrap:wrap;padding-top:8px;padding-bottom:16px}.site-header nav{order:3;width:100%;justify-content:center}.hero{height:calc(100svh - 140px)}}
@media(max-width:760px){.site-header .brand{width:min(230px,calc(100vw - 132px));height:76px}.site-header{padding:0 16px}.site-header nav{font-size:17px}.hero-copy>p:not(.eyebrow){max-width:32ch}.hero .eyebrow{max-width:100%}.hero-copy{bottom:125px}.hero-bottom{gap:16px}.hero-bottom>span{max-width:125px}.facts span{font-size:14px}.extra-facilities .amenities span{font-size:16px}.reservation-shell aside{align-items:stretch}.reservation-shell aside>img{height:auto;object-fit:cover}.reservation-shell aside>div{min-width:0}.reservation-main{padding:24px 16px}.date-fields{grid-template-columns:1fr}.public-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-top .brand{width:min(320px,100%)}.footer-bottom{justify-content:center}}
@media(max-width:380px){.reservation-shell aside>img{display:none}.public-rate-grid{grid-template-columns:1fr}.public-rate-grid article:last-child{grid-column:auto}}

/* Tailored actions: sharp champagne frames, generous spacing and fine arrows. */
.button,.line-link,.line-link.dark,.map-widget #map-disable{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:48px;max-width:100%;padding:14px 24px;border:1px solid #a995716b;border-radius:0;background:transparent;color:#30382f;font-family:Arial,Helvetica,sans-serif;font-size:15px;font-weight:400;line-height:1.45;letter-spacing:.055em;text-align:center;white-space:normal;box-shadow:none;transition:background-color .3s ease,border-color .3s ease,color .3s ease}
.button:hover,.line-link:hover,.line-link.dark:hover,.map-widget #map-disable:hover{background:#b5a17e0c;border-color:#9c865f;color:#242923}
.site-header .button,.closing .button,.hero .line-link,footer .line-link{background:transparent;border:1px solid #c7b7978c;color:#f6f3ed;font-weight:400;box-shadow:none}
.site-header .button:hover,.closing .button:hover,.hero .line-link:hover,footer .line-link:hover{background:#f6f3ed08;border-color:#d4c6ac;color:#fff}
.action-arrow::after,.text-arrow::after{content:"";display:block;flex:0 0 27px;width:27px;height:14px;background:currentColor;opacity:.8;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 14'%3E%3Cpath d='M1 7h25m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 14'%3E%3Cpath d='M1 7h25m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .3s ease,opacity .3s ease}
.action-arrow:hover::after{transform:translateX(3px);opacity:1}
.action-arrow.arrow-down::after{transform:rotate(90deg);flex-basis:20px;width:20px}
.action-arrow.arrow-down:hover::after{transform:translateY(3px) rotate(90deg)}
.site-header .button.small{padding:13px 19px;gap:19px;font-size:15px;letter-spacing:.035em}
.footer-top>.line-link{font-size:15px}
.button:disabled,.line-link:disabled{opacity:.55}
.line-link[hidden],.button[hidden]{display:none!important}
.hero-bottom>span{max-width:none}
@media(max-width:760px){.button,.line-link,.line-link.dark,.map-widget #map-disable{padding:13px 20px;gap:20px;letter-spacing:.035em}.footer-top>.line-link{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.action-arrow::after{transition:none}.action-arrow:hover::after{transform:none}.action-arrow.arrow-down:hover::after{transform:rotate(90deg)}}

/* Photo and discovery cards share the fine vector arrow used by the buttons. */
.gallery-grid .gallery-label{display:flex;align-items:center;gap:14px}
.gallery-grid .gallery-label::after{width:24px;flex-basis:24px;opacity:.95}
.round-arrow.action-arrow{display:grid;place-items:center;width:38px;height:38px;border:1px solid #dfd2ba99;color:#f6f3ed;background:transparent}
.round-arrow.action-arrow::after{width:22px;height:14px;opacity:.95}
.gallery-grid button:hover .gallery-label::after,.discovery-card:hover .round-arrow::after{transform:translateX(2px)}
@media(prefers-reduced-motion:reduce){.gallery-grid button:hover .gallery-label::after,.discovery-card:hover .round-arrow::after{transform:none}}

/* Inline links use the same vector strokes without an emoji font fallback. */
.text-arrow::after{display:inline-block;width:22px;height:12px;margin-left:9px;vertical-align:middle;opacity:.85}
.text-arrow:hover::after{transform:translateX(2px)}
@media(prefers-reduced-motion:reduce){.text-arrow::after{transition:none}.text-arrow:hover::after{transform:none}}

/* Matching champagne social and contact icons for the forest-green footer. */
.footer-bottom{align-items:center}
.footer-bottom .social-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #b5a17e80;border-radius:50%;color:var(--brand-gold);background:transparent;text-decoration:none;transition:border-color .25s ease,color .25s ease,background-color .25s ease}
.social-icon svg{display:block;width:21px;height:21px}
.footer-bottom .social-icon:hover{color:#dfcfaf;border-color:#dfcfaf;background:#b5a17e0c}
.footer-bottom .social-icon:focus-visible{outline:2px solid #dfcfaf;outline-offset:5px}

.footer-socials{display:flex;align-items:center;gap:14px;flex-shrink:0}

/* A dedicated icon row, followed by the remaining footer information. */
.footer-bottom{display:flex;flex-direction:column;align-items:stretch;gap:22px}
.footer-socials{width:100%;justify-content:center}
.footer-meta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 22px;line-height:1.7;text-align:center}

/* Monthly stays: contact CTA in the existing understated button style. */
.winter-inquiry{min-width:0}.winter-rate .winter-cta{margin-top:18px;max-width:100%;padding:13px 18px;gap:16px;background:transparent;border:1px solid #c7b7978c;color:#f6f3ed;font-size:16px;font-weight:400;line-height:1.5;letter-spacing:.02em;white-space:normal;text-align:left;box-shadow:none}.winter-rate .winter-cta:hover{background:#f6f3ed08;border-color:#d4c6ac}.winter-rate .winter-cta:focus-visible{outline:2px solid #d4c6ac;outline-offset:4px}@media(max-width:1000px){.winter-inquiry{grid-column:1/-1}}
