@import "tailwindcss";

:root {
  --blue: #014aab;
  --deep-blue: #033b90;
  --navy: #0c2f5f;
  --ice: #ecfbfa;
  --sky: #a1c7da;
  --gold: #a48b5c;
  --warm: #f5f2ec;
  --ink: #142033;
  --white: #fff;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--white); color: var(--ink); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #f0bd58; outline-offset: 3px; }

.site-header {
  height: 88px; padding: 0 clamp(22px, 4.5vw, 72px); display: grid; grid-template-columns: minmax(205px,1fr) auto minmax(125px,1fr);
  align-items: center; gap: 24px; position: absolute; inset: 0 0 auto; z-index: 20; color: white;
  border-bottom: 1px solid rgba(255,255,255,.2); background: linear-gradient(180deg,rgba(4,28,60,.46),transparent);
}
.brand { display: inline-flex; align-items: center; gap: 12px; width: max-content; }
.brand-logo { width: 50px; height: 50px; display: block; object-fit: cover; border: 1px solid rgba(255,255,255,.32); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.brand strong { display: block; font: 600 18px var(--serif); letter-spacing: .025em; }
.brand small { display: block; margin-top: 3px; font-size: 8px; letter-spacing: .21em; text-transform: uppercase; opacity: .78; }
.nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); font-size: 12px; font-weight: 700; }
.nav a { position: relative; padding: 31px 0 27px; }
.nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 22px; height: 2px; background: var(--gold); transition: right .2s ease; }
.nav a:hover::after { right: 0; }
.header-book { justify-self: end; padding: 12px 22px; border: 1px solid rgba(255,255,255,.7); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; transition: .2s ease; }
.header-book:hover { background: white; color: var(--navy); }
.menu-button { display: none; border: 0; background: none; color: white; }

