/* ============================================================
   Australian Inn Melbourne — global styles
   ============================================================ */
:root {
  --paper: #f7f8f9;
  --paper-2: #eef1f4;
  --white: #ffffff;
  --ink: #0f1720;
  --ink-2: #1c2732;
  --muted: #5d6b78;
  --line: #e2e7ec;
  --accent: #14508a;
  --accent-2: #7fa3c0;
  --accent-soft: #e9f1f8;
  --dark: #0b1420;
  --dark-2: #101c2b;
  --danger: #c43d3d;
  --ok: #2e6fd8;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", "Segoe UI", Arial, sans-serif;
  --r-lg: 26px;
  --r-md: 18px;
  --r-sm: 12px;
  --shadow-1: 0 12px 40px rgba(15, 23, 32, 0.08);
  --shadow-2: 0 24px 70px rgba(15, 23, 32, 0.16);
  --head-h: 118px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: var(--sans); }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent); }
button { font-family: inherit; }

::selection { background: var(--accent); color: #fff; }

/* ---------- layout primitives ---------- */
.shell { width: min(1240px, 92%); margin: 0 auto; }
.sec { position: relative; padding: clamp(64px, 9vw, 120px) 0; overflow: hidden; }
.sec-tight { padding: clamp(44px, 6vw, 72px) 0; }
.sec-dark { background: var(--dark); color: #eef2f6; }
.sec-dark .lead, .sec-dark p { color: #b9c4ce; }
.sec-paper2 { background: var(--paper-2); }
.sec-white { background: var(--white); }

.bg-media { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; }
.bg-media + * { position: relative; }
.has-media { position: relative; color: #fff; }
.has-media .lead, .has-media p { color: rgba(255,255,255,0.82); }
.has-media .eyebrow { color: var(--accent-2); }
.has-media .eyebrow::before { background: var(--accent-2); }

.z1 { position: relative; z-index: 1; }

/* ---------- typography ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--accent); margin: 0 0 18px;
}
.eyebrow::before { content: ""; width: 42px; height: 1px; background: var(--accent); display: inline-block; }

.display {
  font-family: var(--serif); font-weight: 600; line-height: 1.04;
  font-size: clamp(40px, 6vw, 84px); margin: 0 0 22px; letter-spacing: -0.01em;
}
.display-xl { font-size: clamp(52px, 9vw, 128px); }
.h-title {
  font-family: var(--serif); font-weight: 600; line-height: 1.1;
  font-size: clamp(30px, 4vw, 52px); margin: 0 0 18px;
}
.h-sub { font-family: var(--serif); font-size: clamp(22px, 2.6vw, 30px); font-weight: 600; margin: 0 0 14px; }
.lead { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.75; color: var(--muted); max-width: 62ch; margin: 0; }
.sec-dark .lead { color: #b9c4ce; }
p.body-text { color: var(--muted); line-height: 1.8; margin: 0 0 16px; }
.num-ghost {
  font-family: var(--serif); font-size: clamp(90px, 12vw, 170px); line-height: 1;
  color: transparent; -webkit-text-stroke: 1px rgba(20, 80, 138, 0.28); font-weight: 600;
}
.sec-dark .num-ghost { -webkit-text-stroke-color: rgba(255,255,255,0.18); }
.serif-i { font-family: var(--serif); font-style: italic; }

.section-head { max-width: 720px; margin-bottom: clamp(34px, 5vw, 56px); }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head.center .eyebrow { justify-content: center; }
.section-head.center .eyebrow::after { content: ""; width: 42px; height: 1px; background: var(--accent); display: inline-block; }
.section-head.center .lead { margin: 0 auto; }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 30px; border-radius: 999px; font-size: 14px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer;
  border: 1px solid transparent; transition: all 0.25s ease; white-space: nowrap;
}
.btn i { font-size: 13px; transition: transform 0.25s ease; }
.btn:hover i { transform: translateX(4px); }
.btn-solid { background: var(--ink); color: #fff; }
.btn-solid:hover { background: var(--accent); color: #fff; }
.btn-accent { background: var(--accent); color: #fff; }
.btn-accent:hover { background: var(--ink); color: #fff; }
.btn-line { background: transparent; border-color: var(--ink); color: var(--ink); }
.btn-line:hover { background: var(--ink); color: #fff; }
.btn-light { background: #fff; color: var(--ink); }
.btn-light:hover { background: var(--accent); color: #fff; }
.btn-ghost-light { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.4); color: #fff; backdrop-filter: blur(8px); }
.btn-ghost-light:hover { background: #fff; color: var(--ink); }
.btn-sm { padding: 11px 22px; font-size: 12px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: 0.55; pointer-events: none; }

/* ---------- chips / badges / cards ---------- */
.chip {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px;
  border: 1px solid var(--line); border-radius: 999px; font-size: 13px;
  font-weight: 600; color: var(--ink-2); background: var(--white);
}
.chip i { color: var(--accent); }
.chip-dark { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.2); color: #e6ebf0; }
.badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px;
  background: var(--accent); color: #fff; border-radius: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
}
.card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: clamp(24px, 3vw, 38px); box-shadow: var(--shadow-1);
}
.card-line { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(22px, 2.6vw, 32px); }
.glass {
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(14px); border-radius: var(--r-lg);
}
.icon-tile {
  width: 54px; height: 54px; border-radius: 14px; display: inline-flex;
  align-items: center; justify-content: center; font-size: 20px;
  background: var(--accent-soft); color: var(--accent); flex: none;
}
.icon-tile.dark { background: rgba(255,255,255,0.1); color: #fff; }
.media-frame { position: relative; overflow: hidden; border-radius: var(--r-lg); }
.media-frame img { width: 100%; height: 100%; object-fit: cover; }
.ar-43 { aspect-ratio: 4 / 3; }
.ar-34 { aspect-ratio: 3 / 4; }
.ar-169 { aspect-ratio: 16 / 9; }
.ar-11 { aspect-ratio: 1 / 1; }

/* ---------- grids ---------- */
.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-gap-lg { gap: 40px; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 88px); align-items: center; }
.split-wide { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: clamp(36px, 6vw, 80px); align-items: center; }
.split-wide-r { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(36px, 6vw, 80px); align-items: center; }

/* ---------- header ---------- */
.site-head { position: fixed; top: 0; left: 0; right: 0; z-index: 900; }
.head-top { background: var(--dark); color: #cfd8e0; font-size: 12.5px; }
.head-top-inner { display: flex; align-items: center; gap: 28px; height: 38px; }
.head-contact { display: inline-flex; align-items: center; gap: 8px; }
.head-contact i { color: var(--accent-2); font-size: 11px; }
.head-contact-addr { margin-left: auto; }
.head-main { background: rgba(247, 248, 249, 0.86); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line); transition: box-shadow 0.3s ease; }
.site-head.head-scrolled .head-main { box-shadow: 0 8px 30px rgba(15,23,32,0.1); }
.head-inner { display: flex; align-items: center; gap: 26px; height: 76px; }
.brand img { height: 46px; width: auto; }
.main-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.nav-link {
  position: relative; padding: 10px 13px; font-size: 13.5px; font-weight: 600;
  color: var(--ink-2); letter-spacing: 0.02em;
}
.nav-link::after {
  content: ""; position: absolute; left: 13px; right: 13px; bottom: 4px;
  height: 2px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform 0.25s ease;
}
.nav-link:hover { color: var(--accent); }
.nav-link:hover::after { transform: scaleX(1); }
.head-actions { display: flex; align-items: center; gap: 14px; }
.head-burger {
  display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--line);
  background: var(--white); color: var(--ink); font-size: 17px; cursor: pointer;
  align-items: center; justify-content: center;
}
body.menu-open { overflow: hidden; }
.mobile-menu {
  position: fixed; inset: 0; z-index: 990; background: var(--dark); color: #fff;
  padding: 26px 6vw 40px; display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.mobile-menu.open { transform: translateX(0); }
.mm-head { display: flex; align-items: center; justify-content: space-between; }
.mm-logo { height: 40px; width: auto; }
.mm-close { width: 48px; height: 48px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.25); background: transparent; color: #fff; font-size: 20px; cursor: pointer; }
.mm-nav { display: flex; flex-direction: column; gap: 4px; margin-top: 42px; }
.mm-nav a {
  font-family: var(--serif); font-size: clamp(28px, 6vw, 40px); font-weight: 600;
  padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.08); color: #eef2f6;
}
.mm-nav a:hover { color: var(--accent-2); padding-left: 10px; transition: padding 0.25s ease, color 0.25s ease; }
.mm-contacts { margin-top: auto; padding-top: 30px; display: flex; flex-direction: column; gap: 12px; color: #b9c4ce; font-size: 14px; }
.mm-contact { display: flex; align-items: center; gap: 12px; }
.mm-contact i { color: var(--accent-2); width: 16px; }
.menu-veil { position: fixed; inset: 0; z-index: 985; background: rgba(11,20,32,0.5); opacity: 0; pointer-events: none; transition: opacity 0.35s ease; }
.menu-veil.on { opacity: 1; pointer-events: auto; }
.page-pad { padding-top: var(--head-h); }

/* ---------- hero slider ---------- */
.hero-slider { position: relative; height: max(640px, 92vh); min-height: 560px; color: #fff; overflow: hidden; }
.h-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 1s; display: flex; align-items: flex-end; }
.h-slide.active { opacity: 1; visibility: visible; z-index: 2; }
.h-slide .bg-media { transform: scale(1.06); transition: transform 7s ease; }
.h-slide.active .bg-media { transform: scale(1); }
.h-slide-inner { position: relative; z-index: 2; width: min(1240px, 92%); margin: 0 auto; padding-bottom: clamp(80px, 12vh, 140px); }
.h-kicker { display: inline-flex; gap: 10px; align-items: center; font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; font-weight: 700; margin-bottom: 20px; color: #cfe0ee; }
.h-slide h1 { font-family: var(--serif); font-size: clamp(2rem, 7vw, 4rem); line-height: 1.02; font-weight: 600; margin: 0 0 18px; max-width: 14ch; }
.h-slide p { font-size: clamp(15px, 1.4vw, 18px); line-height: 1.7; color: rgba(255,255,255,0.85); max-width: 56ch; margin: 0 0 30px; }
.h-ui { position: absolute; z-index: 5; left: 0; right: 0; bottom: 34px; }
.h-ui-inner { width: min(1240px, 92%); margin: 0 auto; display: flex; align-items: center; gap: 22px; }
.h-dots { display: flex; gap: 10px; }
.h-dot { width: 34px; height: 4px; border-radius: 4px; border: none; background: rgba(255,255,255,0.3); cursor: pointer; padding: 0; transition: background 0.3s; }
.h-dot.active { background: #fff; }
.h-arrows { margin-left: auto; display: flex; gap: 10px; }
.h-arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.4); background: rgba(255,255,255,0.08); color: #fff; cursor: pointer; backdrop-filter: blur(6px); transition: background 0.25s; }
.h-arrow:hover { background: #fff; color: var(--ink); }
.h-count { font-family: var(--serif); font-size: 15px; color: rgba(255,255,255,0.75); letter-spacing: 0.14em; }

/* ---------- generic slider / strip ---------- */
.strip { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 14px; scrollbar-width: none; }
.strip::-webkit-scrollbar { display: none; }
.strip > * { scroll-snap-align: start; flex: none; }
.marquee { overflow: hidden; position: relative; }
.marquee-track { display: flex; gap: 60px; width: max-content; animation: marq 30s linear infinite; }
@keyframes marq { to { transform: translateX(-50%); } }

/* ---------- booking bar ---------- */
.book-bar { position: relative; z-index: 30; }
.book-bar-inner {
  display: grid; grid-template-columns: auto 1fr 1fr 1fr auto; gap: 14px; align-items: center;
  background: rgba(11,20,32,0.82); border: 1px solid rgba(255,255,255,0.14);
  backdrop-filter: blur(18px); border-radius: var(--r-lg); padding: 18px; color: #fff;
  box-shadow: var(--shadow-2);
}
.book-cell { padding: 6px 16px; border-right: 1px solid rgba(255,255,255,0.12); }
.book-cell:last-of-type { border-right: none; }
.book-label { display: block; font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent-2); font-weight: 700; margin-bottom: 6px; }
.book-value { display: flex; align-items: center; gap: 10px; font-family: var(--serif); font-size: 20px; font-weight: 600; }
.book-value i { color: var(--accent-2); font-size: 15px; }
.book-value small { font-family: var(--sans); font-size: 12px; color: rgba(255,255,255,0.6); }
.book-meteo { display: flex; align-items: center; gap: 14px; }
.book-meteo i { font-size: 26px; color: var(--accent-2); }
.book-meteo .t { font-family: var(--serif); font-size: 26px; font-weight: 600; }
.book-meteo small { display: block; font-size: 11.5px; color: rgba(255,255,255,0.6); }
.book-fab {
  display: none; position: fixed; left: 14px; right: 14px; bottom: 14px; z-index: 950;
  padding: 16px 20px; border: none; border-radius: 16px; background: var(--ink); color: #fff;
  font-weight: 700; font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase;
  box-shadow: var(--shadow-2); align-items: center; justify-content: center; gap: 10px; cursor: pointer;
}
.book-overlay {
  position: fixed; inset: 0; z-index: 980; background: var(--dark); color: #fff;
  padding: 30px 6vw 50px; overflow-y: auto; transform: translateY(100%);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); display: flex; flex-direction: column;
}
.book-overlay.open { transform: translateY(0); }
.book-overlay .form-grid { margin-top: 8px; }
.book-overlay label, .book-overlay .f-label { color: #aeb9c4; }
.book-overlay .f-input { background: rgba(255,255,255,0.07); border-color: rgba(255,255,255,0.18); color: #fff; }

/* ---------- accordions (seo.js-friendly markup) ---------- */
.accordion { display: flex; flex-direction: column; gap: 14px; }
.accordion-item { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; transition: box-shadow 0.25s ease; }
.accordion-item.open { box-shadow: var(--shadow-1); }
.accordion-button {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 22px 26px; background: none; border: none; cursor: pointer; text-align: left;
  font-size: 16px; font-weight: 700; color: var(--ink);
}
.accordion-button i { color: var(--accent); transition: transform 0.3s ease; flex: none; }
.accordion-item.open .accordion-button i { transform: rotate(45deg); }
.accordion-body { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.accordion-body > p { padding: 0 26px 24px; margin: 0; color: var(--muted); line-height: 1.75; }
.sec-dark .accordion-item { background: var(--dark-2); border-color: rgba(255,255,255,0.12); }
.sec-dark .accordion-button { color: #fff; }

/* ---------- tabs ---------- */
.tabs-bar { display: flex; flex-wrap: wrap; gap: 10px; }
.tab-btn {
  padding: 12px 22px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--white); color: var(--ink-2); font-size: 13.5px; font-weight: 700;
  cursor: pointer; transition: all 0.25s ease;
}
.tab-btn.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.tab-pane { display: none; }
.tab-pane.active { display: block; animation: fadeUp 0.5s ease; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- timeline / steps ---------- */
.timeline { position: relative; display: flex; flex-direction: column; gap: 0; }
.timeline::before { content: ""; position: absolute; left: 27px; top: 10px; bottom: 10px; width: 1px; background: var(--line); }
.tl-item { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 18px; padding: 0 0 34px; }
.tl-item:last-child { padding-bottom: 0; }
.tl-dot {
  width: 56px; height: 56px; border-radius: 50%; background: var(--white);
  border: 1px solid var(--line); display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-size: 19px; font-weight: 700; color: var(--accent); z-index: 1;
}
.tl-body h4 { font-family: var(--serif); font-size: 24px; font-weight: 600; margin: 4px 0 8px; }
.tl-body p { color: var(--muted); line-height: 1.7; margin: 0; }
.tl-tag { font-size: 11.5px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); }

.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; counter-reset: step; }
.step-card { position: relative; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md); padding: 30px 26px; }
.step-card::before {
  counter-increment: step; content: "0" counter(step);
  font-family: var(--serif); font-size: 44px; font-weight: 600; color: var(--accent-soft);
  position: absolute; top: 18px; right: 22px; line-height: 1;
}
.step-card h4 { font-family: var(--serif); font-size: 22px; font-weight: 600; margin: 14px 0 8px; }
.step-card p { color: var(--muted); font-size: 14.5px; line-height: 1.7; margin: 0; }
.step-card .icon-tile { width: 46px; height: 46px; font-size: 17px; }

/* ---------- stats / meters ---------- */
.stat-band { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.stat { background: var(--white); padding: clamp(26px, 3vw, 42px); text-align: center; }
.stat-num { font-family: var(--serif); font-size: clamp(38px, 4.6vw, 60px); font-weight: 600; line-height: 1; color: var(--ink); }
.stat-num i { font-size: 0.45em; color: var(--accent); vertical-align: super; }
.stat-label { margin-top: 10px; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.sec-dark .stat { background: var(--dark-2); }
.sec-dark .stat-num { color: #fff; }
.meter { height: 8px; border-radius: 8px; background: var(--paper-2); overflow: hidden; }
.meter > span { display: block; height: 100%; border-radius: 8px; background: linear-gradient(90deg, var(--accent-2), var(--accent)); }

/* ---------- kv / lists ---------- */
.kv { display: flex; flex-direction: column; }
.kv-row { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 15px 0; border-bottom: 1px dashed var(--line); }
.kv-row:last-child { border-bottom: none; }
.kv-k { font-weight: 600; color: var(--ink-2); display: flex; align-items: center; gap: 10px; }
.kv-k i { color: var(--accent); width: 16px; }
.kv-v { font-family: var(--serif); font-size: 19px; font-weight: 600; color: var(--ink); text-align: right; }
.sec-dark .kv-row { border-color: rgba(255,255,255,0.14); }
.sec-dark .kv-k { color: #d5dde4; }
.sec-dark .kv-v { color: #fff; }
.list-check { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.list-check li { display: flex; gap: 12px; align-items: flex-start; color: var(--muted); line-height: 1.6; }
.list-check li i { color: var(--accent); margin-top: 4px; }
.sec-dark .list-check li { color: #b9c4ce; }

/* ---------- price ---------- */
.price-card { position: relative; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(28px, 3vw, 40px); display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.price-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); }
.price-card.featured { border-color: var(--accent); box-shadow: 0 20px 60px rgba(20,80,138,0.14); }
.price-val { font-family: var(--serif); font-size: clamp(38px, 4vw, 52px); font-weight: 600; line-height: 1; }
.price-val sup { font-size: 0.42em; top: -0.9em; }
.price-per { color: var(--muted); font-size: 13px; margin-top: 6px; }
.rate-table { width: 100%; border-collapse: collapse; }
.rate-table th { text-align: left; font-size: 11.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); font-weight: 700; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.rate-table td { padding: 18px; border-bottom: 1px solid var(--line); font-size: 15px; vertical-align: top; }
.rate-table tr:last-child td { border-bottom: none; }
.rate-table td:first-child { font-weight: 600; }
.rate-table .r-price { font-family: var(--serif); font-size: 20px; font-weight: 600; white-space: nowrap; }
.rate-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); }

/* ---------- polaroid / editorial ---------- */
.polaroid { background: #fff; padding: 14px 14px 20px; border-radius: 10px; box-shadow: var(--shadow-1); transform: rotate(var(--rot, 0deg)); transition: transform 0.3s ease; }
.polaroid:hover { transform: rotate(0deg) scale(1.03); z-index: 3; position: relative; }
.polaroid .media-frame { border-radius: 6px; }
.polaroid figcaption { padding: 14px 6px 0; font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--ink-2); }
.polaroid .p-meta { font-family: var(--sans); font-style: normal; font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); display: block; margin-top: 5px; }

/* ---------- pins / map ---------- */
.map-stage { position: relative; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); }
.pin { position: absolute; width: 22px; height: 22px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--accent); border: 3px solid #fff; box-shadow: 0 4px 14px rgba(0,0,0,0.3); cursor: pointer; }
.pin::after { content: ""; position: absolute; inset: -9px; border-radius: 50%; border: 1px solid var(--accent); animation: pulse 2s infinite; }
@keyframes pulse { 0% { transform: scale(0.6); opacity: 1; } 100% { transform: scale(1.6); opacity: 0; } }
.map-frame iframe { width: 100%; height: 100%; min-height: 420px; border: 0; display: block; }

/* ---------- forms ---------- */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-grid .span-2 { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; gap: 7px; }
.f-label { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); }
.f-input, .f-select, .f-area {
  width: 100%; padding: 15px 18px; border-radius: 12px; border: 1px solid var(--line);
  background: var(--white); font-family: inherit; font-size: 15px; color: var(--ink);
  transition: border-color 0.2s ease, box-shadow 0.2s ease; appearance: none;
}
.f-area { min-height: 130px; resize: vertical; }
.f-input:focus, .f-select:focus, .f-area:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(20,80,138,0.12); }
.field.err .f-input, .field.err .f-area, .field.err .f-select { border-color: var(--danger); box-shadow: 0 0 0 4px rgba(196,61,61,0.1); }
.f-error { display: none; font-size: 12.5px; color: var(--danger); font-weight: 600; }
.field.err .f-error { display: block; }
.honeypot { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; overflow: hidden; }
.check-row { display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; color: var(--muted); line-height: 1.55; }
.check-row input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--accent); flex: none; }
.check-row a { color: var(--accent); font-weight: 600; text-decoration: underline; }
.form-note { display: none; margin-top: 16px; padding: 14px 18px; border-radius: 12px; font-size: 14px; font-weight: 600; }
.form-note.show { display: block; }
.form-note.ok { background: var(--accent-soft); color: var(--accent); }
.form-note.bad { background: #fdecec; color: var(--danger); }
.spinner {
  width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.35);
  border-top-color: #fff; animation: spin 0.8s linear infinite; display: none;
}
.btn.loading .spinner { display: inline-block; }
.btn.loading .btn-txt { opacity: 0.7; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- toast ---------- */
.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translate(-50%, 140%);
  z-index: 999; background: var(--ink); color: #fff; padding: 15px 26px;
  border-radius: 999px; font-size: 14px; font-weight: 600; box-shadow: var(--shadow-2);
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1); display: flex; gap: 10px; align-items: center; max-width: 90vw;
}
.toast.show { transform: translate(-50%, 0); }
.toast i { color: var(--accent-2); }

