:root{
  /* Clean, modern palette */
  --bg:#ffffff;
  --surface:#ffffff;
  --surface2:#f6f7fb;
  --text:#0f172a;
  --muted:#475569;
  --border:rgba(15,23,42,.14);

  /* Accents */
  --accent:#f97316; /* warm orange */
  --accent2:#0f766e; /* teal */
  --danger:#dc2626;
  --warn:#f59e0b;

  --radius:18px;
  --shadow:0 18px 44px rgba(15,23,42,.10);
  --max:1120px;

  --font:'Inter', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  --font-display:'Poppins', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  --font-script:'Poppins', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; /* legacy */
  }

*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  margin:0;
  font-family:var(--font);
  color:var(--text);
  background:var(--bg);
  line-height:1.55;
}

a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; }

img{ max-width:100%; height:auto; }

.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 18px;
}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--border);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
}

.brand{ display:flex; gap:12px; align-items:center; }
.brand img{ border-radius:12px; box-shadow:0 10px 20px rgba(31,41,55,.10); }
.brand-title{ font-weight:900; letter-spacing:.2px; }
.brand-sub{ font-size:12px; color:var(--muted); margin-top:2px; }

.nav{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.nav a{
  font-weight:800;
  font-size:14px;
  padding:8px 10px;
  border-radius:999px;
  color:var(--muted);
}
.nav a:hover{ background:rgba(249,115,22,.10); color:var(--text); text-decoration:none; }
.nav a.is-active{ background:rgba(15,118,110,.12); color:var(--text); }

.nav-toggle{
  display:none;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:12px;
  padding:8px 10px;
  font-size:18px;
}

.site-main{ padding:26px 0 40px; }
.page-index .site-main,
.page-home .site-main{ padding-top:0; }

/* Typography */
h1,h2,h3{ font-family:var(--font-display); }
h1{ font-size:44px; line-height:1.08; margin:0 0 12px; }
h2{ font-size:30px; margin:0 0 10px; }
h3{ font-size:18px; margin:0 0 8px; }

p{ margin:0 0 10px; }
.muted{ color:var(--muted); }
.small{ font-size:13px; color:var(--muted); }

/* Buttons */
.btn,
.cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:11px 16px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  font-weight:850;
  font-size:14px;
  cursor:pointer;
  transition:transform .08s ease, box-shadow .12s ease, background .12s ease;
}

.btn:hover,
.cta:hover{ text-decoration:none; transform:translateY(-1px); box-shadow:0 12px 24px rgba(31,41,55,.12); }

.btn.primary,
.cta{
  background:var(--accent);
  border-color:rgba(249,115,22,.55);
  color:#fff;
}
.btn.primary:hover,
.cta:hover{ box-shadow:0 16px 30px rgba(249,115,22,.22); }

.btn.secondary{
  background:var(--accent2);
  border-color:rgba(15,118,110,.55);
  color:#fff;
}
.btn.secondary:hover{ box-shadow:0 16px 30px rgba(15,118,110,.20); }

.btn.ghost{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.25);
  color:#fff;
  backdrop-filter: blur(10px);
}
.btn.ghost:hover{ box-shadow:0 18px 34px rgba(0,0,0,.16); }

/* Cards / sections */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.section{ margin:30px 0; }

.notice{
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(31,41,55,.03);
}
.notice.danger{ border-color:rgba(220,38,38,.40); background:rgba(220,38,38,.06); }
.notice.warn{ border-color:rgba(245,158,11,.40); background:rgba(245,158,11,.10); }

/* HERO COVER (home) */
.hero-cover{
  position:relative;
  min-height:560px;
  overflow:hidden;
}

.hero-cover .hero-carousel{
  position:absolute;
  inset:0;
  border:none;
  border-radius:0;
  height:100%;
}

.hero-cover .hero-carousel .carousel-btn,
.hero-cover .hero-carousel .carousel-dots{ opacity:.95; }

.hero-cover::after{
  /* readability overlay */
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.28) 46%, rgba(0,0,0,.12) 100%),
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.45) 100%);
  pointer-events:none;
}

.hero-overlay{
  position:relative;
  z-index:2;
  padding:84px 0 40px;
}

.hero-content{
  max-width:720px;
  color:#fff;
}

.hero-kicker{
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12px;
  opacity:.95;
}

.hero-script{
  font-family:var(--font-script);
  font-weight:400;
  font-size:72px;
  line-height:0.95;
  margin:6px 0 10px;
  text-shadow:0 18px 40px rgba(0,0,0,.35);
}

.hero-sub{
  font-size:16px;
  font-weight:600;
  opacity:.95;
  max-width:58ch;
  margin-bottom:18px;
}

.hero-search{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.65);
  border-radius:18px;
  padding:10px;
  box-shadow:0 18px 44px rgba(0,0,0,.22);
}

.hero-search-grid{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap:10px;
  align-items:end;
}

