/* Main weboldal + foglalási nézet */
.public-topbar { padding-bottom: 18px; }
.public-nav { flex-wrap: wrap; justify-content: flex-end; }
.public-nav .nav-cta { background: var(--ink); color: var(--paper-raised); border-color: var(--ink); }
.mobile-account-button { display:none; }

.business-logo-mark { overflow: hidden; }
.business-logo-mark img { width: 100%; height: 100%; object-fit: cover; display: block; }

.hero-section {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  gap: 24px;
  align-items: stretch;
  padding-top: 36px;
  padding-bottom: 52px;
}
.hero-copy {
  min-height: 420px;
  padding: clamp(32px, 6vw, 72px);
  border: 1px solid var(--line);
  border-radius: 28px;
  background:
    radial-gradient(circle at 88% 12%, rgba(226,163,59,.24), transparent 24rem),
    linear-gradient(145deg, #fffdf9 0%, #f7f0e3 100%);
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-copy h1 { max-width: 12ch; font-size: clamp(42px, 6vw, 72px); }
.hero-lead { margin-top: 20px; max-width: 58ch; color: var(--muted); font-size: clamp(17px, 2vw, 20px); line-height: 1.65; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 28px; }
.trust-row { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 28px; color: var(--ink-soft); font-size: 13.5px; font-weight: 700; }

.hero-card {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--ink);
  color: var(--paper-raised);
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.hero-card h2, .hero-card a { color: var(--paper-raised); }
.hero-card .eyebrow { color: #f6c978; }
.hero-card .eyebrow::before { background: #f6c978; }
.hero-logo-large { width: 88px; height: 88px; display: grid; place-items: center; border-radius: 22px; background: rgba(255,255,255,.12); color: #fff; font-family: var(--font-display); font-size: 28px; font-weight: 700; overflow: hidden; }
.hero-contact-list { margin: auto 0 0; display: grid; gap: 14px; }
.hero-contact-list div { padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); }
.hero-contact-list dt { color: rgba(255,255,255,.62); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.hero-contact-list dd { margin: 4px 0 0; font-weight: 700; }

.booking-section { scroll-margin-top: 20px; }
.booking-anchor { scroll-margin-top: 20px; }
.service-card-with-image { padding-top: 12px; min-height: 255px; }
.service-image { width: 100%; height: 104px; border-radius: 9px; display: grid; place-items: center; overflow: hidden; background: linear-gradient(135deg, #efe7d7, #f8f3e9); }
.service-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.service-placeholder-mark { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.72); color: var(--ink); font-family: var(--font-display); font-size: 20px; font-weight: 700; box-shadow: var(--shadow-sm); }
.service-image.placeholder-1 { background: linear-gradient(135deg, #e7edf3, #f5f1e7); }
.service-image.placeholder-2 { background: linear-gradient(135deg, #e8eee7, #f8f2e7); }
.service-image.placeholder-3 { background: linear-gradient(135deg, #f3e6df, #f8f2e9); }
.service-card-with-image .check { top: 20px; right: 20px; }

.trust-section { padding-top: 24px; padding-bottom: 24px; }
.section-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; align-items: start; padding: clamp(28px, 5vw, 56px); border: 1px solid var(--line); border-radius: 24px; background: var(--paper-raised); box-shadow: var(--shadow-sm); }
.section-heading > p { color: var(--muted); font-size: 17px; line-height: 1.8; white-space: pre-line; }
.compact-heading { grid-template-columns: 1fr; padding-bottom: 24px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; box-shadow: none; }
.reviews-heading { grid-template-columns:1fr; align-items:center; }
.review-disclosure-button {
  width:100%;
  min-height:54px;
  margin-top:-1px;
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid var(--ink);
  border-radius:0 0 18px 18px;
  background:var(--ink);
  color:#fff;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  box-shadow:var(--shadow-sm);
  transition:background .18s ease, border-radius .28s ease, transform .18s ease, box-shadow .18s ease;
}
.review-disclosure-button:hover { background:#27314f; box-shadow:var(--shadow-md); }
.review-disclosure-button:focus-visible { outline:3px solid rgba(226,163,59,.48); outline-offset:3px; }
.review-disclosure-button.open { border-radius:0; box-shadow:none; }
.review-disclosure-icon {
  width:11px;
  height:11px;
  flex:none;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-3px) rotate(45deg);
  transition:transform .28s ease;
}
.review-disclosure-button.open .review-disclosure-icon { transform:translateY(3px) rotate(225deg); }
.review-empty-state { margin-top:14px; padding:24px; border:1px dashed var(--line-strong); border-radius:18px; background:var(--paper-raised); color:var(--muted); text-align:center; }

.review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.review-card { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper-raised); box-shadow: var(--shadow-sm); }
.stars { color: var(--amber); letter-spacing: .08em; }
.stars span { color: var(--line-strong); }
.review-card blockquote { margin: 18px 0; color: var(--ink-soft); font-family: var(--font-display); font-size: 18px; line-height: 1.55; }
.review-card strong { font-size: 13px; }

.review-dropdown-panel { display:grid; grid-template-rows:1fr; scroll-margin-top:20px; }
.review-dropdown-inner { min-height:0; overflow:hidden; }
.public-review-card { display:grid; grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr); gap:clamp(24px,5vw,58px); padding:clamp(26px,5vw,52px); border:1px solid var(--line); border-top:0; border-radius:0 0 24px 24px; background:linear-gradient(145deg,#fffdf9,#fff8ec); box-shadow:var(--shadow-sm); }
.public-review-intro p:last-child { max-width:48ch; margin-top:12px; color:var(--muted); line-height:1.75; }
.public-review-form,
.public-review-fields { min-width:0; }
.public-review-fields { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.public-review-fields label { min-width:0; margin-top:0; margin-bottom:14px; }
.public-review-text { grid-column:1 / -1; position:relative; }
.public-review-text textarea { padding-bottom:30px; }
.review-character-count { position:absolute; right:10px; bottom:23px; color:var(--muted); font-size:10px; font-weight:600; }
.field-hint { color:var(--muted); font-size:10px; font-weight:500; }
.star-rating-field { min-width:0; width:100%; margin:0 0 14px; padding:0; border:0; }
.star-rating-field legend { margin-bottom:7px; color:var(--ink-soft); font-size:13.5px; font-weight:600; }
.star-rating { width:100%; display:flex; align-items:center; justify-content:space-between; min-height:46px; padding:0; border:0; background:transparent; }
.star-rating label { position:relative; display:grid; place-items:center; flex:1 1 20%; width:auto; height:46px; margin:0; color:var(--line-strong); cursor:pointer; }
.star-rating label span[aria-hidden="true"] { font-size:27px; line-height:1; transition:color .16s ease, transform .16s ease; }
.star-rating label.selected { color:var(--amber); }
.star-rating label:hover span[aria-hidden="true"] { color:var(--amber); transform:scale(1.12); }
.star-rating input:focus-visible + span { outline:3px solid rgba(226,163,59,.42); outline-offset:3px; border-radius:4px; }
.star-rating-value { display:block; margin-top:5px; color:var(--muted); font-size:10px; font-weight:700; }
.public-review-legal { display:flex; align-items:flex-start; gap:10px; margin:2px 0 18px; line-height:1.55; }
.public-review-legal input { width:18px; min-width:18px; height:18px; min-height:18px; margin:2px 0 0; padding:0; }
.public-review-legal span { min-width:0; }
.public-review-legal a { font-weight:800; text-underline-offset:2px; }
.public-review-submit { width:100%; justify-content:center; }
.public-review-success { min-height:210px; display:grid; grid-template-columns:auto 1fr; gap:14px; align-content:center; align-items:start; padding:24px; border:1px solid rgba(65,102,83,.24); border-radius:18px; background:var(--sage-soft); }
.public-review-success > span { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--sage); color:#fff; font-size:22px; }
.public-review-success p { margin-top:5px; color:var(--ink-soft); }
.public-review-success .button { grid-column:2; justify-self:start; }
.review-form-reveal-enter-active,
.review-form-reveal-leave-active { overflow:hidden; transition:grid-template-rows .36s cubic-bezier(.2,.75,.25,1), opacity .22s ease; }
.review-form-reveal-enter-from,
.review-form-reveal-leave-to { grid-template-rows:0fr; opacity:0; }

.faq-list { display: grid; gap: 10px; margin-top: 14px; }
.faq-item { border: 1px solid var(--line); border-radius: 16px; background: var(--paper-raised); box-shadow: var(--shadow-sm); overflow: hidden; }
.faq-item summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; font-family: var(--font-display); font-size: 18px; font-weight: 600; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span { font-family: var(--font-body); font-size: 24px; transition: transform .2s ease; }
.faq-item[open] summary span { transform: rotate(45deg); }
.faq-item p { padding: 0 22px 22px; color: var(--muted); line-height: 1.7; }

.contact-card { padding: clamp(28px, 5vw, 56px); border-radius: 28px; background: var(--ink); color: var(--paper-raised); box-shadow: var(--shadow-md); }
.contact-card h2, .contact-card a { color: var(--paper-raised); }
.contact-card .eyebrow { color: #f6c978; }
.contact-card .eyebrow::before { background: #f6c978; }
.contact-intro > p:last-child { color: rgba(255,255,255,.72); max-width: 56ch; margin-top: 10px; }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 28px; }
.contact-item { padding: 18px; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; background: rgba(255,255,255,.06); }
.contact-item span { display: block; color: rgba(255,255,255,.58); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.contact-item strong, .contact-item a { display: block; margin-top: 6px; font-weight: 700; text-decoration: none; }
.preserve-lines { white-space: pre-line; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.contact-card .button.primary { background: var(--amber); border-color: var(--amber); color: var(--ink); }
.contact-card .button:not(.primary) { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.25); color: #fff; }

.site-footer { margin-top: 46px; border-top: 1px solid var(--line); background: rgba(255,253,249,.78); }
.footer-inner { display: grid; grid-template-columns: 1fr auto; gap: 26px; align-items: center; padding-top: 34px; padding-bottom: 34px; }
.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-brand strong, .footer-brand small { display: block; }
.footer-brand small { color: var(--muted); margin-top: 2px; }
.footer-links { display: flex; gap: 16px; flex-wrap: wrap; justify-content: flex-end; }
.footer-links a { text-decoration: none; font-weight: 700; font-size: 13px; }
.footer-copy { grid-column: 1 / -1; color: var(--muted); font-size: 12.5px; }

@media (max-width: 980px) {
  .hero-section { grid-template-columns: 1fr; }
  .hero-copy { min-height: auto; }
  .hero-copy h1 { max-width: 14ch; }
  .review-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .public-topbar { align-items: flex-start; }
  .public-nav { display: none; }
  .public-topbar { flex-direction:row; align-items:center; }
  .mobile-account-button { width:44px; height:44px; flex:none; display:grid; place-items:center; border:1px solid var(--line-strong); border-radius:50%; background:var(--ink); color:#fff; text-decoration:none; font-family:var(--font-display); font-weight:800; box-shadow:var(--shadow-sm); }
  .hero-section { padding-top: 18px; padding-bottom: 34px; }
  .hero-copy { padding: 30px 22px; border-radius: 22px; }
  .hero-copy h1 { font-size: clamp(38px, 12vw, 54px); }
  .hero-card { border-radius: 22px; }
  .review-grid, .contact-grid, .section-heading, .footer-inner { grid-template-columns: 1fr; }
  .section-heading { gap: 18px; padding: 28px 22px; }
  .footer-links { justify-content: flex-start; }
  .public-review-card { grid-template-columns:1fr; }
  .reviews-heading { grid-template-columns:1fr; }
  .review-disclosure-button { padding:14px 18px; }
}

@media (max-width: 560px) {
  .service-grid { grid-template-columns: 1fr; }
  .review-grid { grid-template-columns: 1fr; }
  .hero-actions .button { width: 100%; }
  .trust-row { display: grid; }
  .public-review-fields { grid-template-columns:1fr; }
  .public-review-text { grid-column:auto; }
  .public-review-card { padding:24px 18px; border-radius:20px; }
  .public-review-success { grid-template-columns:1fr; }
  .public-review-success .button { grid-column:auto; width:100%; }
}

/* --- Egységes, egymás alatti fő elrendezés --- */
.hero-section { grid-template-columns: 1fr; }
.hero-card { display:grid; grid-template-columns: auto minmax(0, 1fr) minmax(260px, .85fr); align-items: center; }
.hero-contact-list { margin: 0; }
.booking-section.booking-grid, .confirm-wrap { grid-template-columns: 1fr; }
.booking-section .side-panel, .confirm-wrap .side-panel { position: static; width: min(760px, 100%); margin: 0 auto; }
.confirm-wrap,
.confirm-wrap > *,
.confirm-hero,
.confirm-wrap .side-panel,
.confirm-wrap .ticket { min-width:0; }
.confirm-manage-notice { margin-top:28px; overflow:hidden; overflow-wrap:anywhere; }
.confirm-manage-link { display:block; max-width:100%; margin-top:4px; overflow-wrap:anywhere; word-break:break-word; }
.section-heading { grid-template-columns: 1fr; gap: 18px; }

@media (max-width: 760px) {
  .hero-card { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .confirm-wrap { width:calc(100% - 20px); padding-top:12px; padding-bottom:44px; gap:14px; }
  .confirm-hero { padding:24px 18px; }
  .confirm-hero h1 { font-size:clamp(29px,9vw,38px); overflow-wrap:anywhere; }
  .confirm-hero .lead { font-size:15px; line-height:1.6; }
  .confirm-hero .button-row { display:grid; grid-template-columns:1fr; align-items:stretch; }
  .confirm-hero .button-row .button { width:100%; min-width:0; justify-content:center; white-space:normal; text-align:center; }
  .confirm-manage-notice { margin-top:20px; padding:13px 14px; font-size:12.5px; }
  .confirm-wrap .side-panel { width:100%; }
  .confirm-wrap .ticket { padding:22px 18px 19px; }
  .confirm-wrap .ticket dd { overflow-wrap:anywhere; }
}

/* --- Havi + napi naptáras publikus foglalás --- */
.business-logo-mark img { object-fit: contain; background:#fff; }
.public-booking-calendar-stage { min-height:360px; }
.booking-calendar-view-enter-active,
.booking-calendar-view-leave-active { transition:opacity .22s ease, transform .26s cubic-bezier(.2,.78,.25,1); }
.booking-calendar-view-enter-from { opacity:0; transform:translateY(14px) scale(.992); }
.booking-calendar-view-leave-to { opacity:0; transform:translateY(-10px) scale(.995); }

.public-calendar-toolbar { display:grid; gap:14px; margin-bottom:16px; }
.public-day-toolbar { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:16px; }
.public-calendar-actions { width:100%; display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.public-calendar-actions .button[disabled] { opacity:.4; cursor:not-allowed; }
.public-month-weekdays { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); border:1px solid var(--line); border-bottom:0; border-radius:16px 16px 0 0; overflow:hidden; background:var(--paper-sunken); }
.public-month-weekdays span { padding:9px 4px; text-align:center; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.public-month-grid { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); border-radius:0 0 16px 16px; overflow:hidden; background:var(--line); }
.public-month-day { min-height:112px; padding:10px; display:flex; flex-direction:column; align-items:flex-start; gap:5px; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fffdf9; color:var(--ink); cursor:pointer; text-align:left; transition:background .16s ease, box-shadow .16s ease, transform .14s ease; }
.public-month-day:hover:not(:disabled) { background:#fff7e9; box-shadow:inset 0 0 0 2px rgba(226,163,59,.36); z-index:1; }
.public-month-day:active:not(:disabled) { transform:scale(.985); }
.public-month-day.outside-month { background:#f2ede4; color:#8e877a; }
.public-month-day.disabled { opacity:.44; cursor:not-allowed; }
.public-month-day.today { background:linear-gradient(145deg,#fffdf9,#fff3dd); }
.public-month-day-number { width:29px; height:29px; display:grid; place-items:center; border-radius:50%; font-family:var(--font-mono); font-size:12px; font-weight:700; }
.public-month-day.today .public-month-day-number { background:var(--ink); color:#fff; }
.public-month-day small { color:var(--amber-ink); font-size:9px; font-weight:800; text-transform:uppercase; }
.public-month-day i { margin-top:auto; color:var(--muted); font-style:normal; font-size:9px; opacity:0; transform:translateY(3px); transition:opacity .16s ease, transform .16s ease; }
.public-month-day:hover i { opacity:1; transform:translateY(0); }
.public-calendar-hint { margin-top:12px; color:var(--muted); font-size:12.5px; }

.public-back-link { margin:0 0 8px; padding:0; border:0; background:transparent; color:var(--ink-soft); font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; }
.public-back-link:hover { color:var(--ink); text-decoration:underline; }
.public-selected-service { max-width:320px; padding:10px 13px; border:1px solid var(--line); border-radius:999px; background:#fffaf3; color:var(--ink-soft); font-size:12px; font-weight:700; }
.public-calendar-loading { min-height:220px; display:grid; place-items:center; align-content:center; gap:10px; color:var(--muted); }
.public-day-timeline { border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fffdf9; }
.public-hour-row { display:grid; grid-template-columns:78px 1fr; min-height:68px; border-top:1px solid var(--line); }
.public-hour-row:first-child { border-top:0; }
.public-hour-label { padding:9px 10px 0 0; text-align:right; color:var(--muted); font-family:var(--font-mono); font-size:11px; background:#f8f3ea; }
.public-quarter-grid { position:relative; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }
.public-quarter-slot { min-width:0; min-height:68px; border:0; border-left:1px dashed rgba(205,192,163,.7); background:#efede7; color:#a49d91; cursor:not-allowed; transition:background .15s ease, transform .13s ease, box-shadow .15s ease; }
.public-quarter-slot:first-child { border-left:1px solid var(--line); }
.public-quarter-slot.available { background:linear-gradient(145deg,#fffdf9,#fff4df); color:var(--ink); cursor:pointer; }
.public-quarter-slot.available:hover { background:#f8dfb4; box-shadow:inset 0 0 0 1px var(--amber); z-index:1; }
.public-quarter-slot.selected { background:var(--ink); color:#fff; box-shadow:inset 0 0 0 2px var(--amber); transform:scale(.985); }
.public-quarter-slot strong,
.public-quarter-slot small { display:block; }
.public-quarter-slot strong { font-family:var(--font-mono); font-size:12px; }
.public-quarter-slot small { margin-top:2px; font-size:9.5px; opacity:.72; }
.public-own-booking-event { position:absolute; left:5px; right:5px; z-index:4; min-height:34px; overflow:hidden; padding:7px 10px; border:1px solid rgba(255,255,255,.7); border-radius:10px; background:linear-gradient(145deg,var(--ink),#34416f); color:#fff; box-shadow:0 5px 13px rgba(28,37,65,.2); font:inherit; text-align:left; cursor:pointer; }
.public-own-booking-event:hover { background:#2c3968; box-shadow:0 7px 18px rgba(28,37,65,.28),0 0 0 2px var(--amber); }
.public-own-booking-event strong,.public-own-booking-event small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.public-own-booking-event strong { font-size:11px; }
.public-own-booking-event small { margin-top:2px; color:rgba(255,255,255,.78); font-size:8.5px; }
.public-day-empty { margin-top:12px; }

@media (max-width:760px) {
  .public-day-toolbar { flex-direction:column; }
  .public-calendar-actions { justify-content:center; }
  .public-month-day { min-height:78px; padding:6px; }
  .public-month-day i { display:none; }
  .public-month-day-number { width:24px; height:24px; font-size:10px; }
  .public-selected-service { max-width:100%; }
  .public-hour-row { grid-template-columns:58px 1fr; }
  .public-quarter-slot { min-height:62px; }
  .public-quarter-slot small { display:none; }
  .public-own-booking-event { left:3px; right:3px; padding:6px 7px; border-radius:8px; }
  .public-own-booking-event strong { font-size:9.5px; }
  .public-own-booking-event small { display:block; font-size:7.5px; }
}

@media (max-width:520px) {
  .public-month-weekdays span { font-size:8px; padding:7px 1px; }
  .public-month-day { min-height:62px; }
  .public-quarter-slot strong { font-size:10px; }
}

/* Havi szabadhely-jelzések */
.public-month-day-head { width:100%; display:flex; align-items:center; justify-content:space-between; gap:5px; }
.public-day-availability { display:inline-flex; max-width:100%; padding:3px 6px; border-radius:999px; background:#e7f1eb; color:#2f6d52; font-size:8.5px; font-weight:800; line-height:1.15; white-space:normal; }
.public-day-availability.empty { background:#fde9e9; color:#a83d49; }
.public-month-day.sold-out, .public-month-day.closed { background:linear-gradient(145deg,#fffdf9,#fff3f3); }
.public-month-day.sold-out.disabled, .public-month-day.closed.disabled { opacity:.76; }
.public-month-day.has-own-booking { opacity:1; box-shadow:inset 0 0 0 2px rgba(28,37,65,.22); }
.public-own-bookings { width:100%; display:grid; gap:3px; margin-top:2px; }
.public-own-bookings > span { max-width:100%; overflow:hidden; padding:3px 5px; border-radius:6px; background:var(--ink); color:#fff; font-size:8px; font-weight:800; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.public-own-bookings small { color:var(--ink-soft); font-size:7.5px; text-transform:none; }
.public-calendar-hint .spinner { width:13px; height:13px; vertical-align:-2px; }

@media (max-width:760px) {
  .public-day-availability { padding:2px 4px; font-size:7px; border-radius:7px; }
  .public-own-bookings > span { padding:2px 3px; font-size:6.5px; }
}
/* Kötelező jogi elfogadás a foglalás véglegesítése előtt. */
.legal-acceptance {
  display: grid;
  grid-template-columns: 20px 1fr;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fffaf3;
  font-size: 12.5px;
  line-height: 1.55;
}

.legal-acceptance input {
  width: 18px;
  height: 18px;
  margin: 0;
}

.legal-acceptance a {
  color: var(--ink);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* A foglalási állapotot megőrző jogi modal. */
body.modal-open { overflow: hidden; }
.booking-account-prompt { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:20px 0 24px; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--paper-sunken); }
.booking-account-prompt.signed { border-color:rgba(56,117,88,.3); background:var(--sage-soft); }
.booking-account-prompt small { display:block; margin-top:4px; color:var(--muted); }
@media (max-width:600px) { .booking-account-prompt { align-items:stretch; flex-direction:column; } .booking-account-prompt .button { width:100%; } }
.legal-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(19, 24, 43, .6);
  backdrop-filter: blur(5px);
}
.legal-modal-dialog {
  width: min(820px, 100%);
  max-height: min(88vh, 900px);
  overflow: auto;
  padding: clamp(20px, 4vw, 34px);
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--paper-raised);
  box-shadow: var(--shadow-lg);
  outline: none;
}
.legal-modal-dialog:focus-visible { box-shadow: var(--shadow-lg), 0 0 0 3px rgba(226, 163, 59, .42); }
.legal-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.legal-modal-head h2 { margin-top: 4px; }
.legal-modal-close {
  width: 42px;
  height: 42px;
  flex: none;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fffaf3;
  color: var(--ink);
  font: inherit;
  font-size: 24px;
  cursor: pointer;
}
.legal-modal-content { overflow-wrap:anywhere; color:var(--ink-soft); line-height:1.75; }
.legal-modal-content p,.legal-modal-content div { margin:0 0 1em; }
.legal-modal-content ul,.legal-modal-content ol { padding-left:1.5em; }
.legal-modal-empty { margin: 0; }
.legal-modal-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.legal-modal-pop-enter-active, .legal-modal-pop-leave-active { transition: opacity .18s ease; }
.legal-modal-pop-enter-active .legal-modal-dialog,
.legal-modal-pop-leave-active .legal-modal-dialog { transition: transform .24s cubic-bezier(.2,.8,.25,1), opacity .18s ease; }
.legal-modal-pop-enter-from, .legal-modal-pop-leave-to { opacity: 0; }
.legal-modal-pop-enter-from .legal-modal-dialog { opacity: 0; transform: translateY(18px) scale(.97); }
.legal-modal-pop-leave-to .legal-modal-dialog { opacity: 0; transform: translateY(10px) scale(.985); }

@media (max-width: 560px) {
  .legal-modal-backdrop { padding: 10px; }
  .legal-modal-dialog { max-height: 94vh; padding: 20px 17px; border-radius: 18px; }
  .legal-modal-head h2 { font-size: 22px; }
  .legal-modal-actions { align-items: stretch; }
  .legal-modal-actions .button { flex: 1 1 100%; }
}


@media (max-width:390px) {
  .hero-copy { padding: 24px 16px; border-radius: 18px; }
  .hero-card { padding: 20px 16px; border-radius: 18px; gap: 18px; }
  .hero-logo-large { width: 68px; height: 68px; border-radius: 18px; }
  .public-month-day { min-height: 66px; padding: 4px; }
  .public-month-day-number { width: 22px; height: 22px; font-size: 9px; }
  .public-day-availability { padding: 2px 3px; font-size: 6.5px; border-radius: 6px; }
  .public-month-day i { display:none; }
  .public-quarter-slot strong { font-size: 10px; }
  .public-quarter-slot { min-height: 58px; }
}

@media (max-width:360px) {
  .hero-copy h1 { font-size: 34px; }
  .hero-lead { font-size: 16px; }
  .public-month-weekdays span { font-size: 7px; }
  .public-month-day { min-height: 60px; }
  .public-hour-row { grid-template-columns: 50px 1fr; }
  .public-quarter-slot strong { font-size: 9px; }
}

/* =========================================================
   Aranyvonal Hair Studio — publikus demo arculat
   A téma csak a fiktív Aranyvonal demón aktiválódik JS-ből,
   így más ügyfélpéldányok megtartják az alap designt.
   ========================================================= */
body.aranyvonal-theme {
  --ink: #191713;
  --ink-soft: #4a433b;
  --paper: #f4efe7;
  --paper-raised: #fffaf2;
  --paper-sunken: #e9dfd1;
  --line: #dfd2bf;
  --line-strong: #c9b89f;
  --amber: #b58a4a;
  --amber-ink: #684719;
  --amber-soft: #f1dfc2;
  --muted: #746a5e;
  --shadow-sm: 0 6px 20px rgba(35, 29, 23, .07);
  --shadow-md: 0 18px 46px rgba(35, 29, 23, .12);
  --shadow-lg: 0 30px 72px rgba(22, 18, 14, .18);
  background:
    radial-gradient(circle at 7% 2%, rgba(181, 138, 74, .14), transparent 34rem),
    radial-gradient(circle at 98% 12%, rgba(75, 61, 47, .08), transparent 30rem),
    linear-gradient(180deg, #f8f3eb 0%, #f1eadf 100%);
}

body.aranyvonal-theme .public-topbar {
  margin-top: 14px;
  padding: 11px 14px;
  border: 1px solid rgba(201,184,159,.78);
  border-radius: 18px;
  background: rgba(255,250,242,.84);
  box-shadow: 0 14px 38px rgba(40,32,24,.07);
  backdrop-filter: blur(16px);
}
body.aranyvonal-theme .brand-mark,
body.aranyvonal-theme .hero-logo-large {
  background: #191713;
  border: 1px solid rgba(181,138,74,.55);
}
body.aranyvonal-theme .brand-mark img,
body.aranyvonal-theme .hero-logo-large img { background: transparent; object-fit: cover; }
body.aranyvonal-theme .brand strong { letter-spacing: .015em; }
body.aranyvonal-theme .public-nav .nav-cta {
  background: #191713;
  border-color: #191713;
  color: #fff8ec;
  box-shadow: 0 7px 18px rgba(25,23,19,.14);
}

body.aranyvonal-theme .hero-section {
  grid-template-columns: minmax(0, .94fr) minmax(440px, 1.06fr);
  gap: 18px;
  padding-top: 28px;
  padding-bottom: 44px;
}
body.aranyvonal-theme .hero-copy {
  min-height: 620px;
  padding: clamp(38px, 5.4vw, 72px);
  border-color: rgba(201,184,159,.86);
  border-radius: 30px;
  background:
    radial-gradient(circle at 88% 16%, rgba(181,138,74,.18), transparent 20rem),
    linear-gradient(150deg, rgba(255,251,244,.98), rgba(239,229,214,.96));
  box-shadow: 0 24px 60px rgba(58,45,31,.11);
  overflow: hidden;
  position: relative;
}
body.aranyvonal-theme .hero-copy::after {
  content: '';
  position: absolute;
  width: 240px;
  height: 240px;
  right: -80px;
  bottom: -110px;
  border: 1px solid rgba(181,138,74,.26);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(181,138,74,.05), 0 0 0 62px rgba(181,138,74,.025);
  pointer-events: none;
}
body.aranyvonal-theme .hero-copy .eyebrow { color: #8c6636; letter-spacing: .13em; }
body.aranyvonal-theme .hero-copy h1 {
  max-width: 10.8ch;
  margin-top: 8px;
  font-size: clamp(50px, 6.2vw, 82px);
  line-height: .98;
  letter-spacing: -.035em;
}
body.aranyvonal-theme .hero-lead { max-width: 48ch; color: #62584c; }
body.aranyvonal-theme .hero-actions .button.primary {
  background: #191713;
  border-color: #191713;
  color: #fff8ed;
  box-shadow: 0 9px 24px rgba(25,23,19,.16);
}
body.aranyvonal-theme .hero-actions .button:not(.primary) {
  border-color: #c5ad8c;
  background: rgba(255,250,242,.75);
}
body.aranyvonal-theme .trust-row { color: #5f5448; }
body.aranyvonal-theme .trust-row span::first-letter { color: #9f7541; }

body.aranyvonal-theme .hero-card {
  position: relative;
  min-height: 620px;
  padding: 0;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  grid-template-rows: minmax(300px, 1fr) auto auto;
  gap: 0 18px;
  align-items: center;
  overflow: hidden;
  border: 1px solid rgba(181,138,74,.38);
  border-radius: 30px;
  background: #171513;
  box-shadow: 0 28px 64px rgba(22,18,14,.22);
}
body.aranyvonal-theme .aranyvonal-hero-visual {
  display: block;
  grid-column: 1 / -1;
  min-height: 345px;
  align-self: stretch;
  background:
    linear-gradient(180deg, transparent 63%, rgba(23,21,19,.32) 100%),
    url('../../assets/brand/aranyvonal/hero.svg') center 49% / cover no-repeat;
  border-bottom: 1px solid rgba(229,207,172,.16);
}
body:not(.aranyvonal-theme) .aranyvonal-hero-visual { display: none; }
body.aranyvonal-theme .hero-logo-large {
  width: 66px;
  height: 66px;
  margin: 22px 0 0 24px;
  border-radius: 18px;
  align-self: start;
}
body.aranyvonal-theme .hero-card > div:nth-of-type(3) {
  margin: 20px 24px 0 0;
  align-self: start;
}
body.aranyvonal-theme .hero-card > div:nth-of-type(3) h2 {
  max-width: 16ch;
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1.06;
}
body.aranyvonal-theme .hero-contact-list {
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 0;
  margin: 20px 24px 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.13);
}
body.aranyvonal-theme .hero-contact-list div {
  min-width: 0;
  padding: 0 16px;
  border-top: 0;
  border-right: 1px solid rgba(255,255,255,.12);
}
body.aranyvonal-theme .hero-contact-list div:first-child { padding-left: 0; }
body.aranyvonal-theme .hero-contact-list div:last-child { border-right: 0; }
body.aranyvonal-theme .hero-contact-list dd { overflow-wrap: anywhere; }

body.aranyvonal-theme .booking-section > .panel {
  border-color: rgba(201,184,159,.82);
  border-radius: 26px;
  background: rgba(255,250,242,.92);
  box-shadow: 0 22px 56px rgba(57,45,32,.09);
}
body.aranyvonal-theme .service-grid { gap: 16px; }
body.aranyvonal-theme .service-card-with-image {
  min-height: 318px;
  padding: 10px 10px 18px;
  border-color: rgba(201,184,159,.72);
  border-radius: 18px;
  background: #fffaf2;
  box-shadow: 0 9px 26px rgba(51,40,28,.07);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
body.aranyvonal-theme .service-card-with-image:hover {
  transform: translateY(-4px);
  border-color: #b58a4a;
  box-shadow: 0 18px 36px rgba(51,40,28,.13);
}
body.aranyvonal-theme .service-card-with-image.selected {
  border-color: #9b7040;
  box-shadow: 0 0 0 2px rgba(181,138,74,.22), 0 18px 36px rgba(51,40,28,.11);
}
body.aranyvonal-theme .service-image { height: 156px; border-radius: 13px; background: #ede2d2; }
body.aranyvonal-theme .service-card-with-image .cat { margin-top: 15px; color: #92703f; letter-spacing: .08em; }
body.aranyvonal-theme .service-card-with-image .name { font-family: var(--font-display); font-size: 20px; }
body.aranyvonal-theme .service-card-with-image .price { color: #79552e; }
body.aranyvonal-theme .service-card-with-image .check { top: 20px; right: 20px; background: #fffaf2; }

body.aranyvonal-theme .public-month-day:not(.disabled):hover,
body.aranyvonal-theme .public-quarter-slot:not([disabled]):hover { border-color: #a77b45; }
body.aranyvonal-theme .public-month-day.today .public-month-day-number,
body.aranyvonal-theme .public-quarter-slot.selected,
body.aranyvonal-theme .chip.selected { background: #191713; color: #fff8ec; }
body.aranyvonal-theme .review-card,
body.aranyvonal-theme .faq-item,
body.aranyvonal-theme .section-heading { background: rgba(255,250,242,.9); border-color: rgba(201,184,159,.76); }
body.aranyvonal-theme .contact-card { background: linear-gradient(145deg, #1b1916, #2c251e); border: 1px solid rgba(181,138,74,.34); }
body.aranyvonal-theme .site-footer { background: rgba(247,240,230,.88); border-color: rgba(201,184,159,.72); }

@media (min-width: 901px) and (max-width: 1120px) {
  body.aranyvonal-theme .hero-section { grid-template-columns:minmax(0,.94fr) minmax(410px,1.06fr); }
  body.aranyvonal-theme .hero-copy,
  body.aranyvonal-theme .hero-card { min-height:560px; }
  body.aranyvonal-theme .hero-copy { padding:clamp(34px,4.5vw,52px); }
  body.aranyvonal-theme .hero-copy h1 { max-width:11.5ch; font-size:clamp(46px,5.4vw,64px); }
  body.aranyvonal-theme .aranyvonal-hero-visual { min-height:310px; }
}

@media (max-width: 900px) {
  body.aranyvonal-theme .hero-section { grid-template-columns: 1fr; }
  body.aranyvonal-theme .hero-copy { min-height: auto; }
  body.aranyvonal-theme .hero-copy h1 { max-width: 12ch; }
  body.aranyvonal-theme .hero-card { min-height: 590px; }
}

@media (max-width: 760px) {
  body.aranyvonal-theme .public-topbar { margin-top: 8px; padding: 9px 10px; border-radius: 15px; }
  body.aranyvonal-theme .hero-section { padding-top: 14px; gap: 14px; }
  body.aranyvonal-theme .hero-copy { padding: 34px 23px; border-radius: 23px; }
  body.aranyvonal-theme .hero-copy h1 { font-size: clamp(42px, 12vw, 58px); }
  body.aranyvonal-theme .hero-card {
    min-height: auto;
    grid-template-columns: 72px minmax(0,1fr);
    grid-template-rows: 250px auto auto;
    border-radius: 23px;
  }
  body.aranyvonal-theme .aranyvonal-hero-visual { min-height: 250px; }
  body.aranyvonal-theme .hero-logo-large { width: 58px; height: 58px; margin: 18px 0 0 18px; }
  body.aranyvonal-theme .hero-card > div:nth-of-type(3) { margin: 18px 18px 0 0; }
  body.aranyvonal-theme .hero-contact-list { grid-template-columns: 1fr; margin: 16px 18px 20px; padding-top: 14px; }
  body.aranyvonal-theme .hero-contact-list div { padding: 9px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
  body.aranyvonal-theme .hero-contact-list div:last-child { border-bottom: 0; }
  body.aranyvonal-theme .service-image { height: 170px; }
}
