/* Accommodation follows the site's shared colour and typography settings. */
.page-accommodation { --stay-radius: 10px; }
.page-accommodation :is(#pokoje,#cenik,#poptavka,#kontakt-ubytovani) { scroll-margin-top: 0; }
.page-accommodation h2 { font: 400 clamp(2rem,3.3vw,3.2rem)/1.1 var(--serif); letter-spacing: -.025em; }
.accommodation-hero .menu-hero-inner { grid-template-columns: 1fr 1fr; padding-block: 44px; gap: 50px; }
.accommodation-hero h1 { font-size: clamp(38px,4.5vw,68px); line-height: .98; }
.stay-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.stay-hero-secondary { display: inline-flex; align-items: center; min-height: 48px; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.stay-hero-facts { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line-dark); list-style: none; color: #e6e9e3; font-size: 13px; }
.stay-hero-facts li::before { content: '✓'; margin-right: 6px; color: var(--gold-light); }
.stay-page-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 0 32px; padding-block: 12px; border-bottom: 1px solid var(--line); }
.stay-page-nav a { display: inline-flex; align-items: center; min-height: 46px; font-size: 14px; font-weight: 600; }
.stay-page-nav a:hover { color: var(--wine); text-decoration: underline; text-underline-offset: 5px; }
.stay-rooms { padding-block: 62px; }
.stay-rooms .section-intro { margin-bottom: 28px; }
.stay-room-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.stay-room-card { display: grid; grid-template-columns: 48% 1fr; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--stay-radius); background: var(--white); }
.stay-room-card > img { width: 100%; height: 100%; min-height: 275px; object-fit: cover; object-position: center 42%; }
.stay-room-card > div { padding: 30px 24px; align-self: center; }
.stay-room-card .eyebrow { font-size: 11px; margin-bottom: 12px; letter-spacing: .07em; }
.stay-room-card h3 { font: 400 29px/1.1 var(--serif); margin-bottom: 14px; }
.stay-room-card p:not(.eyebrow) { font-size: 14px; color: var(--muted); }
.stay-room-card a { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; font-size: 13px; font-weight: 700; color: var(--wine); }
.stay-room-card a:hover { text-decoration: underline; }
.stay-facilities { display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px; margin-top: 32px; padding: 28px 32px; background: var(--paper-deep); border-radius: var(--stay-radius); }
.stay-facilities h3 { margin: 0 0 8px; font: 400 27px/1.15 var(--serif); }
.stay-facilities p { margin: 0; color: var(--muted); font-size: 14px; }
.stay-facilities .check-list { margin: 0; align-content: center; gap: 12px 22px; font-size: 13px; }
.stay-prices { padding-block: 40px 28px; }
.stay-prices h2 { margin-bottom: 24px; }
.stay-price-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; border: 1px solid var(--line); border-radius: var(--stay-radius); overflow: hidden; background: var(--white); }
.stay-price-grid article { padding: 24px; border-right: 1px solid var(--line); }
.stay-price-grid article:last-child { border-right: 0; }
.stay-price-grid h3 { min-height: 40px; margin: 0 0 12px; font-size: 15px; line-height: 1.35; }
.stay-price-grid strong { display: block; font: 400 32px/1.15 var(--serif); color: var(--forest); }
.stay-price-grid small { font: 400 13px var(--sans); color: var(--muted); }
.stay-price-grid p { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.stay-price-note { display: flex; gap: 10px; margin: 18px 0 0; font-size: 14px; color: var(--muted); }
.stay-price-note .icon { margin-top: 3px; color: var(--wine); }
.stay-inquiry { padding-top: 28px; padding-bottom: 48px; }
.stay-inquiry-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 48px; margin-bottom: 30px; }
.stay-inquiry-heading h2 { margin: 0; }
.stay-inquiry-heading > p { margin: 0; max-width: 490px; color: var(--muted); }
.stay-form { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.85fr); grid-template-areas: 'progress progress' 'fields summary' 'actions summary'; align-items: start; gap: 18px 32px; padding: 26px; border: 1px solid var(--line); border-radius: var(--stay-radius); background: var(--white); }
.stay-form [hidden] { display: none !important; }
.stay-progress { grid-area: progress; display: flex; gap: 24px; list-style: none; padding: 0 0 22px; margin: 0 0 4px; border-bottom: 1px solid var(--line); }
.stay-progress li { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 14px; }
.stay-progress span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; font-weight: 700; }
.stay-progress [aria-current] { color: var(--forest); font-weight: 700; }
.stay-progress [aria-current] span { color: var(--white); background: var(--forest); border-color: var(--forest); }
.stay-fields { grid-area: fields; min-width: 0; }
.stay-stage-title { margin: 0 0 18px; font: 400 28px/1.1 var(--serif); }
.stay-form fieldset { border: 0; border-top: 1px solid var(--line); padding: 14px 0 0; margin: 0 0 14px; min-width: 0; }
.stay-form legend { padding-right: 14px; font-size: 15px; font-weight: 700; }
.stay-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
.stay-form label { display: flex; flex-direction: column; gap: 6px; margin-bottom: 13px; font-size: 14px; font-weight: 600; }
.stay-form :is(input,textarea) { width: 100%; min-width: 0; min-height: 50px; padding: 12px; border: 1px solid #929c95; border-radius: 5px; color: var(--ink); background: #fff; font: 400 16px/1.5 var(--sans); }
.stay-form input[type=date] { appearance: none; -webkit-appearance: none; }
.stay-form input[type=date]::-webkit-date-and-time-value { min-height: 24px; text-align: left; }
.stay-form :is(input,textarea):focus-visible { outline: 3px solid var(--wine); outline-offset: 2px; border-color: var(--wine); }
.stay-form [aria-invalid=true] { border-color: #a12e21; }
.stay-form :is(small,label>span), .stay-field-note { font-size: 13px; font-weight: 400; line-height: 1.5; color: var(--muted); }
.stay-field-note { margin: -4px 0 0; }
.stay-field-error { color: #a12e21 !important; font-size: 13px; font-weight: 600; }
.stay-summary { grid-area: summary; position: sticky; top: calc(var(--header-offset) + 20px); padding: 28px; border-radius: var(--stay-radius); color: var(--white); background: var(--forest-soft); }
.stay-summary .eyebrow { margin-bottom: 10px; color: var(--gold-light); }
.stay-summary h3 { margin: 0 0 15px; font: 400 32px/1.1 var(--serif); }
.stay-summary p { font-size: 14px; line-height: 1.6; }
.stay-summary-dates { padding-bottom: 16px; border-bottom: 1px solid var(--line-dark); color: #d8dfd7; }
.stay-summary dl { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; margin: 20px 0; font-size: 14px; }
.stay-summary dt { color: #d8dfd7; }
.stay-summary dd { margin: 0; font-weight: 600; text-align: right; white-space: nowrap; }
.stay-summary dt:last-of-type,.stay-summary dd:last-of-type { padding-top: 18px; margin-top: 6px; border-top: 1px solid var(--line-dark); color: var(--gold-light); font-size: 20px; font-weight: 700; }
.stay-summary .stay-summary-note { display: flex; align-items: flex-start; gap: 8px; margin: 18px 0 0; color: #d8dfd7; font-size: 13px; }
.stay-summary-note .icon { margin-top: 3px; color: var(--gold-light); }
.stay-form-actions { grid-area: actions; }
.stay-form-actions .button { min-height: 54px; width: 100%; white-space: normal; text-align: center; cursor: pointer; }
.stay-send-actions > p,.stay-privacy-note { margin: 12px 0 0; font-size: 13px; color: var(--muted); }
.stay-privacy-note a { text-decoration: underline; text-underline-offset: 3px; }
.stay-back { display: inline-flex; align-items: center; min-height: 44px; border: 0; padding: 0 8px; margin: 0 0 12px; color: var(--wine); background: transparent; font-size: 14px; font-weight: 600; cursor: pointer; }
.stay-form-actions .button:disabled { cursor: wait; opacity: .7; }
.stay-notice { padding: 24px; margin: 24px 0; border: 1px solid #577660; border-radius: var(--stay-radius); background: #eef5ed; }
.stay-notice a { text-decoration: underline; }
.stay-error { border-color: #a23c2c; background: #fff3ed; }
.stay-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.stay-host h2 { margin-bottom: 12px; }
.stay-host .button-row { flex-wrap: wrap; }
.page-accommodation .mobile-call.is-inquiry-visible { display: none; }
@media (max-width:1100px) {
    .stay-room-card { grid-template-columns: 1fr; }
    .stay-room-card > img { height: 260px; min-height: 0; }
    .stay-room-card > div { padding: 24px; }
    .stay-room-card h3 { font-size: 30px; }
    .stay-form { gap: 24px; padding: 24px; }
    .stay-summary { padding: 24px; }
}
@media (max-width:900px) {
    .accommodation-hero .menu-hero-inner { gap: 26px; padding-block: 32px; }
    .accommodation-hero h1 { font-size: clamp(36px,5.6vw,54px); }
    .stay-hero-actions { gap: 8px 18px; }
    .stay-facilities { gap: 28px; padding: 24px; }
    .stay-price-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .stay-price-grid article:nth-child(2) { border-right: 0; }
    .stay-price-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .stay-form { grid-template-columns: minmax(0,1fr); grid-template-areas: 'progress' 'fields' 'summary' 'actions'; gap: 24px; }
    .stay-summary { position: static; }
    .stay-inquiry-heading { gap: 24px; }
    .page-accommodation .mobile-call { gap: 8px; }
}
@media (max-width:620px) {
    .accommodation-hero .menu-hero-inner { grid-template-columns: 1fr; gap: 18px; padding-block: 28px 18px; }
    .accommodation-hero h1 { font-size: clamp(38px,10.8vw,54px); }
    .accommodation-hero .menu-hero-copy > p:not(.eyebrow):not(.menu-reservation-note) { font-size: 17px; }
    .stay-hero-actions { display: grid; justify-items: center; gap: 2px; }
    .stay-hero-actions .button { width: 100%; }
    .stay-hero-secondary { min-height: 44px; }
    .stay-hero-facts { margin-top: 14px; padding-top: 14px; font-size: 12px; gap: 8px 16px; }
    .stay-page-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; padding-block: 10px; }
    .stay-page-nav a { justify-content: center; font-size: 13px; }
    .stay-rooms { padding-block: 40px; }
    .stay-rooms .section-intro { gap: 16px; }
    .stay-room-grid { grid-template-columns: 1fr; gap: 18px; }
    .stay-room-card { grid-template-columns: 42% 1fr; }
    .stay-room-card > img { height: 100%; min-height: 220px; }
    .stay-room-card > div { padding: 20px 16px; }
    .stay-room-card h3 { font-size: 25px; overflow-wrap: anywhere; }
    .stay-room-card .eyebrow { font-size: 10px; letter-spacing: .035em; }
    .stay-room-card a { font-size: 13px; line-height: 1.5; }
    .stay-room-card p:not(.eyebrow) { font-size: 13px; }
    .stay-facilities { grid-template-columns: 1fr; gap: 18px; padding: 22px; margin-top: 24px; }
    .stay-facilities .check-list { grid-template-columns: 1fr; font-size: 14px; }
    .stay-prices { padding-block: 34px; }
    .stay-price-grid { grid-template-columns: 1fr; }
    .stay-price-grid article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 14px; padding: 18px; border-right: 0; border-bottom: 1px solid var(--line); }
    .stay-price-grid article:last-child { border-bottom: 0; }
    .stay-price-grid h3 { min-height: 0; margin: 0; font-size: 14px; align-self: center; }
    .stay-price-grid strong { align-self: center; text-align: right; font-size: 27px; white-space: nowrap; }
    .stay-price-grid small { display: block; font-size: 12px; }
    .stay-price-grid p { grid-column: 1/-1; margin: 0; font-size: 13px; }
    .stay-price-note { font-size: 13px; }
    .stay-inquiry { padding-block: 32px 44px; }
    .stay-inquiry-heading { grid-template-columns: 1fr; gap: 16px; margin-bottom: 24px; }
    .stay-form { padding: 20px 16px; gap: 22px; }
    .stay-progress { gap: 14px; padding-bottom: 18px; }
    .stay-progress li { flex: 1; font-size: 12px; gap: 8px; line-height: 1.4; }
    .stay-progress span { flex: 0 0 27px; width: 27px; height: 27px; }
    .stay-stage-title { font-size: 27px; margin-bottom: 22px; }
    .stay-row { gap: 0 12px; }
    .stay-form label { font-size: 13px; }
    .stay-form legend { font-size: 14px; }
    .stay-form fieldset:last-child { margin-bottom: 0; }
    .stay-form [data-stage=contact] .stay-row { grid-template-columns: 1fr; }
    .stay-form input { padding: 11px 8px; }
    .stay-summary { padding: 22px 18px; }
    .stay-summary h3 { font-size: 28px; }
    .stay-summary dl { gap: 12px 8px; font-size: 13px; }
    .stay-summary dt:last-of-type,.stay-summary dd:last-of-type { font-size: 18px; }
    .stay-host .booking-grid { gap: 24px; }
}
@media (max-width:360px) {
    .stay-room-card { grid-template-columns: 1fr; }
    .stay-room-card > img { height: 220px; min-height: 0; }
    .stay-row { grid-template-columns: 1fr; }
}

/* Searchable, accessible stay information, using the same content as JSON-LD. */
.stay-faq-list { display:grid; gap:12px; }
.stay-faq details { border:1px solid var(--line); border-radius:8px; background:var(--white); }
.stay-faq summary { min-height:48px; padding:18px 20px; color:var(--forest); font-weight:700; cursor:pointer; }
.stay-faq summary:focus-visible { outline:2px solid var(--wine); outline-offset:3px; }
.stay-faq details p { margin:0; padding:0 20px 22px; color:var(--muted); line-height:1.7; }
.stay-local-context { margin:28px 0 0; color:var(--muted); line-height:1.7; }
.stay-local-context a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