.search-field label{
  display:block;
  font-size:11px;
  font-weight:900;
  color:#4b5563;
  margin:0 0 6px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.search-field input,
.search-field select{
  width:100%;
  padding:11px 12px;
  border-radius:14px;
  border:1px solid rgba(31,41,55,.14);
  background:#fff;
  color:var(--text);
  font-family:var(--font);
  font-size:14px;
}

.hero-search-btn{
  padding:12px 18px;
  border-radius:14px;
  min-height:44px;
}

.hero-quicklinks{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }

/* Feature strip */
.features-strip{ margin-top:-24px; position:relative; z-index:5; }
.features-panel{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.70);
  border-radius:var(--radius);
  box-shadow:0 18px 44px rgba(31,41,55,.12);
  padding:16px;
}
.features-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.feature-box{ display:flex; gap:12px; align-items:flex-start; padding:10px 12px; border-radius:16px; }
.feature-box:hover{ background:rgba(249,115,22,.06); }
.feature-icon, .feature-ico{
  width:40px; height:40px;
  border-radius:14px;
  background:rgba(15,118,110,.10);
  border:1px solid rgba(15,118,110,.18);
  display:flex; align-items:center; justify-content:center;
  flex:0 0 auto;
  color:var(--accent2);
}
.feature-box h3{ margin:0 0 4px; font-size:16px; }
.feature-box p{ margin:0; color:var(--muted); font-size:13px; }

/* Split section (welcome) */
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:16px;
  align-items:stretch;
}
.split-card{ padding:18px; }
.split-media{
  border-radius: calc(var(--radius) - 2px);
  overflow:hidden;
  border:1px solid rgba(31,41,55,.12);
}
.split-media img{ width:100%; height:100%; object-fit:cover; display:block; min-height:320px; }

.section-kicker, .kicker{
  display:inline-block;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--accent2);
  margin-bottom:8px;
}

/* Section title (centered, like the reference) */
.section-title{
  text-align:center;
  margin-bottom:14px;
}
.section-title .script, .section-title .script-title{
  font-family:var(--font-script);
  font-size:46px;
  line-height:1;
  color:var(--accent2);
  margin:0;
}
.section-title .sub, .section-title .section-subtitle{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--muted);
  margin-top:6px;
}
.section-title .rule{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:10px;
  color:rgba(31,41,55,.28);
}
.section-title .rule::before,
.section-title .rule::after{
  content:"";
  height:1px;
  background:rgba(31,41,55,.18);
  flex:1 1 auto;
}
.section-title .rule span{
  display:inline-block;
  width:8px; height:8px;
  border-radius:999px;
  background:rgba(249,115,22,.70);
}

/* Cards grid (rooms/spaces) */
.cards-3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.room-card{ overflow:hidden; border-radius:var(--radius); border:1px solid rgba(31,41,55,.12); background:var(--surface); box-shadow:var(--shadow); }
.room-img{
  aspect-ratio: 4 / 3;
  background:var(--surface2);
}
.room-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.room-body{ padding:14px; display:flex; flex-direction:column; gap:10px; }
.room-body h3{ margin:0; font-size:18px; }
.room-body .muted{ margin:0; }
.room-body .btn{ align-self:flex-start; }

/* CTA banner */
.cta-banner{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  margin:34px 0;
  border:1px solid rgba(31,41,55,.12);
  box-shadow:0 22px 50px rgba(31,41,55,.16);
}
.cta-banner .cta-bg{
  position:absolute;
  inset:0;
}
.cta-banner .cta-bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.cta-banner::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 60%, rgba(0,0,0,.20) 100%);
}
.cta-banner .cta-inner, .cta-banner .cta-overlay{
  position:relative;
  z-index:2;
  padding:34px 18px;
}
.cta-banner h2{
  margin:0 0 6px;
  color:#fff;
  font-family:var(--font-script);
  font-size:54px;
  line-height:1;
}
.cta-banner p{ margin:0 0 16px; color:rgba(255,255,255,.92); max-width:64ch; }
.cta-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* Old hero (internal pages, keep usable) */
.hero{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:18px;
  padding:18px;
  overflow:hidden;
}
.hero-left{ padding:8px 6px 8px 10px; }
.hero-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }

/* Apartment page layout tweaks */
.hero.apartment-hero{ padding:0; gap:16px; }
.apartment-hero-media{ padding:16px 16px 0; }
.apartment-hero-text{ padding:16px; }
.apartment-info{ padding:16px; }
.apartment-lead{ max-width:62ch; }
.section-title.left{ text-align:left; align-items:flex-start; }
.section-title.left .rule{ justify-content:flex-start; }

.grid-3{ display:grid; grid-template-columns: repeat(3, 1fr); gap:12px; }
.grid-2{ display:grid; grid-template-columns: repeat(2, 1fr); gap:12px; }

.feature{ padding:14px; box-shadow:none; }
.feature p{ margin:0; color:var(--muted); }

