/* Consistent owner-requested finishes. */
:root{--photo-radius:18px}
main img:not(.official-logo),main video{border-radius:var(--photo-radius)!important}
.service-photo,.destination-photo,.room-image,.villa-photo,.real-photo,.landscape-break{border-radius:var(--photo-radius)!important;overflow:hidden}
.reference-collage{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;align-items:start!important}
.reference-collage .real-photo{grid-row:auto!important;margin:0!important;width:100%!important;border:0!important}
.reference-collage .real-photo img{height:360px!important;width:100%;object-fit:cover}
.destination-grid,.couples .service-grid{align-items:start!important}
.destination,.destination:nth-child(even),.couples .service-grid article{margin-top:0!important;transform:none!important;padding-top:0!important}
.destination-photo,.service-photo{margin:0 0 20px!important}
.destination-photo img,.destination:nth-child(even) .destination-photo img,.couples .service-photo img{width:100%!important;height:320px!important;object-fit:cover}
.couples .service-grid article{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;color:var(--ink)!important}
.couples .service-grid h3,.destination h3{font-size:clamp(23px,2vw,30px)!important;line-height:1.2!important;margin:12px 0 20px!important;min-height:1.2em}
.couples .service-grid .kicker{min-height:2em}
.booking-ribbon label{display:flex!important;flex-direction:column;align-items:stretch;padding:0 12px;gap:4px}
.booking-ribbon label>span{display:block!important;font-size:11px}
.booking-ribbon input{background:#fff!important;color:#293d33!important;color-scheme:light;border:1px solid #deded8!important;border-radius:7px;padding:10px!important;min-height:44px}
.booking-ribbon .button{background:#99583f!important;color:#fff!important;border-color:#99583f!important;margin-left:12px}
.booking-ribbon .button:hover{background:#7e4430!important}
.ribbon-date{position:relative;display:block}.ribbon-date input{width:160px;max-width:100%}
.ribbon-date .date-hint{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12px;color:#686b67;pointer-events:none;background:#fff}
.ribbon-date:focus-within .date-hint,.ribbon-date.has-value .date-hint{display:none}
.ribbon-date:not(.has-value):not(:focus-within) input::-webkit-datetime-edit{color:transparent}
.ribbon-menu{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:44px;height:44px;margin-left:12px;padding:10px;background:transparent;border:1px solid #ffffff66;border-radius:7px;cursor:pointer}
.ribbon-menu span{display:block;height:2px;width:22px;background:#fff}
.ribbon-navigation{position:absolute;right:16px;top:100%;background:#fff;color:#293d33;box-shadow:0 12px 30px #0002;border-radius:12px;padding:12px;max-height:70vh;overflow:auto;min-width:240px}
.ribbon-navigation[hidden]{display:none}.ribbon-navigation a{display:block;padding:12px;text-decoration:none}.ribbon-navigation a:hover,.ribbon-navigation a:focus{background:#f6f1e8}
.tour-enquiry{display:grid!important;grid-template-columns:minmax(220px,320px) 1fr;gap:36px!important;align-items:center!important}
.tour-enquiry .tour-film{width:100%;margin:0;grid-column:1;grid-row:1/3}.tour-enquiry-copy{grid-column:2}.tour-enquiry>.button{grid-column:2;justify-self:start;align-self:start;width:auto!important;min-height:44px!important;padding:11px 22px!important;font-size:14px!important}
.footer{background:#fff!important;color:#4f5b4b!important}.footer a,.footer-sub,.footer-bottom{color:#4f5b4b!important}.footer .official-logo{filter:none!important}.footer .privacy-button{color:#4f5b4b;border-color:#4f5b4b}
@media(max-width:700px){.booking-ribbon-inner{grid-template-columns:1fr 1fr 70px}.booking-ribbon label{padding:0 3px}.booking-ribbon input{font-size:12px;padding:8px!important;min-width:0}.booking-ribbon .button{grid-column:1/3;justify-self:end;margin:8px 0 0}.ribbon-menu{grid-column:3;grid-row:2;margin:8px 0 0;justify-self:center}.reference-collage{grid-template-columns:1fr!important}.reference-collage .real-photo img{height:320px!important}.tour-enquiry{grid-template-columns:1fr;gap:24px!important}.tour-enquiry .tour-film{grid-column:1;grid-row:auto;width:min(100%,300px);justify-self:center}.tour-enquiry-copy,.tour-enquiry>.button{grid-column:1}.couples .service-grid h3,.destination h3{font-size:25px!important}}
.booking-ribbon-inner{max-width:1440px}.ribbon-location{max-width:220px;font-size:12px;line-height:1.5;margin:0 16px 0 0;color:#fff}
@media(max-width:1000px){.ribbon-location{max-width:150px;font-size:11px}.booking-ribbon label{padding:0 5px}}
@media(max-width:700px){.ribbon-location{grid-column:1/-1;max-width:none;margin:0 0 5px;text-align:center}.booking-ribbon .button,.ribbon-menu{grid-row:3}}
/* Keep the booking controls usable on narrow phones, including 320px. */
@media(max-width:700px){
 .booking-ribbon-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 64px}
 .booking-ribbon label:nth-of-type(1){grid-column:1;grid-row:2}
 .booking-ribbon label:nth-of-type(2){grid-column:2;grid-row:2}
 .booking-ribbon .quick-guests{grid-column:3;grid-row:2}
 .booking-ribbon input{font-size:16px}
 .ribbon-date{min-width:0}.ribbon-date input{width:100%}
 .ribbon-navigation{min-width:0;width:min(280px,calc(100vw - 32px))}
 .tour-enquiry-copy{min-width:0}.tour-enquiry video{max-width:100%}
}
.room-reference{margin:0 0 18px}.room-reference img{display:block;width:100%;height:230px;object-fit:cover}.room-reference figcaption{font:11px/1.5 Inter,sans-serif;color:#62685e;margin-top:8px}
/* Match airport transfer photography to its neighbouring cards. */
.amenity .transfer-real-image,.service-photo.transfer-real-photo img{object-fit:cover!important;object-position:center;border-radius:var(--photo-radius)!important;width:100%!important}
.service-photo.transfer-real-photo img{height:320px!important}
@media(max-width:700px){.service-photo.transfer-real-photo img{height:260px!important}}
/* Align field boxes and actions on the same baseline. */
@media(min-width:701px){
 .booking-ribbon-inner{align-items:end}
 .booking-ribbon label{margin:0}
 .booking-ribbon input{box-sizing:border-box;height:44px;min-height:44px}
 .booking-ribbon .button,.ribbon-menu{box-sizing:border-box;height:44px;min-height:44px;margin-top:0;margin-bottom:0;align-self:end;display:flex;align-items:center;justify-content:center}
 .ribbon-menu{flex-direction:column;flex-shrink:0}
 .ribbon-location{align-self:center}
}
/* A quiet cover: only the signature remains over the photograph. */
.hero-content>:not(h1){display:none!important}
.hero-content h1{margin:0 auto;max-width:22ch;text-align:center}
.landscape-break figcaption>:not(h2){display:none!important}
.landscape-break h2{margin-bottom:0}
/* Readable contact introduction on the dark green background. */
#contacto > .wrap > .section-head > p{color:#fff!important}
/* Consistent text contrast on green sections; keep light input surfaces legible. */
#contacto>.wrap,.couples,.reference-photo-strip,.booking-ribbon{color:#fff}
#contacto>.wrap :is(h1,h2,h3,h4,p,.kicker,.text-link,a),.couples :is(h2,h3,h4,p,figcaption,.kicker,.text-link),.reference-photo-strip :is(h2,h3,p,strong,span,figcaption),.booking-ribbon label>span{color:#fff!important}
.couples .service-grid article{color:#fff!important}
