/* Angel's stay collection: warm surfaces, generous photography, navy details. */
#vehicle-fleet .fleet-tabs { flex-wrap:wrap; gap:12px; padding:16px; background:#f5efe4; border:1px solid #e4d3b7; border-radius:22px; box-shadow:0 8px 25px #0f27440a; }
#vehicle-fleet .fleet-tab { flex:1 1 170px; min-height:64px; border:2px solid #d8c5a6; border-radius:14px; font-size:1rem; }
#vehicle-fleet .fleet-tab.active { background:#102b49; border-color:#102b49; box-shadow:0 5px 14px #102b4930; }
#vehicle-fleet .fleet-tab:focus-visible { outline:3px solid #b57521; outline-offset:3px; }
#vehicle-fleet #packages-tab:not(.active) { background:#fff2d9; border-color:#bd8437; color:#61400f; }
.fleet-tab-note { display:block; margin-top:3px; font-size:.68rem; font-weight:500; }
.mixed-intro { text-align:center; color:#56616c; margin-bottom:24px; }
.mixed-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; align-items:stretch; }
.mixed-grid > * { min-width:0; }
.mixed-grid .stay-gallery { aspect-ratio:1.45; }
@media(max-width:991px) { .mixed-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .mixed-grid { grid-template-columns:1fr; } #vehicle-fleet .fleet-tabs { padding:10px; gap:8px; } #vehicle-fleet .fleet-tab { flex-basis:calc(50% - 8px); padding:10px 8px; font-size:.85rem; } }
.stay-eyebrow { display:block; color:#a96112; font-size:.76rem; font-weight:750; letter-spacing:.16em; text-transform:uppercase; margin-bottom:.8rem; }
.stay-heading { max-width:720px; margin-bottom:2rem; }
.stay-heading h2 { font-size:clamp(1.8rem,3vw,2.6rem); letter-spacing:-.035em; }
.stay-heading p { margin-top:.8rem; color:var(--text-muted); }
.stay-collection { background:#f8f5ef; }
.stay-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.6rem; }
.stay-card { min-width:0; display:flex; flex-direction:column; background:white; border:1px solid #e7e2d9; border-radius:18px; overflow:hidden; box-shadow:0 6px 22px #0f274407; transition:transform .25s,box-shadow .25s; }
.stay-card:hover { transform:translateY(-4px); box-shadow:0 16px 35px #0f274414; }
.stay-gallery { position:relative; isolation:isolate; aspect-ratio:1.45; overflow:hidden; background:#e4e3df; }
.stay-slide { position:absolute; inset:0; opacity:0; transition:opacity .7s ease; }
.stay-slide.is-active { opacity:1; z-index:1; }
.stay-slide img { width:100%; height:100%; object-fit:cover; }
.stay-slide-portrait img { object-fit:contain; background:#e9e5df; }
.stay-card-location { color:#986019; font-size:.75rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.45rem; }
.stay-details { display:inline-block; color:var(--primary); font-weight:700; margin-bottom:.8rem; }
.stay-details:focus-visible { outline:3px solid #bd8437; outline-offset:3px; }
.stay-space-card .stay-card-content { padding:1.2rem; }
.stay-gallery-controls [data-pause] { margin-left:auto; }
.stay-gallery::after { content:""; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#071c4370); z-index:2; pointer-events:none; }
.stay-gallery-label { position:absolute; z-index:3; top:16px; left:16px; color:#fff; background:#0f2744eb; border-radius:5px; font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; padding:6px 10px; }
.stay-gallery-controls { position:absolute; z-index:4; bottom:12px; left:12px; right:12px; display:flex; align-items:center; gap:5px; color:white; }
.stay-gallery-controls button { min-width:36px; min-height:36px; padding:4px 10px; border:1px solid #ffffff75; border-radius:30px; color:white; background:#0f2744d9; cursor:pointer; font-size:.78rem; }
.stay-gallery-controls button:hover { background:#0f2744; }
.stay-gallery-controls button:focus-visible { outline:3px solid #ffca78; outline-offset:2px; }
.stay-photo-count { font-size:.74rem; padding:0 5px; font-variant-numeric:tabular-nums; }
.stay-card .stay-gallery[role="link"] { cursor:pointer; }
.stay-card .stay-gallery[role="link"]:focus-visible { outline:3px solid #ffca78; outline-offset:-3px; }
.stay-card-content { padding:1.45rem; display:flex; flex-direction:column; flex:1; }
.stay-card h3 { font-size:1.3rem; margin:0 0 .65rem; letter-spacing:-.025em; }
.stay-card-content > p { color:#5a6570; font-size:.92rem; margin-bottom:1rem; }
.stay-features { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 1.25rem; }
.stay-features li { padding:5px 9px; border-radius:5px; color:#435568; background:#f2f5f6; font-size:.72rem; }
.stay-card-footer { margin-top:auto; border-top:1px solid #ece9e3; padding-top:1rem; }
.stay-quote { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#a45b07; font-weight:750; font-size:.94rem; margin-bottom:1rem; }
.stay-quote span { color:#75808c; font-size:.69rem; font-weight:400; }
.stay-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.stay-actions .btn { padding:.7rem .5rem; font-size:.78rem; }
.stay-note { color:#68717a; font-size:.81rem; margin-top:1.5rem; max-width:800px; }
.package-grid { align-items:stretch; }
.package-card { display:flex; flex-direction:column; }
.package-card .card-main-link { flex:1; }
.package-card .card-body { position:relative; }
.package-card .card-badge { top:1rem; right:1rem; left:auto; }
.package-itinerary { display:grid; gap:.35rem; margin-top:1rem; padding-top:1rem; border-top:1px solid #e7e2d9; color:#5a6570; font-size:.8rem; }
.package-itinerary li::before { content:"✓"; color:#a96112; font-weight:700; margin-right:.45rem; }
.package-card .card-actions { padding:0 1.5rem 1.5rem; }
.stay-catalog-extra .stay-gallery { cursor:pointer; }
.stay-catalog-extra .stay-card-content { min-height:220px; }
.stay-intro { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.stay-intro .stay-gallery { border-radius:20px; aspect-ratio:1.15; }
.stay-intro h2 { font-size:clamp(1.8rem,3vw,2.6rem); letter-spacing:-.03em; }
.stay-intro p { color:#56616c; margin:1rem 0; }
.stay-page .page-hero { background:linear-gradient(90deg,#071c43e8,#071c4360),var(--stay-hero-image, url('../images/stays/collection-b/photo-17.jpg')) center 53% / cover; padding:5.5rem 0; }
.stay-page .page-hero h1 { max-width:760px; font-size:clamp(2.2rem,4.5vw,3.8rem); line-height:1.12; letter-spacing:-.04em; }
.stay-page .page-hero p { max-width:620px; color:#edf1f5; margin:1.25rem 0 1.7rem; }
.stay-page .page-hero .stay-eyebrow { color:#f8c987; }
.stay-promises { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid #e5e1d9; background:#fff; }
.stay-promises div { padding:1.5rem 2rem; border-right:1px solid #e5e1d9; }
.stay-promises strong { display:block; color:var(--primary); font-size:.95rem; }
.stay-promises span { color:#697582; font-size:.81rem; }
.stay-inclusions { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.stay-inclusion { padding:1.8rem; border:1px solid #e7e2d9; border-radius:16px; background:#fff; }
.stay-inclusion > span { color:#b07027; font-size:.78rem; letter-spacing:.12em; }
.stay-inclusion h3 { margin:.8rem 0; }
.stay-inclusion p { color:#5a6570; font-size:.93rem; }
.stay-route { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; counter-reset:step; }
.stay-route article { border-top:2px solid #c48b44; padding-top:1.5rem; }
.stay-route h3 { margin-bottom:.7rem; }
.stay-route p { color:#5a6570; }
.stay-banner { border-radius:22px; padding:3.5rem; background:linear-gradient(90deg,#071c43f0,#071c4385),var(--stay-banner-image,url('../images/stays/collection-a/photo-34.jpg')) center / cover; color:#fff; }
.stay-banner h2 { color:#fff; max-width:600px; font-size:clamp(1.8rem,3vw,2.6rem); }
.stay-banner p { color:#e5eaf0; margin:1rem 0 1.6rem; max-width:620px; }
.stay-location-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:1.5rem; }
.stay-location-links a { border:1px solid #d4dbe1; padding:9px 16px; border-radius:30px; font-size:.87rem; background:#fff; }
.stay-location-links a:hover { border-color:#a96112; color:#a96112; }
.stay-availability-strip { padding:3.25rem 0; background:#f8f5ef; border-top:1px solid #e7e2d9; text-align:center; }
.stay-availability-strip h2 { max-width:760px; margin:.5rem auto .75rem; font-size:clamp(1.5rem,3vw,2.3rem); color:var(--primary); }
.stay-availability-strip p { max-width:760px; margin:0 auto; color:#56616c; }
.stay-area-list { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:1.4rem; }
.stay-area-list span { padding:8px 14px; border:1px solid #d9c9ad; border-radius:999px; background:#fff; color:#76501d; font-size:.86rem; font-weight:700; }
.room-detail-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:2rem 0; }
.room-detail-gallery img { display:block; width:100%; height:260px; object-fit:cover; border-radius:16px; box-shadow:0 8px 24px #0f274418; }
.room-detail-card { max-width:880px; margin:0 auto; padding:clamp(1.3rem,4vw,3rem); border:1px solid #e7e2d9; border-radius:22px; background:#fff; box-shadow:0 12px 35px #0f27440c; }
.room-detail-card h2 { color:var(--primary); font-size:clamp(1.6rem,3vw,2.4rem); }
.room-detail-card p { color:#56616c; }
.center-action { margin-top:2rem; text-align:center; }
.related-room-image { display:block; height:230px; overflow:hidden; }
.related-room-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.related-room-image:hover img { transform:scale(1.05); }
.room-more-rooms { background:#f8f5ef; }
.room-guide { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; max-width:1050px; }
.room-guide h2 { font-size:clamp(1.8rem,3vw,2.6rem); letter-spacing:-.035em; }
.room-guide p { margin:1rem 0 1.5rem; color:#56616c; max-width:520px; }
.room-guide img { width:100%; min-height:330px; height:100%; border-radius:20px; object-fit:cover; box-shadow:0 12px 35px #0f274418; }
.travel-guide { background:#fff; }
.guide-card > img { width:100%; height:220px; object-fit:cover; display:block; }
.guide-card .stay-details { margin-top:auto; margin-bottom:0; }
.guest-stories { background:#102b49; }
.guest-stories .stay-eyebrow { color:#f8c987; }
.guest-stories .stay-heading h2 { color:#fff; }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.testimonial-grid figure { margin:0; padding:1.75rem; background:#fff; border-radius:16px; box-shadow:0 10px 25px #00000020; }
.testimonial-grid blockquote { margin:0 0 1.5rem; color:#304255; font-size:1rem; line-height:1.65; }
.testimonial-grid figcaption { display:flex; align-items:center; gap:.8rem; color:#697582; font-size:.8rem; }
.testimonial-grid figcaption img { width:40px; height:40px; border-radius:50%; background:#f4e9d8; }
.testimonial-grid figcaption strong { display:block; color:#102b49; font-size:.9rem; }
.room-faq { background:#f8f5ef; }
.room-faq .faq-list { max-width:880px; }
.gallery-intro .container { display:flex; justify-content:space-between; gap:3rem; align-items:end; }
.gallery-intro h2 { font-size:clamp(1.8rem,3vw,2.7rem); letter-spacing:-.04em; }
.gallery-intro p { max-width:510px; color:#56616c; }
.gallery-catalog { background:#f8f5ef; }
.gallery-toolbar { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.gallery-toolbar h2 { font-size:clamp(1.8rem,3vw,2.7rem); letter-spacing:-.04em; }
.gallery-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.55rem; }
.gallery-filters button { padding:.65rem .9rem; border:1px solid #d9c9ad; border-radius:999px; background:#fff; color:#435568; font:inherit; font-size:.82rem; cursor:pointer; transition:.2s ease; }
.gallery-filters button:hover,.gallery-filters button.active { background:#102b49; border-color:#102b49; color:#fff; }
.photo-catalog { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-flow:dense; gap:1rem; }
.photo-catalog-card { position:relative; min-height:220px; overflow:hidden; padding:0; border:0; border-radius:16px; background:#102b49; color:#fff; text-align:left; cursor:zoom-in; box-shadow:0 7px 20px #0f274412; }
.photo-catalog-card:nth-child(7n+1),.photo-catalog-card:nth-child(11n+3) { grid-column:span 2; min-height:300px; }
.photo-catalog-card img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; transition:transform .5s ease,filter .35s ease; }
.photo-catalog-card::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#071c43e8); }
.photo-catalog-card span { position:absolute; z-index:1; bottom:0; left:0; right:0; padding:1.15rem; font-weight:700; font-size:.9rem; transform:translateY(7px); transition:transform .3s ease; }
.photo-catalog-card small { display:block; margin-bottom:.32rem; color:#ffcf8f; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }
.photo-catalog-card:hover img,.photo-catalog-card:focus-visible img { transform:scale(1.09); filter:brightness(.78); }
.photo-catalog-card:hover span,.photo-catalog-card:focus-visible span { transform:translateY(0); }
.photo-catalog-card:focus-visible { outline:3px solid #e49a3a; outline-offset:3px; }
.gallery-lightbox { position:fixed; z-index:9999; inset:0; display:none; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; padding:2rem; background:#06152df2; }
.gallery-lightbox.is-open { display:grid; }
.gallery-lightbox figure { margin:0; min-width:0; text-align:center; }
.gallery-lightbox figure img { max-width:100%; max-height:78vh; border-radius:12px; box-shadow:0 20px 60px #000; }
.gallery-lightbox figcaption { margin-top:.8rem; color:#fff; font-weight:700; }
.gallery-close,.gallery-nav { border:0; color:#fff; background:#17395fd9; cursor:pointer; }
.gallery-close { position:absolute; top:1rem; right:1.25rem; width:42px; height:42px; border-radius:50%; font-size:2rem; line-height:1; }
.gallery-nav { width:46px; height:46px; border-radius:50%; font-size:1.3rem; }
.gallery-close:hover,.gallery-nav:hover { background:#b96c13; }
.gallery-modal-open { overflow:hidden; }
@media(max-width:1000px) { .stay-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .stay-intro { gap:2rem; } }
@media(max-width:700px) {
  .stay-grid,.stay-intro,.stay-inclusions,.stay-route { grid-template-columns:1fr; }
  .stay-gallery { aspect-ratio:1.4; }
  .stay-intro .stay-gallery { aspect-ratio:1.35; }
  .stay-page .page-hero { padding:3.5rem 0; }
  .stay-promises { grid-template-columns:1fr; }
  .stay-promises div { padding:1rem 1.3rem; border-right:0; border-bottom:1px solid #eee; }
  .stay-banner { padding:2rem 1.4rem; }
  .stay-availability-strip { padding:2.35rem 1rem; }
  .room-detail-gallery { grid-template-columns:1fr; }
  .room-detail-gallery img { height:230px; }
  .room-guide,.testimonial-grid { grid-template-columns:1fr; }
  .room-guide { gap:1.8rem; }
  .room-guide img { min-height:250px; }
  .related-room-image { height:220px; }
  .gallery-intro .container,.gallery-toolbar { display:block; }
  .gallery-intro p { margin-top:1rem; }
  .gallery-filters { justify-content:flex-start; margin-top:1rem; }
  .photo-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .photo-catalog-card { min-height:180px; }
  .photo-catalog-card:nth-child(7n+1),.photo-catalog-card:nth-child(11n+3) { min-height:230px; }
  .gallery-lightbox { padding:1rem .5rem; gap:.4rem; }
  .gallery-nav { width:38px; height:38px; }
  .hero { background-size:cover; background-position:65% center; padding-bottom:4rem; }
}
@media(prefers-reduced-motion:reduce) { .stay-slide,.stay-card { transition:none; } }