.hero-right{ position:relative; }
.hero-badges{
  position:absolute;
  left:14px;
  bottom:14px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.badge{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(255,255,255,.65);
  backdrop-filter: blur(10px);
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
}

/* Carousel */
.carousel{
  position:relative;
  overflow:hidden;
  border-radius: calc(var(--radius) - 4px);
  border:1px solid var(--border);
  height: 420px;
  touch-action: pan-y;
}
.carousel-track{
  display:flex;
  height:100%;
  transition: transform .35s ease;
}
.carousel-slide{ height:100%; }
.carousel-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:1px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.72);
  backdrop-filter: blur(10px);
  border-radius:999px;
  width:42px;
  height:42px;
  font-size:22px;
  font-weight:900;
  cursor:pointer;
}
.carousel-btn.prev{ left:10px; }
.carousel-btn.next{ right:10px; }
.carousel-dots{
  position:absolute;
  left:0;
  right:0;
  bottom:10px;
  display:flex;
  justify-content:center;
  gap:8px;
}
.carousel-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.85);
  background:rgba(255,255,255,.40);
  cursor:pointer;
}
.carousel-dot.is-active{ background:rgba(255,255,255,.92); }

.kv{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

.gallery{ display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; }
.gallery a{
  display:block;
  aspect-ratio: 4 / 3;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.12);
  background:var(--surface2);
}
.gallery img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Booking */
.calendar-wrap{ padding:18px; overflow-x:hidden; }
.calendar-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:10px; }

.cal-monthbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:10px 0 12px;
}

.cal-month-title{
  flex:1;
  text-align:center;
  font-weight:900;
  letter-spacing:-.02em;
  color:var(--ink);
}

.cal-month-btn{
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:999px;
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  cursor:pointer;
  user-select:none;
  -webkit-tap-highlight-color: transparent;
}

.cal-month-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.booking-grid{ display:grid; grid-template-columns: 1.15fr .85fr; gap:14px; align-items:start; }
.booking-panel{ padding:16px; box-shadow:none; }

.cal-controls{ display:grid; grid-template-columns: 1fr 1fr .8fr; gap:10px; margin:10px 0 12px; }
.cal-controls .control{ display:flex; flex-direction:column; gap:6px; }
@media (max-width: 720px){ .cal-controls{ grid-template-columns:1fr; } }


.calendar{
  width:100%;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:8px;
}
.calendar th{
  font-size:12px;
  color:var(--muted);
  text-align:center;
  padding:6px 0;
}
.calendar td{ vertical-align:top; }
.day{
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--surface);
  padding:10px;
  min-height:68px;
  position:relative;
  overflow:hidden;
  cursor:pointer;
  transition:transform .08s ease, background .12s ease, box-shadow .12s ease;
}
.day.is-empty{ background:transparent; border-color:transparent; cursor:default; }
.day:hover{ transform:translateY(-1px); box-shadow:0 12px 22px rgba(31,41,55,.12); }
.day.is-empty:hover{ transform:none; box-shadow:none; }

.day .num{
  position:absolute;
  top:8px;
  left:10px;
  font-weight:900;
  font-size:14px;
  line-height:1;
}
.day .price{
  position:absolute;
  top:8px;
  right:10px;
  font-size:13px;
  font-weight:900;
  line-height:1;
  color:var(--ink);
  white-space:nowrap;
  max-width:calc(100% - 38px);
  overflow:hidden;
  text-overflow:ellipsis;
}

/* When we render prices we include both a full and a compact version.
   On wide screens show the full price, on small screens show the compact one. */
.day .price .price-full{ display:inline; }
.day .price .price-compact{ display:none; }
.day .tag{
  position:absolute;
  left:10px;
  bottom:8px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid rgba(31,41,55,.18);
  background:rgba(255,255,255,.75);
  color:rgba(31,41,55,.70);
}

.day.is-available{ background:rgba(15,118,110,.10); border-color:rgba(15,118,110,.24); }
.day.is-turnover{ background:rgba(2,132,199,.10); border-color:rgba(2,132,199,.22); }
.day.is-booked{ background:rgba(245,158,11,.14); border-color:rgba(245,158,11,.26); cursor:not-allowed; }
.day.is-closed{ background:rgba(31,41,55,.06); border-color:rgba(31,41,55,.14); cursor:not-allowed; }

/* Public booking calendar (color rules: green=open, yellow=full day, red=stay days) */
.day.is-open{ background:rgba(16,185,129,.14); border-color:rgba(16,185,129,.32); }
.day.is-full{ background:rgba(245,158,11,.20); border-color:rgba(245,158,11,.40); cursor:not-allowed; }
.day.is-stay{ background:rgba(239,68,68,.18); border-color:rgba(239,68,68,.40); cursor:not-allowed; }
.day.is-full:hover,
.day.is-stay:hover{ transform:none; box-shadow:none; }

/* Selection must not change the base color: use only a ring */
.day.is-selected,
.day.is-range{ outline:3px solid rgba(249,115,22,.40); outline-offset:2px; }