/* ---------- cookie banner ---------- */
.cookie-banner {
  position: fixed; left: 20px; bottom: 20px; z-index: 960; width: min(420px, calc(100vw - 40px));
  background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md);
  box-shadow: var(--shadow-2); padding: 24px; display: none;
}
.cookie-banner.show { display: block; animation: fadeUp 0.5s ease; }
.cookie-banner .cb-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 18px; margin-bottom: 14px; }
.cookie-banner p { font-size: 13.5px; line-height: 1.65; color: var(--muted); margin: 0 0 18px; }
.cookie-banner .cb-title { font-family: var(--serif); font-size: 21px; font-weight: 700; color: var(--ink); margin: 0 0 6px; }
.cookie-btns { display: flex; gap: 10px; }
.cookie-btns .btn { flex: 1; padding: 12px 16px; font-size: 12px; }
.cb-link { font-size: 12px; color: var(--muted); text-decoration: underline; margin-top: 12px; display: inline-block; }

/* ---------- footer ---------- */
.site-foot { background: var(--dark); color: #aeb9c4; padding: clamp(56px, 7vw, 90px) 0 0; }
.foot-grid { display: grid; grid-template-columns: 1.4fr 0.8fr 1fr 1fr; gap: clamp(30px, 4vw, 60px); padding-bottom: 50px; }
.foot-logo { height: 52px; width: auto; margin-bottom: 20px; }
.foot-desc { font-size: 14.5px; line-height: 1.75; max-width: 40ch; margin: 0 0 24px; }
.foot-social { display: flex; gap: 10px; }
.foot-social a {
  width: 42px; height: 42px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.16);
  display: flex; align-items: center; justify-content: center; color: #cfd8e0; font-size: 15px;
  transition: all 0.25s ease;
}
.foot-social a:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.foot-title { font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: #fff; font-weight: 700; margin: 0 0 20px; }
.foot-title-gap { margin-top: 30px; }
.foot-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.foot-list a { font-size: 14px; color: #aeb9c4; transition: color 0.2s, padding-left 0.2s; }
.foot-list a:hover { color: #fff; padding-left: 6px; }
.foot-contacts li { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.55; }
.foot-contacts i { color: var(--accent-2); margin-top: 3px; width: 15px; flex: none; }
.foot-meta { border-top: 1px solid rgba(255,255,255,0.1); padding: 26px 0; font-size: 12.5px; line-height: 1.8; }
.foot-meta p { margin: 0 0 4px; }
.foot-copy { border-top: 1px solid rgba(255,255,255,0.1); padding: 22px 0 30px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: #8fa0ad; }
.foot-tag { font-family: var(--serif); font-style: italic; font-size: 15px; }

/* ---------- decorative helpers ---------- */
.lux-line { height: 1px; background: linear-gradient(90deg, transparent, var(--accent-2), transparent); border: none; }
.dot-sep { display: inline-flex; gap: 8px; align-items: center; }
.dot-sep::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.vert-label { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 11px; letter-spacing: 0.34em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.float-badge { position: absolute; padding: 14px 20px; border-radius: 14px; background: var(--white); box-shadow: var(--shadow-2); font-size: 13px; font-weight: 700; display: flex; gap: 10px; align-items: center; }
.float-badge i { color: var(--accent); }
.offset-media { position: relative; }
.offset-media .om-b { margin-top: -22%; margin-left: 18%; }
.big-word {
  font-family: var(--serif); font-weight: 600; font-size: clamp(64px, 13vw, 190px);
  line-height: 0.9; color: transparent; -webkit-text-stroke: 1px rgba(15,23,32,0.14);
  white-space: nowrap; user-select: none;
}
.sec-dark .big-word { -webkit-text-stroke-color: rgba(255,255,255,0.12); }
.ring-wrap { position: relative; width: 120px; height: 120px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: conic-gradient(var(--accent) var(--p, 0%), var(--paper-2) 0); }
.ring-wrap::before { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: var(--white); }
.ring-wrap .ring-val { position: relative; font-family: var(--serif); font-size: 24px; font-weight: 700; color: var(--ink); }
.note-card { border-left: 3px solid var(--accent); background: var(--accent-soft); padding: 20px 24px; border-radius: 0 var(--r-md) var(--r-md) 0; color: var(--ink-2); font-size: 14.5px; line-height: 1.7; }
.sec-dark .note-card { background: rgba(255,255,255,0.06); color: #d5dde4; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 10px; }
.hcard { position: relative; border-radius: var(--r-lg); overflow: hidden; color: #fff; min-height: 340px; display: flex; align-items: flex-end; }
.hcard .bg-media { transition: transform 0.6s ease; }
.hcard:hover .bg-media { transform: scale(1.05); }
.hcard .hc-body { position: relative; z-index: 2; padding: 26px; width: 100%; }
.hcard h3 { font-family: var(--serif); font-size: 27px; font-weight: 600; margin: 0 0 8px; }
.hcard p { font-size: 14px; color: rgba(255,255,255,0.85); margin: 0; line-height: 1.6; }
.vcard-tall { min-height: 480px; }
.glow-line { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--accent-2), var(--accent)); }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .main-nav { display: none; }
  .head-burger { display: inline-flex; }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .book-bar-inner { grid-template-columns: 1fr 1fr; }
  .book-cell { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); }
}
@media (max-width: 900px) {
  :root { --head-h: 74px; }
  .head-top { display: none; }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .split, .split-wide, .split-wide-r { grid-template-columns: 1fr; }
  .stat-band { grid-template-columns: repeat(2, 1fr); }
  .foot-grid { grid-template-columns: 1fr 1fr; }
  .book-bar { display: none; }
  .book-fab { display: flex; }
  .vcard-tall { min-height: 400px; }
}
@media (max-width: 640px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .foot-grid { grid-template-columns: 1fr; gap: 34px; }
  .stat-band { grid-template-columns: 1fr 1fr; }
  .h-slide h1 { font-size: clamp(38px, 11vw, 56px); }
  .hero-slider { height: auto; min-height: 620px; }
  .h-slide { align-items: center; }
  .h-slide-inner { padding-bottom: 120px; padding-top: 40px; }
  .head-cta { display: none; }
  .cookie-banner { left: 12px; bottom: 12px; width: calc(100vw - 24px); }
  .accordion-button { padding: 18px 20px; font-size: 15px; }
}


/* ---- utilities (converted from inline styles) ---- */
.u-1.u-1.u-1.u-1{padding-top:calc(var(--head-h) + 60px)}
.u-2.u-2.u-2.u-2{max-width:60ch}
.u-3.u-3.u-3.u-3{align-items:start}
.u-4.u-4.u-4.u-4{position:sticky; top:140px}
.u-5.u-5.u-5.u-5{margin-top:26px}
.u-6.u-6.u-6.u-6{margin:22px 0}
.u-7.u-7.u-7.u-7{color:#fff}
.u-8.u-8.u-8.u-8{padding:30px}
.u-9.u-9.u-9.u-9{color:#fff; margin-top:16px}
.u-10.u-10.u-10.u-10{font-size:14.5px; line-height:1.75; margin:0}
.u-11.u-11.u-11.u-11{align-items:stretch}
.u-12.u-12.u-12.u-12{grid-column:span 1}
.u-13.u-13.u-13.u-13{margin-top:10px}
.u-14.u-14.u-14.u-14{padding:28px}
.u-15.u-15.u-15.u-15{font-size:22px; color:var(--accent-2)}
.u-16.u-16.u-16.u-16{color:#fff; margin-top:14px}
.u-17.u-17.u-17.u-17{font-size:14.5px; line-height:1.75; color:#b9c4ce; margin:0}
.u-18.u-18.u-18.u-18{margin-top:18px}
.u-19.u-19.u-19.u-19{color:var(--muted); font-size:14.5px; line-height:1.7; margin:0}
.u-20.u-20.u-20.u-20{margin-top:22px}
.u-21.u-21.u-21.u-21{margin-top:16px}
.u-22.u-22.u-22.u-22{color:var(--muted); font-size:14.5px; line-height:1.75}
.u-23.u-23.u-23.u-23{color:var(--accent); font-weight:600}
.u-24.u-24.u-24.u-24{flex-wrap:wrap; gap:8px; margin-top:16px}
.u-25.u-25.u-25.u-25{flex-wrap:wrap; gap:10px; margin-top:22px}
.u-26.u-26.u-26.u-26{padding:32px}
.u-27.u-27.u-27.u-27{font-size:14px; color:var(--muted); line-height:1.7; margin:0}
.u-28.u-28.u-28.u-28{color:var(--accent)}
.u-29.u-29.u-29.u-29{max-width:840px}
.u-30.u-30.u-30.u-30{margin-top:20px}
.u-31.u-31.u-31.u-31{gap:12px; flex-wrap:wrap; margin-top:24px}
.u-32.u-32.u-32.u-32{max-width:780px}
.u-33.u-33.u-33.u-33{font-size:20px; color:var(--ink-2)}
.u-34.u-34.u-34.u-34{font-size:30px}
.u-35.u-35.u-35.u-35{text-align:center; max-width:760px; margin:0 auto}
.u-36.u-36.u-36.u-36{font-size:28px; color:var(--accent-2)}
.u-37.u-37.u-37.u-37{font-family:var(--serif); font-style:italic; font-size:clamp(22px,3vw,32px); color:#fff; margin:16px 0}
.u-38.u-38.u-38.u-38{font-size:12px; letter-spacing:0.22em; text-transform:uppercase; color:var(--accent-2)}
.u-39.u-39.u-39.u-39{margin-bottom:14px}
.u-40.u-40.u-40.u-40{gap:14px}
.u-41.u-41.u-41.u-41{display:flex; gap:22px; align-items:center; flex-wrap:wrap}
.u-42.u-42.u-42.u-42{width:84px; height:84px; border-radius:50%; flex:none}
.u-43.u-43.u-43.u-43{flex:1; min-width:220px}
.u-44.u-44.u-44.u-44{margin:0 0 4px}
.u-45.u-45.u-45.u-45{margin:0; font-size:14px; color:var(--muted)}
.u-46.u-46.u-46.u-46{display:flex; flex-direction:column; gap:10px}
.u-47.u-47.u-47.u-47{font-size:20px; margin:0}
.u-48.u-48.u-48.u-48{font-size:12px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent)}
.u-49.u-49.u-49.u-49{text-align:center}
.u-50.u-50.u-50.u-50{margin:0 auto 24px}
.u-51.u-51.u-51.u-51{display:grid; grid-template-columns:1.2fr 1fr; gap:0; padding:0; overflow:hidden}
.u-52.u-52.u-52.u-52{border-radius:0; min-height:380px}
.u-53.u-53.u-53.u-53{padding:clamp(28px,4vw,50px); display:flex; flex-direction:column; justify-content:center}
.u-54.u-54.u-54.u-54{align-self:flex-start}
.u-55.u-55.u-55.u-55{font-size:clamp(28px,3.4vw,44px); margin-top:18px}
.u-56.u-56.u-56.u-56{color:var(--muted); line-height:1.75; margin:0 0 20px}
.u-57.u-57.u-57.u-57{padding:0; overflow:hidden}
.u-58.u-58.u-58.u-58{border-radius:0}
.u-59.u-59.u-59.u-59{padding:24px}
.u-60.u-60.u-60.u-60{margin-bottom:12px}
.u-61.u-61.u-61.u-61{font-size:22px; margin:0}
.u-62.u-62.u-62.u-62{font-size:13.5px; color:var(--muted); margin:10px 0 0}
.u-63.u-63.u-63.u-63{flex-wrap:wrap; gap:12px; justify-content:center}
.u-64.u-64.u-64.u-64{font-size:30px; color:var(--accent-2)}
.u-65.u-65.u-65.u-65{font-family:var(--serif); font-style:italic; font-size:clamp(22px,3vw,32px); color:#fff; margin:18px 0}
.u-66.u-66.u-66.u-66{display:flex; align-items:center; gap:26px; flex-wrap:wrap}
.u-67.u-67.u-67.u-67{flex:1; min-width:240px}
.u-68.u-68.u-68.u-68{margin:0 0 6px}
.u-69.u-69.u-69.u-69{display:flex; gap:10px; flex:1; min-width:240px; flex-wrap:wrap}
.u-70.u-70.u-70.u-70{flex:1; min-width:200px}
.u-71.u-71.u-71.u-71{gap:54px; align-items:center}
.u-72.u-72.u-72.u-72{width:320px}
.u-73.u-73.u-73.u-73{text-align:center; margin-top:18px; font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted)}
.u-74.u-74.u-74.u-74{gap:12px; flex-wrap:wrap; margin-top:28px}
.u-75.u-75.u-75.u-75{gap:14px; margin-top:26px}
.u-76.u-76.u-76.u-76{font-size:22px; margin-top:16px}
.u-77.u-77.u-77.u-77{min-height:440px}
.u-78.u-78.u-78.u-78{gap:16px}
.u-79.u-79.u-79.u-79{font-size:14px; color:var(--muted); line-height:1.7; flex:1}
.u-80.u-80.u-80.u-80{position:absolute; top:-14px; left:50%; transform:translateX(-50%)}
.u-81.u-81.u-81.u-81{margin-top:34px}
.u-82.u-82.u-82.u-82{text-align:center; max-width:780px; margin:0 auto}
.u-83.u-83.u-83.u-83{font-family:var(--serif); font-style:italic; font-size:clamp(22px,3vw,34px); color:#fff; margin:18px 0}
.u-84.u-84.u-84.u-84{display:flex; flex-direction:column; gap:12px}
.u-85.u-85.u-85.u-85{font-size:14px; color:var(--muted); line-height:1.7; margin:0; flex:1}
.u-86.u-86.u-86.u-86{margin-top:38px}
.u-87.u-87.u-87.u-87{font-size:20px; color:var(--accent-2)}
.u-88.u-88.u-88.u-88{font-family:var(--serif); font-size:22px; margin:12px 0 6px}
.u-89.u-89.u-89.u-89{margin:0; font-size:14px; color:#b9c4ce}
.u-90.u-90.u-90.u-90{color:#fff; text-decoration:underline}
.u-91.u-91.u-91.u-91{margin-top:24px}
.u-92.u-92.u-92.u-92{display:block; margin-bottom:6px}
.u-93.u-93.u-93.u-93{border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line)}
.u-94.u-94.u-94.u-94{display:flex; flex-direction:column; gap:16px}
.u-95.u-95.u-95.u-95{margin:0}
.u-96.u-96.u-96.u-96{margin:0; font-size:14.5px; color:var(--muted); line-height:1.75}
.u-97.u-97.u-97.u-97{margin-top:auto}
.u-98.u-98.u-98.u-98{color:var(--accent); font-size:18px}
.u-99.u-99.u-99.u-99{font-size:20px; margin-top:12px}
.u-100.u-100.u-100.u-100{font-size:13.5px; color:var(--muted); margin:0}
.u-101.u-101.u-101.u-101{font-size:14px; color:#b9c4ce; line-height:1.75; margin:0}
.u-102.u-102.u-102.u-102{display:flex; gap:10px; margin-top:20px; flex-wrap:wrap}
.u-103.u-103.u-103.u-103{display:flex; align-items:center; gap:22px}
.u-104.u-104.u-104.u-104{align-items:center}
.u-105.u-105.u-105.u-105{font-size:32px}
.u-106.u-106.u-106.u-106{max-width:62ch}
.u-107.u-107.u-107.u-107{max-width:820px}
.u-108.u-108.u-108.u-108{border-left:4px solid var(--accent)}
.u-109.u-109.u-109.u-109{margin:0; font-size:17px}
.u-110.u-110.u-110.u-110{max-width:820px; display:flex; flex-direction:column; gap:34px}
.u-111.u-111.u-111.u-111{font-size:28px}
.u-112.u-112.u-112.u-112{display:flex; align-items:center; gap:24px; flex-wrap:wrap}
.u-113.u-113.u-113.u-113{color:#b9c4ce}
.u-114.u-114.u-114.u-114{color:var(--accent-2)}
.u-115.u-115.u-115.u-115{max-width:640px; margin:0 auto}
.u-116.u-116.u-116.u-116{font-size:38px; color:var(--accent-2)}
.u-117.u-117.u-117.u-117{color:#fff; margin-top:18px}
.u-118.u-118.u-118.u-118{margin:0 auto}
.u-119.u-119.u-119.u-119{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap}
.u-120.u-120.u-120.u-120{flex-wrap:wrap; gap:10px}
.u-121.u-121.u-121.u-121{color:#fff; font-size:30px}
.u-122.u-122.u-122.u-122{grid-template-columns: 120px 1.35fr 1fr; align-items:stretch}
.u-123.u-123.u-123.u-123{height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center}
.u-124.u-124.u-124.u-124{font-size:22px; color:var(--accent)}
.u-125.u-125.u-125.u-125{font-size:56px; margin:0}
.u-126.u-126.u-126.u-126{margin-top:26px; gap:12px}
.u-127.u-127.u-127.u-127{margin-top:14px}
.u-128.u-128.u-128.u-128{margin-top:-40px}
.u-129.u-129.u-129.u-129{height:100%}
.u-130.u-130.u-130.u-130{margin-bottom:26px}
.u-131.u-131.u-131.u-131{top:24%; left:18%}
.u-132.u-132.u-132.u-132{top:60%; left:44%}
.u-133.u-133.u-133.u-133{top:34%; left:72%}
.u-134.u-134.u-134.u-134{top:30%; left:30%}
.u-135.u-135.u-135.u-135{top:62%; left:64%}
.u-136.u-136.u-136.u-136{top:40%; left:50%}
.u-137.u-137.u-137.u-137{padding:clamp(24px,3vw,38px); display:flex; flex-direction:column; gap:4px}
.u-138.u-138.u-138.u-138{margin:18px 0 0; font-size:14px; line-height:1.7}
.u-139.u-139.u-139.u-139{gap:16px; flex-wrap:wrap}
.u-140.u-140.u-140.u-140{grid-template-columns: 1.5fr 1fr; align-items:start}
.u-141.u-141.u-141.u-141{min-height:560px}
.u-142.u-142.u-142.u-142{align-items:end; margin-bottom:44px}
.u-143.u-143.u-143.u-143{display:flex; align-items:center; gap:18px}
.u-144.u-144.u-144.u-144{flex:1}
.u-145.u-145.u-145.u-145{font-family:var(--serif); font-size:19px}
.u-146.u-146.u-146.u-146{margin:2px 0 0; font-size:13px; color:var(--muted)}
.u-147.u-147.u-147.u-147{min-height:440px; margin-top:40px}
.u-148.u-148.u-148.u-148{grid-template-columns: 0.9fr 1.1fr 1fr; gap:34px; align-items:stretch}
.u-149.u-149.u-149.u-149{max-height:280px}
.u-150.u-150.u-150.u-150{margin-bottom:8px}
.u-151.u-151.u-151.u-151{margin-bottom:6px}
.u-152.u-152.u-152.u-152{flex-wrap:wrap; gap:8px}
.u-153.u-153.u-153.u-153{font-family:var(--serif); font-style:italic; font-size:22px; color:var(--accent); margin:0}
.u-154.u-154.u-154.u-154{font-size:clamp(26px,3vw,38px)}
.u-155.u-155.u-155.u-155{min-height:480px}
.u-156.u-156.u-156.u-156{padding:0}
.u-157.u-157.u-157.u-157{grid-template-columns:1fr 1fr; gap:0}
.u-158.u-158.u-158.u-158{padding:clamp(50px,7vw,100px) clamp(24px,5vw,80px); position:relative}
.u-159.u-159.u-159.u-159{margin:18px 0 26px}
.u-160.u-160.u-160.u-160{left:50%; bottom:-24px; transform:translateX(-50%)}
.u-161.u-161.u-161.u-161{display:block; color:var(--muted); font-weight:400}
.u-162.u-162.u-162.u-162{min-height:420px}
.u-163.u-163.u-163.u-163{grid-template-columns: 1.3fr 1fr 1fr; align-items:stretch}
.u-164.u-164.u-164.u-164{--x:1}
.u-165.u-165.u-165.u-165{padding:30px; display:flex; flex-direction:column; gap:16px}
.u-166.u-166.u-166.u-166{padding:30px; display:flex; flex-direction:column; justify-content:center; gap:14px}
.u-167.u-167.u-167.u-167{font-size:14px; line-height:1.7; margin:0}
.u-168.u-168.u-168.u-168{margin-bottom:24px}
.u-169.u-169.u-169.u-169{top:22%; left:20%}
.u-170.u-170.u-170.u-170{top:38%; left:55%}
.u-171.u-171.u-171.u-171{top:60%; left:34%}
.u-172.u-172.u-172.u-172{top:70%; left:72%}
.u-173.u-173.u-173.u-173{top:14%; left:80%}
.u-174.u-174.u-174.u-174{left:18px; bottom:18px}
.u-175.u-175.u-175.u-175{margin:0; font-size:14.5px; color:var(--muted); line-height:1.7}
.u-176.u-176.u-176.u-176{margin:26px 0}
.u-177.u-177.u-177.u-177{color:var(--muted); line-height:1.7; margin:0 0 14px}
.u-178.u-178.u-178.u-178{min-height:540px}
.u-179.u-179.u-179.u-179{grid-template-columns: 1fr 1.6fr; gap:clamp(36px,5vw,70px); align-items:center}
.u-180.u-180.u-180.u-180{font-size:clamp(60px,7vw,96px); color:#fff}
.u-181.u-181.u-181.u-181{font-family:var(--serif); font-style:italic; font-size:22px; color:var(--accent-2); margin-top:18px}
.u-182.u-182.u-182.u-182{font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted)}
.u-183.u-183.u-183.u-183{padding:26px}
.u-184.u-184.u-184.u-184{font-size:15px; line-height:1.7; margin:12px 0}
.u-185.u-185.u-185.u-185{font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent-2)}
.u-186.u-186.u-186.u-186{margin-top:-10px}
.u-187.u-187.u-187.u-187{color:var(--accent); font-size:20px}
.u-188.u-188.u-188.u-188{margin:12px 0 0; font-size:15px; line-height:1.7; color:var(--muted)}
.u-189.u-189.u-189.u-189{--rot:-3deg}
.u-190.u-190.u-190.u-190{--rot:2.5deg; margin-top:38px}
.u-191.u-191.u-191.u-191{--rot:-2deg}
.u-192.u-192.u-192.u-192{--rot:3deg; margin-top:38px}
.u-193.u-193.u-193.u-193{display:flex; align-items:center; gap:18px; margin:14px 0}
.u-194.u-194.u-194.u-194{font-size:44px; color:var(--accent-2)}
.u-195.u-195.u-195.u-195{color:#fff; font-size:40px}
.u-196.u-196.u-196.u-196{font-size:12.5px; color:#b9c4ce}
.u-197.u-197.u-197.u-197{font-size:14px; line-height:1.7; color:#b9c4ce; margin:0}
.u-198.u-198.u-198.u-198{padding:30px; display:flex; flex-direction:column; justify-content:center}
.u-199.u-199.u-199.u-199{margin-bottom:20px}
.u-200.u-200.u-200.u-200{font-family:var(--serif); font-size:24px}
.u-201.u-201.u-201.u-201{color:#b9c4ce; font-size:14px; line-height:1.7; margin:0 0 22px}
.u-202.u-202.u-202.u-202{margin:18px 0 24px; flex:1}
.u-203.u-203.u-203.u-203{font-size:14px; color:var(--muted); line-height:1.7}
.u-204.u-204.u-204.u-204{margin:14px 0}
.u-205.u-205.u-205.u-205{min-height:260px; margin-top:26px}
.u-206.u-206.u-206.u-206{margin:16px 0 22px; flex:1}
.u-207.u-207.u-207.u-207{text-align:center; margin-top:26px}
.u-208.u-208.u-208.u-208{font-size:13px; color:var(--muted); margin:16px 0 0}
.u-209.u-209.u-209.u-209{display:flex; flex-direction:column; gap:14px}
.u-210.u-210.u-210.u-210{margin-top:26px; display:flex; gap:20px; align-items:center; flex-wrap:wrap}
.u-211.u-211.u-211.u-211{width:88px; height:88px; flex:none}
.u-212.u-212.u-212.u-212{grid-template-columns:1fr 1.1fr; gap:clamp(36px,5vw,70px); align-items:center}
.u-213.u-213.u-213.u-213{top:30%; left:22%}
.u-214.u-214.u-214.u-214{top:58%; left:52%}
.u-215.u-215.u-215.u-215{top:18%; left:74%}
.u-216.u-216.u-216.u-216{margin:18px 0 0; font-size:14.5px; color:#b9c4ce; line-height:1.75}
.u-217.u-217.u-217.u-217{grid-template-columns:1.4fr 1fr; align-items:stretch}
.u-218.u-218.u-218.u-218{grid-template-columns:1fr; gap:22px}
.u-219.u-219.u-219.u-219{flex-wrap:wrap; gap:8px; margin:16px 0}
.u-220.u-220.u-220.u-220{max-width:360px; margin:0 auto}
.u-221.u-221.u-221.u-221{margin:20px 0}
.u-222.u-222.u-222.u-222{gap:10px}
.u-223.u-223.u-223.u-223{font-size:13.5px; color:var(--muted)}
.u-224.u-224.u-224.u-224{padding-top:calc(var(--head-h) + 60px); text-align:center}
.u-225.u-225.u-225.u-225{margin:0 auto; max-width:56ch}
.u-226.u-226.u-226.u-226{grid-template-columns:repeat(3,1fr)}
.u-227.u-227.u-227.u-227{font-size:44px}
.u-228.u-228.u-228.u-228{margin-top:0}
.u-229.u-229.u-229.u-229{min-height:320px}
.u-230.u-230.u-230.u-230{display:flex; align-items:center; gap:22px; flex-wrap:wrap}
.u-231.u-231.u-231.u-231{margin:0 auto 18px}
.u-232.u-232.u-232.u-232{justify-content:center; gap:12px}
.u-233.u-233.u-233.u-233{font-family:var(--serif); font-style:italic; font-size:clamp(20px,3vw,30px); color:var(--accent-2); margin:0; max-width:40ch; margin-left:auto; margin-right:auto}
.u-234.u-234.u-234.u-234{margin-top:16px; font-size:12px; letter-spacing:0.22em; text-transform:uppercase; color:#8fa0ad}
@media (max-width:960px){
.u-4.u-4.u-4.u-4{position:static;top:auto}
.u-51.u-51.u-51.u-51{grid-template-columns:1fr}
.u-122.u-122.u-122.u-122{grid-template-columns:1fr}
.u-140.u-140.u-140.u-140{grid-template-columns:1fr}
.u-148.u-148.u-148.u-148{grid-template-columns:1fr}
.u-157.u-157.u-157.u-157{grid-template-columns:1fr}
.u-163.u-163.u-163.u-163{grid-template-columns:1fr}
.u-179.u-179.u-179.u-179{grid-template-columns:1fr}
.u-212.u-212.u-212.u-212{grid-template-columns:1fr}
.u-217.u-217.u-217.u-217{grid-template-columns:1fr}
.u-226.u-226.u-226.u-226{grid-template-columns:1fr}
}
@media (max-width:760px){
.u-71.u-71.u-71.u-71{gap:24px}
.u-77.u-77.u-77.u-77{min-height:300px}
.u-103.u-103.u-103.u-103{flex-wrap:wrap}
.u-141.u-141.u-141.u-141{min-height:300px}
.u-143.u-143.u-143.u-143{flex-wrap:wrap}
.u-147.u-147.u-147.u-147{min-height:300px}
.u-155.u-155.u-155.u-155{min-height:300px}
.u-162.u-162.u-162.u-162{min-height:300px}
.u-178.u-178.u-178.u-178{min-height:300px}
.u-193.u-193.u-193.u-193{flex-wrap:wrap}
}
@media (max-width:640px){
.u-34.u-34.u-34.u-34{font-size:clamp(20px,4.8vw,30px)}
.u-36.u-36.u-36.u-36{font-size:clamp(20px,4.5vw,28px)}
.u-64.u-64.u-64.u-64{font-size:clamp(20px,4.8vw,30px)}
.u-72.u-72.u-72.u-72{width:100%}
.u-105.u-105.u-105.u-105{font-size:clamp(20px,5.2vw,32px)}
.u-111.u-111.u-111.u-111{font-size:clamp(20px,4.5vw,28px)}
.u-116.u-116.u-116.u-116{font-size:clamp(21px,6.1vw,38px)}
.u-121.u-121.u-121.u-121{font-size:clamp(20px,4.8vw,30px)}
.u-125.u-125.u-125.u-125{font-size:clamp(31px,9.0vw,56px)}
.u-194.u-194.u-194.u-194{font-size:clamp(24px,7.1vw,44px)}
.u-195.u-195.u-195.u-195{font-size:clamp(22px,6.5vw,40px)}
.u-227.u-227.u-227.u-227{font-size:clamp(24px,7.1vw,44px)}
}

/* ---- mobile hardening ---- */
html, body { max-width: 100%; overflow-x: clip; }
@supports not (overflow: clip) { html, body { overflow-x: hidden; } }
@media (max-width: 760px) {
  .strip { flex-wrap: wrap; overflow-x: visible; }
  .strip > * { flex: 1 1 260px; width: auto; }
  .offset-media .om-b { margin: 20px 0 0 8%; }
  .kv-row { flex-wrap: wrap; gap: 2px 18px; }
  .kv-v { font-size: 16px; }
  .map-frame iframe { min-height: 300px; }
  .hcard { min-height: 300px; }
  .vcard-tall { min-height: 380px; }
  .polaroid { transform: none; }
  .float-badge { position: static; margin-top: 14px; display: inline-flex; }
  .stat { padding: 22px 14px; }
  .sec { padding: 56px 0; }
}
@media (max-width: 480px) {
  .display-xl { font-size: clamp(38px, 12vw, 56px); }
  .h-title { font-size: clamp(26px, 8vw, 34px); }
  .btn { padding: 14px 22px; font-size: 12.5px; }
  .card { padding: 22px 18px; }
  .mm-nav a { font-size: clamp(24px, 8vw, 32px); }
}