:root {
  --forest: #173a30;
  --forest-2: #21483c;
  --forest-3: #0d2922;
  --rust: #bc5536;
  --rust-dark: #9d4028;
  --cream: #f5efe4;
  --cream-2: #ebe3d5;
  --paper: #fffdf8;
  --ink: #19322b;
  --muted: #69736e;
  --line: #ded7ca;
  --white: #fff;
  --shadow: 0 24px 70px rgb(23 58 48 / 12%);
  --radius: 22px;
  --free-bg: #dff1e5;
  --free: #16623e;
  --busy-bg: #f2d4cd;
  --busy: #8c3527;
  --blocked-bg: #e2ddef;
  --blocked: #55447c;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
address { font-style: normal; }
h1, h2, h3 { margin: 0; color: var(--forest); font-family: var(--serif); font-weight: 600; letter-spacing: -.035em; line-height: 1.08; overflow-wrap: normal; text-wrap: balance; }
h1 { font-size: clamp(3.2rem, 8vw, 7.5rem); }
h2 { font-size: clamp(2.25rem, 4.2vw, 4rem); }
h3 { font-size: clamp(1.45rem, 2.2vw, 2rem); }
p { margin: 0 0 1.25rem; text-wrap: pretty; }

.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.narrow { width: min(780px, 100%); }
.section { padding: clamp(78px, 10vw, 140px) 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 999; padding: 12px 18px; color: var(--white); background: var(--forest); border-radius: 0 0 8px 8px; }
.skip-link:focus { top: 0; }
.eyebrow { margin: 0 0 14px; color: var(--rust); font-size: .76rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow-light { color: #edb7a5; }
.lead { color: var(--forest); font-family: var(--serif); font-size: clamp(1.3rem, 2.3vw, 1.75rem); line-height: 1.45; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 16px; padding: 12px 24px; border: 1px solid var(--rust); border-radius: 4px; color: var(--white); background: var(--rust); font-size: .9rem; font-weight: 800; letter-spacing: .025em; line-height: 1.2; text-decoration: none; transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); background: var(--rust-dark); border-color: var(--rust-dark); box-shadow: 0 12px 30px rgb(157 64 40 / 22%); }
.button-small { min-height: 42px; padding: 9px 18px; font-size: .82rem; }
.button-large { min-height: 60px; padding: 16px 28px; }
.button-full { width: 100%; }
.button-light { color: var(--forest); background: var(--cream); border-color: var(--cream); }
.button-light:hover { color: var(--forest); background: var(--white); border-color: var(--white); }
.button-outline { color: var(--forest); background: transparent; border-color: var(--forest); }
.button-outline:hover { color: var(--white); background: var(--forest); border-color: var(--forest); }
.text-link { display: inline-flex; align-items: center; gap: 12px; color: var(--forest); font-weight: 800; text-decoration: none; }
.text-link span { color: var(--rust); font-size: 1.3em; transition: transform .2s ease; }
.text-link:hover span { transform: translateX(5px); }
.text-link-light { color: var(--white); }
.back-link { display: inline-block; margin-bottom: 24px; color: var(--white); font-size: .86rem; font-weight: 700; text-decoration: none; }
.back-link.dark { margin-top: 24px; color: var(--forest); }

.test-site-banner { display: flex; min-height: 46px; align-items: center; justify-content: center; gap: 12px; padding: 9px 20px; color: var(--white); background: #a42d24; font-size: .82rem; line-height: 1.35; text-align: center; }
.test-site-banner strong { letter-spacing: .08em; }

.site-header { position: sticky; top: 0; z-index: 100; height: 82px; background: rgb(255 253 248 / 94%); border-bottom: 1px solid rgb(23 58 48 / 9%); backdrop-filter: blur(16px); }
.header-inner { display: flex; height: 100%; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand img { width: 214px; height: auto; }
.site-nav { display: flex; align-items: center; gap: clamp(20px, 2.5vw, 38px); }
.site-nav > a:not(.button) { position: relative; color: var(--forest); font-size: .82rem; font-weight: 750; letter-spacing: .035em; text-decoration: none; }
.site-nav > a:not(.button)::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 2px; background: var(--rust); content: ""; transform: scaleX(0); transition: transform .2s ease; }
.site-nav > a:not(.button):hover::after { transform: scaleX(1); }
.menu-toggle { display: none; width: 48px; height: 44px; padding: 10px; border: 0; background: transparent; }
.menu-toggle > span:not(.sr-only) { display: block; height: 2px; margin: 5px 0; background: var(--forest); transition: transform .2s ease, opacity .2s ease; }

.hero { position: relative; min-height: min(680px, calc(100vh - 32px)); overflow: hidden; color: var(--white); background: var(--forest); }
.hero-media, .hero-shade { position: absolute; inset: 0; }
.hero-media { background: url("../images/dum-zima.jpg") 62% 44% / cover no-repeat; animation: hero-in 1.6s cubic-bezier(.2,.7,.2,1) both; }
.hero-shade { background: linear-gradient(90deg, rgb(10 33 27 / 91%) 0%, rgb(12 38 31 / 70%) 43%, rgb(10 27 23 / 23%) 78%), linear-gradient(0deg, rgb(8 26 21 / 46%), transparent 48%); }
.hero-content { position: relative; display: flex; min-height: min(680px, calc(100vh - 32px)); align-items: center; padding-top: 58px; padding-bottom: 72px; }
.hero-copy { width: min(680px, 100%); }
.hero-copy h1 { color: var(--white); font-size: clamp(4.4rem, 9.5vw, 8.6rem); font-weight: 500; line-height: .88; }
.hero-copy > p:not(.eyebrow) { max-width: 580px; margin: 30px 0; color: rgb(255 255 255 / 88%); font-size: clamp(1.05rem, 1.6vw, 1.3rem); }
.hero-actions { display: flex; align-items: center; gap: 30px; }
.booking-bar { position: absolute; right: 0; bottom: 32px; left: 0; display: grid; grid-template-columns: 1fr 1fr .85fr 1.35fr; color: var(--ink); background: var(--paper); border-radius: 8px; box-shadow: 0 20px 70px rgb(0 0 0 / 25%); }
.booking-field { position: relative; min-width: 0; padding: 20px 26px; border-right: 1px solid var(--line); }
.booking-field label { display: block; margin-bottom: 3px; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.booking-field input, .booking-field select { width: 100%; min-width: 0; min-height: 31px; padding: 0 3px; border: 0; outline: 0; color: var(--forest); background: transparent; font-weight: 750; }
.booking-submit { height: 100%; min-height: 82px; border-radius: 0 8px 8px 0; }
.hero-scroll { position: absolute; right: 26px; bottom: 32px; width: 22px; height: 44px; border: 1px solid rgb(255 255 255 / 45%); border-radius: 20px; }
.hero-scroll span { position: absolute; top: 8px; left: 50%; width: 3px; height: 8px; border-radius: 4px; background: var(--white); transform: translateX(-50%); animation: scroll-dot 1.8s infinite; }

.trust-strip { background: var(--cream); border-bottom: 1px solid var(--line); }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-grid > div { display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto; padding: 30px 24px; border-right: 1px solid var(--line); }
.trust-grid > div:first-child { border-left: 1px solid var(--line); }
.trust-grid .icon { grid-row: 1 / 3; color: var(--rust); font-family: var(--serif); font-size: 1.6rem; }
.trust-grid strong { color: var(--forest); font-size: .9rem; }
.trust-grid small { color: var(--muted); font-size: .78rem; }

.rooms-section { background: var(--paper); }
.section-heading { margin-bottom: 60px; }
.split-heading { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 80px; }
.split-heading > p { max-width: 440px; margin: 0 0 9px; color: var(--muted); }
.room-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px; }
.room-card { display: flex; flex-direction: column; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 30px rgb(23 58 48 / 5%); transition: transform .3s ease, box-shadow .3s ease; }
.room-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.room-image { position: relative; display: block; flex-shrink: 0; height: 370px; overflow: hidden; }
.room-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.room-card:hover .room-image img { transform: scale(1.035); }
.room-capacity { position: absolute; top: 18px; right: 18px; padding: 7px 12px; color: var(--forest); background: rgb(255 253 248 / 92%); border-radius: 30px; font-size: .72rem; font-weight: 800; backdrop-filter: blur(10px); }
.room-card-body { display: flex; flex: 1; flex-direction: column; padding: 29px 30px 26px; }
.room-subtitle { margin: 0 0 6px; color: var(--rust); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.room-card h3 a { text-decoration: none; }
.room-card-body > p:not(.room-subtitle) { min-height: 52px; margin: 14px 0 22px; color: var(--muted); }
.room-card-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 18px; margin-top: auto; padding-top: 19px; border-top: 1px solid var(--line); }
.room-card-footer > span { color: var(--muted); font-size: .78rem; }
.room-card-footer > span strong { color: var(--forest); font-size: 1.02rem; }
.room-card-price { white-space: nowrap; }
.room-card-price small { display: block; margin-top: 2px; font-size: .68rem; }
.room-card-footer a { flex-shrink: 0; margin-left: auto; color: var(--forest); font-size: .8rem; font-weight: 800; text-decoration: none; }
.room-card-footer a span { color: var(--rust); }
.price-note { margin: 30px 0 0; color: var(--muted); font-size: .78rem; text-align: center; }

.availability-preview-section { background: var(--cream); }
.availability-strip-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: var(--white); box-shadow: 0 12px 40px rgb(23 58 48 / 7%); scrollbar-color: var(--rust) var(--cream-2); }
.availability-strip-scroll:focus { outline: 3px solid rgb(188 85 54 / 18%); outline-offset: 3px; }
.availability-strip-table { width: 100%; min-width: 1050px; border-collapse: separate; border-spacing: 3px; padding: 8px; font-size: .72rem; }
.availability-strip-table th, .availability-strip-table td { height: 50px; text-align: center; }
.availability-strip-table thead th { color: var(--muted); background: #f8f5ee; }
.availability-strip-table thead th span, .availability-strip-table thead th strong { display: block; line-height: 1.25; }
.availability-strip-table thead th.is-weekend { color: var(--rust); }
.availability-strip-table .is-free { color: var(--free); background: var(--free-bg); }
.availability-strip-table .is-busy { color: var(--busy); background: var(--busy-bg); }
.availability-strip-table td a, .availability-strip-table td > span { display: grid; width: 100%; height: 100%; place-items: center; font-weight: 900; text-decoration: none; }
.availability-strip-table td a:hover { color: var(--white); background: var(--free); }
.availability-strip-table .room-name-cell, .availability-strip-table tbody th, .availability-strip-table thead th:first-child { position: sticky; left: 0; z-index: 2; min-width: 190px; padding: 0 15px; color: var(--forest); background: var(--white); text-align: left; box-shadow: 7px 0 12px rgb(23 58 48 / 5%); }
.availability-strip-table tbody th span, .availability-strip-table tbody th small { display: block; }
.availability-strip-table tbody th small { color: var(--muted); font-weight: 500; }
.availability-preview-footer { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 24px; }
.availability-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; color: var(--muted); font-size: .78rem; }
.availability-legend span { display: inline-flex; align-items: center; gap: 7px; }
.availability-legend i, .admin-calendar-legend i { display: inline-block; width: 17px; height: 17px; border-radius: 4px; }
.legend-free { background: var(--free-bg); border: 1px solid #b9d9c3; }
.legend-busy, .legend-booking { background: var(--busy-bg); border: 1px solid #e1afa3; }
.legend-past { background: #eeeae3; border: 1px solid #dbd5ca; }
.legend-blocked { background: var(--blocked-bg); border: 1px solid #c3b9df; }

.story-section { overflow: hidden; background: var(--cream); }
.story-grid { display: grid; grid-template-columns: 1.08fr minmax(430px, .92fr); align-items: center; gap: clamp(45px, 6vw, 85px); }
.story-image { position: relative; }
.story-image::before { position: absolute; top: -22px; right: 26px; bottom: 26px; left: -22px; border: 1px solid #c9baa4; border-radius: 4px; content: ""; }
.story-image img { position: relative; width: 100%; height: auto; min-height: 570px; object-fit: cover; border-radius: 4px; }
.story-copy h2 { max-width: 13ch; margin-bottom: 28px; font-size: clamp(2.55rem, 3.65vw, 3.8rem); }
.story-copy > p:not(.eyebrow):not(.lead) { color: var(--muted); }

.amenities-section { color: var(--white); background: var(--forest); }
.amenities-section h2, .amenities-section h3 { color: var(--white); }
.centered { max-width: 780px; margin-right: auto; margin-left: auto; text-align: center; }
.amenities-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgb(255 255 255 / 18%); border-bottom: 1px solid rgb(255 255 255 / 18%); }
.amenity { min-height: 300px; padding: 38px 30px; border-right: 1px solid rgb(255 255 255 / 18%); }
.amenity:last-child { border-right: 0; }
.amenity > span { display: block; margin-bottom: 62px; color: #eaa58e; font-family: var(--serif); }
.amenity h3 { margin-bottom: 16px; font-size: 1.55rem; }
.amenity p { color: rgb(255 255 255 / 68%); font-size: .9rem; }
.amenities-notes { margin-top: 30px; color: rgb(255 255 255 / 72%); text-align: center; }
.amenities-notes p { margin: 0; }

.seasons-section { background: var(--paper); }
.seasons-grid { display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; gap: 85px; }
.seasons-copy h2 { margin-bottom: 25px; }
.seasons-copy p:not(.eyebrow) { margin-bottom: 30px; color: var(--muted); }
.seasons-image img { width: 100%; height: 590px; object-fit: cover; border-radius: var(--radius); }
.cta-section { padding: 78px 0; color: var(--white); background: var(--rust); }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.cta-inner h2 { color: var(--white); font-size: clamp(2.4rem, 5vw, 4rem); }
.cta-inner p:not(.eyebrow) { margin: 12px 0 0; color: rgb(255 255 255 / 77%); }

.site-footer { padding: 72px 0 24px; color: rgb(255 255 255 / 74%); background: var(--forest-3); }
.site-footer a { color: inherit; }
.footer-grid { display: grid; grid-template-columns: 1.35fr repeat(3, .8fr); gap: 55px; }
.footer-brand img { width: 230px; margin-bottom: 20px; filter: brightness(0) invert(1); opacity: .9; }
.footer-brand p { max-width: 260px; }
.site-footer h2 { margin-bottom: 18px; color: var(--white); font-family: var(--sans); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.site-footer p, .site-footer li { font-size: .86rem; }
.footer-small { color: rgb(255 255 255 / 45%); }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin: 8px 0; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 54px; padding-top: 24px; border-top: 1px solid rgb(255 255 255 / 12%); }
.footer-bottom p { margin: 0; color: rgb(255 255 255 / 42%); font-size: .72rem; }

.cookie-note { position: fixed; right: 20px; bottom: 20px; left: 20px; z-index: 200; display: grid; max-width: 980px; grid-template-columns: 1fr auto auto; align-items: center; gap: 22px; margin-inline: auto; padding: 18px 20px; color: var(--white); background: var(--forest-3); border: 1px solid rgb(255 255 255 / 15%); border-radius: 12px; box-shadow: 0 20px 70px rgb(0 0 0 / 35%); }
.cookie-note[hidden] { display: none; }
.cookie-note strong { display: block; font-family: var(--serif); font-size: 1.1rem; }
.cookie-note p { margin: 2px 0 0; color: rgb(255 255 255 / 65%); font-size: .75rem; }
.cookie-note > a { font-size: .75rem; }
.cookie-note-actions { display: flex; gap: 8px; }
.cookie-note-actions .button { white-space: nowrap; }
.flash { position: fixed; top: 95px; left: 50%; z-index: 300; width: min(640px, calc(100% - 30px)); padding: 14px 20px; border-radius: 8px; box-shadow: var(--shadow); transform: translateX(-50%); }
.flash-success { color: #0c5538; background: #dcf7e8; border: 1px solid #a6dfbe; }
.flash-error { color: #7d271d; background: #fff0ec; border: 1px solid #edb5aa; }

.page-intro, .booking-page-head { padding: clamp(75px, 9vw, 130px) 0 65px; color: var(--white); background: var(--forest); }
.page-intro h1, .booking-page-head h1 { color: var(--white); font-size: clamp(3.2rem, 7vw, 6rem); }
.page-intro .lead, .booking-page-head .lead { margin-top: 24px; color: rgb(255 255 255 / 72%); }
.page-intro-wide h1, .page-intro-wide .lead { max-width: 820px; }
.booking-calendar-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 12px; color: var(--white); font-size: .8rem; font-weight: 800; text-decoration: none; }
.booking-calendar-link span { color: #edb7a5; }
.contact-section { padding-top: 85px; }
.contact-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.contact-grid > div { min-height: 420px; padding: clamp(35px, 5vw, 65px); }
.contact-primary { color: var(--white); background: var(--forest); }
.contact-primary h2 { margin-bottom: 28px; color: var(--white); }
.contact-primary address { margin-bottom: 28px; color: rgb(255 255 255 / 72%); }
.contact-link { color: var(--white); font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 2rem); text-decoration: none; }
.contact-image { padding: 0 !important; }
.contact-image img { width: 100%; height: 100%; object-fit: cover; }
.contact-info { background: var(--cream); }
.contact-info h2, .operator-info h2 { margin-bottom: 28px; font-size: 2.25rem; }
.contact-info dl { margin: 0 0 25px; }
.contact-info dl div { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--line); }
.contact-info dt { color: var(--muted); }
.contact-info dd { margin: 0; font-weight: 750; }
.operator-info { border: 1px solid var(--line); }
.contact-grid > .contact-map { grid-column: 1 / -1; min-height: 430px; padding: 0; overflow: hidden; border: 1px solid var(--line); border-top: 0; }
.contact-map iframe { display: block; width: 100%; height: 460px; border: 0; }
.map-consent-placeholder { display: grid; min-height: 460px; place-content: center; gap: 14px; padding: clamp(35px, 7vw, 90px); text-align: center; background: var(--cream); }
.map-consent-placeholder h2, .map-consent-placeholder p { max-width: 720px; margin: 0 auto; }
.map-consent-placeholder p { color: var(--muted); }
.map-consent-placeholder > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 8px; }

.room-detail-hero { position: relative; height: clamp(540px, 73vh, 680px); overflow: hidden; background: var(--forest); }
.room-detail-hero::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgb(7 25 20 / 78%), rgb(7 25 20 / 7%) 65%); content: ""; }
.room-detail-image, .room-detail-image img { width: 100%; height: 100%; }
.room-detail-image img { object-fit: cover; }
.room-detail-title { position: absolute; right: 0; bottom: clamp(48px, 6vw, 72px); left: 0; z-index: 1; }
.room-detail-title .back-link { margin-bottom: 30px; }
.room-detail-title .eyebrow { margin-bottom: 18px; }
.room-detail-title h1 { max-width: 950px; color: var(--white); font-size: clamp(3.3rem, 6.7vw, 6.6rem); line-height: .98; }
.room-detail-grid { display: grid; grid-template-columns: 1fr 390px; align-items: start; gap: 90px; }
.room-detail-grid-wide { grid-template-columns: minmax(0, 900px); justify-content: center; }
.room-detail-copy .lead { max-width: 720px; }
.room-detail-copy > h2 { margin: 60px 0 25px; font-size: 2.3rem; }
.feature-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 35px; margin: 0; padding: 0; list-style: none; }
.feature-list li { position: relative; padding: 12px 0 12px 28px; border-bottom: 1px solid var(--line); }
.feature-list li::before { position: absolute; left: 2px; color: var(--rust); content: "✓"; font-weight: 900; }
.room-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 50px; padding: 28px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.room-facts div { padding: 0 20px; border-right: 1px solid var(--line); text-align: center; }
.room-facts div:last-child { border-right: 0; }
.room-facts strong { display: block; color: var(--forest); font-family: var(--serif); font-size: 1.4rem; }
.room-facts span { color: var(--muted); font-size: .7rem; text-transform: uppercase; }
.booking-aside { position: sticky; top: 110px; padding: 34px; background: var(--cream); border-radius: var(--radius); box-shadow: var(--shadow); }
.booking-aside h2 { margin-bottom: 26px; font-size: 2rem; }
.aside-help { margin: 18px 0 0; color: var(--muted); font-size: .8rem; text-align: center; }
.aside-calendar-link { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding: 11px 0; color: var(--forest); border-bottom: 1px solid var(--line); font-size: .78rem; font-weight: 800; text-decoration: none; }
.aside-calendar-link span { color: var(--rust); }
.room-mini-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; padding-bottom: 110px; }
.room-mini-gallery img { width: 100%; height: 520px; object-fit: cover; border-radius: 10px; }
.room-mini-gallery img:first-child:nth-last-child(n + 3) { grid-column: 1 / -1; height: 620px; }

.stack-form { display: grid; gap: 16px; }
.stack-form label, .guest-form > label, .form-row label { display: grid; gap: 6px; color: var(--forest); font-size: .78rem; font-weight: 750; }
.stack-form input, .stack-form select, .guest-form input, .guest-form select, .guest-form textarea, .booking-search input, .booking-search select { width: 100%; min-height: 49px; padding: 10px 13px; border: 1px solid #cfc6b7; border-radius: 6px; outline: 0; color: var(--ink); background: var(--white); }
input:focus, select:focus, textarea:focus { border-color: var(--rust) !important; box-shadow: 0 0 0 3px rgb(188 85 54 / 12%); }
.booking-search-section { position: relative; z-index: 2; margin-top: -24px; }
.booking-search { display: grid; grid-template-columns: 1fr 1fr .8fr 1fr; gap: 16px; align-items: end; padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.booking-search label { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.booking-search input, .booking-search select { display: block; margin-top: 6px; }
.form-error { margin: 16px 0 0; color: #8e2f24; }
.booking-results { padding-top: 70px; }
.booking-progress { display: flex; max-width: 760px; align-items: center; justify-content: center; gap: 14px; margin: 0 auto 60px; color: #9ba19e; }
.booking-progress span { display: flex; align-items: center; gap: 8px; font-family: var(--serif); font-size: 1.05rem; }
.booking-progress span::first-letter { font-family: var(--sans); }
.booking-progress em { font-family: var(--sans); font-size: .72rem; font-style: normal; font-weight: 700; white-space: nowrap; }
.booking-progress i { width: 80px; height: 1px; background: var(--line); }
.booking-progress .active { color: var(--rust); }
.booking-progress .done { color: var(--forest); }
.booking-progress.compact { justify-content: flex-start; margin-bottom: 45px; }
.empty-state { max-width: 670px; margin: 35px auto; padding: 70px 40px; background: var(--cream); border-radius: var(--radius); text-align: center; }
.empty-state > span { color: var(--rust); font-family: var(--serif); font-size: 2.5rem; }
.empty-state h2 { margin: 16px 0; font-size: 2.4rem; }
.empty-state p { margin: 0; color: var(--muted); }
.available-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 30px; }
.available-heading h2 { font-size: 2.5rem; }
.available-heading > p { color: var(--muted); }
.available-list { display: grid; gap: 18px; }
.available-room { display: grid; grid-template-columns: 250px 1fr 205px; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 14px; transition: border-color .2s ease, box-shadow .2s ease; }
.available-room.selected { border: 2px solid var(--rust); box-shadow: 0 15px 42px rgb(188 85 54 / 12%); }
.available-room > img { width: 100%; height: 100%; min-height: 230px; object-fit: cover; }
.available-room-main { padding: 28px; }
.available-room-main h3 { margin-bottom: 10px; }
.available-room-main p:not(.room-subtitle) { margin-bottom: 14px; color: var(--muted); font-size: .9rem; }
.available-room-main > span { color: var(--forest); font-size: .72rem; font-weight: 700; }
.available-room-price { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; padding: 24px; background: var(--cream); }
.available-room-price strong { color: var(--forest); font-family: var(--serif); font-size: 1.7rem; }
.available-room-price small { color: var(--muted); font-size: .7rem; }
.available-room-price .button { margin-top: 18px; }
.booking-details-section { background: var(--cream); }
.booking-details-grid { display: grid; grid-template-columns: 1fr 390px; align-items: start; gap: 70px; }
.booking-form-wrap > h2 { margin-bottom: 35px; font-size: 2.7rem; }
.guest-form { display: grid; gap: 22px; }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.phone-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 18px; }
.phone-fields label { display: grid; gap: 6px; color: var(--forest); font-size: .78rem; font-weight: 750; min-width: 0; }
.phone-fields select, .phone-fields input { width: 100%; min-width: 0; }
.phone-help { display: block; margin-top: 8px; color: var(--muted); font-size: .76rem; }
@media (max-width: 560px) { .phone-fields { grid-template-columns: 1fr; gap: 12px; } }
.guest-form small { color: var(--muted); font-weight: 500; }
.guest-form textarea { resize: vertical; }
.honeypot { position: absolute !important; left: -10000px !important; }
.notice { padding: 16px 18px; color: #60441d; background: #fff6de; border: 1px solid #efd48f; border-radius: 8px; font-size: .85rem; }
.payment-choice { display: grid; gap: 10px; margin: 10px 0 0; padding: 0; border: 0; }
.payment-choice legend { margin-bottom: 10px; color: var(--forest); font-size: .78rem; font-weight: 800; }
.payment-choice > label { display: flex; align-items: center; gap: 14px; padding: 15px 16px; background: var(--white); border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.payment-choice > label.payment-disabled { opacity: .62; cursor: default; }
.payment-choice input { width: 18px; min-height: 18px; accent-color: var(--rust); }
.payment-choice span { display: flex; flex: 1; flex-direction: column; }
.payment-choice span small { font-size: .72rem; }
.payment-choice b { color: #174797; font-size: .75rem; }
.check-label { display: flex !important; grid-template-columns: none !important; align-items: flex-start; gap: 12px !important; font-weight: 500 !important; line-height: 1.5; }
.check-label input { width: 18px; min-height: 18px; margin-top: 3px; accent-color: var(--rust); }
.extra-bed-option { margin: 2px 0 8px; padding: 17px 18px; background: #edf5ef; border: 1px solid #c7ddce; border-radius: 10px; cursor: pointer; }
.extra-bed-option span { display: grid; gap: 3px; }
.extra-bed-option strong { color: var(--forest); font-size: .9rem; }
.extra-bed-option small { color: var(--muted); font-size: .72rem; font-weight: 500; }
.billing-fields { display: grid; gap: 18px; margin: 2px 0; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: rgb(255 255 255 / 48%); }
.billing-fields legend { padding: 0 8px; color: var(--forest); font-family: var(--serif); font-size: 1.35rem; font-weight: 700; }
.company-toggle { margin: 0; padding: 15px 16px; background: var(--white); border: 1px solid #cfc6b7; border-radius: 9px; cursor: pointer; }
.company-toggle span { display: grid; gap: 2px; }
.company-toggle strong { color: var(--forest); font-size: .85rem; }
.company-fields { display: grid; gap: 16px; padding: 18px; background: #edf5ef; border: 1px solid #c7ddce; border-radius: 9px; }
.company-fields > label { display: grid; gap: 6px; color: var(--forest); font-size: .78rem; font-weight: 750; }
.form-field { display: grid; align-content: start; gap: 6px; color: var(--forest); font-size: .78rem; font-weight: 750; }
.ares-lookup { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.ares-lookup input { border-radius: 6px 0 0 6px; }
.ares-lookup button { min-width: 126px; padding: 0 13px; border: 0; color: var(--white); background: var(--forest); border-radius: 0 6px 6px 0; font-size: .7rem; font-weight: 800; cursor: pointer; }
.ares-lookup button:disabled { opacity: .65; cursor: wait; }
[data-ares-status] { min-height: 1.2em; color: #2f6b50 !important; font-size: .68rem !important; }
[data-ares-status].is-error { color: #9b3426 !important; }
.billing-address-primary { grid-template-columns: minmax(0, 2fr) minmax(150px, 1fr); }
.billing-note { margin: -3px 0 0; color: var(--muted); font-size: .7rem; }
.secure-note { margin: -8px 0 0; color: var(--muted); font-size: .72rem; text-align: center; }
.booking-summary { position: sticky; top: 110px; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.booking-summary > img { width: 100%; height: 240px; object-fit: cover; }
.booking-summary > div { padding: 28px; }
.booking-summary h2 { margin-bottom: 24px; font-size: 2rem; }
.booking-summary dl { display: grid; gap: 10px; margin: 0; }
.booking-summary dl div { display: flex; justify-content: space-between; gap: 20px; }
.booking-summary dt { color: var(--muted); font-size: .78rem; }
.booking-summary dd { margin: 0; font-size: .78rem; font-weight: 750; text-align: right; }
.booking-summary hr { margin: 22px 0; border: 0; border-top: 1px solid var(--line); }
.price-total { margin-top: 9px; padding-top: 15px; border-top: 1px solid var(--line); }
.price-total dt, .price-total dd { color: var(--forest); font-family: var(--serif); font-size: 1.35rem !important; }
.summary-note { margin: 18px 0 0; color: var(--muted); font-size: .7rem; }

.confirmation-section { min-height: 75vh; padding: 100px 0; background: var(--cream); }
.confirmation-card { padding: clamp(40px, 7vw, 75px); background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); text-align: center; }
.confirmation-icon { display: grid; width: 82px; height: 82px; place-items: center; margin: 0 auto 28px; color: var(--rust); background: #fbe6df; border-radius: 50%; font-family: var(--serif); font-size: 2rem; }
.confirmation-icon.success { color: #16623e; background: #dff3e8; }
.confirmation-card h1 { font-size: clamp(3rem, 7vw, 5rem); }
.confirmation-card .lead { max-width: 620px; margin: 22px auto 35px; color: var(--muted); }
.confirmation-summary { display: grid; grid-template-columns: repeat(2, 1fr); margin: 35px 0; border: 1px solid var(--line); border-radius: 12px; text-align: left; }
.confirmation-summary div { padding: 18px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.confirmation-summary div:nth-child(2n) { border-right: 0; }
.confirmation-summary div:last-child { border-bottom: 0; }
.confirmation-summary div:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.confirmation-summary div:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.confirmation-summary span { display: block; color: var(--muted); font-size: .7rem; text-transform: uppercase; }
.confirmation-actions { display: flex; align-items: center; justify-content: center; gap: 28px; margin-top: 35px; }

.legal-content { padding-top: 70px; padding-bottom: 110px; }
.legal-content h2 { margin: 45px 0 17px; font-size: 2rem; }
.legal-content p, .legal-content li { color: #46554f; }
.legal-content li { margin: 7px 0; }
.legal-summary { display: grid; grid-template-columns: 110px 1fr; gap: 25px; padding: 24px; background: var(--cream); border-left: 4px solid var(--rust); }
.legal-summary strong { color: var(--forest); }
.legal-updated { margin-top: 55px !important; color: var(--muted) !important; font-size: .8rem; }
.cookie-table { margin: 25px 0; border: 1px solid var(--line); border-radius: 8px; }
.cookie-table > div { display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 15px; padding: 18px; }

.public-availability-section { padding-top: 70px; background: var(--paper); }
.availability-room-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 28px; }
.availability-room-tab { display: flex; min-height: 78px; flex-direction: column; justify-content: center; padding: 14px 17px; color: var(--forest); background: var(--cream); border: 1px solid var(--line); border-radius: 10px; text-decoration: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.availability-room-tab:hover { border-color: var(--rust); transform: translateY(-2px); }
.availability-room-tab.is-active { color: var(--white); background: var(--forest); border-color: var(--forest); }
.availability-room-tab span { font-weight: 800; line-height: 1.3; }
.availability-room-tab small { margin-top: 3px; color: var(--muted); font-size: .7rem; }
.availability-room-tab.is-active small { color: rgb(255 255 255 / 68%); }
.availability-selected-room { display: grid; grid-template-columns: 285px 1fr; gap: 30px; align-items: center; margin-bottom: 32px; overflow: hidden; background: var(--cream); border: 1px solid var(--line); border-radius: 14px; }
.availability-selected-room > img { width: 100%; height: 100%; min-height: 230px; object-fit: cover; }
.availability-selected-room > div { padding: 25px 30px 25px 0; }
.availability-selected-room h2 { margin-bottom: 8px; font-size: clamp(2rem, 3.4vw, 3rem); }
.availability-selected-room p:not(.eyebrow) { margin-bottom: 14px; color: var(--muted); }
.selected-room-facts { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 17px; }
.selected-room-facts span { padding: 5px 9px; color: var(--forest); background: var(--white); border: 1px solid var(--line); border-radius: 20px; font-size: .67rem; font-weight: 750; }
.availability-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 25px; margin-bottom: 25px; }
.availability-toolbar form { display: grid; gap: 5px; }
.availability-toolbar label { color: var(--muted); font-size: .68rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.availability-toolbar select { min-width: 220px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 7px; color: var(--forest); background: var(--white); font-weight: 750; }
.calendar-nav, .stay-calendar-toolbar a { display: inline-flex; min-height: 48px; max-width: 100%; align-items: center; justify-content: center; justify-self: start; gap: 9px; padding: 11px 18px; color: var(--white); background: var(--forest); border: 2px solid var(--forest); border-radius: 8px; box-shadow: 0 3px 8px rgb(23 58 48 / 12%); font-size: .95rem; font-weight: 800; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: background .18s ease, border-color .18s ease; }
.calendar-nav:last-child, .stay-calendar-toolbar a:last-child { justify-self: end; }
.calendar-nav:not(.is-disabled):hover, .stay-calendar-toolbar a:hover { color: var(--white); background: var(--forest-3); border-color: var(--forest-3); }
.calendar-nav:focus-visible, .stay-calendar-toolbar a:focus-visible { outline: 3px solid var(--rust); outline-offset: 3px; }
.calendar-nav.is-disabled { color: #707974; background: #eeeae3; border-color: var(--line); box-shadow: none; cursor: default; }
.availability-calendar-pair { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.availability-month { padding: 22px; background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 12px 38px rgb(23 58 48 / 6%); }
.availability-month h2 { margin-bottom: 17px; font-family: var(--sans); font-size: 1.05rem; letter-spacing: 0; text-align: center; }
.month-weekdays, .month-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.month-weekdays { margin-bottom: 5px; color: var(--muted); font-size: .68rem; font-weight: 800; text-align: center; }
.month-weekdays span:nth-last-child(-n+2) { color: var(--rust); }
.calendar-day { display: flex; min-width: 0; aspect-ratio: 1.08; flex-direction: column; align-items: center; justify-content: center; color: var(--muted); background: #f5f2ec; border: 1px solid transparent; border-radius: 7px; line-height: 1.15; text-decoration: none; }
.calendar-day strong { font-size: .88rem; }
.calendar-day small { margin-top: 5px; font-size: .58rem; }
.calendar-day.is-empty { visibility: hidden; }
.calendar-day.is-free { color: var(--free); background: var(--free-bg); border-color: #c9e2d0; transition: transform .15s ease, color .15s ease, background .15s ease; }
.calendar-day.is-free:hover { z-index: 1; color: var(--white); background: var(--free); transform: scale(1.06); }
.calendar-day.is-busy { color: var(--busy); background: var(--busy-bg); }
.calendar-day.is-past { color: #a4a8a5; background: #efede8; }
.calendar-day.is-today { box-shadow: inset 0 0 0 2px var(--rust); }
.public-availability-section > .container > .availability-legend { justify-content: center; margin: 24px 0; }
.availability-tip { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px 25px; margin-top: 28px; padding: 24px 28px; background: var(--cream); border-radius: 12px; }
.availability-tip strong { color: var(--forest); font-family: var(--serif); font-size: 1.25rem; }
.availability-tip p { margin: 0; color: var(--muted); font-size: .85rem; }

.payment-demo-section { min-height: 82vh; padding: 80px 20px; background: #edf2f7; }
.payment-demo-card { max-width: 520px; margin: 0 auto; padding: 40px; background: var(--white); border-radius: 14px; box-shadow: 0 25px 80px rgb(18 45 76 / 18%); }
.demo-bank-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 35px; color: #174797; }
.demo-bank-head strong { font-size: 1.7rem; }
.demo-bank-head span { font-size: .65rem; letter-spacing: .12em; }
.payment-demo-card h1 { margin-bottom: 10px; color: #174797; font-family: var(--sans); font-size: 2.7rem; }
.fake-card-fields { display: grid; gap: 14px; margin: 30px 0; padding: 25px; background: #f3f6f9; border-radius: 10px; }
.fake-card-fields > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fake-card-fields label { color: #526273; font-size: .72rem; }
.fake-card-fields input { width: 100%; margin-top: 6px; padding: 12px; border: 1px solid #ccd5de; border-radius: 5px; }
.demo-disclaimer { margin: 18px 0 0; color: #7d8791; font-size: .7rem; text-align: center; }

.admin-page .site-header, .admin-page .site-footer, .admin-page .cookie-note { display: none !important; }
.admin-login-section { display: grid; min-height: 100vh; place-items: center; padding: 40px 20px; background: var(--cream); }
.admin-login-card { width: min(440px, 100%); padding: 46px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.admin-login-card > img { margin-bottom: 35px; }
.admin-login-card h1 { margin-bottom: 30px; font-size: 3.5rem; }
.admin-shell { min-height: 100vh; padding: 34px 0 100px; background: #f0eee8; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 35px; }
.admin-topbar h1 { font-size: clamp(2.25rem, 4vw, 3.2rem); }
.admin-subtitle { margin: 8px 0 0; color: var(--muted); font-size: .86rem; }
.admin-user { display: flex; align-items: center; gap: 18px; color: var(--muted); font-size: .8rem; }
.admin-account-link { color: var(--forest) !important; text-decoration: none; }
.admin-account-link > span { display: flex; flex-direction: column; color: var(--forest); font-weight: 800; }
.admin-account-link small { color: var(--muted); font-size: .65rem; font-weight: 500; }
.admin-account-link:hover span { color: var(--rust); }
.admin-user a { color: var(--rust); font-weight: 800; }
.admin-site-link { padding: 8px 12px; color: var(--forest) !important; background: var(--white); border: 1px solid var(--line); border-radius: 7px; text-decoration: none; }
.admin-nav { position: sticky; top: 0; z-index: 20; display: flex; gap: 6px; margin-bottom: 18px; padding-top: 9px; padding-bottom: 9px; background: rgb(240 238 232 / 94%); backdrop-filter: blur(12px); }
.admin-nav a { padding: 8px 14px; color: var(--forest); background: var(--white); border: 1px solid var(--line); border-radius: 7px; font-size: .75rem; font-weight: 800; text-decoration: none; }
.admin-nav a:hover { color: var(--white); background: var(--forest); }
.admin-nav a.active { color: var(--white); background: var(--forest); }
.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 24px; }
.admin-stats > div { padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; }
.admin-stats span { display: block; color: var(--muted); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.admin-stats strong { display: block; margin-top: 8px; color: var(--forest); font-family: var(--serif); font-size: 2rem; }
.admin-stats small { display: block; margin-top: 3px; color: var(--muted); font-size: .65rem; }
.admin-alert { display: flex; gap: 18px; margin-bottom: 24px; padding: 18px 22px; color: #6f4e14; background: #fff2cc; border: 1px solid #ecd28b; border-radius: 10px; font-size: .82rem; }
.admin-alert code { font-size: .75rem; }
.admin-alert-error { color: #7b3027; background: #f9e7e2; border-color: #e6b7ad; }
.admin-grid { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.admin-panel { min-width: 0; padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: 14px; }
.admin-panel-wide { grid-column: 1 / -1; }
.panel-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 24px; }
.panel-head h2 { font-size: 2rem; }
.panel-head > span { color: var(--muted); font-size: .75rem; }
.panel-head p:not(.eyebrow), .panel-intro { max-width: 670px; margin: 7px 0 0; color: var(--muted); font-size: .78rem; }
.table-scroll { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.admin-table th { padding: 12px 10px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: .65rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.admin-table td { min-width: 110px; padding: 15px 10px; border-bottom: 1px solid #ebe7df; vertical-align: top; }
.admin-table td:nth-child(4) { min-width: 220px; }
.admin-table small { display: block; margin-top: 3px; color: var(--muted); font-size: .68rem; }
.empty-cell { padding: 45px !important; color: var(--muted); text-align: center; }
.status { display: inline-block; padding: 5px 9px; border-radius: 20px; font-size: .63rem; font-weight: 800; white-space: nowrap; }
.status-paid, .status-confirmed { color: #14633e; background: #ddf3e7; }
.status-cancelled, .status-expired { color: #7b3027; background: #f8e4df; }
.status-awaiting_payment { color: #745419; background: #fff1c9; }
.status-invoice-paid { color: #14633e; background: #ddf3e7; }
.status-invoice-issued { color: #745419; background: #fff1c9; }
.status-invoice-cancelled { color: #7b3027; background: #f8e4df; }
.status-test { margin-left: 4px; color: #684a11; background: #ffedab; }
.status-form { display: flex; min-width: 190px; }
.status-form select { max-width: 125px; padding: 6px; border: 1px solid var(--line); border-radius: 5px 0 0 5px; font-size: .7rem; }
.status-form button { padding: 0 10px; border: 0; color: var(--white); background: var(--forest); border-radius: 0 5px 5px 0; font-size: .68rem; font-weight: 800; }
.compact-form { padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.block-list { margin-top: 20px; }
.block-list h3 { margin: 0 0 8px; font-family: var(--sans); font-size: .78rem; letter-spacing: 0; }
.block-list > p { color: var(--muted); font-size: .8rem; }
.block-list > div { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.block-list span { display: flex; flex-direction: column; }
.block-list small { color: var(--muted); font-size: .68rem; }
.block-list button { border: 0; color: var(--rust); background: transparent; font-size: 1.5rem; }
.price-admin-list { display: grid; gap: 12px; }
.price-admin-list form { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.price-admin-list label { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; background: #f7f5f0; border-radius: 7px; font-size: .75rem; font-weight: 700; }
.price-admin-list input { width: 95px; padding: 7px; border: 1px solid var(--line); border-radius: 4px; }
.price-admin-list button { padding: 0 12px; color: var(--white); background: var(--forest); border: 0; border-radius: 6px; font-size: .7rem; }
.lockbox-list { display: grid; gap: 12px; }
.lockbox-card { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(190px, 260px) auto; align-items: end; gap: 16px; padding: 18px; background: #f7f5f0; border: 1px solid var(--line); border-radius: 9px; }
.lockbox-card strong, .lockbox-card small { display: block; }
.lockbox-card small { margin-top: 5px; color: var(--muted); }
.lockbox-card label, .sms-settings-form label { display: grid; gap: 6px; font-weight: 700; }
.lockbox-card input, .sms-settings-form input[type="text"], .sms-settings-form textarea { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); font: inherit; }
.lockbox-card button { min-height: 43px; padding: 0 16px; color: var(--white); background: var(--forest); border: 0; border-radius: 6px; font-weight: 700; cursor: pointer; }
.lockbox-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.lockbox-actions .lockbox-reveal { color: var(--forest); background: var(--white); border: 1px solid var(--line); }
.lockbox-actions button:disabled { opacity: .5; cursor: not-allowed; }
.lockbox-current { grid-column: 1 / -1; padding: 10px 12px; color: var(--forest); background: #e8f3e7; border-radius: 6px; font-weight: 700; }
.lockbox-current[hidden] { display: none; }
.sms-settings-form { display: grid; gap: 17px; max-width: 520px; }
.sms-settings-form label small { color: var(--muted); font-weight: 400; }
.sms-settings-form .sms-toggle { display: flex; align-items: center; gap: 8px; }
.sms-settings-form .sms-toggle input { width: 18px; height: 18px; }
.sms-settings-form button { justify-self: start; }
.sms-status-ok, .sms-status-error { padding: 12px 16px; border-radius: 7px; }
.sms-status-ok { color: #184b31; background: #e8f3e7; }
.sms-status-error { color: #8b3023; background: #f9e8e2; }
.sms-counts { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.sms-counts span { padding: 7px 11px; background: #f7f5f0; border-radius: 6px; }
.sms-section-tabs { grid-column: 1 / -1; display: flex; gap: 8px; padding: 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.sms-section-tabs a { display: flex; align-items: center; justify-content: center; min-height: 46px; padding: 11px 26px; border-radius: 6px; color: var(--forest); font-size: .85rem; font-weight: 700; text-decoration: none; }
.sms-section-tabs a:hover { background: #f7f5f0; }
.sms-section-tabs a[aria-current="page"] { color: var(--white); background: var(--forest); }
.sms-section-tabs a:focus-visible { outline: 3px solid var(--rust); outline-offset: 2px; }
.sms-log-panel { scroll-margin-top: 90px; }
.sms-log-panel .panel-head > span { white-space: nowrap; }
.sms-log-panel .panel-head { gap: 16px; }
.sms-log-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 0 0 24px; }
.sms-log-filters label { display: grid; gap: 7px; flex: 1 1 150px; font-size: .8rem; font-weight: 700; }
.sms-log-filters input, .sms-log-filters select { width: 100%; min-width: 0; min-height: 44px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--forest); background: var(--white); font: inherit; }
.sms-log-filters .table-action { padding: 12px 0; }
.sms-log-filters button { min-height: 44px; }
.sms-log-list { display: grid; gap: 16px; }
.sms-log-entry { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: #faf8f3; overflow-wrap: anywhere; }
.sms-log-entry header > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.sms-log-entry time { color: var(--muted); font-size: .75rem; }
.sms-log-entry h3 { margin: 12px 0 16px; font: 700 1rem/1.4 var(--sans); }
.sms-log-status { display: inline-block; padding: 5px 10px; border-radius: 5px; color: var(--forest); background: #ece9e2; font-size: .72rem; font-weight: 700; }
.sms-log-status-sent { color: #184b31; background: #e2efdf; }
.sms-log-status-failed { color: #8b3023; background: #f9e8e2; }
.sms-log-status-processing, .sms-log-status-pending { color: #76541b; background: #f8edce; }
.sms-log-meta { display: flex; flex-wrap: wrap; gap: 18px 36px; margin: 0 0 16px; }
.sms-log-meta dt { margin-bottom: 4px; color: var(--muted); font-size: .72rem; }
.sms-log-meta dd { margin: 0; font-size: .85rem; font-weight: 700; }
.sms-log-meta a { text-decoration: underline; text-underline-offset: 3px; }
.sms-log-message { margin: 0; padding: 14px 16px; border-radius: 6px; background: var(--white); white-space: pre-wrap; font-size: .85rem; line-height: 1.65; }
.sms-log-message-missing { color: var(--muted); font-style: italic; }
.sms-log-error { margin: 14px 0 0; color: #8b3023; font-size: .8rem; }
.sms-log-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; margin-top: 22px; font-size: .8rem; }
@media (max-width: 600px) {
  .sms-section-tabs { gap: 4px; padding: 4px; }
  .sms-section-tabs a { flex: 1; min-width: 0; padding: 10px 7px; font-size: .8rem; }
  .sms-log-filters label { flex-basis: 100%; }
  .sms-log-entry { padding: 15px; }
  .sms-log-meta { gap: 12px 20px; }
  .sms-log-message { padding: 12px; font-size: .9375rem; }
}
@media (max-width: 740px) {
  .sms-queue-panel .admin-table, .sms-queue-panel .admin-table tbody { display: block; }
  .sms-queue-panel .admin-table thead { display: none; }
  .sms-queue-panel .admin-table tr[data-sms-row] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-bottom: 14px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: #faf8f3; }
  .sms-queue-panel .admin-table tr[data-sms-row] td { display: block; min-width: 0; padding: 8px; border: 0; overflow-wrap: anywhere; }
  .sms-queue-panel .admin-table tr[data-sms-row] td::before { display: block; margin-bottom: 3px; color: var(--muted); content: attr(data-label); font-size: .65rem; font-weight: 700; }
  .sms-queue-panel .admin-table tr[data-sms-row] td:nth-child(2), .sms-queue-panel .admin-table tr[data-sms-row] td:nth-child(3), .sms-queue-panel .admin-table tr[data-sms-row] td:nth-child(5), .sms-queue-panel .admin-table tr[data-sms-row] td:last-child { grid-column: 1 / -1; }
}
.panel-note { margin: 18px 0 0; color: var(--muted); font-size: .7rem; }
.admin-calendar-panel, #rezervace, #blockace, #cenik { scroll-margin-top: 74px; }
.admin-calendar-panel { overflow: hidden; }
.admin-calendar-head { align-items: flex-end; gap: 25px; }
.admin-month-controls { display: flex; align-items: center; gap: 7px; }
.admin-month-controls > a { display: grid; min-width: 40px; height: 40px; place-items: center; color: var(--forest); background: #f7f5f0; border: 1px solid var(--line); border-radius: 7px; font-weight: 800; text-decoration: none; }
.admin-month-controls input { height: 40px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 7px; color: var(--forest); background: var(--white); font-weight: 750; }
.admin-month-controls .today-link { width: auto; padding: 0 10px; font-size: .7rem; }
.room-calendar-scroll { width: 100%; max-width: 100%; overflow-x: auto; contain: inline-size paint; border: 1px solid var(--line); border-radius: 10px; scrollbar-color: var(--rust) #eeeae2; }
.room-calendar-scroll:focus { outline: 3px solid rgb(188 85 54 / 16%); outline-offset: 2px; }
.room-calendar-table { min-width: 1440px; border-collapse: separate; border-spacing: 2px; padding: 5px; font-size: .68rem; }
.room-calendar-table th, .room-calendar-table td { height: 48px; padding: 0; text-align: center; }
.room-calendar-table thead th { color: var(--muted); background: #f5f2ec; }
.room-calendar-table thead th span, .room-calendar-table thead th strong { display: block; line-height: 1.2; }
.room-calendar-table thead th span { font-size: .58rem; }
.room-calendar-table thead th.is-weekend { color: var(--rust); }
.room-calendar-table .room-name-cell { position: sticky; left: 0; z-index: 4; width: 190px; min-width: 190px; padding: 0 13px; color: var(--forest); background: var(--white); text-align: left; box-shadow: 6px 0 12px rgb(23 58 48 / 6%); }
.room-calendar-table thead .room-name-cell { z-index: 5; background: #f5f2ec; }
.room-calendar-table .room-name-cell strong, .room-calendar-table .room-name-cell small { display: block; }
.room-calendar-table .room-name-cell small { color: var(--muted); font-weight: 500; }
.room-calendar-table td a, .room-calendar-table td button { display: block; width: 100%; height: 100%; border-radius: 4px; }
.room-calendar-table td button { padding: 0; border: 0; background: transparent; cursor: crosshair; }
.room-calendar-table td.is-free { background: var(--free-bg); }
.room-calendar-table td.is-free a:hover, .room-calendar-table td.is-free button:hover { background: #b9dec5; }
.room-calendar-table td.is-booking { background: var(--busy-bg); }
.room-calendar-table td.is-booking a:hover { background: var(--busy); }
.room-calendar-table td.is-blocked { background: var(--blocked-bg); }
.room-calendar-table td.is-blocked a:hover { background: var(--blocked); }
.room-calendar-table td.is-past { background: #eeeae3; }
.room-calendar-table td.is-weekend:not(.is-booking):not(.is-blocked) { background-image: linear-gradient(rgb(255 255 255 / 17%), rgb(255 255 255 / 17%)); }
.room-calendar-table .is-today { box-shadow: inset 0 0 0 2px var(--rust); }
.room-calendar-table td.is-selected-range { background: #f7cbbd; box-shadow: inset 0 0 0 2px var(--rust); }
.room-calendar-table td.is-selection-start { background: var(--rust); box-shadow: inset 0 0 0 2px var(--rust-dark); }
.room-calendar-table td.is-selection-start button, .room-calendar-table td.is-selection-start button:hover { background: var(--rust); }
.block-picker-status { display: flex; align-items: center; gap: 14px; margin: -5px 0 16px; padding: 12px 15px; color: var(--forest); background: #edf5ef; border: 1px solid #c7ddce; border-radius: 8px; font-size: .74rem; }
.block-picker-status span { color: var(--muted); }
.block-picker-status.is-complete { color: #7b3027; background: #fff0e9; border-color: #e8b8a8; }
.block-picker-status.is-error { color: #7b3027; background: #f9e7e2; border-color: #e6b7ad; }
.legend-selection { background: #f7cbbd; border: 1px solid var(--rust); }
.admin-calendar-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 16px; color: var(--muted); font-size: .72rem; }
.admin-calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.admin-calendar-legend small { margin-left: auto; }
.bookings-panel-head { align-items: flex-end; }
.admin-search { display: grid; gap: 4px; color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.admin-search input { min-width: 260px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: #faf8f3; text-transform: none; }
.booking-note { max-width: 280px; margin-top: 7px !important; padding: 6px 8px; color: #60441d !important; background: #fff6de; border-radius: 5px; }
.empty-search { padding: 35px; color: var(--muted); text-align: center; }
.bulk-actions { display: flex; align-items: center; gap: 12px; margin: -4px 0 18px; padding: 12px 14px; background: #f5f2ec; border: 1px solid var(--line); border-radius: 8px; }
.bulk-actions strong { color: var(--forest); font-size: .76rem; }
.bulk-actions span { margin-right: auto; color: var(--muted); font-size: .7rem; }
.bulk-actions select, .bulk-actions button { min-height: 36px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; font-size: .7rem; }
.bulk-actions button { border-color: var(--forest); color: var(--white); background: var(--forest); font-weight: 800; cursor: pointer; }
.bulk-actions button:disabled { opacity: .45; cursor: default; }
.admin-user-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.admin-user-card { padding: 20px; background: #faf8f3; border: 1px solid var(--line); border-radius: 10px; }
.admin-user-card-head, .user-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.admin-user-card-head { margin-bottom: 16px; }
.admin-user-card-head > div { display: flex; flex-direction: column; }
.admin-user-card-head small, .user-card-footer small { color: var(--muted); font-size: .68rem; }
.admin-user-card .form-row { margin-bottom: 12px; }
.compact-check { margin: 3px 0 15px; padding: 8px 10px !important; }
.user-card-footer { padding-top: 14px; border-top: 1px solid var(--line); }
.admin-create-user { max-width: 850px; }
.admin-stats-compact { grid-template-columns: repeat(3, 1fr); }
.admin-quick-links { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 24px; }
.admin-quick-links a { display: grid; min-height: 140px; align-content: start; padding: 20px; color: var(--forest); background: var(--white); border: 1px solid var(--line); border-radius: 12px; text-decoration: none; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.admin-quick-links a:hover { border-color: var(--rust); box-shadow: 0 14px 35px rgb(23 58 48 / 8%); transform: translateY(-3px); }
.admin-quick-links a > span { color: var(--rust); font-family: var(--serif); font-size: 1.35rem; }
.admin-quick-links a > strong { margin-top: 18px; }
.admin-quick-links a > small { color: var(--muted); font-size: .67rem; }
.bank-transaction-list { display: grid; gap: 12px; margin-top: 22px; }
.bank-transaction { display: grid; grid-template-columns: minmax(250px, 1.1fr) 150px minmax(280px, 1fr); align-items: center; gap: 20px; padding: 18px; background: #faf8f3; border: 1px solid var(--line); border-radius: 11px; }
.bank-transaction.needs-action { background: #fff9ea; border-color: #e6cf91; }
.bank-transaction-main { display: grid; gap: 2px; min-width: 0; }
.bank-transaction-main time, .bank-reference span { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.bank-transaction-main > strong { color: var(--forest); font-family: var(--serif); font-size: 1.35rem; }
.bank-transaction-main span { font-weight: 750; }
.bank-transaction-main small { overflow-wrap: anywhere; color: var(--muted); }
.bank-reference { display: grid; gap: 4px; }
.bank-reference strong { color: var(--forest); font-size: 1.05rem; }
.bank-match-state { display: grid; justify-items: start; gap: 8px; }
.bank-match-form { display: flex; width: 100%; align-items: end; gap: 8px; }
.bank-match-form label { display: grid; flex: 1; gap: 4px; color: var(--muted); font-size: .65rem; font-weight: 800; }
.bank-match-form select { width: 100%; min-height: 40px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 6px; }
.bank-no-candidate { margin: 0; color: #8c5d16; font-size: .75rem; }
.upcoming-stay-list { display: grid; }
.upcoming-stay-list > a { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto 20px; align-items: center; gap: 18px; padding: 14px 5px; border-bottom: 1px solid var(--line); text-decoration: none; }
.upcoming-stay-list > a:hover { background: #faf8f3; }
.upcoming-stay-list time { display: grid; place-items: center; min-height: 54px; color: var(--white); background: var(--forest); border-radius: 8px; line-height: 1.05; }
.upcoming-stay-list time strong { font-family: var(--serif); font-size: 1.15rem; }
.upcoming-stay-list time small, .upcoming-stay-list span > small { display: block; color: var(--muted); font-size: .67rem; }
.upcoming-stay-list time small { color: rgb(255 255 255 / 68%); }
.upcoming-stay-list > a > b { color: var(--rust); }
.booking-code-link { color: var(--forest); font-weight: 850; }
.test-chip { display: inline-block; margin-left: 5px; padding: 2px 6px; color: #6b4f13; background: #ffedab; border-radius: 10px; font-size: .55rem; font-weight: 900; }
.is-test-booking { background: #fffaf0; }
.detail-breadcrumb { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.detail-breadcrumb a { color: var(--forest); font-size: .74rem; font-weight: 800; }
.test-booking-banner { margin-bottom: 18px; padding: 12px 16px; color: #684a11; background: #fff0b9; border: 1px solid #e6cc70; border-radius: 8px; font-size: .75rem; font-weight: 900; text-align: center; }
.booking-detail-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(290px, .65fr); align-items: start; gap: 22px; }
.booking-detail-main { display: grid; gap: 22px; }
.booking-detail-aside { position: sticky; top: 70px; display: grid; gap: 22px; }
.booking-detail-hero { display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.booking-detail-hero h2 { font-size: clamp(2.3rem, 4vw, 3.6rem); }
.booking-detail-hero p:not(.eyebrow) { margin: 8px 0 0; color: var(--muted); }
.booking-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.booking-detail-grid > div { padding: 14px 16px; background: #f7f5f0; border-radius: 8px; }
.booking-detail-grid > div.wide { grid-column: 1 / -1; }
.booking-detail-grid dt, .payment-card dt { color: var(--muted); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
.booking-detail-grid dd, .payment-card dd { margin: 2px 0 0; color: var(--forest); font-size: .82rem; font-weight: 750; }
.booking-timeline { display: grid; }
.booking-timeline > div { position: relative; display: grid; grid-template-columns: 120px 1fr; gap: 22px; padding: 0 0 24px 22px; border-left: 2px solid #d9e4dc; }
.booking-timeline > div::before { position: absolute; top: 5px; left: -6px; width: 10px; height: 10px; background: var(--forest); border: 2px solid var(--white); border-radius: 50%; content: ""; }
.booking-timeline time { color: var(--muted); font-size: .66rem; }
.booking-timeline span { display: flex; flex-direction: column; }
.booking-timeline small { color: var(--muted); font-size: .68rem; }
.payment-card h2 { margin: 5px 0 18px; font-size: 2.5rem; }
.payment-card dl { display: grid; gap: 10px; margin: 0 0 16px; }
.payment-card dl div { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.payment-card > small { color: var(--muted); font-size: .62rem; overflow-wrap: anywhere; }
.detail-actions { display: grid; gap: 10px; }
.detail-actions .eyebrow { margin-bottom: 4px; }
.simple-user-list { display: grid; gap: 10px; }
.create-user-details, .simple-user-row { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #faf8f3; }
.create-user-details { margin-bottom: 22px; background: #edf5ef; border-color: #cbdcd0; }
.create-user-details summary, .simple-user-row summary { display: flex; align-items: center; gap: 14px; padding: 15px 17px; cursor: pointer; list-style: none; }
.create-user-details summary::-webkit-details-marker, .simple-user-row summary::-webkit-details-marker { display: none; }
.create-user-details summary > span { color: var(--rust); font-size: 1.35rem; }
.create-user-details summary > small { margin-left: auto; color: var(--muted); font-size: .68rem; }
.create-user-details form, .simple-user-edit { padding: 20px; border-top: 1px solid var(--line); background: var(--white); }
.user-avatar { display: grid; width: 43px; height: 43px; flex: 0 0 43px; place-items: center; color: var(--white); background: var(--forest); border-radius: 50%; font-size: .72rem; font-weight: 900; }
.user-summary-main { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.user-summary-main small { overflow: hidden; color: var(--muted); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.user-role { color: var(--muted); font-size: .7rem; }
.simple-user-row summary > b { color: var(--rust); font-size: .7rem; }
.simple-user-row.is-developer { margin-top: 8px; background: #f4f2ed; border-style: dashed; }
.simple-user-row.is-developer .user-avatar { background: #6b746f; }
.account-layout { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); align-items: start; gap: 22px; }
.account-profile-card h2 { margin: 5px 0 24px; font-size: 2.4rem; }
.account-details { display: grid; gap: 10px; margin: 0; }
.account-details > div { padding: 13px 15px; background: #f7f5f0; border-radius: 8px; }
.account-details dt { color: var(--muted); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
.account-details dd { margin: 3px 0 0; color: var(--forest); font-weight: 750; overflow-wrap: anywhere; }
.account-device-list { display: grid; }
.account-device-list article { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 15px 4px; border-bottom: 1px solid var(--line); }
.device-icon { display: grid; width: 36px; height: 36px; place-items: center; color: var(--forest); background: #e5eee7; border-radius: 50%; }
.account-device-list article > div { display: flex; min-width: 0; flex-direction: column; }
.account-device-list small { margin-top: 3px; color: var(--muted); font-size: .66rem; }
.account-device-list form { margin: 0; }
.account-revoke-all { margin-top: 20px; }
.empty-account-devices { margin: 0; padding: 25px; color: var(--muted); background: #f7f5f0; border-radius: 8px; text-align: center; }
.audit-head { align-items: flex-start; }
.audit-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 24px; }
.audit-filters a { padding: 7px 11px; color: var(--forest); background: #f4f2ed; border: 1px solid var(--line); border-radius: 20px; font-size: .68rem; font-weight: 800; text-decoration: none; }
.audit-filters a.active, .audit-filters a:hover { color: var(--white); background: var(--forest); border-color: var(--forest); }
.audit-list { display: grid; }
.audit-list article { display: grid; grid-template-columns: 125px 12px minmax(0, 1fr); gap: 16px; padding: 15px 4px; border-bottom: 1px solid var(--line); }
.audit-list time { color: var(--muted); font-size: .67rem; }
.audit-event-icon { width: 10px; height: 10px; margin-top: 4px; background: var(--rust); border: 2px solid #f5ddd5; border-radius: 50%; }
.audit-entry-main { display: grid; gap: 3px; }
.audit-entry-main > strong { color: var(--forest); font-size: .82rem; }
.audit-entry-main p { margin: 0; font-size: .75rem; }
.audit-entry-main small { color: var(--muted); font-size: .64rem; overflow-wrap: anywhere; }
.price-admin-page { max-width: 850px; }
.booking-status-page { min-height: 75vh; padding: 90px 0 110px; background: var(--cream); }
.booking-status-card { padding: clamp(28px, 6vw, 65px); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.booking-status-card h1 { max-width: 12ch; font-size: clamp(3rem, 7vw, 5.2rem); }
.booking-status-card > .lead { max-width: 620px; margin-top: 20px; color: var(--muted); }
.booking-status-summary { margin-bottom: 28px; }
.booking-payment-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.booking-payment-actions form { margin: 0; }
.transfer-box { margin: 25px 0; padding: 22px; background: #edf5ef; border: 1px solid #c7ddce; border-radius: 10px; }
.transfer-box > strong { display: block; margin-bottom: 12px; color: var(--forest); font-size: 1.1rem; }
.transfer-box dl { display: grid; gap: 8px; margin: 0; }
.transfer-box dl div { display: flex; justify-content: space-between; gap: 20px; }
.transfer-box dt { color: var(--muted); }
.transfer-box dd { margin: 0; color: var(--forest); font-weight: 800; }
.payment-qr { display: grid; justify-items: center; gap: 7px; margin-top: 18px; padding: 14px; background: var(--white); border-radius: 8px; }
.payment-qr img { display: block; width: min(220px, 100%); height: auto; }
.payment-qr span { color: var(--muted); font-size: .7rem; }
.booking-status-help { margin: 34px 0 0; color: var(--muted); font-size: .78rem; }
.invoice-created { align-items: center; }
.invoice-created span { flex: 1; }
.invoice-booking-picker { margin-bottom: 20px; }
.invoice-booking-picker label { display: grid; max-width: 850px; gap: 6px; color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.invoice-booking-picker select { width: 100%; padding: 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--white); }
.invoice-create-form { max-width: 920px; }
.invoice-booking-summary { display: flex; justify-content: space-between; gap: 20px; padding: 15px 17px; color: var(--forest); background: #e8f3ec; border-radius: 8px; }
.invoice-booking-summary span { color: var(--muted); font-size: .75rem; }
.invoice-legal-note { padding: 14px 16px; color: #5d654f; background: #f5f2ec; border-radius: 7px; font-size: .72rem; }
.invoice-table td:nth-child(2) { min-width: 210px; }
.table-action, .invoice-status-form button { display: inline-block; margin: 0 0 6px; padding: 5px 8px; border: 0; border-radius: 5px; color: var(--forest); background: #ecefe9; font-size: .65rem; font-weight: 800; text-decoration: none; cursor: pointer; }
.invoice-status-form { display: inline; }
.invoice-status-form .danger-link { color: #8d382c; background: #fae8e3; }
.guestbook-filter-panel { margin-bottom: 24px; }
.guestbook-filter { display: grid; grid-template-columns: minmax(180px, 240px) minmax(180px, 240px) auto; align-items: end; gap: 12px; }
.guestbook-filter label { display: grid; gap: 5px; color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.guestbook-filter input { min-height: 44px; padding: 8px 11px; color: var(--forest); background: #faf8f3; border: 1px solid var(--line); border-radius: 7px; }
.guestbook-shortcuts { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 15px; color: var(--muted); font-size: .7rem; }
.guestbook-shortcuts a { padding: 5px 9px; color: var(--forest); background: #edf3ee; border-radius: 5px; font-weight: 800; text-decoration: none; }
.guestbook-warning, .guestbook-test-note { margin-bottom: 18px; }
.guestbook-test-note { color: #684a11; background: #fff8df; border-color: #ead28b; }
.guestbook-register { margin-top: 24px; }
.guestbook-table td:nth-child(2) { min-width: 220px; }
.guestbook-table td:nth-child(3) { min-width: 210px; }
.guestbook-test-row { background: #fffaf0; }
.sensitive-detail summary { color: var(--forest); font-size: .68rem; font-weight: 800; text-decoration: underline; cursor: pointer; }
.sensitive-detail span { display: block; margin-top: 7px; padding: 8px; background: #f1eee7; border-radius: 5px; font-size: .7rem; }
.recaptcha-note { margin: 10px 0 0; color: var(--muted); font-size: .64rem; text-align: center; }
.recaptcha-note a { color: inherit; }
.admin-login-secondary-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin-top: 18px; }
.admin-login-secondary-actions form { margin: 0; }
.text-button { padding: 4px 0; border: 0; color: var(--forest); background: transparent; font: inherit; font-size: .8rem; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.trusted-device-dialog { width: min(640px, 100%); margin: 34px auto; padding: clamp(26px, 5vw, 44px); }
.trusted-device-dialog h2 { margin-bottom: 12px; }
.trusted-device-dialog > p:not(.eyebrow) { color: var(--muted); }
.trusted-device-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.trusted-device-actions form { margin: 0; }
.trusted-device-revoke-form { margin: -8px 24px 22px; padding-top: 14px; border-top: 1px solid var(--line); }
.language-switch { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.language-switch a { padding: 8px 3px; color: inherit; text-decoration: none; }
.language-switch a[aria-current="page"] { color: var(--rust); text-decoration: underline; text-underline-offset: 4px; }
.language-switch i { font-style: normal; opacity: .45; }
.staying-guests { display: grid; gap: 18px; margin: 24px 0; padding: 22px; border: 1px solid var(--line); border-radius: 10px; }
.staying-guests > legend { padding: 0 8px; color: var(--forest); font: 700 1.25rem Georgia, serif; }
.fieldset-intro { margin: 0; color: var(--muted); font-size: .82rem; }
.guest-record { display: grid; gap: 15px; padding: 20px; background: #f7f3eb; border: 1px solid #e1d8ca; border-radius: 9px; }
.guest-record h3 { margin: 0; color: var(--forest); font-size: 1rem; }
.guest-step-fields { display: grid; min-width: 0; gap: 15px; margin: 0; padding: 0; border: 0; }
.guest-wizard-card { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 22px; background: #fff8e8; border: 1px solid #e5c982; border-radius: 12px; }
.guest-wizard-card.is-complete { background: #edf6ef; border-color: #a9ceb3; }
.guest-wizard-card h3 { margin: 2px 0 5px; font-size: 1.35rem; }
.guest-wizard-card p { margin: 0; color: var(--muted); font-size: .78rem; }
.guest-wizard-icon { display: grid; width: 58px; height: 58px; place-items: center; color: #8c5d16; background: #ffedbc; border-radius: 50%; font-family: var(--serif); font-size: 1.5rem; font-weight: 800; }
.guest-wizard-card.is-complete .guest-wizard-icon { color: #17603b; background: #d2ead9; }
.guest-dialog { width: min(760px, calc(100% - 28px)); max-height: min(88vh, 900px); padding: 0; overflow: auto; color: var(--ink); background: var(--white); border: 0; border-radius: 18px; box-shadow: 0 30px 100px rgb(12 35 28 / 35%); }
.guest-dialog::backdrop { background: rgb(8 29 23 / 70%); backdrop-filter: blur(3px); }
.guest-dialog-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 26px 30px 20px; background: var(--white); border-bottom: 1px solid var(--line); }
.guest-dialog-head h2 { margin: 2px 0 0; font-size: 2rem; }
.dialog-close { display: grid; width: 42px; height: 42px; place-items: center; flex: 0 0 auto; padding: 0; color: var(--forest); background: var(--cream); border: 0; border-radius: 50%; font-size: 1.7rem; cursor: pointer; }
.guest-dialog-intro { margin: 0; padding: 22px 30px 16px; color: var(--muted); font-size: .84rem; }
.guest-dialog-progress { display: flex; justify-content: space-between; gap: 15px; margin: 0 30px 15px; padding: 10px 13px; color: var(--forest); background: #edf5ef; border-radius: 7px; font-size: .72rem; font-weight: 800; }
.guest-dialog .guest-record { margin: 0 30px; }
.guest-dialog-error { margin: 15px 30px 0; padding: 11px 13px; color: #8e2f24; background: #fae8e3; border-radius: 7px; font-size: .8rem; }
.guest-dialog-actions { position: sticky; bottom: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 10px; padding: 20px 30px 26px; background: var(--white); border-top: 1px solid var(--line); }
.guest-remove { justify-self: start; padding: 7px 0; color: #8e2f24; background: none; border: 0; font-size: .72rem; font-weight: 800; text-decoration: underline; cursor: pointer; }

.room-stay-picker-section { padding-top: 20px; background: var(--cream); }
.room-stay-picker { padding: clamp(24px, 4vw, 48px); background: var(--white); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
.stay-picker-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.stay-picker-head h2 { max-width: 760px; margin: 4px 0 10px; font-size: clamp(2rem, 4vw, 3.2rem); }
.stay-picker-head p { max-width: 720px; margin: 0; color: var(--muted); }
.stay-rules { margin-bottom: 26px; padding: 18px 22px; background: var(--cream); border: 1px solid var(--line); border-radius: 10px; font-size: .82rem; }
.stay-rules h3 { margin-bottom: 10px; font-family: var(--sans); font-size: .95rem; letter-spacing: normal; }
.stay-rules ul { margin: 0; padding-left: 20px; }
.stay-rules li + li { margin-top: 5px; }
.stay-rules p { margin: 10px 0 0; color: var(--muted); font-size: .76rem; }
.calendar-navigation-status { margin: 0 0 14px; color: var(--muted); font-size: .82rem; }
.stay-calendar-toolbar a[aria-disabled="true"] { opacity: .55; pointer-events: none; }
.stay-picker-legend { display: flex; flex: 0 0 auto; gap: 16px; font-size: .72rem; }
.stay-picker-legend span { display: flex; align-items: center; gap: 7px; }
.stay-picker-legend i { width: 15px; height: 15px; background: #dff1dc; border: 1px solid #b9d9b5; border-radius: 3px; }
.stay-picker-legend i.is-busy { background: #f2d7d1; border-color: #e6b9af; }
.stay-picker-legend i.is-checkout { background: var(--rust); border-color: var(--rust); }
.stay-calendar-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 15px; margin-bottom: 16px; }
.stay-calendar-toolbar strong { font-family: var(--serif); }
.stay-calendar-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.stay-month { padding: 20px; background: #faf8f3; border: 1px solid var(--line); border-radius: 12px; }
.stay-month h3 { margin: 0 0 15px; text-align: center; }
.stay-weekdays, .stay-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.stay-weekdays { margin-bottom: 5px; color: var(--muted); font-size: .63rem; font-weight: 800; text-align: center; }
.stay-day { display: grid; min-width: 0; aspect-ratio: 1; place-items: center; align-content: center; gap: 1px; padding: 3px; color: var(--forest); background: #dff1dc; border: 1px solid #c5dfc1; border-radius: 7px; font: inherit; cursor: pointer; }
.stay-day strong { font-size: .82rem; }
.stay-day small { font-size: .51rem; }
.stay-day.is-empty { visibility: hidden; }
.stay-day.is-past { color: #a4aaa7; background: #eee; border-color: #e4e4e4; cursor: default; }
.stay-day.is-busy { color: #854237; background: repeating-linear-gradient(135deg, #f7e4df 0, #f7e4df 6px, #f1d4cd 6px, #f1d4cd 12px); border-color: #e5bab0; }
.stay-day:hover:not(.is-past), .stay-day.is-start, .stay-day.is-in-range { color: var(--white); background: var(--forest); border-color: var(--forest); }
.stay-day.is-end { color: var(--white); background: var(--rust); border-color: var(--rust); box-shadow: 0 0 0 3px rgb(188 85 54 / 18%); }
.stay-selection { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; margin-top: 22px; padding: 18px 20px; background: var(--cream); border-radius: 10px; }
.stay-selection-status { display: grid; gap: 2px; }
.stay-selection-status strong { color: var(--forest); }
.stay-selection-status span { color: var(--muted); font-size: .75rem; }
.stay-selection-status.is-error strong { color: #943627; }
.stay-selection-status.is-complete strong { color: #17603b; }
.stay-selection .button:disabled, .stay-selection .button:disabled:hover { color: #59615c; background: #e1e4df; border-color: #cdd2cb; box-shadow: none; transform: none; cursor: not-allowed; }

[hidden] { display: none !important; }
.guest-additions-section { margin-top: 36px; border-top: 1px solid var(--line); padding-top: 28px; }
.guest-additions-section h2 { font-size: clamp(1.6rem, 5vw, 2.2rem); }
.guest-addition-summary { padding: 18px; margin: 20px 0; border: 1px solid var(--line); border-radius: 12px; background: var(--cream); }
.guest-addition-summary .button, .guest-addition-form .button { white-space: normal; max-width: 100%; text-align: center; }
.guest-addition-details summary { cursor: pointer; font-weight: 700; padding: 18px 0; }
.guest-addition-form { display: grid; gap: 18px; }
.guest-addition-form fieldset { min-width: 0; padding: 18px; margin: 0; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 14px; }
.guest-addition-form label { display: grid; gap: 7px; min-width: 0; }
.guest-addition-form .form-row { min-width: 0; }
.guest-addition-form input:not([type="checkbox"]), .guest-addition-form select { min-width: 0; width: 100%; max-width: 100%; min-height: 48px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); color: var(--forest); font: inherit; }
.guest-addition-form input:focus, .guest-addition-form select:focus { outline: 2px solid var(--rust); outline-offset: 2px; }
.guest-addition-form .check-label { display: flex; align-items: flex-start; }
.lodging-guest-list { display: grid; gap: 14px; }
.lodging-guest-list article { padding: 18px; background: #faf8f3; border: 1px solid var(--line); border-radius: 9px; }
.lodging-guest-list h3 { margin: 0 0 14px; font-size: 1rem; }

.reveal, .js .reveal, .reveal.is-visible { opacity: 1; transform: none; }
@keyframes hero-in { from { opacity: .5; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }
@keyframes scroll-dot { 0% { opacity: 0; transform: translate(-50%, 0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, 18px); } }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 3px solid #e07b5e; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 980px) {
  .menu-toggle { display: block; }
  .site-nav { position: fixed; top: 82px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 22px 20px 30px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 18px 40px rgb(23 58 48 / 12%); }
  .site-nav.is-open { display: flex; }
  .site-nav > a:not(.button) { padding: 14px 5px; border-bottom: 1px solid var(--line); }
  .site-nav .language-switch { padding-top: 16px; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .hero { min-height: 650px; }
  .hero-content { min-height: 650px; align-items: center; padding-top: 80px; }
  .booking-bar { grid-template-columns: 1fr 1fr 1fr; bottom: 30px; }
  .booking-submit { grid-column: 1 / -1; min-height: 62px; border-radius: 0 0 8px 8px; }
  .hero-scroll { display: none; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .split-heading { grid-template-columns: 1fr; gap: 25px; }
  .story-grid, .seasons-grid { grid-template-columns: 1fr; }
  .story-image { max-width: 720px; }
  .amenities-grid { grid-template-columns: repeat(2, 1fr); }
  .amenity:nth-child(2) { border-right: 0; }
  .amenity:nth-child(-n+2) { border-bottom: 1px solid rgb(255 255 255 / 18%); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .room-detail-grid, .booking-details-grid { grid-template-columns: 1fr; }
  .booking-aside, .booking-summary { position: static; }
  .booking-summary { max-width: 600px; }
  .available-room { grid-template-columns: 210px 1fr; }
  .available-room-price { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: flex-end; gap: 14px; }
  .available-room-price .button { margin-top: 0; margin-left: 14px; }
  .admin-stats { grid-template-columns: repeat(2, 1fr); }
  .admin-grid { grid-template-columns: 1fr; }
  .admin-quick-links { grid-template-columns: repeat(2, 1fr); }
  .booking-detail-layout { grid-template-columns: 1fr; }
  .booking-detail-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-detail-aside > :last-child { grid-column: 1 / -1; }
  .availability-room-tabs { grid-template-columns: repeat(2, 1fr); }
  .availability-calendar-pair { gap: 14px; }
  .availability-month { padding: 15px; }
  .stay-picker-head { align-items: flex-start; flex-direction: column; }
  .calendar-day small { display: none; }
  .admin-user { flex-wrap: wrap; justify-content: flex-end; }
  .admin-user-list { grid-template-columns: 1fr; }
  .bank-transaction { grid-template-columns: 1fr 160px; }
  .bank-match-state { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .test-site-banner { flex-direction: column; gap: 2px; padding-inline: 14px; font-size: .75rem; }
  .container { width: min(100% - 28px, 1180px); }
  .section { padding: 75px 0; }
  .site-header { height: 72px; }
  .brand img { width: 176px; }
  .site-nav { top: 72px; }
  .hero { min-height: 650px; }
  .hero-media { background-position: 63% 50%; }
  .hero-shade { background: linear-gradient(90deg, rgb(9 31 25 / 92%), rgb(9 31 25 / 35%)), linear-gradient(0deg, rgb(9 31 25 / 70%), transparent 58%); }
  .hero-content { min-height: 650px; padding-top: 78px; }
  .hero-copy h1 { font-size: clamp(4rem, 21vw, 6.3rem); }
  .hero-copy h1 .hero-line { display: block; white-space: nowrap; }
  html[lang="en"] .hero-copy h1 { font-size: clamp(2.1rem, 9.4vw, 4.2rem); line-height: 1.05; }
  .hero-copy > p:not(.eyebrow) { font-size: 1rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .booking-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); bottom: 20px; }
  .booking-field { padding: 12px 15px; }
  .booking-field input, .booking-field select { min-height: 44px; }
  .booking-field:nth-child(2) { border-right: 0; }
  .booking-field:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--line); border-right: 0; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-grid > div, .trust-grid > div:first-child { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
  .room-grid { grid-template-columns: 1fr; gap: 24px; }
  .room-image { height: 285px; }
  .room-card-body { padding: 24px 22px; }
  .availability-preview-footer { align-items: stretch; flex-direction: column; }
  .availability-preview-footer .button { width: 100%; }
  .availability-strip-table { min-width: 930px; }
  .story-image img { min-height: 420px; }
  .amenities-grid { grid-template-columns: 1fr; }
  .amenity { min-height: 240px; border-right: 0; border-bottom: 1px solid rgb(255 255 255 / 18%); }
  .amenity > span { margin-bottom: 35px; }
  .seasons-image img { height: 390px; }
  .cta-inner, .footer-bottom { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .cookie-note { grid-template-columns: 1fr; gap: 13px; }
  .cookie-note > div { grid-column: 1 / -1; }
  .cookie-note-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .cookie-note .button { min-height: 36px; }
  .availability-room-tabs { grid-template-columns: 1fr; gap: 7px; }
  .availability-room-tab { min-height: 62px; }
  .availability-selected-room { grid-template-columns: 1fr; gap: 0; }
  .availability-selected-room > img { height: 220px; min-height: 0; }
  .availability-selected-room > div { padding: 22px; }
  .availability-toolbar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 10px; }
  .availability-toolbar form { min-width: 0; grid-column: 1 / -1; grid-row: 1; }
  .availability-toolbar select { width: 100%; min-width: 0; }
  .calendar-nav { grid-row: 2; }
  .calendar-nav, .stay-calendar-toolbar a { gap: 6px; padding: 10px 9px; font-size: .85rem; }
  .availability-calendar-pair { grid-template-columns: 1fr; }
  .availability-month { padding: 14px 10px; }
  .calendar-day { aspect-ratio: 1; }
  .calendar-day strong { font-size: .8rem; }
  .availability-tip { grid-template-columns: 1fr; padding: 22px; }
  .availability-tip .button { width: 100%; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-grid > div { min-height: 360px; }
  .contact-grid > .contact-map { min-height: 360px; }
  .contact-map iframe { height: 390px; }
  .map-consent-placeholder { min-height: 390px; }
  .room-detail-hero { height: clamp(520px, 76vh, 590px); }
  .room-detail-title { bottom: 42px; }
  .room-detail-title .back-link { margin-bottom: 24px; }
  .room-detail-title h1 { font-size: clamp(3.1rem, 13vw, 4.2rem); }
  .feature-list { grid-template-columns: 1fr; }
  .room-facts { grid-template-columns: 1fr; }
  .room-facts div { padding: 14px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .room-facts div:last-child { border-bottom: 0; }
  .room-mini-gallery { grid-template-columns: 1fr; padding-bottom: 70px; }
  .room-mini-gallery img, .room-mini-gallery img:first-child:nth-last-child(n + 3) { grid-column: auto; height: 360px; }
  .booking-search { grid-template-columns: 1fr 1fr; }
  .booking-search label:nth-child(3), .booking-search button { grid-column: 1 / -1; }
  .booking-progress em { display: none; }
  .booking-progress i { width: 48px; }
  .available-heading { align-items: flex-start; flex-direction: column; }
  .available-room { grid-template-columns: 1fr; }
  .available-room > img { height: 245px; }
  .available-room-price { grid-column: auto; flex-wrap: wrap; justify-content: flex-start; align-items: baseline; }
  .available-room-price .button { width: 100%; margin: 12px 0 0; }
  .form-row { grid-template-columns: 1fr; }
  .billing-fields { padding: 18px 15px; }
  .guest-wizard-card { grid-template-columns: 48px 1fr; padding: 17px; }
  .guest-wizard-icon { width: 48px; height: 48px; }
  .guest-wizard-card .button { grid-column: 1 / -1; width: 100%; }
  .guest-dialog { width: 100%; max-height: 94vh; border-radius: 16px 16px 0 0; }
  .guest-dialog-head { padding: 20px 18px 16px; }
  .guest-dialog-head h2 { font-size: 1.55rem; }
  .guest-dialog-intro { padding: 18px; }
  .guest-dialog-progress { margin: 0 18px 12px; }
  .guest-dialog .guest-record { margin: 0 14px; padding: 16px 12px; }
  .guest-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; padding: 15px 14px 20px; }
  .guest-dialog-actions [data-guest-finish] { grid-column: 1 / -1; grid-row: 2; }
  .stay-calendar-pair { grid-template-columns: 1fr; }
  .stay-calendar-toolbar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
  .stay-calendar-toolbar strong { grid-column: 1 / -1; grid-row: 1; text-align: center; }
  .stay-calendar-toolbar a { grid-row: 2; }
  .stay-month { padding: 12px; }
  .stay-days, .stay-weekdays { gap: 3px; }
  .stay-day { border-radius: 5px; }
  .stay-day small { display: none; }
  .stay-selection { grid-template-columns: 1fr; }
  .stay-selection .button { width: 100%; }
  .staying-guests { padding: 16px 12px; }
  .guest-record { padding: 16px 12px; }
  .billing-address-primary { grid-template-columns: 1fr; }
  .ares-lookup { grid-template-columns: 1fr; gap: 8px; }
  .ares-lookup input, .ares-lookup button { min-height: 47px; border-radius: 6px; }
  .booking-details-grid { gap: 38px; }
  .confirmation-summary { grid-template-columns: 1fr; }
  .confirmation-summary div { border-right: 0; border-bottom: 1px solid var(--line) !important; }
  .confirmation-summary div:last-child { border-bottom: 0 !important; }
  .confirmation-actions { align-items: stretch; flex-direction: column; }
  .page-intro h1, .booking-page-head h1 { font-size: clamp(2.6rem, 13vw, 3.5rem); overflow-wrap: anywhere; }
  .legal-content h2 { overflow-wrap: anywhere; }
  .legal-content ul, .legal-content ol { padding-left: 24px; }
  .legal-summary, .cookie-table > div { grid-template-columns: 1fr; }
  .admin-login-card { padding: 32px 25px; }
  .admin-topbar { align-items: flex-start; flex-direction: column; gap: 18px; }
  .admin-user { width: 100%; align-items: flex-start; justify-content: flex-start; }
  .admin-nav { width: 100%; overflow-x: auto; }
  .admin-nav a { white-space: nowrap; }
  .admin-stats { grid-template-columns: 1fr 1fr; }
  .admin-stats > div { padding: 17px; }
  .admin-alert { align-items: flex-start; flex-direction: column; }
  .admin-panel { padding: 20px 16px; }
  .admin-calendar-head, .bookings-panel-head { align-items: stretch; flex-direction: column; }
  .admin-month-controls { display: grid; grid-template-columns: 40px 1fr 40px; }
  .admin-month-controls form, .admin-month-controls input { width: 100%; }
  .admin-month-controls .today-link { grid-column: 1 / -1; }
  .admin-calendar-legend small { width: 100%; margin-left: 0; }
  .block-picker-status { align-items: flex-start; flex-direction: column; gap: 2px; }
  .admin-search input { width: 100%; min-width: 0; }
  .admin-table, .admin-table tbody { display: block; }
  .admin-table thead { display: none; }
  .admin-table tr[data-booking-row] { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-bottom: 14px; padding: 12px; background: #faf8f3; border: 1px solid var(--line); border-radius: 10px; }
  .admin-table tr[data-booking-row] td { display: block; min-width: 0; padding: 9px; border: 0; }
  .admin-table tr[data-booking-row] td::before { display: block; margin-bottom: 3px; color: var(--muted); content: attr(data-label); font-size: .58rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
  .admin-table tr[data-booking-row] td:nth-child(4), .admin-table tr[data-booking-row] td:last-child { grid-column: 1 / -1; min-width: 0; }
  .admin-table tr[data-invoice-row] { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-bottom: 14px; padding: 12px; background: #faf8f3; border: 1px solid var(--line); border-radius: 10px; }
  .admin-table tr[data-invoice-row] td { display: block; min-width: 0; padding: 9px; border: 0; }
  .admin-table tr[data-invoice-row] td::before { display: block; margin-bottom: 3px; color: var(--muted); content: attr(data-label); font-size: .58rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
  .admin-table tr[data-invoice-row] td:nth-child(2), .admin-table tr[data-invoice-row] td:last-child { grid-column: 1 / -1; min-width: 0; }
  .admin-table tr[data-guestbook-row] { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-bottom: 14px; padding: 12px; background: #faf8f3; border: 1px solid var(--line); border-radius: 10px; }
  .admin-table tr[data-guestbook-row].guestbook-test-row { background: #fffaf0; }
  .admin-table tr[data-guestbook-row] td { display: block; min-width: 0; padding: 9px; border: 0; }
  .admin-table tr[data-guestbook-row] td::before { display: block; margin-bottom: 3px; color: var(--muted); content: attr(data-label); font-size: .58rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
  .admin-table tr[data-guestbook-row] td:nth-child(2), .admin-table tr[data-guestbook-row] td:nth-child(3), .admin-table tr[data-guestbook-row] td:last-child { grid-column: 1 / -1; }
  .guestbook-filter { grid-template-columns: 1fr 1fr; }
  .guestbook-filter .button { grid-column: 1 / -1; width: 100%; }
  .bulk-actions { align-items: stretch; flex-direction: column; }
  .bulk-actions span { margin-right: 0; }
  .bank-panel-head { align-items: stretch; flex-direction: column; }
  .bank-match-form { align-items: stretch; flex-direction: column; }
  .bank-match-form .button { width: 100%; }
  .bank-transaction { grid-template-columns: 1fr; }
  .bank-match-state { grid-column: auto; }
  .invoice-booking-summary { align-items: flex-start; flex-direction: column; }
  .admin-user-card-head, .user-card-footer { align-items: flex-start; flex-direction: column; }
  .status-form { width: 100%; }
  .status-form select { max-width: none; flex: 1; }
  .price-admin-list form { grid-template-columns: 1fr; }
  .price-admin-list button { min-height: 38px; }
  .lockbox-card { grid-template-columns: 1fr; }
  .admin-quick-links { grid-template-columns: 1fr; }
  .admin-quick-links a { min-height: 110px; }
  .upcoming-stay-list > a { grid-template-columns: 55px minmax(0, 1fr) 18px; gap: 10px; }
  .upcoming-stay-list .status { grid-column: 2 / -1; justify-self: start; }
  .booking-detail-aside { grid-template-columns: 1fr; }
  .booking-detail-aside > :last-child { grid-column: auto; }
  .booking-detail-hero { align-items: flex-start; flex-direction: column; }
  .booking-detail-grid { grid-template-columns: 1fr; }
  .booking-detail-grid > div.wide { grid-column: auto; }
  .booking-timeline > div { grid-template-columns: 1fr; gap: 2px; }
  .detail-breadcrumb { align-items: flex-start; flex-direction: column; gap: 7px; }
  .create-user-details summary > small, .user-role, .simple-user-row summary > b { display: none; }
  .simple-user-row summary { align-items: flex-start; }
  .account-layout { grid-template-columns: 1fr; }
  .account-device-list article { grid-template-columns: 36px minmax(0, 1fr); }
  .account-device-list article form { grid-column: 2; }
  .audit-list article { grid-template-columns: 10px minmax(0, 1fr); gap: 10px; }
  .audit-list time { grid-column: 2; }
  .audit-event-icon { grid-column: 1; grid-row: 1 / span 2; }
  .audit-entry-main { grid-column: 2; }
  .booking-payment-actions, .booking-payment-actions form, .booking-payment-actions .button { width: 100%; }
}

.key-notice { margin-top: 30px; padding: 24px; background: var(--cream); border: 1px solid var(--line); border-radius: 12px; font-size: .9rem; }
.key-notice h3 { margin-bottom: 14px; font-size: 1.45rem; }
.key-notice p { margin-bottom: 12px; }
.key-notice .text-link { line-height: 1.5; }
.contact-info .key-notice { padding: 20px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; }
.availability-turnover-note { margin: 22px 0; color: var(--muted); font-size: .9rem; }
.gallery-page, .arrival-page { padding-bottom: 90px; }
.gallery-section { padding: 36px 0; scroll-margin-top: 110px; }
.gallery-section h2 { margin-bottom: 30px; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.gallery-item { margin: 0; min-width: 0; }
.gallery-photo { position: relative; display: block; border-radius: 16px; overflow: hidden; background: var(--cream); }
.gallery-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .2s; }
.gallery-photo:hover img { transform: scale(1.02); }
.gallery-photo span { position: absolute; bottom: 14px; right: 14px; padding: 5px 12px; border-radius: 16px; color: var(--white); background: rgb(13 41 34 / 88%); font-size: .75rem; }
.gallery-photo:focus-visible { outline: 3px solid var(--rust); outline-offset: 4px; }
.gallery-item figcaption { padding: 14px 0 8px; font-weight: 700; }
.gallery-arrival-link { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 18px; padding: 24px 28px; border: 1px solid var(--line); border-radius: 14px; text-decoration: none; background: var(--cream); scroll-margin-top: 110px; }
.gallery-arrival-link strong { display: block; margin-bottom: 5px; font-size: 1.1rem; }
.gallery-arrival-link span span { color: var(--muted); font-size: .9rem; }
.gallery-arrival-link > b { color: var(--rust); font-size: 1.8rem; }
.gallery-arrival-link:hover, .gallery-arrival-link:focus-visible { border-color: var(--rust); }
.arrival-page { padding-top: 36px; }
.arrival-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin-bottom: 25px; }
.arrival-steps > div { padding: 26px; border-radius: 16px; background: var(--cream); }
.arrival-steps span { display: block; margin-bottom: 12px; color: var(--rust); font-size: .85rem; font-weight: 800; }
.arrival-steps h2 { margin-bottom: 18px; font-size: clamp(1.45rem, 2.2vw, 2rem); }
.arrival-steps p { margin-bottom: 0; }
.arrival-photos img { aspect-ratio: 3 / 4; object-fit: contain; }
.arrival-page .aside-help { margin-top: 24px; }
@media (max-width: 600px) {
  .gallery-grid, .arrival-steps { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .gallery-page, .arrival-page { padding-bottom: 40px; }
  .gallery-arrival-link { padding: 20px; gap: 16px; }
  .gallery-section { padding: 25px 0; }
  .key-notice { padding: 20px; }
}

@media (max-width: 340px) {
  .hero { min-height: 640px; }
  .hero-content { min-height: 640px; padding-top: 70px; }
  .hero-copy h1 { font-size: 3.65rem; }
  .booking-bar { grid-template-columns: 1fr; }
  .booking-field { border-right: 0; border-bottom: 1px solid var(--line); }
  .booking-field:nth-child(2), .booking-field:nth-child(3) { grid-column: auto; border-top: 0; }
  .booking-submit { grid-column: auto; border-radius: 0 0 8px 8px; }
}