.legend{ display:flex; gap:14px; flex-wrap:wrap; margin-top:10px; }
.legend .item{ display:flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
.swatch{ width:12px; height:12px; border-radius:4px; border:1px solid var(--border); }
.swatch.available{ background:rgba(15,118,110,.18); border-color:rgba(15,118,110,.35); }
.swatch.booked{ background:rgba(245,158,11,.22); border-color:rgba(245,158,11,.40); }
.swatch.turnover{ background:rgba(2,132,199,.18); border-color:rgba(2,132,199,.32); }
.swatch.closed{ background:rgba(31,41,55,.10); border-color:rgba(31,41,55,.18); }

.swatch.open{ background:rgba(16,185,129,.22); border-color:rgba(16,185,129,.40); }
.swatch.full{ background:rgba(245,158,11,.26); border-color:rgba(245,158,11,.46); }
.swatch.stay{ background:rgba(239,68,68,.22); border-color:rgba(239,68,68,.46); }

@media (max-width: 520px){
  .calendar-wrap{ padding:14px; }
  .calendar{ border-spacing:4px; }
  /* On portrait phones each cell is tight: use a grid so day number and price never overlap. */
  .day{
    padding:8px;
    min-height:60px;
    display:grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr;
    gap:6px;
    align-content:start;
  }
  .day .num{ position:static; font-size:13px; }
  .day .price{
    position:static;
    font-size:11px;
    justify-self:end;
    max-width:100%;
    overflow:visible;
    text-overflow:clip;
  }
  .day .price .price-full{ display:none; }
  .day .price .price-compact{ display:inline; }
  .cal-month-btn{ width:48px; height:48px; font-size:24px; }
  .cal-month-title{ font-size:16px; }
}

/* Slightly wider phones: keep a max-width so the price doesn't overlap the day number. */
@media (max-width: 720px){
  .day .price{ max-width:calc(100% - 34px); }
}

@media (max-width: 520px){
  .form-row{ grid-template-columns:1fr; }
}

@media (max-width: 420px){
  .calendar{ border-spacing:3px; }
  .day{ padding:7px; min-height:48px; gap:5px; }
  .day .num{ font-size:13px; }
  .day .price{ font-size:10px; }
}

/* Forms */
label{ display:block; font-size:12px; font-weight:900; color:var(--muted); margin:0 0 6px; }
input, textarea, select{
  width:100%;
  padding:11px 12px;
  border-radius:14px;
  border:1px solid rgba(31,41,55,.16);
  background:var(--surface);
  color:var(--text);
  font-family:var(--font);
  font-size:14px;
}
textarea{ min-height:90px; resize:vertical; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

/* Footer */
.site-footer{
  margin-top:34px;
  border-top:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg, rgba(15,118,110,1), rgba(9,78,72,1));
  color:#f8fafc;
  text-align:center;
}

/* In footer, small text should stay white (avoid the global muted small style) */
.site-footer .small{ color:rgba(255,255,255,.92); }

.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:18px;
  padding:26px 0 18px;
  text-align:center;
  justify-items:center;
}
.footer-title{ font-weight:900; margin:0 0 10px; letter-spacing:.02em; }

.footer-list{ display:flex; flex-direction:column; gap:10px; }
.footer-item{ display:flex; gap:10px; align-items:center; justify-content:center; color:rgba(255,255,255,.92); text-align:center; }
.footer-ico{ margin-top:2px; opacity:.95; }
.footer-item a{ text-decoration:none; border-bottom:1px solid rgba(255,255,255,.35); }
.footer-item a:hover{ border-bottom-color:rgba(255,255,255,.65); }

.footer-links{ display:flex; flex-direction:column; gap:8px; align-items:center; }
.footer-links a{ color:rgba(255,255,255,.92); text-decoration:none; }
.footer-links a:hover{ text-decoration:underline; }

img{ max-width:100%; height:auto; }

.social{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.social-btn{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  color:#fff;
  text-decoration:none;
}
.social-btn:hover{ background:rgba(255,255,255,.14); }

.footer-bottom{
  padding:14px 0 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:6px;
  border-top:1px solid rgba(255,255,255,.14);
}

/* Lightbox */
.no-scroll{ overflow:hidden; }
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.86);
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  z-index:60;
}
.lightbox.is-open{ display:flex; }
.lightbox-inner{ position:relative; max-width:92vw; max-height:86vh; }
.lightbox-img{ max-width:92vw; max-height:86vh; border-radius:18px; display:block; }
.lightbox-close{
  position:absolute;
  top:-14px;
  right:-14px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  backdrop-filter: blur(10px);
}
.lightbox-close:hover{ background:rgba(255,255,255,.16); }

.lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  backdrop-filter: blur(10px);
}
.lightbox-nav:hover{ background:rgba(255,255,255,.16); }
.lightbox-prev{ left:10px; }
.lightbox-next{ right:10px; }

@media (max-width: 520px){
  .lightbox{ padding:12px; }
  .lightbox-inner{ max-width:100%; max-height:82vh; }
  .lightbox-img{ max-width:100%; max-height:82vh; }
  .lightbox-close{ top:10px; right:10px; }
  .lightbox-nav{ width:52px; height:52px; font-size:32px; }
}


/* Admin */
.admin-shell{ padding-top:20px; padding-bottom:30px; }
.admin-header{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.admin-title{ font-size:22px; font-weight:850; }
.admin-nav{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 18px; }
.admin-nav a{ padding:10px 14px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--text); text-decoration:none; font-weight:650; }
.admin-nav a:hover{ background:rgba(31,41,55,.03); }
.admin-nav a.is-active{ background:rgba(249,115,22,.14); border-color:rgba(249,115,22,.30); color:var(--accent); }

