
/* Mamagoa: restrained type, consistent actions, legible color and compact rhythm. */
:root{--mg-forest:#102d20;--mg-paper:#fffaf1;--mg-muted:#605b4e;--mg-gold:#d5b576;--mg-line:#d8cdb8}
body{font-family:Inter,Arial,sans-serif}
.section-pad{padding:56px max(24px,calc((100vw - 1320px)/2))!important}
.section-head{display:flex!important;align-items:flex-end!important;justify-content:space-between;gap:28px!important;margin:0 0 28px!important;max-width:none!important}
.section-head>div{max-width:680px}.section-head h2{font-family:"DM Serif Display",Georgia,serif!important;font-size:clamp(30px,3.4vw,46px)!important;line-height:1.08!important;letter-spacing:-.035em!important;margin:8px 0 0!important;max-width:760px}
.section-head>p:not(.eyebrow){max-width:430px!important;font-size:15px!important;line-height:1.65!important;margin:0!important}
.section-head.narrow{display:block!important;text-align:left!important;max-width:820px!important;margin:0 0 28px!important}
.eyebrow{font-size:10px!important;letter-spacing:.18em!important;color:#77572d!important;line-height:1.6!important;margin:0 0 10px!important}
.site-header{transform:none!important}
.button,.nav-cta{font-weight:600!important;letter-spacing:0!important;text-decoration:none!important}
.button.primary,.nav-cta{background:linear-gradient(120deg,#e4ce96,#cfa563)!important;color:#14291c!important;box-shadow:0 5px 14px #122d2012!important;border:1px solid #b99757!important}
.button.secondary,.button.ghost{background:transparent!important;color:#173426!important;border:1px solid #8c9b87!important;box-shadow:none!important}
.hero .button.secondary,.hero .button.ghost{color:#fffaf1!important;border-color:#e7ddbd!important;background:#102d2070!important}
.button:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #ba8b42;outline-offset:4px}
.button:hover,.nav-cta:hover{filter:brightness(.97);box-shadow:0 7px 18px #122d201c!important}
.room-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:20px!important;align-items:stretch}
.room-card{display:flex!important;flex-direction:column;border-radius:20px!important;border:1px solid var(--mg-line)!important;box-shadow:0 8px 24px #1831200a!important;background:var(--mg-paper)!important}
.room-card .room-media,.swipe-room-gallery{border-radius:19px 19px 0 0!important}
.room-card .room-media.swipe-room-gallery{padding:0!important}
.room-card .photo-slide img,.room-card .room-main{height:245px!important;min-height:0!important;max-height:none!important}
.room-content{display:flex!important;flex-direction:column;flex:1;padding:22px 20px!important}
.room-content h3{font:400 28px/1.13 "DM Serif Display",Georgia,serif!important;letter-spacing:-.025em!important;margin:0 0 13px!important;color:var(--mg-forest)!important}
.room-content>p{font-size:14px!important;line-height:1.65!important;color:var(--mg-muted)!important;margin:0 0 16px!important}
.room-facts{gap:7px!important;margin:0 0 22px!important}
.room-facts li{font-size:11px!important;line-height:1.5!important;font-weight:500!important;padding:5px 8px!important;box-shadow:none!important}
.room-action-row{margin-top:auto!important;display:flex!important;flex-direction:column;gap:12px!important}
.room-action-row .room-action-button{font-size:13px!important;line-height:1.3!important;min-height:46px!important;padding:12px 16px!important;border-radius:10px!important;width:100%;white-space:nowrap;justify-content:center!important}
.room-action-row .room-action-button.primary::after{content:none!important}
.room-action-row .room-action-button.secondary{min-height:30px!important;border:0!important;background:none!important;color:#294530!important;padding:3px 6px!important;box-shadow:none!important;text-decoration:underline!important;text-underline-offset:5px;font-weight:500!important}
.included .section-head h2,.why .section-head h2,.booking .section-head h2{color:#fffaf1!important}
.included .section-head p,.why .section-head p{color:#e0e4d7!important}
.included .eyebrow,.why .eyebrow,.booking .eyebrow{color:#dcc38d!important}
.included-grid,.why-grid,.review-grid{gap:18px!important}
.included-grid article,.why-grid article,.review-grid article{min-height:0!important;height:auto!important;padding:22px!important;border-radius:16px!important;box-shadow:none!important}
.included-grid article{background:#1c382a!important;border-color:#53715e!important}
.included-grid article strong,.included-grid article h3,.why-grid h3{color:#fffaf1!important;font-size:18px!important;line-height:1.3!important;margin:10px 0!important}
.included-grid article p,.why-grid article p{color:#e0e4d7!important;font-size:14px!important;line-height:1.65!important;margin:0!important}
.included-grid article span,.why-grid article span{color:#dcc38d!important}
.why{background:#10281c!important}.why-grid article{background:transparent!important;border:0!important;border-left:1px solid #61735b!important;border-radius:0!important;padding:0 22px!important}
.why-grid article>span{display:block;font-size:11px!important;margin:0 0 12px!important}
.restaurant{gap:40px!important;align-items:center!important}.restaurant-copy h2,.intro h2{font:400 clamp(32px,3.5vw,46px)/1.1 "DM Serif Display",Georgia,serif!important;letter-spacing:-.03em!important}
.restaurant-copy p,.intro p{font-size:16px!important;line-height:1.7!important}
.gallery-grid{gap:12px!important}.gallery-grid img{border-radius:14px!important}
.policy{background:#fffaf1!important}
.policy-grid.policy-grid-clean{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0 40px!important}
.policy-grid article{background:none!important;box-shadow:none!important;border:0!important;border-bottom:1px solid var(--mg-line)!important;border-radius:0!important;padding:18px 0!important;min-height:0!important;display:grid;grid-template-columns:150px 1fr;gap:20px;align-content:start}
.policy-grid article>span{font-size:11px!important;line-height:1.6!important;color:#77572d!important;letter-spacing:.08em!important}
.policy-grid article p{font-size:14px!important;line-height:1.65!important;color:#504e42!important;margin:0!important}
.review-grid article{background:#fffaf1!important;border:1px solid var(--mg-line)!important}
.review-grid p{font-size:15px!important;line-height:1.65!important;color:#504e42!important}
footer{padding:30px max(24px,calc((100vw - 1320px)/2))!important;gap:24px!important;align-items:center!important}
footer p{font-size:13px!important;line-height:1.6!important;color:#e0e4d7!important;max-width:450px}
footer a{color:#f5e8ca!important;font-size:13px!important}footer>div{display:flex;flex-wrap:wrap;gap:12px 20px}footer .brand-sub{color:#d7dccc!important}
#booking-section .reservation-intro h2{font-size:clamp(32px,3.4vw,44px)!important}
#booking-section .reservation-intro{align-self:start!important}#booking-section .reservation-shell{align-items:start!important}
body.booking-in-view .site-header{transform:translateY(-160%)!important;visibility:hidden}
#live-booking input[type=date]{cursor:pointer}
.receipt-next{align-self:start}.receipt-layout{align-items:start}
@media(max-width:1199px){.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.room-card .photo-slide img,.room-card .room-main{height:290px!important}.room-content h3{font-size:30px!important}.why-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;row-gap:28px!important}.policy-grid article{grid-template-columns:115px 1fr;gap:14px}}
@media(max-width:760px){.section-pad{padding:40px 18px!important}.section-head{display:block!important;margin-bottom:24px!important}.section-head>p:not(.eyebrow){margin-top:16px!important}.section-head h2{font-size:34px!important}.room-grid{grid-template-columns:1fr!important;gap:24px!important}.room-card .photo-slide img,.room-card .room-main{height:300px!important}.room-content{padding:22px!important}.room-content h3{font-size:30px!important}.room-content>p{font-size:15px!important}.room-action-row{flex-direction:row;align-items:center!important;gap:14px!important}.room-action-row .room-action-button{font-size:13px!important}.room-action-row .room-action-button.primary{flex:1}.room-action-row .room-action-button.secondary{flex:1}.why-grid{grid-template-columns:1fr!important;gap:22px!important}.included-grid{grid-template-columns:1fr!important}.policy-grid.policy-grid-clean{grid-template-columns:1fr!important}.policy-grid article{grid-template-columns:110px 1fr!important;gap:18px!important}.restaurant{gap:24px!important}footer{padding:28px 20px!important;display:flex!important;flex-direction:column;align-items:flex-start!important;gap:16px!important}footer p{margin:0!important}#live-booking .live-contact .live-fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.button,.nav-cta{transition:none!important}}

/* Resolve earlier component selectors with higher specificity. */
.section-head .eyebrow{font-size:10px!important;line-height:1.6!important;letter-spacing:.18em!important}
.why .section-head .eyebrow,.included .section-head .eyebrow{color:#dcc38d!important}
.room-content .room-action-row .room-action-button.primary,.room-side-card .button.primary{background:linear-gradient(120deg,#e4ce96,#cfa563)!important;color:#14291c!important;border:1px solid #b99757!important;font-weight:600!important;box-shadow:0 5px 14px #122d2012!important}
.room-content .room-action-row .room-action-button{margin:0!important}
.why .why-grid{background:none!important;border:0!important;border-radius:0!important;overflow:visible!important}
.review-grid blockquote{padding:22px!important;border-radius:16px!important;box-shadow:none!important;margin:0!important}

/* Compact mobile content without removing resort photography or amenities. */
.intro-copy{padding-top:0!important}
.restaurant-photos{gap:12px!important}
.restaurant-photos img{height:190px!important;border-radius:16px!important}
.restaurant-photos .wide-img{height:330px!important}
@media(max-width:760px){
 .intro{gap:22px!important}
 #included .included-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
 #included .included-grid article{padding:16px!important}
 #included .included-grid article strong{font-size:15px!important}
 .restaurant-photos{grid-template-columns:1fr 1fr!important}
 .restaurant-photos img{height:150px!important}
 .restaurant-photos .wide-img{height:260px!important;grid-column:1/-1!important}
}

/* Match the booking fields across legacy action-button variants. */
.button,.nav-cta,.button.primary,.button.secondary,.button.ghost,.button.full,.room-side-card .button.full,.room-side-card .button.primary,.booking-card .button.primary.full,.room-cta-row .button,.room-cta-row .button.ghost,.room-content .room-action-row .room-action-button{border-radius:10px!important}

/* A compact header that follows the shape of the booking controls. */
.site-header{border-radius:16px!important;min-height:62px!important;padding:8px 12px!important;gap:18px!important;background:rgba(10,34,24,.94)!important;border:1px solid rgba(223,211,178,.24)!important;box-shadow:0 6px 18px rgba(5,20,12,.14)!important;backdrop-filter:blur(14px)!important}
.site-header .brand{min-width:0;gap:9px!important}
.site-header .brand-logo-wrap{width:44px!important;height:44px!important;padding:3px!important;border:1px solid #e8dec9!important;box-shadow:none!important}
.site-header .brand-logo{width:100%!important;height:100%!important;object-fit:contain!important}
.site-header .brand-stack{display:flex!important;flex-direction:column;min-width:0}
.site-header .brand-text{display:block!important;font-size:15px!important;line-height:1.2!important;font-weight:600!important;letter-spacing:-.02em!important;color:#fffaf1!important}
.site-header .brand-sub{font-size:9px!important;line-height:1.25!important;letter-spacing:.08em!important;margin-top:3px!important;color:#d8dfcf!important;white-space:nowrap}
.site-header .nav-cta{min-height:44px!important;padding:10px 17px!important;gap:8px!important;font-size:14px!important;line-height:1.2!important;box-shadow:none!important}
.site-header .nav-cta::after{content:"\2192";font-weight:500}
@media(max-width:760px){
 .site-header{grid-template-columns:minmax(0,1fr) auto!important;min-height:58px!important;padding:6px 8px!important;gap:12px!important}
 .site-header .brand{gap:8px!important}
 .site-header .brand-logo-wrap{width:40px!important;height:40px!important}
 .site-header .brand-text{font-size:13px!important}
 .site-header .brand-sub{font-size:8px!important;letter-spacing:.06em!important}
 .site-header .nav-cta{padding:10px 13px!important;font-size:13px!important;gap:7px!important}
}
@media(max-width:360px){
 .site-header .brand-sub{display:none!important}
 .site-header .brand-text{font-size:12px!important}
 .site-header .nav-cta{padding-inline:11px!important;font-size:12px!important}
}
