/* ==========================================================
   V1.30.0 — APPOINTMENT ART + KARLES.GR FOOTER
   Visual-only public booking refinement.
   booking.js IDs/contracts intentionally unchanged.
   ========================================================== */

:root{
  --v1300-paper:#FAF8F4;
  --v1300-surface:#fff;
  --v1300-ink:#1B2B38;
  --v1300-muted:#56646C;
  --v1300-line:#E3DED5;
  --v1300-navy:#1F4E7A;
  --v1300-deep:#163D5F;
  --v1300-sage:#4A6B57;
  --v1300-sage-tint:#EDF3EE;
  --v1300-danger:#9B2C22;
  --v1300-danger-tint:#FCEDEA;
  --v1300-danger-line:#E7B3AB;
  --v1300-on-deep:#C9D6E2;
  --v1300-on-deep-muted:#A9BCCD;
  --v1300-max:1200px;
}

/* ---------- site-style header ---------- */
.booking-site-header{
  background:rgba(250,248,244,.97);
  border-bottom:1px solid var(--v1300-line);
}
.booking-header-inner{
  width:min(1280px,calc(100% - 40px));
  min-height:76px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:34px;
}
.booking-brand{flex:none}
.booking-main-nav{
  display:flex;
  align-items:center;
  gap:24px;
  margin-left:auto;
}
.booking-main-nav a{
  display:flex;
  align-items:center;
  min-height:76px;
  color:var(--v1300-ink);
  font:500 15px/1 'Commissioner','Segoe UI',sans-serif;
  text-decoration:none;
  white-space:nowrap;
}
.booking-main-nav a:hover{
  color:var(--v1300-navy);
  text-decoration:underline;
  text-underline-offset:6px;
}
.booking-header-cta{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:0 18px;
  border-radius:12px;
  background:var(--v1300-deep);
  color:#fff;
  font:600 14px/1 'Commissioner','Segoe UI',sans-serif;
  text-decoration:none;
  white-space:nowrap;
}
.booking-header-cta:hover{background:var(--v1300-navy)}
.booking-header-cta svg{
  width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}

/* hide the legacy standalone header */
.topbar{display:none!important}

/* ---------- hero ---------- */
.page{
  width:min(var(--v1300-max),calc(100% - 40px))!important;
  padding:0 0 58px!important;
}
.hero{
  min-height:420px!important;
  padding:48px 0 36px!important;
  grid-template-columns:minmax(0,7fr) minmax(390px,5fr)!important;
  gap:56px!important;
  border-bottom:0!important;
}
.hero h1{
  font-size:clamp(46px,5vw,68px)!important;
  line-height:1.03!important;
  letter-spacing:-.028em!important;
  max-width:760px!important;
}
.hero p{max-width:690px!important}
.hero-points{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  max-width:720px!important;
  margin-top:26px!important;
  border-top:0!important;
}
.point{
  min-height:54px!important;
  display:grid!important;
  grid-template-columns:42px 1fr!important;
  gap:10px!important;
  align-items:center!important;
  padding:0!important;
  border:0!important;
  color:var(--v1300-muted)!important;
  font-size:14px!important;
  line-height:1.35!important;
}
.point-icon{
  width:42px;height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--v1300-sage-tint);
  color:var(--v1300-sage);
}
.point-icon svg{
  width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}