.admin-grid{ display:grid; grid-template-columns: 1fr 360px; gap:16px; align-items:start; }
.admin-grid .card{ height:fit-content; }

.pill{ display:inline-block; padding:2px 10px; border-radius:999px; font-size:12px; border:1px solid var(--border); background:var(--surface2); color:var(--muted); white-space:nowrap; }
.pill.ok{ background:rgba(15,118,110,.14); border-color:rgba(15,118,110,.25); color:#14532d; }
.pill.warn{ background:rgba(245,158,11,.16); border-color:rgba(245,158,11,.30); color:#92400e; }
.pill.danger{ background:rgba(220,38,38,.12); border-color:rgba(220,38,38,.25); color:#991b1b; }

.admin-table{ width:100%; border-collapse:collapse; }
.admin-table th, .admin-table td{ border-top:1px solid var(--border); padding:12px 10px; text-align:left; vertical-align:top; }
.admin-table th{ color:var(--muted); font-weight:700; font-size:13px; }

.admin-calendar .day.is-booked,
.admin-calendar .day.is-closed{ cursor:pointer; opacity:1; }

/* Admin calendar uses <button class="day">.
   Make each button fill the whole cell (otherwise it shrinks to content and looks "sfasato"). */
.admin-calendar .day{
  width:100%;
  text-align:left;
  -webkit-appearance:none;
  appearance:none;
  font:inherit;
}

/* Admin calendar layout + quick selection tools */
.admin-cal-layout{
  display:grid;
  grid-template-columns: 1.3fr 1fr;
  gap:14px;
  align-items:start;
}

.admin-quick-select{
  border:1px solid var(--border);
  background:var(--surface2);
  border-radius:var(--radius);
  padding:12px;
}
.admin-quick-select .qs-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.admin-quick-select .qs-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.admin-quick-select .qs-dow{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.dow-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  font-size:13px;
  user-select:none;
}
.dow-chip input{ width:16px; height:16px; }

/* Utilities */
.actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.gallery-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.hero-search-note{ margin:10px 4px 0; color:rgba(31,41,55,.70); font-size:13px; }
.section-heading{ color:var(--accent2); }
.cta-banner .cta-content{ text-align:center; max-width:760px; margin:0 auto; }
.cta-sub{ margin:0 0 16px; color:rgba(255,255,255,.92); max-width:64ch; margin-left:auto; margin-right:auto; }

/* Mobile */
@media (max-width: 980px){
  h1{ font-size:36px; }
  .hero{ grid-template-columns:1fr; }
  .carousel{ height:340px; }
  .grid-3{ grid-template-columns:1fr; }
  .grid-2{ grid-template-columns:1fr; }
  .kv{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:repeat(2, 1fr); }
  .booking-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }

  .admin-cal-layout{ grid-template-columns:1fr; }
  .admin-quick-select .qs-row{ grid-template-columns:1fr; }

  .nav{ display:none; }
  .nav-toggle{ display:inline-flex; }
  body.nav-open .nav{
    display:flex;
    position:absolute;
    left:18px;
    right:18px;
    top:72px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:12px;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    box-shadow:var(--shadow);
  }
  body.nav-open .nav a{ padding:10px 12px; }

  .hero-cover{ min-height:520px; }
  .hero-overlay{ padding:64px 0 34px; }
  .hero-script{ font-size:56px; }
  .hero-search-grid{ grid-template-columns:1fr; align-items:stretch; }
  .hero-search-btn{ width:100%; }
  .features-grid{ grid-template-columns:1fr; }
  .split{ grid-template-columns:1fr; }
  .split-media img{ min-height:240px; }
  .cards-3{ grid-template-columns:1fr; }
  .cta-banner h2{ font-size:44px; }
  .form-row{ grid-template-columns:1fr; }
}

@media (max-width: 420px){
  .hero-script{ font-size:48px; }
  .cta-banner h2{ font-size:38px; }
}

@media (max-width: 980px){
  .admin-grid{ grid-template-columns: 1fr; }
}

/* ==========================================================
   Modern Cozy layout (match reference screenshot)
   ========================================================== */

/* Buttons: more "template-like" (rounded rectangle, not pill) */
.btn,
.cta{
  border-radius:14px;
  padding:12px 18px;
}

/* Headings: modern sans, cleaner sizing */
h1,h2,h3{ font-family:var(--font-display); }
h1{ font-size:52px; line-height:1.08; letter-spacing:-0.02em; }
h2{ font-size:34px; line-height:1.15; letter-spacing:-0.01em; }
h3{ font-size:18px; line-height:1.25; }

.page-index .site-main,
.page-home .site-main{ padding:0; }

/* HERO (teal overlay on the left) */
.hero-cover{ min-height:540px; }
.hero-cover::after{
  background:
    linear-gradient(90deg,
      rgba(15,118,110,.88) 0%,
      rgba(15,118,110,.80) 38%,
      rgba(15,118,110,.18) 68%,
      rgba(0,0,0,.06) 100%),
    linear-gradient(180deg, rgba(0,0,0,.16) 0%, rgba(0,0,0,.32) 100%);
}

.hero-overlay{
  padding:0;
  min-height:540px;
  display:flex;
  align-items:center;
}

.hero-content{
  max-width:560px;
  color:#fff;
}

.hero-kicker{
  font-weight:800;
  letter-spacing:.02em;
  text-transform:none;
  font-size:14px;
  opacity:.95;
}

.hero-title{
  margin:10px 0 12px;
  font-size:56px;
  line-height:1.02;
  font-weight:800;
  text-shadow:0 18px 40px rgba(0,0,0,.28);
}

.hero-lead{
  margin:0 0 18px;
  font-size:16px;
  font-weight:600;
  opacity:.95;
  max-width:55ch;
}

.hero-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* Page hero (internal pages) */
.hero-cover .hero-media{
  position:absolute;
  inset:0;
}
.hero-cover .hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.hero-page{
  min-height:420px;
}
.hero-page .hero-overlay{
  min-height:420px;
}
.hero-page .hero-title{
  font-size:48px;
}

/* Make pages with a hero flush to the header (like Home) */
.page-booking .site-main,
.page-apartment .site-main,
.page-neighborhood .site-main,
.page-tips .site-main,
.page-rules .site-main,
.page-contact .site-main,
.page-booking_success .site-main,
.page-booking_cancel .site-main{
  padding-top:0;
}


/* Home sections */
.section-pad{ padding:64px 0; }
.section-muted{ background:var(--surface2); }

.section-head{ margin-bottom:18px; }
.section-heading{ margin:0 0 8px; }

.split-showcase{
  display:grid;
  grid-template-columns: 1fr 1.08fr;
  gap:28px;
  align-items:center;
}

.tile-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:14px;
  margin-top:18px;
}

.tile{
  background:var(--surface2);
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  padding:16px;
  display:flex;
  gap:14px;
  align-items:flex-start;
}

.tile h3{ margin:0 0 4px; font-size:15px; }
.tile p{ margin:0; color:var(--muted); font-size:13px; }

/* Reuse the same icon style for tiles and mini tiles */
.tile-icon{
  width:44px;
  height:44px;
  border-radius:16px;
  background:rgba(15,118,110,.12);
  border:1px solid rgba(15,118,110,.18);
  color:var(--accent2);
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.showcase-card{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.12);
  box-shadow:0 24px 54px rgba(15,23,42,.18);
}

.showcase-card img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  aspect-ratio: 4 / 3;
}

