.hotel-public-surface{display:grid;gap:clamp(2rem,6vw,4rem);padding-block:clamp(2rem,6vw,4rem)}
.hotel-public-surface>section{margin-bottom:0}
.hotel-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,.65fr);gap:1.5rem;align-items:end}
.hotel-section-heading h2,.hotel-concierge h2{margin-block:.35rem 0}
.hotel-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem;margin-top:1.25rem}
.hotel-card,.hotel-recommendation-card,.hotel-concierge,.hotel-booking-handoff,.hotel-recommendations--empty{min-width:0;padding:clamp(1rem,3vw,1.5rem);border:1px solid var(--gt-border);border-radius:1rem;background:var(--gt-surface);box-shadow:var(--gt-shadow)}
.hotel-card{display:flex;flex-direction:column;scroll-margin-top:1rem;overflow:hidden}
.hotel-card__media{position:relative;margin:calc(clamp(1rem,3vw,1.5rem)*-1) calc(clamp(1rem,3vw,1.5rem)*-1) 1.15rem}
.hotel-card__media picture{display:block}
.hotel-card__area-badge{position:absolute;left:.75rem;bottom:.75rem;max-width:calc(100% - 1.5rem);padding:.35rem .65rem;border-radius:999px;background:rgba(5,34,47,.88);color:#fff;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;backdrop-filter:blur(.25rem)}
.hotel-card__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.hotel-card__heading h3{margin:.2rem 0 0;font-size:1.35rem;line-height:1.25}
.hotel-card__area{margin:0;color:var(--gt-muted);font-size:.82rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.hotel-card__identity,.hotel-card__location,.hotel-card__evidence-note{color:var(--gt-muted)}
.hotel-card__identity{margin:.35rem 0 0;font-size:.9rem}
.hotel-card__location{margin:.85rem 0 0;line-height:1.45}
.hotel-card__context-label{margin:1rem 0 .45rem;font-size:.8rem;font-weight:850;letter-spacing:.045em;text-transform:uppercase}
.hotel-card__evidence-note{padding:.75rem;border-radius:.75rem;background:#f7f9fa;font-size:.9rem}
.hotel-card__category{max-width:11rem;padding:.3rem .55rem;border-radius:999px;background:#e8f5f6;color:var(--gt-brand);font-size:.75rem;font-weight:800;text-align:center}
.hotel-card__placeholder{display:grid;min-height:11rem;place-items:center;background:linear-gradient(135deg,#dbeff1,#f4f8f9);color:var(--gt-brand);font-size:2.4rem;font-weight:900}
.hotel-card__placeholder--detail{min-height:12rem}
.hotel-card__image,.hotel-detail__hero,.hotel-gallery img{display:block;width:100%;height:auto;object-fit:cover;background:#f2f6f8}
.hotel-card__image{aspect-ratio:16/9}
.hotel-detail__hero-frame{overflow:hidden;border-radius:clamp(.9rem,2vw,1.5rem);background:#eef4f5;box-shadow:var(--gt-shadow)}
.hotel-detail__hero-frame picture{display:block}
.hotel-detail__hero{aspect-ratio:21/9;max-height:34rem}
.hotel-detail__hero-frame .hotel-card__placeholder{min-height:clamp(14rem,40vw,30rem)}
.hotel-detail__identity{max-width:64rem}
.hotel-detail__type{font-weight:750;color:var(--gt-muted)}
.hotel-detail__quick-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.25rem}
.hotel-detail__quick-actions a{display:inline-flex;min-height:var(--gt-control-height);align-items:center;font-weight:800}
.hotel-index-panel{border-left:.35rem solid var(--gt-brand)}
.hotel-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem}
.hotel-gallery figure{min-width:0;margin:0}
.hotel-gallery img{aspect-ratio:4/3;border-radius:.65rem}
.hotel-gallery figcaption{margin-top:.4rem;color:var(--gt-muted);font-size:.8rem}
.hotel-card__facts{display:grid;gap:.8rem;margin-block:1.25rem}
.hotel-card__facts div{display:grid;gap:.15rem}
.hotel-card__facts dt{font-size:.82rem;font-weight:800;color:var(--gt-muted);text-transform:uppercase}
.hotel-card__facts dd{margin:0;overflow-wrap:anywhere}
.hotel-card__signals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.hotel-card__signals div{padding:.75rem;border-radius:.75rem;background:#f7f9fa}
.hotel-card__signals dt{font-size:.75rem;font-weight:850;color:var(--gt-muted);text-transform:uppercase}
.hotel-card__signals dd{margin:.25rem 0 0;font-weight:800}
.hotel-attribute-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}
.hotel-attribute-list li{padding:.35rem .6rem;border-radius:999px;background:#f2f6f8;font-size:.85rem;font-weight:700}
.hotel-official-link{display:inline-flex;min-height:var(--gt-control-height);align-items:center;margin-right:1rem;color:var(--gt-brand);font-weight:800}
.hotel-directory__categories{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.25rem}
.hotel-directory__categories a{display:inline-flex;min-height:var(--gt-control-height);align-items:center;padding:.55rem .8rem;border:1px solid var(--gt-border);border-radius:999px;color:var(--gt-brand);font-weight:800;text-decoration:none}
.hotel-directory__categories a[aria-current="page"]{border-color:var(--gt-brand);background:#e8f5f6}
.hotel-directory__ordering{max-width:72ch;color:var(--gt-muted)}
.hotel-directory__filters{display:grid;grid-template-columns:minmax(12rem,2fr) minmax(10rem,1fr) minmax(12rem,1fr) auto;gap:.75rem;align-items:end;margin-block:1rem}
.hotel-directory__filters label{font-weight:800}
.hotel-directory__filters input,.hotel-directory__filters select{width:100%;min-height:var(--gt-control-height);padding:.75rem;border:1px solid #9fb2c1;border-radius:var(--gt-radius);background:#fff;font:inherit}
.hotel-directory__filters button{min-height:var(--gt-control-height)}
.hotel-directory__compare{display:grid;gap:1rem}
.hotel-directory__compare>p{margin-bottom:0}
.hotel-card__actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:auto;padding-top:.75rem}
.hotel-card__actions a{display:inline-flex;min-height:var(--gt-control-height);align-items:center;color:var(--gt-brand);font-weight:800}
.hotel-card__actions .hotel-card__primary-action{grid-column:1/-1;justify-content:center;color:#fff;text-align:center}
.hotel-card__ai-action{padding:.45rem .65rem;border:1px solid var(--gt-border);border-radius:var(--gt-radius);justify-content:center;text-align:center;text-decoration:none}
.hotel-card__actions .hotel-card__official-action{grid-column:1/-1;color:var(--gt-muted);font-size:.88rem}
.hotel-card__compare{display:flex;min-height:var(--gt-control-height);align-items:center;gap:.65rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--gt-border);font-weight:800}
.hotel-card__compare input{inline-size:1.25rem;block-size:1.25rem}
.hotel-directory__compare-actions{display:grid;grid-template-columns:minmax(12rem,.5fr) minmax(12rem,.7fr) auto;gap:.75rem;align-items:center;padding:1rem;border:1px solid var(--gt-border);border-radius:1rem;background:#f7f9fa}
.hotel-directory__compare-actions label{font-weight:800}
.hotel-directory__compare-actions select{min-height:var(--gt-control-height);padding:.75rem;border:1px solid #9fb2c1;border-radius:var(--gt-radius);background:#fff;font:inherit}
.hotel-directory__empty{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:1rem;padding:1rem;border:1px dashed #9fb2c1;border-radius:1rem;background:#f7f9fa}
.hotel-directory__empty p{flex-basis:100%;margin:0}
.hotel-directory__empty a{min-height:var(--gt-control-height);display:inline-flex;align-items:center;color:var(--gt-brand);font-weight:800}
.hotel-concierge{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,.8fr);gap:1.5rem}
.hotel-concierge__form{display:grid;align-content:start;gap:.65rem}
.hotel-concierge__form label{font-weight:800}
.hotel-concierge__form select{width:100%;min-height:var(--gt-control-height);padding:.75rem;border:1px solid #9fb2c1;border-radius:var(--gt-radius);background:#fff;font:inherit}
.hotel-concierge__form .button{width:fit-content;margin-top:.25rem}
.hotel-concierge__boundary{grid-column:1/-1;margin:0;padding:1rem;border-left:.25rem solid var(--gt-brand);background:#eef8f8}
.hotel-concierge--detail{align-items:start}
.hotel-prompt-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.hotel-prompt-grid a{display:flex;min-height:var(--gt-control-height);align-items:center;padding:.75rem;border:1px solid var(--gt-border);border-radius:.75rem;background:#fff;color:var(--gt-brand);font-weight:800;text-decoration:none}
.hotel-facility-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.65rem;padding:0;list-style:none}
.hotel-facility-list li{padding:.75rem;border-radius:.75rem;background:#f7f9fa}
.hotel-price-panel{border-top:.35rem solid var(--gt-brand)}
.hotel-recommendations .public-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.hotel-recommendation-card__safety{padding-top:.75rem;border-top:1px solid var(--gt-border);color:var(--gt-muted)}
.hotel-recommendation-set__explanation{max-width:70ch;padding:.8rem 1rem;border-left:.25rem solid var(--gt-brand);background:#eef8f8}
.hotel-limited-evidence{margin-top:1.25rem;padding:1rem 1.25rem;border:1px dashed #9fb2c1;border-radius:1rem;background:#f7f9fa}
.hotel-limited-evidence h3{margin-top:0}
.hotel-limited-evidence li+li{margin-top:.55rem}
.hotel-booking-handoff form{margin-top:1rem}
.hotel-detail-surface>nav{display:flex;align-items:center;gap:.5rem;color:var(--gt-muted)}
.hotel-detail-surface>nav a{min-height:var(--gt-control-height);display:inline-flex;align-items:center;color:var(--gt-brand);font-weight:800}
.hotel-card :focus-visible,.hotel-directory :focus-visible,.hotel-concierge :focus-visible,.hotel-booking-handoff :focus-visible{outline:3px solid var(--gt-focus);outline-offset:3px}
@media(max-width:48rem){
  .hotel-directory__filters{grid-template-columns:1fr}
  .hotel-section-heading,.hotel-concierge{grid-template-columns:1fr}
  .hotel-card-grid{grid-template-columns:1fr}
  .hotel-card__heading{align-items:flex-start;flex-direction:column}
  .hotel-card__category{max-width:100%}
  .hotel-card__signals,.hotel-card__actions,.hotel-prompt-grid{grid-template-columns:1fr}
  .hotel-card__actions .hotel-card__primary-action{grid-column:1}
  .hotel-card__actions .hotel-card__official-action{grid-column:1}
  .hotel-detail__quick-actions{display:grid;grid-template-columns:1fr}
  .hotel-detail__quick-actions a{justify-content:center;text-align:center}
  .hotel-detail__hero{aspect-ratio:16/10}
  .hotel-card-grid{scroll-behavior:smooth;overscroll-behavior:contain;touch-action:pan-y}
  .hotel-concierge__boundary{grid-column:1}
  .hotel-directory__categories{display:grid;grid-template-columns:1fr 1fr}
  .hotel-directory__categories a{justify-content:center;text-align:center}
  .hotel-directory__compare-actions{grid-template-columns:1fr}
  .hotel-directory__compare-actions .button{width:100%}
  .hotel-concierge__form .button,.hotel-booking-handoff .button,.hotel-booking-handoff button{width:100%}
}
@media(max-width:28rem){
  .hotel-directory__categories{grid-template-columns:1fr}
}