.hero { min-height: 790px; position: relative; display: flex; align-items: center; padding: 128px clamp(22px, 7vw, 112px) 190px; color: white; background: #0c2f5f url('/images/rarinco-real/room-matrimonial.webp') center 48% / cover no-repeat; overflow: visible; }
.hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(95deg, rgba(4,26,57,.92) 2%, rgba(5,39,79,.72) 42%, rgba(5,38,76,.14) 78%), linear-gradient(0deg,rgba(3,25,54,.46),transparent 48%); }
.hero::after { content: ""; position: absolute; right: 6vw; top: 20%; width: 28vw; height: 28vw; border: 1px solid rgba(255,255,255,.14); transform: rotate(8deg); pointer-events: none; }
.hero-shade { position: absolute; inset: auto 0 0; height: 34%; background: linear-gradient(transparent, rgba(4,23,48,.45)); }
.hero-content { position: relative; z-index: 2; width: min(660px, 66vw); }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; color: #d7c296; font-size: 11px; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow span { width: 34px; height: 1px; background: currentColor; }
h1, h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.025em; }
h1 { max-width: 650px; margin: 0; font-size: clamp(48px, 5.45vw, 76px); line-height: .99; text-wrap: balance; }
.hero-copy { max-width: 575px; margin: 24px 0 22px; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.65; color: rgba(255,255,255,.86); }
.text-link { display: inline-flex; align-items: center; gap: 13px; font-size: 13px; font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 6px; }
.text-link span { color: #d7c296; font-size: 18px; transition: transform .2s ease; }
.text-link:hover span { transform: translateX(5px); }

.availability { position: absolute; z-index: 5; bottom: -62px; left: 50%; width: min(1180px, calc(100% - 64px)); transform: translateX(-50%); min-height: 124px; background: white; color: var(--ink); box-shadow: 0 24px 70px rgba(4,39,80,.24); display: grid; grid-template-columns: 1.45fr repeat(5, minmax(94px, 1fr)) 1.35fr; align-items: stretch; border-radius: 6px; overflow: hidden; }
.availability > * { border-right: 1px solid #dbe4ea; }
.availability > *:last-child { border: 0; }
.form-title { padding: 27px 25px; display: flex; flex-direction: column; justify-content: center; background: var(--navy); color: white; }
.form-title span { color: #d7c296; font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.form-title strong { margin-top: 7px; font: 500 18px/1.2 var(--serif); }
.availability label { padding: 28px 15px; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #607086; }
.availability input, .availability select { width: 100%; margin-top: 10px; padding: 0; border: 0; background: transparent; color: var(--ink); font-size: 13px; font-weight: 700; outline: 0; text-transform: none; }
.availability button { margin: 19px; border: 0; border-radius: 4px; background: var(--blue); color: white; padding: 15px; font-size: 11px; font-weight: 800; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: .2s ease; }
.availability button:hover { background: var(--deep-blue); transform: translateY(-2px); }
.availability button:disabled { opacity: .65; cursor: wait; transform: none; }

.benefit-strip { padding: 112px max(24px, calc((100% - 1180px)/2)) 42px; display: grid; grid-template-columns: repeat(5, 1fr); background: var(--warm); }
.benefit-strip div { min-height: 58px; display: flex; gap: 13px; align-items: center; justify-content: center; border-right: 1px solid #dad3c7; padding: 8px 15px; }
.benefit-strip div:last-child { border: 0; }
.benefit-strip span { color: var(--gold); font: italic 18px var(--serif); }
.benefit-strip strong { font-size: 12px; line-height: 1.35; }
.intro-section { max-width: 1180px; margin: 0 auto; padding: 94px 32px 110px; display: grid; grid-template-columns: 1fr .85fr; gap: 10vw; align-items: end; }
.eyebrow.dark { color: var(--blue); }
.intro-section h2 { max-width: 550px; margin: 0; color: var(--navy); font-size: clamp(38px, 4vw, 58px); line-height: 1.03; }
.intro-section > p { margin: 0; color: #5a687a; font-size: 16px; line-height: 1.85; }
.mobile-book { display: none; }

/* Compact, reservation-first visual system */
.site-header { height: 80px; padding-inline: clamp(22px,4vw,64px); }
.brand-logo { width: 46px; height: 46px; }
.nav { gap: clamp(12px,1.55vw,22px); font-size: 11px; }
.nav a { padding-block: 27px 25px; }
.nav a::after { bottom: 19px; }
.header-book { padding: 13px 24px; border-color: var(--gold); border-radius: 4px; background: var(--gold); color: white; box-shadow: 0 8px 24px rgba(0,0,0,.16); }
.header-book:hover { border-color: white; background: white; color: var(--navy); transform: translateY(-1px); }
.hero { min-height: 680px; padding: 108px clamp(22px,7vw,112px) 158px; }
h1 { max-width: 610px; font-size: clamp(38px,4vw,56px); line-height: 1.02; }
.hero-copy { max-width: 550px; margin: 20px 0; font-size: clamp(15px,1.25vw,17px); }
.hero-actions { display: flex; align-items: center; gap: 22px; }
.hero-actions .button { min-height: 44px; }
.booking-assurance { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 22px; color: rgba(255,255,255,.78); font-size: 10px; font-weight: 700; letter-spacing: .035em; }
.booking-assurance span::before { content: "✓"; margin-right: 6px; color: #e0c692; }
.availability { bottom: -54px; min-height: 108px; }
.form-title { padding: 21px 22px; }
.form-title strong { font-size: 16px; }
.availability label { padding: 23px 14px; }
.availability button { margin: 15px; padding: 12px; }
.benefit-strip { padding-top: 92px; padding-bottom: 32px; }
.intro-section { padding-top: 70px; padding-bottom: 78px; gap: 8vw; }
.intro-section h2 { font-size: clamp(30px,3vw,42px); }
.intro-section > p { font-size: 15px; line-height: 1.72; }

@media (max-width: 1180px) {
  .site-header { grid-template-columns: 1fr auto; }
  .nav { display: none; }
  .header-book { display: none; }
  .menu-button { display: grid; gap: 7px; justify-self: end; width: 42px; height: 42px; place-content: center; cursor: pointer; }
  .menu-button span { display: block; width: 22px; height: 2px; background: currentColor; }
  .nav.is-open { display: grid; position: absolute; top: 88px; inset-inline: 0; padding: 18px 28px 26px; background: rgba(7,38,77,.98); gap: 0; box-shadow: 0 24px 50px rgba(0,0,0,.22); }
  .nav.is-open a { padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .availability { grid-template-columns: 1.2fr repeat(3, 1fr); }
  .availability label:nth-of-type(4), .availability label:nth-of-type(5) { display: none; }
  .benefit-strip { grid-template-columns: repeat(3, 1fr); }
  .benefit-strip div:nth-child(3) { border-right: 0; }
  .benefit-strip div:nth-child(n+4) { border-top: 1px solid #dad3c7; }
}

@media (max-width: 700px) {
  .site-header { height: 72px; padding: 0 18px; grid-template-columns:1fr auto; }
  .brand-logo { width: 42px; height: 42px; }
  .brand strong { font-size: 16px; }
  .nav.is-open { top: 72px; }
  .hero { min-height: 0; height: auto; padding: 112px 18px 28px; align-items: flex-start; flex-direction:column; }
  .hero-content { width: 100%; }
  h1 { max-width: 360px; font-size: clamp(34px, 9vw, 42px); line-height: 1.04; }
  .hero-copy { font-size: 15px; line-height: 1.6; }
  .availability { position:relative; inset:auto; width:100%; min-height:0; margin-top:34px; transform:none; grid-template-columns:1fr 1fr; border-radius:5px; }
  .form-title { grid-column: 1 / -1; padding: 17px 18px; }
  .form-title strong { font-size: 16px; }
  .availability label { padding: 15px 14px; }
  .availability label:nth-of-type(n+3) { display: none; }
  .availability button { grid-column: 1 / -1; margin: 10px; min-height: 48px; }
  .benefit-strip { padding: 42px 14px 35px; grid-template-columns: 1fr 1fr; }
  .benefit-strip div { justify-content: flex-start; border-bottom: 1px solid #dad3c7; border-right: 1px solid #dad3c7 !important; padding: 15px 10px; }
  .benefit-strip div:nth-child(even) { border-right: 0 !important; }
  .benefit-strip div:last-child { border-bottom: 0; }
  .intro-section { padding: 52px 22px 64px; grid-template-columns: 1fr; gap: 24px; }
  .intro-section h2 { font-size: 32px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 15px; }
  .booking-assurance { display: grid; gap: 7px; margin-top: 18px; }
  .mobile-book { display: block; position: fixed; right: 16px; bottom: 16px; z-index: 50; padding: 13px 21px; background: var(--blue); color: white; border-radius: 4px; box-shadow: 0 8px 24px rgba(3,59,144,.32); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Shared public pages */
.section { max-width: 1180px; margin: 0 auto; padding: 72px 32px; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 32px; }
.section h2, .section-head h2, .split-story h2, .corporate-cta h2, .final-cta h2 { margin: 0; color: var(--navy); font: 500 clamp(29px,3.2vw,42px)/1.06 var(--serif); letter-spacing: -.025em; }
.outline-link { display: inline-flex; width: max-content; padding: 11px 0 6px; border-bottom: 1px solid var(--gold); color: var(--navy); font-size: 12px; font-weight: 800; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 13px 23px; border: 1px solid transparent; border-radius: 4px; font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); }
.button.blue { background: var(--blue); color: white; }
.button.blue:hover { background: var(--deep-blue); }
.button.gold { background: var(--gold); color: white; }
.button.light { background: white; color: var(--navy); }
.button.outline { color: var(--navy); border-color: #a8b6c5; }
.button.full { width: 100%; }

.rooms-section { padding-top: 62px; }
.room-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.room-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.room-card { min-height: 430px; background: white; border: 1px solid #dce4e9; border-radius: 8px; overflow: hidden; box-shadow: 0 14px 38px rgba(12,47,95,.08); transition:transform .25s ease,box-shadow .25s ease; }
.room-card:hover { transform:translateY(-5px); box-shadow:0 24px 55px rgba(12,47,95,.13); }
.room-image { position: relative; display: block; height: 225px; overflow: hidden; background: #d7e4e9; }
.room-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.room-image:hover img { transform: scale(1.035); }
.room-image > span, .story-image > span { position: absolute; left: 12px; bottom: 12px; padding: 6px 8px; background: rgba(4,31,66,.78); color: white; font-size: 8px; letter-spacing: .09em; text-transform: uppercase; }
.room-card-body { padding: 21px; }
.room-meta { display: flex; flex-wrap: wrap; gap: 7px 16px; color: var(--blue); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.room-card h3 { margin: 11px 0 10px; color: var(--navy); font: 500 27px var(--serif); }
.room-card p { min-height: 49px; margin: 0; color: #657386; font-size: 13px; line-height: 1.6; }
.room-price { display: flex; justify-content: space-between; align-items: end; gap: 15px; margin-top: 20px; padding-top: 18px; border-top: 1px solid #e3e8ec; }
.room-price > span { color: #687587; font-size: 10px; }
.room-price strong { display: block; margin-top: 4px; color: var(--navy); font: 600 18px var(--serif); }
.room-price a { color: var(--blue); font-size: 11px; font-weight: 800; white-space: nowrap; }
.skeleton { min-height: 455px; border: 0; background: linear-gradient(90deg,#edf1f3,#f8fafb,#edf1f3); background-size: 200% 100%; animation: skeleton 1.5s infinite; }
@keyframes skeleton { to { background-position: -200% 0; } }

.split-story { max-width: 1320px; margin: 40px auto 0; display: grid; grid-template-columns: 1.08fr .92fr; background: var(--navy); color: white; }
.split-story.reverse { grid-template-columns: .92fr 1.08fr; margin-bottom: 100px; }
.split-story.reverse .story-image { order: 2; }
.story-image { min-height: 430px; position: relative; }
.story-image img { width: 100%; height: 100%; object-fit: cover; }
.split-story > div:not(.story-image) { align-self: center; padding: clamp(45px, 7vw, 90px); }
.split-story h2, .split-story .eyebrow { color: white; }
.split-story p:not(.eyebrow) { margin: 22px 0; color: #d9e3ed; line-height: 1.8; }
.split-story ul, .request-layout ul { margin: 0 0 30px; padding: 0; list-style: none; }
.split-story li, .request-layout li { position: relative; padding: 9px 0 9px 24px; font-size: 13px; }
.split-story li::before, .request-layout li::before { content: ""; position: absolute; left: 0; top: 16px; width: 10px; height: 1px; background: var(--gold); }

.services-preview { padding-top: 78px; padding-bottom: 78px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d8e0e6; border-left: 1px solid #d8e0e6; }
.service-grid article { min-height: 205px; padding: 28px; border-right: 1px solid #d8e0e6; border-bottom: 1px solid #d8e0e6; }
.service-grid article > span { color: var(--gold); font: italic 17px var(--serif); }
.service-grid h3, .service-grid h2 { margin: 28px 0 9px; color: var(--navy); font: 500 23px var(--serif); }
.service-grid p { margin: 0; color: #637186; font-size: 13px; line-height: 1.65; }
.full-grid { margin-top: 15px; margin-bottom: 40px; }

.corporate-cta { min-height: 560px; display: grid; place-items: center; padding: 90px 32px; color: white; text-align: center; background: linear-gradient(rgba(6,36,73,.83),rgba(6,36,73,.9)), url('/images/rarinco-real/room-triple.webp') center 56% / cover fixed; }
.corporate-cta > div { max-width: 760px; }
.corporate-cta .eyebrow { justify-content: center; }
.corporate-cta h2 { color: white; font-size: clamp(32px,3.6vw,46px); }
.corporate-cta p { max-width: 640px; margin: 20px auto 29px; color: #dde7ef; line-height: 1.75; }
.event-feature { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: center; }
.event-feature > div > p:not(.eyebrow) { margin: 24px 0; color: #657386; line-height: 1.8; }
.event-feature img { width: 100%; height: 470px; object-fit: cover; }
.gallery-strip { display: grid; grid-template-columns: 1.1fr .8fr 1.1fr .55fr; min-height: 300px; background: var(--navy); }
.gallery-strip img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; filter: saturate(.92) contrast(1.02); }
.gallery-strip > a { display: grid; place-content: center; gap: 8px; padding: 24px; color: white; text-align: center; font: 500 24px var(--serif); }
.gallery-strip > a span { color: var(--gold); }

.location-section { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: center; }
.location-section p:not(.eyebrow) { color: #657386; line-height: 1.8; }
.map-card { min-height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; padding: 35px; background: #dce9e9; color: var(--navy); text-align: center; overflow: hidden; }
.map-card::before, .map-card::after { content:""; position:absolute; border:1px solid rgba(12,47,95,.15); width:480px; height:130px; transform:rotate(-15deg); }
.map-card::after { transform:rotate(32deg); }
.map-card span, .map-card strong, .map-card small { position:relative; z-index:1; }
.map-card span { color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.map-card strong { margin: 9px 0; font: 500 38px var(--serif); }
.map-card small { color: #657386; }

.faq-section { display: grid; grid-template-columns: .72fr 1.28fr; gap: 9vw; }
.faq-section > div:first-child > p:not(.eyebrow) { color: #657386; line-height: 1.7; }
.faq-section details { border-top: 1px solid #d9e0e5; }
.faq-section details:last-child { border-bottom: 1px solid #d9e0e5; }
.faq-section summary { display: flex; justify-content: space-between; gap: 20px; padding: 24px 2px; color: var(--navy); font: 600 19px var(--serif); cursor: pointer; list-style: none; }
.faq-section summary::-webkit-details-marker { display: none; }
.faq-section summary span { color: var(--gold); font: 300 26px sans-serif; }
.faq-section details[open] summary span { transform: rotate(45deg); }
.faq-section details p { margin: -7px 35px 24px 0; color: #657386; font-size: 14px; line-height: 1.75; }
.final-cta { padding: 100px 32px; color: white; text-align: center; background: var(--blue); }
.final-cta .eyebrow { justify-content: center; color: #e0c692; }
.final-cta h2 { color: white; font-size: clamp(42px,5vw,64px); }
.final-cta p { margin: 18px auto 26px; color: #dceaff; }

.footer { background: #08274e; color: white; }
.footer-main { max-width: 1180px; margin: auto; padding: 75px 32px 60px; display: grid; grid-template-columns: 1.7fr repeat(3,1fr); gap: 55px; }
.footer .brand { margin-bottom: 20px; }
.footer-brand > p, .footer-main > div > p { color: #aabbd0; font-size: 12px; line-height: 1.75; }
.footer-main h3 { margin: 7px 0 21px; color: #d9c08d; font: 500 18px var(--serif); }
.footer-main > div:not(.footer-brand) a { display: block; margin: 11px 0; color: #d6e0eb; font-size: 12px; }
.footer-bottom { max-width: 1180px; margin: auto; padding: 20px 32px 25px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.13); color: #8298b2; font-size: 10px; }
.footer-bottom span:last-child { display: flex; gap: 20px; }

/* Internal pages */
.site-header.inner-header { position: relative; background: var(--navy); }
.page-hero { min-height: 310px; display: flex; align-items: center; padding: 60px clamp(22px,7vw,112px); color: white; background: linear-gradient(100deg,rgba(5,37,77,.94),rgba(3,59,144,.64)), url('/images/rarinco-real/room-triple.webp') center 46% / cover; }
.page-hero > div { max-width: 860px; }
.page-hero h1 { max-width: 760px; font-size: clamp(36px,4.3vw,52px); line-height: 1.04; }
.page-hero > div > p:last-child:not(.eyebrow) { max-width: 680px; margin: 20px 0 0; color: #e0e8f1; line-height: 1.7; }
.catalog-layout { max-width: 1280px; display: grid; grid-template-columns: 260px 1fr; gap: 45px; align-items: start; }
.filters { position: sticky; top: 20px; padding: 25px; background: var(--warm); border-top: 3px solid var(--gold); }
.filters h2 { margin: 0 0 25px; font-size: 25px; }
.filters label, .booking-form label, .lookup-form label { display: block; margin: 17px 0; color: #46586e; font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.filters label strong { float: right; color: var(--navy); }
.filters select, .filters input:not([type=range]), .booking-form input:not([type=radio]):not([type=checkbox]), .booking-form select, .booking-form textarea, .lookup-form input { width: 100%; margin-top: 8px; border: 1px solid #cfd9e0; border-radius: 4px; background: white; padding: 12px; color: var(--ink); outline: none; }
.filters input[type=range] { width: 100%; margin-top: 17px; accent-color: var(--blue); }
.filters > p { color: #68788b; font-size: 11px; line-height: 1.7; }
.result-count { margin-bottom: 20px; color: #68788b; font-size: 12px; }
.room-detail { display: grid; grid-template-columns: 1.35fr .65fr; gap: 60px; align-items: start; }
.detail-gallery { position: relative; height: 620px; }
.detail-gallery img { width: 100%; height: 100%; object-fit: cover; }
.room-detail aside > p:not(.eyebrow) { color: #617185; line-height: 1.8; }
.room-detail dl, .booking-summary dl, .reservation-card dl { margin: 25px 0; border-top: 1px solid #dde4e9; }
.room-detail dl div, .booking-summary dl div, .reservation-card dl div { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-bottom: 1px solid #dde4e9; font-size: 12px; }
dt { color: #718096; } dd { margin: 0; color: var(--navy); font-weight: 700; text-align: right; }
.room-detail aside h3 { margin-top: 25px; font: 500 22px var(--serif); }
.amenity-list { columns: 2; padding: 0; list-style: none; color: #53657b; font-size: 12px; }
.amenity-list li { margin: 10px 0; }
.amenity-list li::before { content: "✓"; margin-right: 8px; color: var(--blue); }

.availability-page { max-width: 1280px; }
.availability.search-panel { position: static; width: 100%; min-height: 110px; transform: none; grid-template-columns: repeat(5,1fr) 1.4fr; box-shadow: 0 12px 35px rgba(12,47,95,.12); }
.availability-summary { display: flex; align-items: center; gap: 24px; margin: 48px 0 24px; padding: 22px 25px; background: var(--warm); }
.availability-summary > div { display: flex; align-items: baseline; gap: 7px; color: var(--navy); }
.availability-summary strong { font: 500 36px var(--serif); }
.availability-summary span { font-size: 12px; }
.availability-summary p { margin: 0; color: #5b6d82; font-size: 13px; }
.status { margin: 25px 0; padding: 15px 18px; border-left: 3px solid var(--blue); background: #eef7fb; color: var(--navy); font-size: 13px; }
.status.error { border-color: #b44343; background: #fff3f1; color: #832f2f; }
.status.success { border-color: #2a865d; background: #edfaf4; color: #176442; }
.empty-state { padding: 80px 30px; text-align: center; background: var(--warm); }
.empty-state p { color: #657386; }

.booking-layout, .request-layout, .contact-layout, .manage-layout { display: grid; grid-template-columns: 1.15fr .65fr; gap: 60px; align-items: start; }
.booking-form { padding: 32px; border: 1px solid #d8e0e6; background: white; box-shadow: 0 12px 35px rgba(12,47,95,.05); }
.booking-form h2, .booking-summary h2, .request-layout h2, .contact-layout h2 { margin: 0 0 22px; color: var(--navy); font: 500 30px var(--serif); }
.booking-form h2:not(:first-child) { margin-top: 35px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus, .lookup-form input:focus { border-color: var(--blue) !important; box-shadow: 0 0 0 3px rgba(1,74,171,.1); }
.booking-form .radio, .booking-form .check { font-size: 12px; font-weight: 600; letter-spacing: 0; }
.booking-form .radio input, .booking-form .check input { margin-right: 8px; accent-color: var(--blue); }
.form-note, .data-note { color: #748397; font-size: 10px; line-height: 1.6; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; }
.booking-summary { position: sticky; top: 20px; padding: 28px; background: var(--warm); }
.booking-summary img { width: 100%; height: 190px; object-fit: cover; }
.booking-summary h3 { color: var(--navy); font: 500 25px var(--serif); }
.total { padding-top: 15px; border-top: 2px solid var(--navy); }
.total span, .total small { display: block; color: #68788b; font-size: 10px; }
.total strong { display: block; margin: 4px 0; color: var(--navy); font: 600 30px var(--serif); }
.confirmation { max-width: 760px; text-align: center; }
.confirmation-icon { width: 66px; height: 66px; display: grid; place-items: center; margin: 0 auto 25px; border: 1px solid var(--gold); color: var(--blue); font-size: 30px; }
.confirmation .eyebrow { justify-content: center; }
.confirmation h2 { font-size: clamp(40px,6vw,64px); }
.confirmation > p:not(.eyebrow) { color: #637186; line-height: 1.8; }
.confirmation-total { margin: 30px 0; padding: 20px; background: var(--warm); }
.confirmation-total span { display:block; color:#68788b; font-size:10px; }
.confirmation-total strong { display:block; color:var(--navy); font:500 31px var(--serif); }
.confirmation > div:last-child { display:flex; justify-content:center; gap:12px; }

.manage-layout { grid-template-columns: .7fr 1fr; }
.lookup-form { padding: 30px; background: var(--warm); }
.reservation-card { padding: 35px; border: 1px solid #d8e0e6; }
.reservation-card h2 { margin: 18px 0 3px; color: var(--navy); font: 500 30px var(--serif); }
.status-badge { display:inline-block; padding:7px 10px; border-radius:3px; background:#f1e9d8; color:#795e24; font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.status-badge.confirmed { background:#e5f5ec; color:#1d6946; }
.status-badge.cancelled { background:#f7e4e1; color:#873a31; }
.cancel-button { border:0; border-bottom:1px solid #a4443b; background:none; color:#8d342c; padding:7px 0; font-size:11px; font-weight:800; cursor:pointer; }
.receipt-form { margin:24px 0;padding:20px;background:var(--warm);border-left:3px solid var(--gold); }.receipt-form h3{margin:0;color:var(--navy);font:500 21px var(--serif)}.receipt-form p{color:#6c7b8e;font-size:10px}.receipt-form input{display:block;width:100%;margin:13px 0;padding:10px;background:white;border:1px solid #d3dce2;font-size:10px}.receipt-form .status{margin:12px 0 0}

.request-layout > div > p:not(.eyebrow), .contact-details > p:not(.eyebrow), .about-grid p { color:#617185; line-height:1.8; }
.request-layout > div > img { width:100%; height:300px; object-fit:cover; margin-top:20px; }
.request-layout ul { color:#53657b; }
.gallery-grid { max-width:1280px; display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.gallery-grid figure { margin:0; position:relative; height:320px; overflow:hidden; }
.gallery-grid figure.wide { grid-column:span 2; }
.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.gallery-grid figure:hover img { transform:scale(1.03); }
.gallery-grid figcaption { position:absolute; left:10px; bottom:10px; padding:6px 8px; background:rgba(7,38,77,.82); color:white; font-size:8px; text-transform:uppercase; }
.about-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw; }
.values-grid { display:grid; grid-template-columns:1fr 1fr; }
.values-grid article { padding:28px; border:1px solid #dce3e8; margin:-1px 0 0 -1px; }
.values-grid strong { color:var(--gold); font:italic 17px var(--serif); }
.values-grid h3 { color:var(--navy); font:500 24px var(--serif); }
.values-grid p { font-size:12px; }
.contact-layout { grid-template-columns:.8fr 1.2fr; }
.contact-details address { margin:25px 0; color:#53657b; font-style:normal; line-height:1.7; }
.contact-details > a { display:block; margin:8px 0; color:var(--blue); font-weight:800; }
.contact-details .map-card { min-height:270px; margin-top:30px; }
.legal-page { max-width:850px; }
.legal-page article { display:grid; grid-template-columns:45px 1fr; gap:18px; padding:25px 0; border-bottom:1px solid #dce3e8; }
.legal-page article span { color:var(--gold); font:italic 17px var(--serif); }
.legal-page article p { margin:0; color:#53657b; line-height:1.75; }

@media (max-width: 1080px) {
  .room-grid { grid-template-columns: 1fr 1fr; }
  .service-grid { grid-template-columns: 1fr 1fr; }
  .footer-main { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-main > div:last-child { grid-column: 2 / 4; }
  .availability.search-panel { grid-template-columns: repeat(3,1fr); }
  .availability.search-panel label:nth-of-type(4), .availability.search-panel label:nth-of-type(5) { display:block; }
  .room-detail { grid-template-columns:1.15fr .85fr; gap:35px; }
}

@media (max-width: 800px) {
  .section { padding: 72px 22px; }
  .room-grid, .room-grid.two { grid-template-columns:1fr; }
  .split-story, .split-story.reverse { grid-template-columns:1fr; margin:0; }
  .split-story.reverse .story-image { order:0; }
  .story-image { min-height:380px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .event-feature, .location-section, .faq-section, .catalog-layout, .room-detail, .booking-layout, .request-layout, .contact-layout, .manage-layout, .about-grid { grid-template-columns:1fr; }
  .event-feature img { height:360px; }
  .gallery-strip { grid-template-columns:1fr 1fr; }
  .gallery-strip > a { min-height:170px; }
  .filters, .booking-summary { position:static; }
  .detail-gallery { height:460px; }
  .availability.search-panel { grid-template-columns:1fr 1fr; }
  .availability.search-panel button { grid-column:1/-1; min-height:50px; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid figure.wide { grid-column:span 2; }
  .footer-main { grid-template-columns:1fr 1fr; gap:35px 25px; }
  .footer-brand { grid-column:1/-1; }
  .footer-main > div:last-child { grid-column:auto; }
}

@media (max-width: 560px) {
  .page-hero { min-height:260px; padding:48px 22px; }
  .page-hero h1 { font-size:34px; }
  .section-head { align-items:start; flex-direction:column; }
  .service-grid { grid-template-columns:1fr; }
  .corporate-cta { background-attachment:scroll; }
  .gallery-strip { grid-template-columns:1fr 1fr; }
  .gallery-strip img { min-height:210px; }
  .gallery-strip img:first-child { grid-column:1/-1; }
  .gallery-strip > a { min-height:120px; font-size:19px; }
  .form-grid { grid-template-columns:1fr; }
  .booking-form { padding:22px; }
  .availability.search-panel { grid-template-columns:1fr 1fr; }
  .availability.search-panel label { display:block !important; padding:16px 13px; }
  .availability.search-panel label:nth-of-type(3), .availability.search-panel label:nth-of-type(4), .availability.search-panel label:nth-of-type(5) { display:none !important; }
  .availability-summary { align-items:flex-start; }
  .detail-gallery { height:330px; }
  .amenity-list { columns:1; }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-grid figure, .gallery-grid figure.wide { grid-column:auto; height:260px; }
  .values-grid { grid-template-columns:1fr; }
  .confirmation > div:last-child { flex-direction:column; }
  .footer-main { grid-template-columns:1fr 1fr; padding:58px 20px 40px; font-size:12px; }
  .footer-bottom { flex-direction:column; padding-inline:20px; }
}

/* Final compact rhythm for public pages */
.split-story { margin-top: 24px; }
.split-story > div:not(.story-image) { padding: clamp(38px,5.5vw,68px); }
.corporate-cta { min-height: 450px; padding: 70px 32px; }
.corporate-cta h2 { font-size: clamp(32px,3.6vw,46px); }
.event-feature img { height: 400px; }
.gallery-strip, .gallery-strip img { min-height: 250px; }
.map-card { min-height: 310px; }
.final-cta { padding: 72px 32px; }
.final-cta h2 { font-size: clamp(32px,3.8vw,45px); }
.footer-main { padding-top: 55px; padding-bottom: 44px; }
.footer-main h3 { margin-bottom: 15px; }
.footer-main > div:not(.footer-brand) a { margin-block: 9px; }
.detail-gallery { height: 540px; }

/* Editorial boutique direction */
.hero { min-height: 720px; isolation: isolate; background: #09254a; }
.hero::before { z-index: -1; background: radial-gradient(circle at 12% 18%,rgba(22,82,143,.35),transparent 32%), linear-gradient(110deg,#081f40 0%,#0b315f 47%,#0b315f 47%); }
.hero::after { z-index: 1; right: 4.5vw; top: 14%; width: min(41vw,620px); height: min(36vw,520px); border-color: rgba(224,198,146,.28); transform: none; }
.hero-shade { display: none; }
.hero-content { width: min(560px,42vw); z-index: 3; }
.hero-content h1 { font-size: clamp(43px,4.5vw,63px); line-height: .98; }
.hero-gallery { position: absolute; z-index: 2; top: 114px; right: clamp(28px,6vw,96px); width: min(45vw,680px); height: 430px; }
.hero-gallery figure { position: absolute; margin: 0; overflow: hidden; box-shadow: 0 24px 65px rgba(0,0,0,.3); }
.hero-gallery img { width: 100%; height: 100%; object-fit: cover; }
.hero-photo-main { inset: 0 48px 0 0; }
.hero-photo-small { right: 0; bottom: -42px; width: 40%; height: 42%; border: 7px solid #09254a; }
.hero-index { position: absolute; left: -24px; bottom: 22px; padding: 10px 12px; background: #f2eadc; color: #173453; font-size: 8px; font-weight: 800; letter-spacing: .16em; writing-mode: vertical-rl; transform: rotate(180deg); }
.hero .availability { border-radius: 0; box-shadow: 0 28px 80px rgba(0,0,0,.3); }
.hero .form-title { background: #f1eadf; color: var(--navy); }
.hero .form-title span { color: #816a3f; }
.hero .availability button { border-radius: 0; background: #b08c4f; }
.hero .availability button:hover { background: #8d6e3c; }
.hero-actions .button { border-radius: 0; padding-inline: 27px; }
.text-link { border-bottom-color: rgba(255,255,255,.35); }
.benefit-strip { background: #f2ede4; }
.benefit-strip div { justify-content: flex-start; }
.intro-section { position: relative; }
.intro-section::before { content: "R"; position: absolute; left: 10px; top: 7px; color: rgba(164,139,92,.08); font: 220px/.8 var(--serif); pointer-events: none; }
.seasonal-story { max-width: 1320px; margin: 0 auto 70px; display: grid; grid-template-columns: 1.05fr .95fr; min-height: 610px; background: #f4f0e8; }
.seasonal-collage { position: relative; min-height: 610px; background: #dfe7e6; overflow: hidden; }
.seasonal-collage img:first-child { width: 74%; height: 78%; position: absolute; left: 0; top: 0; object-fit: cover; }
.seasonal-collage img:nth-child(2) { width: 47%; height: 48%; position: absolute; right: 0; bottom: 0; object-fit: cover; border: 10px solid #f4f0e8; border-right: 0; border-bottom: 0; }
.seasonal-collage > span { position: absolute; right: 5%; top: 8%; color: #9c7d46; font: italic 22px/1.05 var(--serif); text-align: right; }
.seasonal-copy { align-self: center; padding: clamp(48px,6vw,86px); }
.seasonal-copy h2 { margin: 0; color: var(--navy); font: 500 clamp(32px,3.6vw,49px)/1.02 var(--serif); }
.seasonal-copy > p:not(.eyebrow) { color: #5e6e7d; font-size: 14px; line-height: 1.75; }
.destination-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 25px 0 28px; }
.destination-tags span { padding: 8px 11px; border: 1px solid #cfc5b2; color: #635b4e; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.rooms-section .room-grid { grid-template-columns: 1.55fr .72fr .72fr; }
.rooms-section .room-image { height: 280px; }
.rooms-section .room-card:nth-child(n+2) .room-image { height: 200px; }
.rooms-section .room-card { border: 0; border-radius: 0; box-shadow: none; background: #f7f5f0; }
.rooms-section .room-card:hover { box-shadow: 0 20px 50px rgba(12,47,95,.12); }
.service-grid article { position: relative; overflow: hidden; transition: background .25s ease,color .25s ease; }
.service-grid article > span { position: absolute; right: 18px; top: 10px; color: rgba(164,139,92,.18); font-size: 54px; }
.service-grid article:hover { background: #0c2f5f; }
.service-grid article:hover h3, .service-grid article:hover p { color: white; }
.gallery-strip { grid-template-columns: 1.25fr .7fr 1.05fr .52fr; }
.final-cta { position: relative; overflow: hidden; background: #0a2b57; }
.final-cta::before { content: "BOOK"; position: absolute; inset: auto 0 -30px; color: rgba(255,255,255,.035); font: 700 min(17vw,220px)/.7 var(--serif); letter-spacing: .04em; }
.final-cta > * { position: relative; }

@media (max-width: 800px) {
  .section { padding: 56px 22px; }
  .story-image { min-height: 320px; }
  .event-feature img { height: 310px; }
  .hero { min-height: 0; padding-top: 104px; flex-direction: column; align-items: flex-start; }
  .hero-content { width: 100%; }
  .hero-gallery { position: relative; inset: auto; width: 100%; height: 360px; margin-top: 34px; }
  .hero-photo-main { right: 25px; }
  .hero-photo-small { width: 42%; }
  .hero-index { left: auto; right: -2px; bottom: 10px; }
  .seasonal-story { grid-template-columns: 1fr; margin-bottom: 30px; }
  .seasonal-collage { min-height: 450px; }
  .seasonal-copy { padding: 50px 28px; }
  .rooms-section .room-grid { grid-template-columns: 1fr; }
  .rooms-section .room-image, .rooms-section .room-card:nth-child(n+2) .room-image { height: 250px; }
}

@media (max-width: 560px) {
  .hero { padding-top: 98px; }
  .hero-content h1 { font-size: 38px; }
  .hero-gallery { height: 280px; }
  .hero-photo-small { bottom: -22px; border-width: 5px; }
  .seasonal-collage { min-height: 340px; }
  .seasonal-copy h2 { font-size: 32px; }
}

/* Quiet Luxury Biobío — selected direction */
body { background: #f6f3ed; }
.site-header, .site-header.inner-header { height: 96px; padding-inline: clamp(24px,4.5vw,72px); position: absolute; background: rgba(248,245,239,.97); color: #171717; border-bottom: 1px solid #ded8cd; }
.site-header.inner-header { position: relative; }
.brand { color: #0753b8; }
.brand-logo { width: 58px; height: 58px; border-color: rgba(7,83,184,.18); box-shadow: none; }
.brand strong { color: #0753b8; }
.brand small { color: #5d6269; opacity: 1; }
.nav { gap: clamp(17px,2vw,31px); color: #1b1b1b; font-size: 11px; }
.nav a::after { background: #0753b8; }
.header-book { border: 1px solid #0753b8; border-radius: 0; background: #0753b8; color: white; box-shadow: none; }
.header-book:hover { border-color: #033b90; background: #033b90; color: white; }
.menu-button { color: #0753b8; }

.hero { min-height: 820px; padding: 96px 0 132px; align-items: center; isolation: isolate; background: #f6f3ed; color: #141414; overflow: hidden; }
.hero::before { z-index: -1; inset: 96px 63% 0 0; background: linear-gradient(90deg,rgba(7,83,184,.045),transparent); }
.hero::after { right: auto; left: 3.8vw; top: 215px; width: 1px; height: 165px; border: 0; background: #0753b8; transform: none; opacity: .55; }
.hero-content { z-index: 3; width: 35%; margin-left: clamp(56px,9.5vw,150px); padding-right: clamp(24px,4vw,62px); }
.hero-content .eyebrow { color: #9a743a; }
.hero-content h1 { max-width: 500px; color: #151515; font-size: clamp(43px,4.25vw,61px); line-height: .99; }
.hero-copy { max-width: 460px; color: #5e6268; font-size: 14px; line-height: 1.72; }
.hero-actions .button { border-radius: 0; background: #0753b8; color: white; }
.hero-actions .button:hover { background: #033b90; }
.hero .text-link { color: #0753b8; border-bottom-color: rgba(7,83,184,.35); }
.booking-assurance { color: #5d6670; }
.booking-assurance span::before { color: #0753b8; }
.hero-gallery { inset: 96px 0 0 auto; width: 63%; height: auto; }
.hero-photo-main { inset: 0; }
.hero-photo-main img { filter: saturate(.88) contrast(.98); }
.hero-photo-small { display: none; }
.hero-index { left: -34px; bottom: 150px; padding: 12px 10px; background: #0753b8; color: white; }
.hero .availability { bottom: 35px; left: 50%; width: min(1100px,calc(100% - 80px)); min-height: 104px; grid-template-columns: 1.18fr 1fr 1fr .75fr 1.2fr; border: 1px solid #d5cfc5; border-radius: 0; background: #fbfaf7; box-shadow: 0 22px 55px rgba(25,34,44,.17); }
.hero .availability label:nth-of-type(4), .hero .availability label:nth-of-type(5) { display: none; }
.hero .form-title { background: #0753b8; color: white; }
.hero .form-title span { color: #d9c79f; }
.hero .availability button { border-radius: 0; background: #0753b8; }
.hero .availability button:hover { background: #033b90; }

.benefit-strip { padding-top: 38px; background: #0753b8; color: white; }
.benefit-strip div { border-color: rgba(255,255,255,.24); }
.benefit-strip span { color: #d9c69c; }
.intro-section { background: #f6f3ed; }
.intro-section::before { color: rgba(7,83,184,.06); }
.intro-section h2, .section h2, .section-head h2 { color: #142c49; }
.eyebrow.dark { color: #0753b8; }
.button { border-radius: 0; }
.button.blue { background: #0753b8; }
.outline-link { border-color: #0753b8; color: #0753b8; }
.seasonal-story { background: #ece8df; }
.seasonal-collage img:nth-child(2) { border-color: #ece8df; }
.seasonal-collage > span { color: #0753b8; }
.seasonal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.destination-tags span { border-color: rgba(7,83,184,.27); color: #31587e; }
.rooms-section .room-card { background: #fbfaf7; border-top: 3px solid #0753b8; }
.room-meta, .room-price a { color: #0753b8; }
.room-card h3 { color: #142c49; }
.split-story, .corporate-cta { background-color: #092f66; }
.service-grid article:hover { background: #0753b8; }
.service-grid article > span { color: rgba(7,83,184,.18); }
.final-cta { background: #0753b8; }
.footer { background: #061f43; }

.page-hero { min-height: 340px; padding: 70px clamp(24px,8vw,128px); color: #142c49; background: linear-gradient(90deg,#f6f3ed 0%,#f6f3ed 55%,rgba(246,243,237,.2) 72%),url('/images/rarinco-real/room-triple.webp') right center/52% 100% no-repeat; }
.page-hero .eyebrow { color: #0753b8; }
.page-hero h1 { color: #142c49; }
.page-hero > div > p:last-child:not(.eyebrow) { color: #586a7c; }
.filters, .booking-summary, .lookup-form { background: #eeebe4; border-top-color: #0753b8; }
.booking-form, .reservation-card { border-radius: 0; }
.local-guide { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; }
.local-guide-intro > p:not(.eyebrow) { color: #5d6c7b; line-height: 1.8; }
.guide-grid { display: grid; grid-template-columns: 1fr 1fr; }
.guide-grid article { min-height: 230px; padding: 30px; border: 1px solid #d9d4ca; margin: -1px 0 0 -1px; background: #fbfaf7; }
.guide-grid span { color: #0753b8; font: italic 18px var(--serif); }
.guide-grid h3 { margin: 28px 0 10px; color: #142c49; font: 500 24px var(--serif); }
.guide-grid p { color: #647382; font-size: 12px; line-height: 1.7; }
.guide-cta { max-width: 1320px; margin: 0 auto; padding: 62px clamp(28px,6vw,80px); display: flex; align-items: center; justify-content: space-between; gap: 28px; background: #0753b8; color: white; }
.guide-cta h2 { max-width: 680px; margin: 0; color: white; font: 500 clamp(31px,4vw,48px)/1.04 var(--serif); }

@media (max-width: 1180px) {
  .nav.is-open { top: 96px; background: rgba(248,245,239,.99); color: #142c49; }
  .nav.is-open a { border-color: #d7d2c8; }
  .hero-content { width: 42%; margin-left: 6vw; }
  .hero-gallery { width: 56%; }
  .hero .availability { grid-template-columns: 1.1fr 1fr 1fr .8fr 1.2fr; }
}

@media (max-width: 800px) {
  .site-header, .site-header.inner-header { height: 74px; padding-inline: 18px; }
  .brand-logo { width: 46px; height: 46px; }
  .nav.is-open { top: 74px; }
  .hero { min-height: 0; padding: 106px 20px 26px; overflow: visible; }
  .hero::before { inset: 74px 0 auto; height: 430px; }
  .hero::after { display: none; }
  .hero-content { width: 100%; margin: 0; padding: 0; }
  .hero-content h1 { max-width: 580px; font-size: clamp(39px,10.5vw,54px); }
  .hero-copy { font-size: 14px; }
  .hero-actions { flex-direction: row; align-items: center; }
  .booking-assurance { display: flex; }
  .hero-gallery { position: relative; inset: auto; width: calc(100% + 40px); height: 360px; margin: 38px -20px 0; }
  .hero-index { left: 0; bottom: 0; writing-mode: horizontal-tb; transform: none; }
  .hero .availability { position: relative; inset: auto; width: 100%; margin-top: 0; transform: none; grid-template-columns: 1fr 1fr; box-shadow: 0 14px 35px rgba(25,34,44,.13); }
  .hero .form-title { grid-column: 1/-1; }
  .hero .availability label { display: block; }
  .hero .availability label:nth-of-type(n+3) { display: none; }
  .hero .availability button { grid-column: 1/-1; min-height: 52px; }
  .benefit-strip { padding-top: 28px; }
  .page-hero { min-height: 280px; background: #f6f3ed; }
  .local-guide { grid-template-columns: 1fr; }
  .guide-cta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .hero { padding-top: 98px; }
  .hero-content h1 { font-size: 39px; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .booking-assurance { display: grid; }
  .hero-gallery { height: 270px; margin-top: 30px; }
  .hero .availability { margin-top: 0; }
  .hero .availability label { padding: 14px 12px; }
  .benefit-strip { grid-template-columns: 1fr 1fr; }
  .seasonal-actions { align-items: flex-start; flex-direction: column; }
  .guide-grid { grid-template-columns: 1fr; }
  .guide-grid article { min-height: 190px; }
  .mobile-book { background: #0753b8; border-radius: 0; }
}

/* Secure administration */
.admin-shell { min-height:100vh; display:grid; grid-template-columns:245px 1fr; background:#f1f4f7; color:var(--ink); }
.admin-sidebar { min-height:100vh; position:sticky; top:0; align-self:start; padding:28px 20px; background:#08274e; color:white; }
.admin-brand { display:flex; align-items:center; gap:12px; padding:0 8px 28px; border-bottom:1px solid rgba(255,255,255,.12); }
.admin-brand > span { width:38px;height:38px;display:grid;place-items:center;border:1px solid #bca578;color:#e1c993;font:600 24px var(--serif); }
.admin-brand strong { font:500 17px var(--serif); }.admin-brand small { display:block;margin-top:3px;color:#8fa5bd;font:700 8px var(--sans);letter-spacing:.14em;text-transform:uppercase; }
.admin-sidebar nav { margin-top:25px; }
.admin-sidebar nav button { width:100%;margin:3px 0;padding:12px 13px;border:0;border-left:2px solid transparent;background:transparent;color:#b4c4d5;text-align:left;font-size:12px;font-weight:700;cursor:pointer; }
.admin-sidebar nav button:hover,.admin-sidebar nav button.active { border-color:#d1b87e;background:rgba(255,255,255,.07);color:white; }
.admin-back { position:absolute;left:28px;bottom:28px;color:#91a8c0;font-size:10px; }
.admin-main { min-width:0;padding:34px clamp(24px,4vw,58px) 70px; }
.admin-main > header { display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:35px; }
.admin-main header small { color:#6e7f92;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }
.admin-main header h1 { margin:5px 0 0;color:var(--navy);font:500 36px var(--serif); }
.admin-user { display:flex;align-items:center;gap:10px; }
.admin-user > span { width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:white;font-weight:800; }
.admin-user strong { max-width:180px;font-size:11px;overflow:hidden;text-overflow:ellipsis; }.admin-user strong small { display:block;margin-top:3px; }.admin-user > a { margin-left:8px;color:var(--blue);font-size:10px;font-weight:800; }
.stat-grid,.request-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px; }
.stat-grid article,.request-stats article { min-height:120px;padding:24px;background:white;border-top:3px solid var(--gold);box-shadow:0 8px 25px rgba(12,47,95,.04); }
.stat-grid article.wide { grid-column:span 2; }.stat-grid span,.request-stats span { display:block;color:#748397;font-size:10px;font-weight:700; }.stat-grid strong,.request-stats strong { display:block;margin-top:15px;color:var(--navy);font:600 30px var(--serif); }
.admin-panel { padding:28px;background:white;border:1px solid #e0e6ea;box-shadow:0 8px 25px rgba(12,47,95,.04); }
.panel-head { display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px; }.panel-head h2,.admin-panel > h2 { margin:0;color:var(--navy);font:500 25px var(--serif); }.panel-head span { color:#748397;font-size:10px; }.panel-head button { border:0;background:none;color:var(--blue);font-size:10px;font-weight:800;cursor:pointer; }
.admin-table-wrap { overflow:auto; }.admin-table-wrap table { width:100%;border-collapse:collapse;font-size:11px; }.admin-table-wrap th { padding:10px 12px;border-bottom:1px solid #d8e0e6;color:#748397;text-align:left;font-size:8px;letter-spacing:.08em;text-transform:uppercase; }.admin-table-wrap td { padding:14px 12px;border-bottom:1px solid #edf0f2;color:#4c5d71;white-space:nowrap; }.admin-table-wrap td strong { color:var(--navy); }.admin-table-wrap td small { color:#8b98a7; }.admin-table-wrap select { min-width:145px;padding:8px;border:1px solid #d4dce2;background:white;color:#41536a;font-size:10px; }.admin-empty { padding:35px;text-align:center;color:#7f8b99;font-size:11px; }
.admin-room-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:15px; }.admin-room-grid article { padding:22px;background:#f7f9fa;border:1px solid #e2e7eb; }.admin-room-grid article>span { color:var(--blue);font-size:9px;font-weight:800;text-transform:uppercase; }.admin-room-grid h3 { margin:8px 0 18px;color:var(--navy);font:500 23px var(--serif); }.admin-room-grid label { display:block;color:#68788b;font-size:9px;font-weight:800; }.admin-room-grid input { width:100%;margin-top:6px;padding:10px;border:1px solid #ccd6de;background:white; }.admin-room-grid small { display:block;margin-top:7px;color:#8a97a5;font-size:8px; }
.settings-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:0; }.settings-grid h2 { grid-column:1/-1;margin-bottom:22px; }.settings-grid article { padding:22px;border:1px solid #e2e7eb;margin:-1px 0 0 -1px; }.settings-grid article span,.settings-grid article small { display:block;color:#7d8b9b;font-size:9px; }.settings-grid article strong { display:block;margin-top:8px;color:var(--navy);font-size:12px; }
.content-checklist>div { display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:18px 0;border-bottom:1px solid #e4e8eb;font-size:11px; }.content-checklist>div span { color:#2b805d; }.content-checklist>div small { color:#8190a0; }
.calendar-grid { display:grid;grid-template-columns:160px repeat(7,minmax(65px,1fr));overflow:auto; }.calendar-head { padding:12px 8px;background:#f2f5f7;border-right:1px solid #dce3e8;color:#657386;font-size:9px;font-weight:800;text-align:center; }.calendar-row { display:contents; }.calendar-row strong,.calendar-row span { padding:14px 8px;border-right:1px solid #e5eaed;border-bottom:1px solid #e5eaed;text-align:center;font-size:10px; }.calendar-row strong { color:var(--navy);text-align:left; }.calendar-row span { color:#c7cfd5; }.calendar-row span.occupied { background:#e9f2fc;color:var(--blue); }.calendar-row span.occupied.confirmed { background:#e5f5ec;color:#277355; }.calendar-row span.occupied.cancelled { background:#f5e8e6;color:#9a4b42; }
@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{min-height:auto;position:relative;padding:18px}.admin-sidebar nav{display:flex;overflow:auto;margin-top:14px}.admin-sidebar nav button{min-width:max-content}.admin-back{display:none}.stat-grid,.request-stats{grid-template-columns:1fr 1fr}.admin-main{padding:25px 18px 60px}.admin-main>header{align-items:flex-start}.admin-user strong{display:none}.admin-room-grid,.settings-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.admin-main>header{flex-direction:column}.stat-grid,.request-stats{grid-template-columns:1fr 1fr}.stat-grid article.wide{grid-column:span 2}.admin-room-grid,.settings-grid{grid-template-columns:1fr}.settings-grid h2{grid-column:auto}.content-checklist>div{grid-template-columns:25px 1fr}.content-checklist>div small{grid-column:2}}