.showcase-badges{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}

.mini-tile{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.65);
  border-radius:18px;
  padding:14px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  box-shadow:0 18px 44px rgba(0,0,0,.18);
}

.mini-tile h3{ margin:0 0 2px; font-size:14px; }
.mini-tile p{ margin:0; color:var(--muted); font-size:13px; }

.center-actions{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }

/* Rooms (2 big cards) */
.rooms-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:18px;
  margin-top:18px;
}

.room-xl{
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.12);
  background:var(--surface);
  box-shadow:0 24px 54px rgba(15,23,42,.16);
}

.room-xl-media{ background:var(--surface2); aspect-ratio: 16 / 9; }
.room-xl-media img{ width:100%; height:100%; object-fit:cover; display:block; }

.room-xl-body{ padding:18px; }
.room-xl-head{ display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.room-xl-icon{
  width:46px;
  height:46px;
  border-radius:16px;
  background:rgba(15,118,110,.10);
  border:1px solid rgba(15,118,110,.18);
  color:var(--accent2);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Panels */
.panel-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:18px; align-items:stretch; }
.panel{ padding:22px; }
.panel-highlight{
  background:linear-gradient(180deg, rgba(15,118,110,.10), rgba(15,118,110,.06));
  border-color:rgba(15,118,110,.18);
}

.amenities-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:12px; margin-top:14px; }
.amenity{
  display:flex;
  gap:12px;
  align-items:center;
  padding:14px;
  border-radius:18px;
  background:var(--surface2);
  border:1px solid rgba(15,23,42,.10);
}

.amenity-icon{
  width:44px;
  height:44px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--accent2);
}

.amenity-title{ font-weight:800; }
.amenity-sub{ color:var(--muted); font-size:13px; margin-top:2px; }

.mini-gallery{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:10px;
}

.mini-gallery img{
  width:100%;
  /* Make the home "Foto" preview actually readable (was too short) */
  height:132px;
  object-fit:cover;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.10);
  background:var(--surface2);
}

/* Home gallery preview: reduce the excessive gap before the footer */
.section-gallery-preview{ padding-bottom:44px; }
.page-home .site-footer{ margin-top:0; }

