.brand { min-width: 0; gap: 10px; font-size: clamp(17px, 2.2vw, 26px); line-height: 1.05; }
.brand img { flex: none; width: 39px; height: 39px; object-fit: contain; border-radius: 4px; }
.header-action { flex: none; }
.hero-inner { min-height: clamp(365px, 35vw, 485px); background: var(--dark); }
.hero-photo picture { display: block; height: 100%; }
.hero-photo::after { background: linear-gradient(90deg, var(--dark) 0%, var(--dark) 5%, var(--shade) 36%, transparent 72%); }
.hero-copy { max-width: 66%; padding-inline: clamp(26px, 4.3vw, 68px); }
.hero-location { color: var(--on-dark); letter-spacing: .025em; }
.hero-desc { color: #f1f0eb; font-size: clamp(16px, 1.65vw, 22px); max-width: 37ch; }
h1 { font-size: clamp(46px, var(--hero-size, 6.7vw), 105px); font-weight: 795; letter-spacing: -.05em; line-height: 1; overflow-wrap: anywhere; }
.button-primary { color: var(--on-accent); }
.text-link span { color: var(--deep); }
.filter[aria-pressed="true"] { background: var(--warm); }
.row-book { display: inline-flex; justify-content: flex-end; align-items: center; padding: 0 4px; color: var(--deep); min-width: 0; }
.row-book:hover { background: var(--warm); }
.price-table td:last-child { text-align: right; font-weight: 650; white-space: nowrap; }
.search > span { font-size: 22px; line-height: 1; color: var(--muted); }
.gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.gallery figure { height: clamp(160px, 28vw, 335px); overflow: hidden; background: var(--warm); }
.gallery img { height: 100%; object-fit: cover; }
.gallery.single { grid-template-columns: 1fr; }
.gallery.single figure { height: clamp(220px, 40vw, 445px); }
.contact { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 6vw, 90px); align-items: start; }
.gallery + .contact { padding-top: 0; }
.contact-details h2 { margin-bottom: 21px; }
.address { font-size: clamp(19px, 2vw, 25px); font-weight: 650; }
.hours { margin-top: 10px; color: var(--muted); }
.contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 23px; }
.phones { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; font-weight: 650; }
.phones a { text-decoration: underline; text-underline-offset: 4px; }
.request-card { display: block; padding: clamp(20px, 3vw, 42px); background: var(--warm); color: var(--ink); }
.request-copy h3, .request-result h3 { font-size: clamp(25px, 3vw, 35px); }
.request-copy p { color: var(--muted); max-width: 42ch; margin: 8px 0 19px; }
.request-form select, #request-summary { display: block; width: 100%; min-height: 44px; margin-top: 6px; padding: 10px 12px; background: #fff; border: 1px solid var(--line); border-radius: 3px; color: var(--ink); }
.request-form :is(input,textarea,button):focus-visible, .request-result button:focus-visible { outline-color: var(--deep); }
.request-form button { justify-self: start; }
.optional { color: var(--muted); }
.request-result { border: 0; padding: 18px 0 0; }
.request-result button { color: var(--ink); }
.request-actions { margin-top: 12px; }
.edit-request { padding: 6px 2px; border: 0; background: none; text-decoration: underline; text-underline-offset: 4px; font-size: 14px; }
#request { scroll-margin-top: 20px; }
@media (min-width: 731px) {
  .split .hero-inner, .reverse .hero-inner { grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); align-items: stretch; }
  .split .hero-copy, .reverse .hero-copy { grid-area: 1 / 1; max-width: none; align-self: center; }
  .split .hero-photo, .reverse .hero-photo { position: relative; inset: auto; z-index: auto; grid-area: 1 / 2; min-height: 430px; }
  .split .hero-photo::after, .reverse .hero-photo::after { display: none; }
  .split .hero-photo img, .reverse .hero-photo img { position: absolute; inset: 0; }
  .reverse .hero-inner { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); }
  .reverse .hero-copy { grid-area: 1 / 2; }
  .reverse .hero-photo { grid-area: 1 / 1; }
  .light .hero-inner { background: var(--warm); color: var(--ink); }
  .light .hero-desc { color: var(--muted); }
  .light .hero-location { color: var(--deep); }
  .light .hero-prices { text-decoration-color: var(--deep); }
  .light .hero :focus-visible { outline-color: var(--deep); }
}
@media (max-width: 730px) {
  .hero-inner { min-height: 0; }
  .hero-copy { max-width: none; padding-inline: 18px; }
  .hero-photo::after { background: linear-gradient(0deg, var(--dark), transparent 25%); }
  h1 { font-size: clamp(40px, 10.4vw, 72px); }
  .contact { grid-template-columns: 1fr; }
  .footer-inner { align-items: start; }
}
@media (max-width: 420px) {
  .header-action span { display: none; }
  .brand img { width: 31px; height: 31px; }
  .price-table th:first-child { width: 55%; }
  .row-book { min-height: 34px; padding-inline: 1px; font-size: 12px; }
}
.filter[aria-pressed="true"] { border-left-color: var(--deep); }
@media (max-width: 730px) {
  .filter[aria-pressed="true"] { border-color: var(--deep); }
}

:root { --ink:#22231f; --muted:#4e5554; --accent:#8bbef2; --accent-hover:#abd1f7; --on-accent:#152a40; --dark:#202e40; --warm:#e6eef6; --deep:#325a86; --on-dark:#8bbef2; --shade:rgba(32,46,64,0.74); background:#f5f8fb; }
.header { background:#f5f8fb; }
:is(a,button,input,textarea,select):focus-visible { outline-color:var(--deep); }
.hero-copy { --hero-size:4.8vw; }