/* ---------- booking appointment illustration ---------- */
.appointment-visual{
  min-height:360px!important;
  overflow:hidden!important;
  border-radius:24px!important;
  background:
    radial-gradient(circle at 28% 68%,rgba(74,107,87,.08),transparent 34%),
    radial-gradient(circle at 88% 18%,rgba(31,78,122,.08),transparent 28%),
    #edf3ee!important;
  position:relative;
}
.appointment-art{
  position:relative;
  width:min(100%,520px);
  height:350px;
  margin:auto;
  transform:translateY(4px);
}
.art-calendar{
  position:absolute;
  z-index:5;
  left:112px;
  bottom:34px;
  width:245px;
  height:225px;
  border:1px solid #D5E1E8;
  border-radius:17px 17px 24px 24px;
  background:linear-gradient(180deg,#fff 0 72px,#F9FCFD 72px);
  box-shadow:0 20px 36px rgba(22,61,95,.12);
}
.calendar-rings{
  position:absolute;left:20px;right:20px;top:-13px;height:34px;
  display:flex;justify-content:space-around;
}
.calendar-rings i{
  width:11px;height:34px;border:4px solid #1e6076;border-bottom-color:transparent;border-radius:12px;
}
.calendar-shield{
  position:absolute;
  top:24px;left:50%;
  width:60px;height:60px;
  transform:translateX(-50%);
  object-fit:contain;
}
.calendar-cells{
  position:absolute;
  left:26px;right:26px;bottom:23px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.calendar-cells i{
  height:28px;
  border-radius:5px;
  background:#EAF0F4;
}
.calendar-cells .cell-check{
  display:grid;
  place-items:center;
  background:#5A9A76;
  color:#fff;
  font-style:normal;
  font:700 18px/1 'Commissioner',sans-serif;
  box-shadow:0 7px 14px rgba(74,107,87,.18);
}
.art-clock{
  position:absolute;
  z-index:4;
  width:120px;height:120px;
  right:46px;top:22px;
  border:9px solid #5A7FA3;
  border-radius:50%;
  background:#FBFCFD;
  box-shadow:0 10px 24px rgba(22,61,95,.12);
}
.clock-dot{position:absolute;width:4px;height:9px;border-radius:4px;background:#6F8797;left:50%;top:9px;transform:translateX(-50%)}
.clock-dot.d3{left:auto;right:11px;top:50%;transform:translateY(-50%) rotate(90deg)}
.clock-dot.d6{top:auto;bottom:9px}
.clock-dot.d9{left:11px;top:50%;transform:translateY(-50%) rotate(90deg)}
.clock-hand{position:absolute;left:50%;top:50%;height:4px;border-radius:4px;background:#173F67;transform-origin:left center}
.clock-hour{width:31px;transform:rotate(225deg)}
.clock-minute{width:42px;transform:rotate(312deg)}
.clock-pin{position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;background:#173F67;transform:translate(-50%,-50%)}
.art-phone{
  position:absolute;
  z-index:8;
  right:6px;bottom:22px;
  width:128px;height:205px;
  padding:30px 12px 15px;
  border:7px solid #173F67;
  border-radius:22px;
  background:#fff;
  transform:rotate(5deg);
  box-shadow:0 18px 32px rgba(22,61,95,.17);
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.phone-speaker{position:absolute;top:9px;width:36px;height:4px;border-radius:9px;background:#D4DDE3}
.art-phone img{width:38px;height:38px;object-fit:contain}
.art-phone strong{margin-top:7px;color:#274B69;font:600 11px/1.25 'Commissioner',sans-serif}
.phone-check{
  width:34px;height:34px;margin-top:10px;border-radius:50%;display:grid;place-items:center;
  background:#5A9A76;color:#fff;font:700 20px/1 sans-serif;
}
.art-phone>i{width:62px;height:5px;margin-top:8px;border-radius:10px;background:#E8EEF2}
.art-phone>i+ i{width:45px;margin-top:5px}
.art-books{
  position:absolute;z-index:3;left:48px;bottom:40px;width:95px;height:76px;
}
.art-books i{position:absolute;left:0;width:92px;height:22px;border-radius:7px;box-shadow:0 7px 12px rgba(22,61,95,.08)}
.art-books i:nth-child(1){bottom:0;background:#609072}
.art-books i:nth-child(2){bottom:23px;left:8px;background:#2F6FA8}
.art-books i:nth-child(3){bottom:46px;left:16px;background:#8AB09A}
.art-bunny{
  position:absolute;z-index:7;left:90px;bottom:26px;width:104px;height:137px;
}
.bunny-ear{
  position:absolute;top:0;width:30px;height:62px;border-radius:70% 70% 55% 55%;background:#EBC7AE;border:1px solid rgba(138,93,67,.08)
}
.ear-left{left:15px;transform:rotate(-24deg)}
.ear-right{right:10px;transform:rotate(28deg)}
.bunny-head{
  position:absolute;left:17px;top:35px;width:72px;height:65px;border-radius:48% 48% 46% 46%;background:#F1CFB6;box-shadow:0 8px 14px rgba(138,93,67,.08)
}
.eye{position:absolute;top:25px;width:5px;height:6px;border-radius:50%;background:#35434E}
.eye.left{left:20px}.eye.right{right:20px}
.nose{position:absolute;left:50%;top:35px;width:7px;height:5px;border-radius:50%;background:#C98D85;transform:translateX(-50%)}
.bunny-body{position:absolute;left:27px;bottom:4px;width:54px;height:58px;border-radius:48% 48% 42% 42%;background:#EDC6A9;box-shadow:0 8px 14px rgba(138,93,67,.08)}
.bunny-foot{position:absolute;bottom:0;width:32px;height:24px;border-radius:50%;background:#F3D2B8}
.foot-left{left:13px;transform:rotate(-15deg)}.foot-right{right:4px;transform:rotate(15deg)}
.art-leaf{
  position:absolute;z-index:1;width:45px;height:95px;border-radius:100% 0 100% 0;background:linear-gradient(180deg,#6E9C7D,#AFC9B7);opacity:.9;transform-origin:bottom center;
}
.leaf-a{left:46px;top:70px;transform:rotate(-32deg)}
.leaf-b{left:75px;top:36px;transform:rotate(-6deg) scale(.9)}
.leaf-c{right:12px;top:100px;transform:rotate(32deg) scale(.85)}
.leaf-d{right:36px;bottom:28px;transform:rotate(55deg) scale(.72)}
.art-accent{position:absolute;z-index:10;width:7px;height:28px;border-radius:8px;background:#4F8B67}
.accent-a{right:22px;top:30px;transform:rotate(28deg)}
.accent-b{right:1px;top:55px;transform:rotate(62deg);height:22px}
.accent-c{left:370px;top:135px;transform:rotate(-18deg);height:19px}

/* ---------- booking card + emergency band ---------- */
.booking-shell{
  margin-top:28px!important;
  border-radius:18px!important;
  box-shadow:0 12px 30px rgba(22,61,95,.055)!important;
}
.multi-child-note{
  margin-top:0!important;
  margin-bottom:16px!important;
}
.urgent{
  margin-top:18px!important;
  padding:16px 18px!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  border:1px solid var(--v1300-danger-line)!important;
  border-left:4px solid var(--v1300-danger)!important;
  border-radius:12px!important;
  background:var(--v1300-danger-tint)!important;
}
.urgent-icon{
  width:46px!important;height:46px!important;
  border-radius:50%!important;
  background:#FFE0DD!important;
  border:0!important;
  color:#C82A22!important;
  font-size:22px!important;
}
.urgent-call{
  min-width:180px!important;
  min-height:58px!important;
  padding:8px 16px!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  border:1px solid #D64A42!important;
  border-radius:12px!important;
  color:#C3261E!important;
  background:#fff!important;
}
.urgent-call svg{
  width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.urgent-call span{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.urgent-call strong{color:#C3261E!important;font:600 14px/1.2 'Commissioner',sans-serif}
.urgent-call small{font:600 13px/1.2 'Commissioner',sans-serif}

/* completely remove the old three-block trust/contact strip */
.trust{display:none!important}

/* ---------- exact karles.gr-style footer ---------- */
.kd-footer{
  width:100%!important;
  margin:0!important;
  padding:72px 0 32px!important;
  background:var(--v1300-deep)!important;
  color:var(--v1300-on-deep)!important;
  font-family:'Commissioner','Segoe UI',system-ui,-apple-system,sans-serif!important;
  text-align:left!important;
}
.kd-wrap{width:min(1200px,calc(100% - 40px));margin:0 auto}
.kd-footer-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr 1.1fr 1.25fr 1.1fr;
  gap:40px;
}
.kd-footer .kd-brand{
  display:flex!important;align-items:center!important;gap:12px!important;min-height:44px;
  color:#fff!important;text-decoration:none!important;
}
.kd-footer .kd-brand svg{width:40px;height:46px;display:block;flex:none}
.kd-brand-name{
  display:block;
  color:#fff!important;
  font:600 18px/1.15 'Literata',Georgia,serif!important;
  letter-spacing:-.01em;
}
.kd-brand-sub{
  display:block;
  color:var(--v1300-on-deep)!important;
  font:400 13px/1.3 'Commissioner','Segoe UI',sans-serif!important;
  white-space:nowrap;
}
.kd-footer p{margin:0;font-size:15px;line-height:1.6}
.kd-footer-about{display:flex;flex-direction:column;gap:16px;max-width:320px}
.kd-footer h2{margin:0 0 12px;font:600 15px/1.3 'Commissioner','Segoe UI',sans-serif;color:#fff}
.kd-footer ul{list-style:none;margin:0;padding:0}
.kd-footer li a{
  display:flex;align-items:center;gap:10px;min-height:40px;
  color:var(--v1300-on-deep)!important;
  font-size:15px;line-height:1.35;text-decoration:none;
}
.kd-footer li a:hover{color:#fff!important;text-decoration:underline;text-underline-offset:3px}
.kd-footer .kd-ico{
  width:18px;height:18px;flex:none;display:block;
  fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;
}
.kd-hours-days{margin:0;color:#fff!important;font:600 17px/1.4 'Commissioner','Segoe UI',sans-serif!important}
.kd-hours-time{margin:2px 0 8px!important;color:#fff!important;font:500 28px/1.2 'Literata',Georgia,serif!important}
.kd-footer-social{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.kd-footer-social a{
  display:inline-flex;align-items:center;min-height:44px;padding:0 14px;
  border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#fff!important;
  font-size:14px;font-weight:600;text-decoration:none;
}
.kd-footer-bottom{
  margin-top:56px;border-top:1px solid rgba(255,255,255,.14);padding:20px 280px 0 0;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:32px;
}
.kd-footer-bottom p{font-size:14px;color:var(--v1300-on-deep-muted);line-height:1.5}
.kd-footer-legal{display:flex;gap:24px;align-items:center}
.kd-footer-legal a{
  display:inline-flex;align-items:center;min-height:44px;padding:0;
  color:var(--v1300-on-deep)!important;
  font:400 14px/1.3 'Commissioner','Segoe UI',sans-serif;
  text-decoration:underline;text-underline-offset:3px;white-space:nowrap;
}

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .booking-main-nav{gap:17px}
  .booking-main-nav a{font-size:14px}
  .booking-header-inner{gap:20px}
  .hero{grid-template-columns:minmax(0,6.5fr) minmax(350px,5.5fr)!important;gap:36px!important}
  .appointment-art{transform:scale(.92)}
}
@media(max-width:1000px){
  .booking-main-nav{display:none}
  .booking-header-cta{margin-left:auto}
  .hero{
    grid-template-columns:1fr!important;
    gap:28px!important;
    padding:42px 0 34px!important;
  }
  .appointment-visual{display:none!important}
  .hero-points{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .kd-footer{padding:48px 0 48px!important}
  .kd-footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px}
  .kd-footer-about,.kd-footer-hours,.kd-footer-contact{grid-column:1 / -1}
  .kd-footer-bottom{padding-right:0;grid-template-columns:1fr;align-items:start;gap:12px}
}
@media(max-width:760px){
  .booking-header-inner{width:calc(100% - 40px);min-height:68px}
  .booking-header-cta{display:none}
  .booking-brand{width:auto!important}
  .page{width:calc(100% - 40px)!important;padding-bottom:42px!important}
  .hero h1{font-size:clamp(36px,10vw,46px)!important}
  .hero-points{grid-template-columns:1fr!important;gap:9px!important}
  .point{grid-template-columns:38px 1fr!important;min-height:44px!important}
  .point-icon{width:38px;height:38px}
  .point br{display:none}
  .urgent{grid-template-columns:auto 1fr!important}
  .urgent-call{grid-column:1/-1!important;width:100%!important;justify-content:center!important}
  .urgent-call span{align-items:center}
  .kd-footer-grid{grid-template-columns:1fr;gap:28px}
  .kd-footer-about,.kd-footer-hours,.kd-footer-contact{grid-column:auto}
  .kd-footer{padding:44px 0 34px!important}
  .kd-footer .kd-brand{justify-content:flex-start!important}
  .kd-footer-bottom{margin-top:38px}
}
@media(max-width:430px){
  .booking-header-inner{width:calc(100% - 28px)}
  .booking-brand .brand-copy strong{font-size:17px!important}
  .booking-brand .brand-copy small{font-size:10px!important}
  .page{width:calc(100% - 28px)!important}
  .hero{padding-top:34px!important}
  .hero h1{font-size:35px!important}
  .kd-wrap{width:calc(100% - 32px)}
  .kd-brand-sub{white-space:normal}
}

/* ==========================================================
   V1.30.1 — booking reliability / accessibility refinements
   (loaded after booking.css; IDs and design unchanged)
   ========================================================== */
/* iOS Safari zooms into form controls below 16px. */
.field-card input,.field-card select,.field-card textarea{font-size:16px!important}
/* Visible invalid state for fields flagged with aria-invalid. */
.field-card:has([aria-invalid="true"]){
  border-color:var(--v1300-danger-line)!important;
  background:var(--v1300-danger-tint)!important;
  box-shadow:0 0 0 3px rgba(155,44,34,.10)!important;
}
.field-card:has([aria-invalid="true"])>span{color:var(--v1300-danger)!important}
.privacy:has([aria-invalid="true"]){
  padding:8px 10px;border-radius:10px;
  background:var(--v1300-danger-tint);outline:1px solid var(--v1300-danger-line);
  color:var(--v1300-danger)!important;
}
/* Inline error next to the submit button. */
.booking-form-error{
  margin:14px 0 0;padding:10px 12px;border-radius:10px;
  border:1px solid var(--v1300-danger-line);background:var(--v1300-danger-tint);
  color:var(--v1300-danger);font:500 14px/1.45 'Commissioner','Segoe UI',sans-serif;
}
.booking-form-error:empty{display:none}
/* Selected time slot. */
.slots button.active,.slots button.active:nth-child(n):hover{
  border-color:var(--v1300-navy)!important;
  background:var(--v1300-navy)!important;color:#fff!important;
}

/* ==========================================================
   V1.30.2 — public booking mobile UX compaction
   Visual only: booking IDs, API payload and availability logic unchanged.
   ========================================================== */
/* Same-day / urgent shortcut at the top of the booking card (the full urgent block stays below). */
.sameday-call{
  display:flex;align-items:center;gap:10px;min-height:44px;margin:0 0 20px;padding:8px 14px;
  border:1px solid var(--v1300-danger-line);border-radius:10px;background:var(--v1300-danger-tint);
  color:var(--v1300-danger);font:500 14px/1.35 'Commissioner','Segoe UI',sans-serif;text-decoration:none;
}
.sameday-call svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sameday-call strong{font-weight:700;white-space:nowrap}
.sameday-call:hover{border-color:var(--v1300-danger)}
.sameday-call:focus-visible{outline:3px solid rgba(155,44,34,.35);outline-offset:2px}
/* Day buttons: weekday · date · number of hours. */
.days button .day-wd{display:block;font:500 12px/1.3 'Commissioner','Segoe UI',sans-serif;opacity:.8;text-transform:capitalize}
.days button strong{text-transform:none}
.days button:focus-visible,.slots button:focus-visible{outline:3px solid rgba(31,78,122,.35);outline-offset:2px}
/* Two-children hint under the hours. */
.slots-multi-child{margin:14px 0 0;color:var(--v1300-muted);font:400 13px/1.45 'Commissioner','Segoe UI',sans-serif}
.slots-multi-child strong{color:var(--v1300-ink);font-weight:600}
/* Optional email / comment disclosure (#email and #notes keep their IDs). */
.optional-fields{margin-top:12px;border:1px solid var(--v1300-line);border-radius:12px;background:var(--v1300-surface)}
.optional-fields>summary{
  display:flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;cursor:pointer;list-style:none;
  color:var(--v1300-navy);font:600 14px/1.3 'Commissioner','Segoe UI',sans-serif;
}
.optional-fields>summary::-webkit-details-marker{display:none}
.optional-fields>summary small{color:var(--v1300-muted);font-weight:500}
.optional-fields>summary:focus-visible{outline:3px solid rgba(31,78,122,.35);outline-offset:2px;border-radius:12px}
.optional-fields[open]>summary{border-bottom:1px solid var(--v1300-line)}
.optional-grid{padding:12px}
.optional-grid .field-card{border-color:var(--v1300-line)!important}
/* Privacy consent: larger box, ≥44px tappable row, policy link. */
.privacy{align-items:center!important;min-height:44px;padding:6px 0;font-size:13px!important}
.privacy input{width:22px;height:22px;margin:0!important;flex:none}
.privacy a{color:var(--v1300-navy);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}

@media(max-width:760px){
  /* Compact hero: kicker, short h1, one sentence, small benefit chips. */
  .hero{min-height:0!important;padding:18px 0 16px!important;gap:0!important;border-bottom:0!important}
  .kicker{font-size:12px!important}
  .hero h1{font-size:32px!important;line-height:1.1!important;margin:6px 0 8px!important}
  .hero p{font-size:15px!important;line-height:1.5!important}
  .hero-points{display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin-top:12px!important;border-top:0!important}
  .point{
    display:inline-flex!important;align-items:center!important;gap:6px!important;min-height:30px!important;
    padding:3px 10px 3px 4px!important;border:1px solid var(--v1300-line)!important;border-radius:999px!important;
    background:var(--v1300-surface)!important;font-size:12px!important;line-height:1.2!important;
  }
  .point-icon{width:24px;height:24px}
  .point-icon svg{width:14px;height:14px}
  /* Booking card */
  .booking-shell{margin-top:4px!important;padding:16px 14px!important}
  .sameday-call{margin-bottom:14px;font-size:14px}
  .step-head{margin:0 0 10px!important;flex-wrap:wrap;gap:8px!important}
  .step-head.compact{margin-bottom:10px!important}
  .step-badge{width:28px!important;height:28px!important;border-radius:8px!important;font-size:14px}
  .step-head small{font-size:12px!important}
  .step-head h2{font-size:20px!important}
  .window-chip{font-size:12px!important;padding:5px 9px!important}
  .status{margin-bottom:10px!important;padding:8px 12px!important;font-size:14px}
  .soft-divider{height:18px!important}
  /* Days: one horizontal strip, scroll-snap when they do not fit. */
  .days{
    display:flex!important;grid-template-columns:none!important;gap:8px!important;
    overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;padding:2px 2px 4px;
  }
  .days::-webkit-scrollbar{display:none}
  .days button{
    flex:0 0 auto;min-width:68px;min-height:64px!important;padding:8px 10px!important;
    scroll-snap-align:start;text-align:center;border-radius:12px!important;
  }
  .days button strong{font-size:14px}
  .days button small{margin-top:2px;font-size:12px}
  /* Hours: four per row. */
  .slots{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}
  .slots button{min-height:44px!important;padding:8px 2px!important;font-size:15px}
  /* Form */
  .selected-slot{margin:0 0 10px!important;padding:10px 12px!important}
  .form-grid{gap:8px!important}
  .field-card{padding:8px 12px!important;gap:2px!important}
  .field-card>span{font-size:13px}
  .optional-grid{padding:10px}
  .privacy{margin-top:10px!important}
  .submit{margin-top:10px!important}
  .submit-note{margin:8px 0 0}
}
@media(max-width:430px){
  .hero{padding-top:16px!important}
  .hero h1{font-size:30px!important}
  .slots button{font-size:14px}
}

/* ==========================================================
   V1.30.2 — public booking interaction flow
   ========================================================== */
/* Selected slot summary with «Αλλαγή». */
.selected-slot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.change-slot{
  flex:none;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;cursor:pointer;
  color:var(--v1300-navy);font:600 14px/1.2 'Commissioner','Segoe UI',sans-serif;text-decoration:underline;text-underline-offset:3px;
}
.change-slot:focus-visible{outline:3px solid rgba(31,78,122,.35);outline-offset:2px}
/* Reason of visit: four touch chips; #reason stays the hidden payload mirror. */
.reason-field{margin:0;min-width:0}
.reason-field>legend{float:left;width:100%;padding:0;margin:0 0 8px;color:var(--v1300-ink);font:600 13px/1.3 'Commissioner','Segoe UI',sans-serif}
.reason-sync{display:none!important}
.reason-chips{clear:both;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.reason-chip{position:relative;display:block;cursor:pointer}
.reason-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.reason-chip span{
  display:flex;align-items:center;justify-content:center;min-height:44px;height:100%;padding:6px 8px;text-align:center;
  border:1px solid var(--v1300-line);border-radius:10px;background:var(--v1300-surface);
  color:var(--v1300-navy);font:600 14px/1.25 'Commissioner','Segoe UI',sans-serif;
}
.reason-chip:hover span{border-color:var(--v1300-navy)}
.reason-chip input:checked+span{border-color:var(--v1300-navy);background:var(--v1300-navy);color:#fff}
.reason-chip input:focus-visible+span{outline:3px solid rgba(31,78,122,.35);outline-offset:2px}
.reason-field[aria-invalid="true"]{border-color:var(--v1300-danger-line)!important;background:var(--v1300-danger-tint)!important}
.reason-field[aria-invalid="true"]>legend{color:var(--v1300-danger)}
/* Tap-to-call inside the availability status (empty / failed availability). */
.status-call{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid currentColor;border-radius:10px;color:var(--v1300-navy);font-weight:600;white-space:nowrap;text-decoration:none}
.status{flex-wrap:wrap}
/* Success: one clean card, no orphan steps. */
.booking-shell.booking-done>:not(#bookingSuccess){display:none!important}
.success{text-align:left!important}
.success>strong{display:block;margin-bottom:10px}
.success-child{color:var(--v1300-ink);font:600 18px/1.35 'Commissioner','Segoe UI',sans-serif}
.success-when{margin-top:2px;color:var(--v1300-ink);font:500 16px/1.4 'Commissioner','Segoe UI',sans-serif}
.success-reason{margin-top:2px;color:var(--v1300-muted);font:400 15px/1.4 'Commissioner','Segoe UI',sans-serif}
.success p{margin:12px 0 0}
.success-change a{color:var(--v1300-navy);font-weight:600;white-space:nowrap}
.another-child{
  margin-top:16px;min-height:46px;padding:0 18px;border:1px solid var(--v1300-navy);border-radius:12px;cursor:pointer;
  background:var(--v1300-surface);color:var(--v1300-navy);font:600 15px/1.2 'Commissioner','Segoe UI',sans-serif;
}
.another-child:focus-visible{outline:3px solid rgba(31,78,122,.35);outline-offset:2px}
@media(max-width:760px){
  .reason-chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .another-child{width:100%}
  .status-call{margin-left:0}
}