/* Lists (rules / tips) */
.list{
  list-style:none;
  padding:0;
  margin:12px 0 0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.list > li{
  border:1px solid rgba(15,23,42,.10);
  background:var(--surface2);
  border-radius:18px;
  padding:14px;
}

.list .title{
  font-weight:900;
  margin-bottom:4px;
}

.list .meta{
  color:var(--muted);
  font-size:14px;
}

.list .link{
  display:inline-block;
  margin-top:8px;
  color:var(--accent2);
  font-weight:800;
}

.btn.accent{ background:var(--accent); border-color:rgba(249,115,22,.55); color:#fff; }

/* Responsive */
@media (max-width: 980px){
  h1{ font-size:40px; }
  h2{ font-size:28px; }

  .hero-cover{ min-height:520px; }
  .hero-overlay{ min-height:520px; padding:0; }
  .hero-title{ font-size:44px; }

  /* Smaller internal-page heroes on mobile */
  .hero-page{ min-height:360px; }
  .hero-page .hero-overlay{ min-height:360px; }
  .hero-page .hero-title{ font-size:38px; }
  .hero-cover::after{
    background:
      linear-gradient(180deg,
        rgba(15,118,110,.86) 0%,
        rgba(15,118,110,.62) 50%,
        rgba(0,0,0,.24) 100%);
  }

  .split-showcase{ grid-template-columns:1fr; }
  .tile-grid{ grid-template-columns:1fr; }
  .showcase-badges{ position:static; margin-top:12px; grid-template-columns:1fr; }

  .rooms-grid{ grid-template-columns:1fr; }
  .panel-grid{ grid-template-columns:1fr; }
  .amenities-grid{ grid-template-columns:1fr; }
  .mini-gallery{ grid-template-columns:repeat(4, 1fr); }
  .mini-gallery img{ height:110px; }
}

@media (max-width: 720px){
  .mini-gallery{ grid-template-columns:repeat(2, 1fr); }
  .mini-gallery img{ height:150px; }
}

@media (max-width: 420px){
  .hero-title{ font-size:38px; }
  .section-pad{ padding:52px 0; }
}

/* Section title: make it consistent with the modern template */
.section-title{ text-align:left; margin-bottom:16px; }
.section-title .script-title{ font-family:var(--font-display); font-size:34px; line-height:1.15; color:var(--text); font-weight:800; }
.section-title .section-subtitle{ font-family:var(--font); font-size:14px; color:var(--muted); text-transform:none; letter-spacing:0; }
.section-title .rule{ display:none; }


/* Quote breakdown */
.quote-lines{ display:flex; flex-direction:column; gap:10px; }
.quote-line{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.quote-line span{ min-width:0; }
.quote-line strong{ white-space:nowrap; }
.quote-line strong{ font-weight:900; }
.quote-line.total{ margin-top:6px; padding-top:10px; border-top:1px solid rgba(31,41,55,.12); font-size:16px; }

/* --- Language switcher (i18n) --- */
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}

.lang-switch{position:relative;}
.lang-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;box-shadow:var(--shadow);}
.lang-btn:focus{outline:2px solid rgba(37,99,235,0.35);outline-offset:2px;}
.lang-btn img{width:22px;height:16px;display:block;border-radius:3px;border:1px solid rgba(0,0,0,0.08);}
.lang-caret{font-size:12px;line-height:1;opacity:0.8;}

.lang-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:180px;max-height:280px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:8px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .15s ease, transform .15s ease;z-index:1000;}
.lang-switch.is-open .lang-menu{opacity:1;transform:translateY(0);pointer-events:auto;}

.lang-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--text);font-size:14px;white-space:nowrap;}
.lang-item:hover{background:var(--surface2);}
.lang-item.is-active{font-weight:600;}
.lang-item img{width:22px;height:16px;display:block;border-radius:3px;border:1px solid rgba(0,0,0,0.08);}

/* Keep header on one row on mobile */
.site-header .header-inner{flex-wrap:nowrap;}

@media (max-width: 520px){
  .lang-btn{padding:8px 8px;gap:6px;border-radius:12px;}
  .lang-caret{display:none;}
  .lang-label{display:none;}
}

/* --- Calendar: unify unavailable colors --- */
.swatch.unavailable,
.swatch.full,
.swatch.stay{background:rgba(239,68,68,0.16);border-color:rgba(239,68,68,0.32);}
.day.is-unavailable,
.day.is-full,
.day.is-stay{background:rgba(239,68,68,0.14);border-color:rgba(239,68,68,0.30);}

/* -------------------------------------------------
   Legal pages (privacy / cookies)
------------------------------------------------- */
.legal h2{ margin:18px 0 8px; }
.legal p{ margin:10px 0; color:var(--text); }
.legal .legal-meta{ margin:0 0 14px; color:var(--muted); font-size:14px; }
.legal ul{ margin:10px 0 10px 18px; }
.legal li{ margin:6px 0; }

/* -------------------------------------------------
   Cookie banner + preferences modal
------------------------------------------------- */
.cookie-banner{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:9999;
}

.cookie-card{
  max-width:var(--max);
  margin:0 auto;
  background:rgba(255,255,255,.96);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:14px;
  display:flex;
  gap:14px;
  align-items:flex-start;
  justify-content:space-between;
}

.cookie-title{ font-weight:900; letter-spacing:.2px; }
.cookie-desc{ color:var(--muted); font-size:14px; margin-top:4px; }
.cookie-links{ margin-top:8px; font-size:13px; color:var(--muted); }
.cookie-links a{ color:var(--accent2); font-weight:800; }

.cookie-actions{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:flex-end; }

