/* MyCrew luxury finish - Crew Collections service cards (d1) */
.site-shell h2{font-size:clamp(1.6rem,2.6vw,2.08rem);font-weight:400;letter-spacing:.005em}
.site-shell.booking-page h1{font-size:clamp(2.2rem,4vw,3rem);font-weight:400}
.article-shell h1{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:400}
.article-shell h2{font-size:clamp(1.25rem,2vw,1.6rem);font-weight:500}
.article-shell h3{font-size:clamp(1.05rem,1.6vw,1.25rem);font-weight:500}
.article-shell h4{font-size:1rem;font-weight:600}
.site-shell h3{font-size:clamp(1.15rem,1.8vw,1.375rem);font-weight:500}
.site-shell h4{font-size:1rem;font-weight:600}
.site-shell [class*=eyebrow]{letter-spacing:3px;font-weight:600}
.site-shell .goa-event-card strong{font-family:"Cinzel","Times New Roman",serif;letter-spacing:.06em;font-weight:600;text-transform:uppercase;font-size:13px}
.site-shell .stay-card-premium h3{font-family:"Cinzel","Times New Roman",serif;font-weight:500;letter-spacing:.01em;font-size:clamp(1.25rem,1.9vw,1.5rem)}
/* Services directory -> auto-slide strip */
.site-shell .service-directory-grid{display:flex;overflow-x:auto;column-gap:18px;scroll-snap-type:x proximity;padding-bottom:10px;-webkit-overflow-scrolling:touch}
.site-shell .service-directory-grid>*{flex:0 0 300px;max-width:82vw;scroll-snap-align:start}
@media (prefers-reduced-motion: reduce){.site-shell .service-directory-grid{scroll-snap-type:none}}
/* Crew Collections card treatment */
.site-shell .service-directory-grid>button{position:relative;overflow:hidden;border-radius:16px;border:1px solid rgba(198,164,92,.55);background:#0d1b26;padding:26px 22px;height:400px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;cursor:pointer}
.site-shell .service-directory-grid>button>img{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;z-index:0}
.site-shell .service-directory-grid>button::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(13,27,38,.85) 0%,rgba(13,27,38,.55) 32%,rgba(13,27,38,.18) 52%,rgba(13,27,38,.55) 100%)}
.site-shell .service-directory-grid>button::after{content:"";position:absolute;inset:12px;z-index:2;border:1px solid rgba(198,164,92,.55);border-radius:10px;pointer-events:none}
.site-shell .service-directory-grid>button>*:not(img){position:relative;z-index:3}
.site-shell .service-dir-tag{color:#fff;font-size:22px;line-height:1.15;font-weight:800;letter-spacing:.05em;text-transform:uppercase;font-family:"Inter","Helvetica Neue",Arial,sans-serif;display:flex;align-items:center;gap:10px}
.site-shell .service-dir-tag svg{stroke:#fff;width:22px;height:22px;flex:0 0 auto}
.site-shell .service-directory-grid>button>small{color:rgba(255,255,255,.92);font-size:13.5px;line-height:1.55;margin-top:10px;max-width:24ch}
.site-shell .service-directory-grid>button>strong{margin-top:auto;color:#c8a45c;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.site-shell .service-dir-price{position:absolute!important;right:24px;bottom:22px;text-align:right;color:#fff;font-size:19px;font-weight:800;letter-spacing:.02em}
.site-shell .service-dir-price em{display:block;font-style:normal;font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:3px}
@media (max-width:640px){.site-shell .service-directory-grid>button{height:360px;padding:22px 18px}.site-shell .service-dir-tag{font-size:19px}}

@media (max-width:760px){
.service-directory .section-kicker{padding-left:20px;padding-right:20px}
}

/* Stay Somewhere Special - Crew Collections card treatment (matches service-directory) */
.home-property-scroll{grid-auto-columns:min(300px,82vw);column-gap:18px;scroll-snap-type:none}
.home-property-card{position:relative;overflow:hidden;border-radius:16px;border:1px solid rgba(198,164,92,.55);background:#0d1b26;height:400px;display:flex;flex-direction:column}
.home-property-card::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(13,27,38,.85) 0%,rgba(13,27,38,.55) 32%,rgba(13,27,38,.18) 52%,rgba(13,27,38,.55) 100%)}
.home-property-card::after{content:"";position:absolute;inset:12px;z-index:2;border:1px solid rgba(198,164,92,.55);border-radius:10px;pointer-events:none}
.home-property-photo{position:absolute;inset:0;height:100%}
.home-property-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-property-photo span{position:absolute;top:24px;right:24px;bottom:auto;left:auto;background:transparent;padding:0;color:#c8a45c;font-size:9.5px;letter-spacing:.18em;z-index:3}
.home-property-copy{position:relative;z-index:3;padding:26px 22px;height:100%;display:flex;flex-direction:column}
.home-property-copy small{color:#c8a45c;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.home-property-copy h3{color:#fff!important;font-family:inherit!important;text-transform:uppercase;font-weight:800;font-size:20px!important;line-height:1.2;margin:8px 0 0!important;letter-spacing:.02em}
.featured-hero-card h3{font-size:20px!important}
.home-property-copy p{color:rgba(255,255,255,.92);font-size:13.5px;line-height:1.55;margin:10px 0 0;max-width:26ch}
.home-property-copy p.featured-stay-rate{position:absolute;right:24px;bottom:22px;margin:0;color:#c8a45c;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-align:right;max-width:18ch}
.home-property-copy>span{display:none}
@media (max-width:760px){
.home-property-card{height:360px}
}

/* stays card kicker/badge collision fix */
.home-property-copy small{max-width:62%}
@media (max-width:760px){
.home-property-photo span{display:none}
}

/* longer exclusive-rates label fits card price block */
.service-dir-price:not(:has(em)){font-size:13px;letter-spacing:.05em;max-width:20ch}

/* booking flow: rate estimate hint */
.booking-rate-hint{grid-column:1/-1;margin:4px 0 0;background:#0d1b26;color:#f2d8a3;padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.55;border:1px solid rgba(198,164,92,.5)}

/* d7: mobile stay-detail overflow fix - grid items must be allowed to shrink below table intrinsic width */
.stay-detail-body>*,.published-hotel-rates,.rate-scroll,.stay-detail,.booking-main>*,.booking-workspace>*{min-width:0}
.published-hotel-rates{max-width:100%}
.rate-scroll{max-width:100%;-webkit-overflow-scrolling:touch}

/* d8: mobile events strip - Safari grid auto-flow can push the page wide; flex row is solid */
@media (max-width:760px){
.goa-events-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;max-width:100%}
.goa-events-scroll .goa-event-card{flex:0 0 79vw;min-width:0}
.goa-events-section,.goa-events-heading,.goa-events-scroll{min-width:0;max-width:100%}
.home-property-scroll,.home-services-scroll{min-width:0;max-width:100%}
}

/* d9: keep footer hub copy clear of the floating chat bubble on mobile */
@media (max-width:760px){
.home-hub p{padding-left:76px}
}
