/* v1.19: hotel detail follows the approved airy, photo-first layout. */
body.spabg-hotels-page .spah-rating-row .spah-rating-label strong { display:inline-flex;align-items:center;gap:7px;max-width:100%;white-space:nowrap;vertical-align:middle; }
body.spabg-hotels-page .spah-rating-label .spah-platform-icon { display:block;flex:none;width:19px;height:19px;max-width:none;border-radius:4px;object-fit:contain; }
body.spabg-hotels-page .spah-rating-label small { padding-left:26px; }
body.spabg-hotels-page .spah-detail { padding-bottom:85px; background:#f8f8f2; }
body.spabg-hotels-page .spah-detail .spah-breadcrumb { padding:28px 0 27px; }
body.spabg-hotels-page .spah-detail-heading { display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:42px;align-items:center;padding:0 0 34px; }
body.spabg-hotels-page .spah-detail-heading h1 { max-width:800px;margin:6px 0 16px;font-size:clamp(44px,5.4vw,72px);font-weight:290;line-height:1.08;letter-spacing:-.053em; }
body.spabg-hotels-page .spah-detail-heading .spa-eyebrow { margin:0;color:#31775e;font-size:13px;font-weight:630;letter-spacing:.13em; }
body.spabg-hotels-page .spah-heading-copy p { max-width:690px;color:#5b7363;font-size:19px;font-weight:350;line-height:1.55; }
body.spabg-hotels-page .spah-ratings { padding:17px 21px;border:1px solid #d9e6d9;border-radius:23px;background:#fff;box-shadow:0 13px 32px rgba(26,65,43,.055); }
body.spabg-hotels-page .spah-ratings-heading { display:block;margin-bottom:10px;color:#4b7d60;font-size:13px;font-weight:670;letter-spacing:.12em;text-transform:uppercase; }
body.spabg-hotels-page .spah-rating-row { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:13px;min-height:61px;padding:9px 0;border-top:1px solid #e3eae2;color:#315c46; }
body.spabg-hotels-page .spah-rating-row strong { display:block;font-size:15px;font-weight:600;line-height:1.35; }
body.spabg-hotels-page .spah-rating-row strong span { color:#76a386;font-weight:400; }
body.spabg-hotels-page .spah-rating-row small { display:block;color:#809181;font-size:12px;line-height:1.4; }
body.spabg-hotels-page .spah-rating-row:hover strong { text-decoration:underline; }
body.spabg-hotels-page .spah-rating-number { white-space:nowrap;color:#256a4c;font-size:23px;font-weight:520;letter-spacing:-.04em; }
body.spabg-hotels-page .spah-rating-number small { display:inline;color:#809181;font-size:12px;font-weight:400;letter-spacing:0; }
body.spabg-hotels-page .spah-rating-pending { color:#637c68; }
body.spabg-hotels-page .spah-rating-open { font-size:13px;color:#3d8164; }
body.spabg-hotels-page .spah-ratings-foot { display:block;margin-top:7px;color:#87958b;font-size:11px;line-height:1.45; }
body.spabg-hotels-page .spah-detail .spah-gallery { height:510px;grid-template-columns:minmax(0,1.67fr) minmax(0,1fr);grid-template-rows:1fr 1fr;gap:10px;border-radius:27px 27px 75px 27px;box-shadow:0 22px 56px rgba(28,75,49,.09); }
body.spabg-hotels-page .spah-detail .spah-gallery-item { position:relative;display:block;width:100%;min-width:0;min-height:0;padding:0;border:0;overflow:hidden;background:#dce9de;text-align:left;cursor:pointer; }
body.spabg-hotels-page .spah-detail .spah-gallery-item:first-child { grid-row:span 2; }
body.spabg-hotels-page .spah-detail .spah-gallery-item img { display:block;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform .35s ease; }
body.spabg-hotels-page .spah-detail .spah-gallery-item:hover img { transform:scale(1.035); }
body.spabg-hotels-page .spah-detail .spah-gallery-item:after { content:"";position:absolute;inset:58% 0 0;background:linear-gradient(0deg,rgba(10,42,32,.54),transparent);pointer-events:none; }
body.spabg-hotels-page .spah-photo-label { position:absolute;z-index:1;bottom:20px;left:22px;color:#fff;font-size:14px;font-weight:500;line-height:1.3;text-shadow:0 1px 5px #173323; }
body.spabg-hotels-page .spah-detail .spah-gallery-count-1 { display:block;height:470px; }
body.spabg-hotels-page .spah-detail .spah-gallery-count-1 .spah-gallery-item { height:100%; }
body.spabg-hotels-page .spah-detail .spah-gallery-count-2 { grid-template-rows:1fr; }
body.spabg-hotels-page .spah-detail .spah-gallery-count-2 .spah-gallery-item:first-child { grid-row:auto; }
body.spabg-hotels-page .spah-quick { display:flex;flex-wrap:wrap;gap:9px 25px;align-items:center;padding:25px 0;border-bottom:1px solid #dce7dd;color:#536c5e;font-size:15px; }
body.spabg-hotels-page .spah-quick strong { color:#296a4e;font-weight:650; }
body.spabg-hotels-page .spah-quick span:before { content:"✳";margin-right:10px;color:#62a77b; }
body.spabg-hotels-page .spah-return { display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;margin-top:34px;padding:29px 32px;border-radius:24px;background:#e8f1e8; }
body.spabg-hotels-page .spah-return h2 { font-size:27px;font-weight:400;letter-spacing:-.035em; }
body.spabg-hotels-page .spah-return p { margin-top:9px;color:#587365;font-size:15px;line-height:1.6; }
body.spabg-hotels-page .spah-return ul { display:grid;gap:10px;align-content:center;margin:0;padding:0;list-style:none; }
body.spabg-hotels-page .spah-return li { position:relative;padding-left:27px;color:#416450;font-size:15px;line-height:1.55; }
body.spabg-hotels-page .spah-return li:before { content:"✓";position:absolute;left:0;color:#3b946a;font-weight:700; }
body.spabg-hotels-page .spah-save { margin-top:20px;padding:10px 17px;border:1px solid #91b59a;border-radius:99px;background:#fff;color:#2d7357;font-size:14px;font-weight:650;cursor:pointer; }
body.spabg-hotels-page .spah-save[aria-pressed="true"] { background:#277157;color:#fff; }
body.spabg-hotels-page .spah-detail-body { grid-template-columns:minmax(0,1fr) 310px;gap:73px;padding-top:70px; }
body.spabg-hotels-page .spah-detail-main section { margin:0 0 28px;padding:0 0 57px;border-bottom:1px solid #dce6da; }
body.spabg-hotels-page .spah-detail-main section:first-child { padding-top:0; }
body.spabg-hotels-page .spah-detail-main .spa-eyebrow { color:#357b61;font-size:13px;font-weight:650;letter-spacing:.12em; }
body.spabg-hotels-page .spah-detail-main h2 { margin:1px 0 21px;font-size:clamp(34px,3.4vw,44px);font-weight:340;line-height:1.13;letter-spacing:-.045em; }
body.spabg-hotels-page .spah-detail-main p { color:#617367;font-size:16px;line-height:1.7; }
body.spabg-hotels-page .spah-detail-main .spah-lead { color:#365b47;font-size:21px;font-weight:340;line-height:1.56; }
body.spabg-hotels-page .spah-facts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:32px; }
body.spabg-hotels-page .spah-facts div { min-height:135px;padding:22px;border:1px solid #e1e9df;border-radius:20px;background:#fff; }
body.spabg-hotels-page .spah-facts span { display:grid;place-items:center;width:36px;height:36px;margin-bottom:20px;border-radius:50%;background:#e1eedc;color:#33785a;font-size:19px; }
body.spabg-hotels-page .spah-facts strong { color:#345744;font-size:17px;font-weight:500; }
body.spabg-hotels-page .spah-detail-main section.spah-water { padding:34px 38px 37px;border:0;border-radius:25px;background:#e2eee5; }
body.spabg-hotels-page .spah-amenities { gap:9px 12px; }
body.spabg-hotels-page .spah-amenities li { border-radius:12px;background:#fff;font-size:15px; }
body.spabg-hotels-page .spah-location-links { display:flex;flex-wrap:wrap;gap:13px;margin-top:23px; }
body.spabg-hotels-page .spah-location-links a { display:inline-flex;align-items:center;min-height:45px;padding:9px 17px;border:1px solid #c3dbca;border-radius:99px;color:#2f7657;font-size:15px;font-weight:550; }
body.spabg-hotels-page .spah-location-links a:hover { background:#e7f3e8; }
body.spabg-hotels-page .spah-detail-main section.spah-sources { border:0;padding-bottom:0; }
body.spabg-hotels-page .spah-sources h2 { font-size:25px; }
body.spabg-hotels-page .spah-sources a { color:#2e755a;text-decoration:underline; }
body.spabg-hotels-page .spah-sticky-card { top:102px;padding:28px;border-radius:25px; }
body.spabg-hotels-page .spah-sticky-card .spa-eyebrow { font-size:13px;font-weight:650; }
body.spabg-hotels-page .spah-sticky-card h2 { font-size:28px;font-weight:380;letter-spacing:-.035em; }
body.spabg-hotels-page .spah-sticky-card ul { display:grid;gap:8px;padding:20px 0 0;margin:22px 0 0;border-top:1px solid #e2eae0;list-style:none;color:#506c59;font-size:15px; }
body.spabg-hotels-page .spah-sticky-card li:before { content:"✓";margin-right:9px;color:#56a87e; }
body.spabg-hotels-page .spah-sticky-card .spah-apply { padding:15px;font-size:15px; }
body.spabg-hotels-page .spah-related { padding-top:42px; }
body.spabg-hotels-page .spah-related h2 { font-weight:360; }
body.spabg-hotels-page .spah-lightbox[hidden] { display:none; }
body.spabg-hotels-page .spah-lightbox { position:fixed;z-index:99999;inset:0;display:grid;place-items:center;padding:55px 25px 75px;background:rgba(10,32,27,.94); }
body.spabg-hotels-page .spah-lightbox img { display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:12px; }
body.spabg-hotels-page .spah-lightbox-close { position:absolute;top:17px;right:20px;width:44px;height:44px;border:1px solid #ffffff77;border-radius:50%;background:#ffffff22;color:#fff;font-size:27px;cursor:pointer; }
body.spabg-hotels-page .spah-lightbox-caption { position:absolute;bottom:23px;left:22px;right:22px;color:#fff;text-align:center;font-size:15px; }
body.spabg-hotels-page .spah-lightbox-prev,body.spabg-hotels-page .spah-lightbox-next { position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #ffffff8c;border-radius:50%;background:#ffffff25;color:#fff;font-size:34px;line-height:1;cursor:pointer;transform:translateY(-50%);backdrop-filter:blur(6px); }
body.spabg-hotels-page .spah-lightbox-prev { left:18px; }
body.spabg-hotels-page .spah-lightbox-next { right:18px; }
body.spabg-hotels-page .spah-lightbox-prev:hover,body.spabg-hotels-page .spah-lightbox-next:hover,body.spabg-hotels-page .spah-lightbox-prev:focus-visible,body.spabg-hotels-page .spah-lightbox-next:focus-visible { background:#ffffff4d;outline:2px solid #fff;outline-offset:2px; }
body.spabg-hotels-page .spah-mobile-cta { display:none; }
@media(max-width:950px) {
  body.spabg-hotels-page .spah-detail-heading { grid-template-columns:1fr;gap:22px; }
  body.spabg-hotels-page .spah-ratings { width:min(100%,500px); }
  body.spabg-hotels-page .spah-detail-body { grid-template-columns:minmax(0,1fr) 265px;gap:29px; }
  body.spabg-hotels-page .spah-facts { grid-template-columns:1fr; }
  body.spabg-hotels-page .spah-facts div { min-height:0; }
}
@media(max-width:700px) {
  body.spabg-hotels-page .spah-detail-heading h1 { font-size:46px; }
  body.spabg-hotels-page .spah-detail .spah-gallery { height:auto;grid-template-columns:1fr 1fr;grid-template-rows:320px 140px;border-radius:23px 23px 47px 23px;gap:7px; }
  body.spabg-hotels-page .spah-detail .spah-gallery-item:first-child { grid-column:span 2;grid-row:auto; }
  body.spabg-hotels-page .spah-detail .spah-gallery-count-1 { height:360px;display:block; }
  body.spabg-hotels-page .spah-detail .spah-gallery-count-2 { grid-template-columns:1fr 1fr;grid-template-rows:250px 130px; }
  body.spabg-hotels-page .spah-detail .spah-gallery-count-2 .spah-gallery-item:last-child { grid-column:span 2; }
  body.spabg-hotels-page .spah-return { grid-template-columns:1fr;padding:25px;gap:23px; }
  body.spabg-hotels-page .spah-detail-body { display:flex;flex-direction:column;gap:30px;padding-top:48px; }
  body.spabg-hotels-page .spah-detail-main { width:100%;order:1; }
  body.spabg-hotels-page .spah-detail-aside { width:100%;order:2; }
  body.spabg-hotels-page .spah-sticky-card { position:static; }
  body.spabg-hotels-page .spah-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body.spabg-hotels-page .spah-mobile-cta { position:fixed;z-index:1000;bottom:0;left:0;right:0;display:flex;align-items:center;gap:13px;padding:10px 18px max(10px,env(safe-area-inset-bottom));border-top:1px solid #deeadf;background:#fffffff7;box-shadow:0 -10px 28px #163d2117; }
  body.spabg-hotels-page .spah-mobile-cta span { min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#506955;font-size:13px; }
  body.spabg-hotels-page .spah-mobile-cta strong { display:block;overflow:hidden;text-overflow:ellipsis;color:#2e5540;font-size:15px; }
  body.spabg-hotels-page .spah-mobile-cta a { flex:none;padding:10px 16px;border-radius:99px;background:#277157;color:#fff;font-size:14px;font-weight:600; }
  body.spabg-hotels-page .spah-detail { padding-bottom:115px; }
  body.spabg-hotels-page .spa-site-footer { padding-bottom:75px; }
}
@media(max-width:520px) {
  body.spabg-hotels-page .spah-detail-heading h1 { font-size:40px; }
  body.spabg-hotels-page .spah-heading-copy p { font-size:17px; }
  body.spabg-hotels-page .spah-detail .spah-gallery { grid-template-rows:260px 110px; }
  body.spabg-hotels-page .spah-detail .spah-gallery-count-1 { height:280px; }
  body.spabg-hotels-page .spah-facts { grid-template-columns:1fr; }
  body.spabg-hotels-page .spah-detail-main section.spah-water { padding:27px; }
  body.spabg-hotels-page .spah-detail-main h2 { font-size:35px; }
}
@media(prefers-reduced-motion:reduce){body.spabg-hotels-page .spah-detail .spah-gallery-item img { transition:none; }}

.spah-his-intro,.spah-his-section{margin:0 0 34px}.spah-his-intro{padding:34px;background:#f1f7f5;border-radius:20px}.spah-his-intro h2,.spah-his-section h2{font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.18;margin:8px 0 16px}.spah-his-lead{font-size:1.12rem;line-height:1.65;max-width:72ch}.spah-his-section p{line-height:1.7}.spah-his-jump{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.spah-his-jump a{display:inline-flex;border:1px solid #bcd4cc;border-radius:100px;padding:8px 14px;background:#fff;color:#123d36;font-weight:600;text-decoration:none}.spah-his-jump a:hover{background:#dbebe5}.spah-his-two,.spah-his-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.spah-his-panel,.spah-his-room-grid article{padding:22px;border:1px solid #d7e4df;border-radius:16px;background:#fff}.spah-his-panel>span{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#487d6e}.spah-his-panel h3,.spah-his-room-grid h3{margin:9px 0;font-size:1.17rem}.spah-his-panel p,.spah-his-room-grid p{margin-bottom:0}.spah-his-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.spah-his-small{font-size:.9rem;color:#5d6f69}.spah-his-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.spah-his-photo-grid figure{margin:0;overflow:hidden;border-radius:14px;background:#eef4f2}.spah-his-photo-grid button{padding:0;border:0;background:none;display:block;width:100%;cursor:zoom-in}.spah-his-photo-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .25s}.spah-his-photo-grid button:hover img{transform:scale(1.025)}.spah-his-photo-grid figcaption{padding:10px 13px;font-weight:600;font-size:.92rem}.spah-his-check{display:grid;gap:10px;list-style:none;padding:0}.spah-his-check li{padding:13px 16px 13px 42px;border-radius:11px;background:#f1f7f5;position:relative}.spah-his-check li:before{content:'✓';position:absolute;left:16px;color:#08755a;font-weight:700}.spah-his-note{padding:18px 20px;border-left:4px solid #2d8670;background:#f8f5ed;border-radius:0 10px 10px 0}.spah-his-note p{margin:5px 0 0}.spah-his-citations{border-top:1px solid #d7e4df;padding-top:19px}.spah-his-citations p{font-size:.9rem;color:#4f625d}@media(max-width:700px){.spah-his-intro{padding:23px}.spah-his-two,.spah-his-room-grid{grid-template-columns:1fr}.spah-his-photo-grid{gap:8px}.spah-his-photo-grid figcaption{font-size:.82rem;padding:8px}.spah-his-panel,.spah-his-room-grid article{padding:18px}}

.spah-hu-revision .spah-his-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.spah-hu-revision .spah-hu-photos{margin-top:22px;gap:16px}
.spah-hu-revision .spah-hu-photos figure{border:1px solid #d7e4df;background:#fff}
.spah-hu-revision .spah-hu-photos img{aspect-ratio:3/2}
.spah-hu-revision .spah-hu-photos figcaption{padding:12px 14px;line-height:1.4;font-size:16px}
.spah-hu-revision .spah-hu-photos figure:last-child:nth-child(odd){grid-column:1/-1}
.spah-hu-revision .spah-hu-photos figure:last-child:nth-child(odd) img{aspect-ratio:2/1}
.spah-hu-revision .spah-hu-dining{padding:24px;border-radius:16px;background:#f8f5ed;border:1px solid #e5dfd0}
.spah-hu-revision .spah-hu-dining h3{margin:0 0 10px;font-size:22px}
.spah-hu-revision .spah-hu-dining p{margin:0}
.spah-hu-revision .spah-hu-photo-index{padding:24px;border:1px solid #d7e4df;border-radius:16px;background:#f1f7f5}
.spah-hu-revision a:focus-visible,.spah-hu-revision button:focus-visible{outline:3px solid #08755a;outline-offset:3px}
@media(max-width:700px){.spah-hu-revision .spah-his-room-grid{grid-template-columns:1fr}.spah-hu-revision .spah-hu-photos{grid-template-columns:1fr;gap:16px}.spah-hu-revision .spah-hu-photos figure:last-child:nth-child(odd) img{aspect-ratio:3/2}.spah-hu-revision .spah-hu-dining,.spah-hu-revision .spah-hu-photo-index{padding:20px}}
/* Keep photo cards proportional even when the image includes intrinsic HTML dimensions. */
.spah-hu-revision .spah-hu-photos img{height:auto;aspect-ratio:3/2}
.spah-hu-revision .spah-hu-photos figure:last-child:nth-child(odd) img{aspect-ratio:2/1}
@media(max-width:700px){.spah-hu-revision .spah-hu-photos figure:last-child:nth-child(odd) img{aspect-ratio:3/2}}