.footer-legal{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.linklike{
  background:transparent;
  border:none;
  padding:0;
  color:var(--accent2);
  font-weight:800;
  cursor:pointer;
  text-decoration:underline;
}

@media (max-width: 820px){
  .cookie-card{ flex-direction:column; }
  .cookie-actions{ justify-content:flex-start; }
}

.cookie-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.cookie-backdrop{ position:absolute; inset:0; background:rgba(15,23,42,.42); }

.cookie-panel{
  position:relative;
  width:100%;
  max-width:560px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:16px;
}

.cookie-panel-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cookie-panel-intro{ color:var(--muted); font-size:14px; margin:10px 0 16px; }

.icon-btn{
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid var(--border);
  background:#fff;
  cursor:pointer;
  font-weight:900;
}

.cookie-option{
  display:flex;
  gap:12px;
  justify-content:space-between;
  align-items:center;
  padding:12px;
  border:1px solid rgba(15,23,42,.10);
  background:var(--surface2);
  border-radius:16px;
  margin:10px 0;
}
.cookie-opt-title{ font-weight:900; }
.cookie-opt-desc{ color:var(--muted); font-size:13px; margin-top:3px; }
.cookie-pill{ font-size:12px; font-weight:900; color:var(--text); background:#fff; border:1px solid rgba(15,23,42,.12); border-radius:999px; padding:6px 10px; white-space:nowrap; }

.cookie-panel-actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:14px; }

/* Toggle switch */
.switch{ position:relative; display:inline-block; width:50px; height:30px; }
.switch input{ opacity:0; width:0; height:0; }
.switch .slider{ position:absolute; cursor:pointer; top:0; left:0; right:0; bottom:0; background:rgba(15,23,42,.18); transition:.2s; border-radius:999px; }
.switch .slider:before{ position:absolute; content:""; height:24px; width:24px; left:3px; top:3px; background:#fff; transition:.2s; border-radius:999px; box-shadow:0 6px 16px rgba(15,23,42,.18); }
.switch input:checked + .slider{ background:rgba(249,115,22,.55); }
.switch input:checked + .slider:before{ transform:translateX(20px); }
/* === Hotfix: cookie preferences + calendar (Jan 2026) === */

/* Ensure the HTML [hidden] attribute always wins (prevents modals/banners staying visible) */
[hidden]{ display:none !important; }

/* Cookie toggle: avoid tiny layout/paint "jump" when switching state */
.switch{ flex:0 0 auto; }
.switch .slider:before{
  transform: translate3d(0,0,0);
  will-change: transform;
}
.switch input:checked + .slider:before{
  transform: translate3d(20px,0,0);
}

/* Calendar: prevent price wrapping (notably on some locales like ro where Intl may output 'EUR') */
.day .price{
  white-space: nowrap;
  max-width: calc(100% - 14px);
  overflow: hidden;
  text-overflow: ellipsis;
}
.day .num,
.day .price{
  font-variant-numeric: tabular-nums;
}



/* Calendar readability fixes (portrait + small screens) */
@media (max-width: 520px){
  .calendar{ border-spacing:4px; }
  .calendar th{ font-size:11px; }
  .day{
    min-height:78px;
    padding:8px;
    border-radius:12px;
  }
  .day .num{ font-size:13px; top:7px; left:8px; }
  .day .price{ font-size:14px; top:7px; right:8px; }
  .day .tag{ bottom:7px; left:8px; font-size:9px; padding:2px 7px; }
}

/* Extra-tight devices (very narrow) */
@media (max-width: 380px){
  .calendar{ border-spacing:3px; }
  .day{ min-height:74px; padding:7px; }
  .day .price{ font-size:13px; }
}

/* Admin calendar: stack tools below calendar on narrow screens */
@media (max-width: 980px){
  .admin-cal-layout{ grid-template-columns: 1fr; }
}

/* === Calendar layout v9 (Feb 2026) ===
   Goal: day number + price must never overlap (admin + booking).
   We stack them on two separate rows and center-align the content.
   NOTE: this section intentionally comes last to override older hotfixes.
*/

/* Base cell layout (desktop + tablet). */
.calendar .day{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
}

/* Reset the old absolute positioning rules. */
.calendar .day .num,
.calendar .day .price{
  position:static;
  top:auto; right:auto; bottom:auto; left:auto;
  transform:none;
}

.calendar .day .num{
  margin:0;
  font-size:14px;
  line-height:1.05;
}

.calendar .day .price{
  margin-top:6px;
  font-size:12px;
  font-weight:900;
  line-height:1.05;
  color:var(--ink);
  white-space:nowrap;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Full vs compact price: on narrow screens we prefer compact to avoid truncation. */
.calendar .day .price .price-full{ display:inline; }
.calendar .day .price .price-compact{ display:none; }

@media (max-width: 900px){
  .calendar .day .num{ font-size:13px; }
  .calendar .day .price{ font-size:11px; margin-top:5px; }

  .calendar .day .price .price-full{ display:none; }
  .calendar .day .price .price-compact{ display:inline; }
}

@media (max-width: 420px){
  .calendar .day .price{ font-size:10px; margin-top:4px; }
}

/* Admin calendar uses <button class="day"> and also has bottom markers.
   Keep it centered, but reserve some space for the bottom "min" and "●" tags. */
.admin-calendar .day{
  text-align:center;
  padding-bottom:36px;
}

