/* Plugin adapter for the prototype stylesheet (style.css = prototype css/style.css, unchanged except the grain).
   The server renders the prototype DOM; these rules only cover (a) source-owned elements that keep their own
   tag (e.g. h3 where the prototype used h4, p where it used dt/dd), (b) the no-JS / no-motion path, and
   (c) multi-page specifics (header links, page-level sections). Face-safe rule: photos keep their natural ratio. */

[hidden] { display: none !important; }
.sr-only.mlcom-price-toggle span { display: inline; }
details[open] .mlcom-price-show, details:not([open]) .mlcom-price-hide { display: none; }

/* ---------- Header (source brand + source menu) ---------- */
.site-header-wrap { display: contents; }
.brand__text strong { display: block; }
.brand__text small { display: block; }
.brand__partner::before { content: "& "; }
.brand__photo::before { content: " · "; }
@property --mlcom-booking-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
.nav__links a[href="/foglalas/"], .menu a[href="/foglalas/"] { position: relative; color: var(--accent); font-weight: 800; border-radius: 999px; background: var(--sun-soft); }
.nav__links a[href="/foglalas/"]::after { content: ''; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none; background: conic-gradient(from var(--mlcom-booking-angle), transparent 0deg 265deg, var(--sun) 320deg, transparent 360deg); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask-composite: exclude; animation: mlcom-booking-orbit 6s linear infinite; }
@keyframes mlcom-booking-orbit { to { --mlcom-booking-angle: 360deg; } }
@media (prefers-reduced-motion: reduce) { .nav__links a[href="/foglalas/"]::after { animation: none; } }
.nav__links a[href="/foglalas/"]:focus-visible, .menu a[href="/foglalas/"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.footer__logo .mlcom-brand-duo { display: inline-grid; gap: .06em; color: var(--paper); text-decoration: none; }
.footer__logo .mlcom-brand-name { display: block; font-size: .72em; line-height: 1.15; }
.footer__logo .mlcom-brand-photo { display: block; color: var(--sun); font-size: .6em; }
.nav__links ul { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
.nav__links li { margin: 0; }
.menu__list li.menu__cta { border: 0; margin-top: 18px; }
.menu__list li.menu__cta a { display: inline-flex; font-family: var(--sans); font-size: 1.05rem; border: 0; letter-spacing: 0; padding: .9em 1.6em; }
.menu__foot a { color: inherit; }
/* No JavaScript: the menu stays a plain, visible list of links. */
html.no-js .nav { position: relative; inset: auto; margin: 12px; height: auto; min-height: 60px; flex-wrap: wrap; padding: 10px 16px; border-radius: 28px; background: rgba(255, 251, 245, .9); }
html.no-js .nav__links { display: block; width: 100%; order: 3; }
html.no-js .nav__links ul { flex-wrap: wrap; }
html.no-js .nav__links a { display: inline-block; padding: 6px 10px; font-weight: 650; text-decoration: none; }
html.no-js .nav__cta { display: inline-flex; }
html.no-js .hero { padding-top: 48px; }

/* ---------- Face-safe frames: every photograph keeps its own aspect ratio ---------- */
.hero__arch, .wide-figure, .occasion__img, .know__img, .about__arch, .product figure, .showcase__item { aspect-ratio: auto !important; }
/* Each <img> carries its own width/height and an inline aspect-ratio (set by the renderer), so space is reserved
   before loading and nothing is cropped. */
.hero__arch img, .wide-figure img, .occasion__img img, .know__img img, .about__arch img, .duo img, .showcase__item img, .product figure img, .tile img, .story__inline { height: auto !important; }
.wide-figure { overflow: hidden; }
.product figure { background: none; }
.product figure img { border-radius: var(--radius); }

/* ---------- Home ---------- */
.hero__title .line > span { display: inline-block; }
.why__title { font-weight: 800; font-size: 1.12rem; margin: 18px 0 8px; letter-spacing: -.01em; font-family: var(--sans); }
.why__item p { margin: 0; }
.ticker:not(.is-filled) { display: none; }
.story__text { color: var(--ink-2); font-size: 1.1rem; max-width: 32em; }
.story__step .h3 { font-size: clamp(2rem, 4.2vw, 3.6rem); font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 144; font-weight: 380; letter-spacing: -.03em; margin-bottom: 14px; }
.story__count { font-weight: 750; font-size: .88rem; }
@media (min-width: 960px) { .story__frame .story__count { position: absolute; left: 20px; bottom: 18px; z-index: 3; padding: 8px 14px; border-radius: 999px; background: rgba(255, 251, 245, .9); } }
/* No JavaScript: every service photo shows inline; the sticky frame is not used. */
html.no-js .story__media { display: none; }
html.no-js .story__inline { display: block !important; }
html.no-js .story__step { min-height: 0; opacity: 1; padding: 0 0 40px; margin-bottom: 40px; }
html.no-js .story__grid { display: block; }
.home-cta { padding-block: 0 clamp(80px, 10vw, 140px); }
.home-cta .cta-band { margin-top: 0; }

/* ---------- About / stats / places ---------- */
.about__text > .about__p { color: var(--ink-2); }
.about__portrait figcaption b, .about__portrait figcaption span { display: block; }
.about__portrait figcaption span { font-size: .88rem; color: var(--ink-2); }
.stats { grid-template-columns: repeat(2, 1fr); max-width: 520px; }
.stat { padding: 18px 16px; border-radius: 20px; background: var(--card); box-shadow: var(--shadow); }
.stat__num { margin: 0; font-family: var(--serif); font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 144; font-size: clamp(2.2rem, 4.5vw, 3.4rem); line-height: 1; letter-spacing: -.035em; color: var(--accent); font-variant-numeric: tabular-nums; }
.stat__label { margin: 6px 0 0; font-size: .85rem; font-weight: 700; color: var(--ink-2); }
.places-section { padding-bottom: clamp(80px, 10vw, 140px); }
.places { margin-top: 0; }
.places__intro { color: var(--ink-2); margin-top: 14px; }
.where h3 { font-family: var(--sans); font-weight: 750; font-size: 1.08rem; margin-bottom: .45em; }
.page-rolunk .about { padding-top: calc(var(--nav-h) + clamp(48px, 8vw, 120px)); }

/* ---------- Chapters (ovoda / tabló / stúdió / galéria) ---------- */
.chapter { margin-top: 0; }
.chapter__kicker span { flex: none; }
.chapter__intro .cta-row--tight { margin-top: 14px; }
.section-title { margin: 0 0 14px; }
.occasion__title { font-family: var(--serif); font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 72; font-weight: 420; font-size: 1.6rem; letter-spacing: -.02em; margin-bottom: .4em; }
.occasion .tag, .occasion__title, .occasion__text { padding-inline: 12px; }
.occasion__text { color: var(--ink-2); margin: 0; }
.occasion__img { margin: 0 0 18px; }
.timeline__week { display: inline-block; margin: 0 0 8px !important; }
.timeline__title { font-family: var(--serif); font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 72; font-weight: 420; font-size: 1.55rem; letter-spacing: -.02em; margin-bottom: .4em; }
.timeline .lead { margin-top: 16px; }
.packs__title { font-family: var(--sans); font-size: .82rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); margin: 24px 0 8px; }
.pack__name { font-family: var(--sans); font-weight: 750; font-size: 1.1rem; line-height: 1.3; margin-bottom: 4px; min-height: 2.6em; }
.pack__list { list-style: none; display: grid; gap: 7px; font-size: .95rem; margin: 0; padding: 0; }
.packs__hint::after { content: "← húzd oldalra →"; }
.pricelist__title { display: inline; font-family: var(--sans); font-size: 1.08rem; font-weight: 800; margin: 0; }
.prices__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.prices__name { margin: 0; font-weight: 650; }
.prices__name strong { font-weight: 650; }
.prices__name span { display: block; color: var(--ink-3); font-weight: 600; font-size: .82rem; }
.prices__price { margin: 0; font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pricelist__body > .note:first-child { margin-top: 0; }
.compare tbody th .small, .compare tbody th span { display: block; color: var(--ink-3); font-size: .8rem; font-weight: 600; }
.compare strong { background: var(--sun); padding: 2px 8px; border-radius: 999px; font-weight: 800; }
.compare tr:last-child th, .compare tr:last-child td { font-weight: 850; }
.two-col__title { font-family: var(--sans); font-weight: 750; font-size: 1.08rem; margin-bottom: .45em; }
.gift__n { font-family: var(--serif); font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 144; font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1.05; color: var(--accent); letter-spacing: -.03em; margin-bottom: 12px; font-weight: 420; }
.gift--ink .gift__n { color: var(--sun); }
.gift__label { font-weight: 800; font-size: 1.12rem; color: inherit !important; }
.gift__list { padding: 12px 14px; border-radius: 12px; background: rgba(247, 241, 232, .08); }
.gift__list strong { color: var(--sun); margin-right: 4px; }
.calc__mail .h3 { margin-bottom: 12px; }
.summary__contact { margin: 14px 0 0; font-size: .95rem; }
.summary__contact a { font-weight: 750; }
.product__cap { display: block; }
.product__cap strong { display: block; font-weight: 750; }
.product__cap .num { display: block; font-weight: 650; font-size: .9rem; color: var(--ink-2); }
.offer__text { color: var(--ink-2); }
.offer--feature .offer__text { color: rgba(247, 241, 232, .82); }
.step__title { font-family: var(--sans); font-weight: 750; font-size: 1.08rem; margin-bottom: .45em; }
.steps:not(.steps--numbered) { counter-reset: step; }
.steps:not(.steps--numbered) .step { counter-increment: step; }
.steps:not(.steps--numbered) .step::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--serif); font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 144; font-size: 2.6rem; line-height: 1; color: var(--accent); margin-bottom: 14px; letter-spacing: -.03em; }
.step .step__n { display: block; }
.know__text .h2 { margin-bottom: 18px; }
.know__p { color: var(--ink-2); }
.cta-band__text { color: rgba(247, 241, 232, .8); max-width: 40em; margin-top: 18px; font-size: 1.08rem; }
.cta-band .link { color: var(--paper); }
.cta-band__card { margin-top: 18px; color: rgba(247, 241, 232, .85); }
.cta-band__card p { margin: 0; }
.cta-band__card a { color: var(--sun); font-weight: 750; }
.cta-band--peach .cta-band__text { color: rgba(255, 255, 255, .9); }

/* ---------- Calculators ---------- */
.field__title { font-family: var(--sans); font-weight: 750; font-size: 1.02rem; margin: 0; letter-spacing: 0; }
.field__label { display: block; font-size: .88rem; font-weight: 650; color: var(--ink-2); margin-bottom: 6px; }
.calc--support .field__top label { font-weight: 750; font-size: 1.02rem; }
.range__ends span { white-space: nowrap; }
.pkgs, .pkg, .pkg__card { min-width: 0; }
.pkg__card { grid-template-columns: minmax(0, 1fr) auto; }
@media (min-width: 1000px) and (max-width: 1399px) { .calc--tablo .pkg__card { grid-template-columns: minmax(0, 1fr); } }
.pkg__name { font-size: 1.15rem; font-weight: 800; }
.pkg__name input { display: none; }
.pkg__price { font-weight: 800; color: var(--accent); white-space: nowrap; }
.pkg__desc { grid-column: 1 / -1; color: var(--ink-2); font-size: .88rem; line-height: 1.4; }
.result p { margin: 0; }
.receipt__value { font-weight: 800; white-space: nowrap; }
.receipt__row span:last-child, .receipt__row output { font-weight: 800; white-space: nowrap; }
.receipt__row--muted { color: rgba(247, 241, 232, .7); font-size: .92rem; padding-top: 0; }
.receipt__total-label { display: block; font-weight: 700; color: rgba(247, 241, 232, .75); margin-bottom: 6px; }
.receipt__total .result__amount { display: block; }
.result .btn--block { margin-top: 18px; }
.result__amount { display: block; }
.calc--support .result__label { font-weight: 700; font-size: .95rem; color: rgba(247, 241, 232, .75); margin-bottom: 6px; }
.calc--support .result__note { margin-bottom: 8px; }

/* ---------- Galéria help / contact ---------- */
.block--steps .block-title { margin-bottom: 24px; }
.helper__title { margin: 0 0 12px; }
.helper__p { color: var(--ink-2); }
.helper--soft .helper__p { color: var(--ink); }
.helper__contact { font-weight: 800; font-size: 1.05rem; }
.helper__contact a { text-decoration: none; }
.checks { padding: 0; }
.page-kapcsolat .contact { padding-top: calc(var(--nav-h) + clamp(48px, 8vw, 110px)); }
.page-kapcsolat .contact__title { font-size: clamp(2.8rem, 9vw, 8rem); }
.route__title { font-family: var(--serif); font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 72; font-weight: 420; font-size: 1.7rem; letter-spacing: -.02em; line-height: 1.1; margin-bottom: 12px; }
.route__text { color: var(--ink-2); }
.contact__extras { display: grid; gap: 14px; margin-top: 14px; }
@media (min-width: 760px) { .contact__extras { grid-template-columns: 1fr 1fr; } }
.contact__card { padding: 26px; border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow); }
.contact__card p { margin: 0 0 10px; }
.contact__card-title { margin-bottom: 8px !important; }

/* ---------- Munkáink wall ---------- */
.works .reel:not(:has(.reel__item)) { display: none; }
.wall:not(.is-masonry) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
@media (min-width: 760px) { .wall:not(.is-masonry) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
.wall__sentinel.is-done { display: none; }

/* ---------- Footer ---------- */
@media (min-width: 900px) { .footer__grid:has(> :nth-child(4)) { grid-template-columns: 1.6fr 1fr 1fr 1fr; } }
.footer__h { color: var(--sun); font-family: var(--sans); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .6em; }
.footer__list { list-style: none; margin: 0; padding: 0; }
.footer__list li { color: rgba(247, 241, 232, .72); padding: 4px 0; }
.footer__list a { padding: 0 !important; }
.footer__logo span { color: var(--sun); font-style: italic; margin-left: .25em; }
.footer__bottom p { margin: 0; }
.footer__word::before { content: "Fotók, amiket jó újra elővenni." / ""; }

.source-rest { padding-block: 40px; }

/* Booking content retains its WordPress/Amelia markup inside the light redesign. */
.booking-page { min-height: 60vh; padding-block: clamp(110px, 12vw, 170px) clamp(72px, 9vw, 130px); background: var(--paper); color: var(--ink); }
.booking-page__content { max-width: var(--maxw); }
.booking-page h1, .booking-page h2 { color: var(--ink); }
.booking-page h1 { font-family: var(--serif); font-size: clamp(2.5rem, 5vw, 5rem); line-height: 1.05; }
.booking-page a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.booking-page #foglalas-menete .timeline > .wp-block-group,
.booking-page #foglalas-tudnivalo .grid > .wp-block-group,
.booking-page #foglalas-cta .split > .wp-block-group { margin-block: 0; }
.booking-page #foglalas-naptar > .wrap > p.small.muted { margin-block-start: -76px; }
.booking-page #foglalas-naptar :is(.amelia-v2-booking, #amelia-container, [id^="amelia-step-booking"]) { min-height: 560px; }

/* 1.0.14 layout rules the booking page markup still uses (reference-scoped.css:23-27,75,85-86; components.css:82-85). */
.booking-page .grid { display: grid; gap: 1.15rem; }
.booking-page .grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.booking-page .grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.booking-page .grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.booking-page .split { display: grid; gap: 2.3rem; align-items: center; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.booking-page .card { display: flex; flex-direction: column; gap: .58rem; border: 1px solid rgba(32,31,29,.16); border-radius: 4px; padding: 1.15rem; }
.booking-page .timeline { position: relative; padding-top: 1.15rem; margin-top: 1.73rem; }
.booking-page .timeline::before { content: ""; position: absolute; left: 0; right: 0; top: calc(1.15rem + 5px); height: 1px; background: rgba(32,31,29,.16); }
@media (max-width: 47.99rem) {
  .booking-page .split, .booking-page .grid--3, .booking-page .grid--4 { grid-template-columns: 1fr; }
  .booking-page .timeline::before { display: none; }
}

/* ---------- 2.0.8 (owner mobile review) ---------- */
/* Header bar on phones: transform-only animation, no blur (flicker source), reduced motion = instant. */
@media (max-width: 1119px) {
  .nav { transition: transform .28s cubic-bezier(.2, .7, .2, 1), background-color .3s linear; will-change: transform; }
  .nav.is-scrolled { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(255, 251, 245, .96); }
  .nav.is-hidden { transform: translate3d(0, -130%, 0); }
}
@media (prefers-reduced-motion: reduce) { .nav { transition: none; } }
/* Brand: Andriska Ildikó over Magyar Levente, same size and weight; one "fotó" to the right, centred. */
.brand__text--duo { flex-direction: row; align-items: center; gap: .4em; }
.brand__names { display: flex; flex-direction: column; line-height: 1.08; }
.brand__text--duo .brand__name, .brand__text--duo .brand__photo { display: block; font-family: var(--serif); font-variation-settings: 'SOFT' 100, 'opsz' 48; font-weight: 520; font-size: .98rem; letter-spacing: -.01em; white-space: nowrap; }
.brand__text--duo .brand__photo { font-style: italic; color: var(--ink-2); }
.brand__text--duo .brand__photo::before { content: none; }
@media (max-width: 380px) { .brand__text--duo .brand__name, .brand__text--duo .brand__photo { font-size: .9rem; } }
.footer__logo .mlcom-brand-duo { grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: .3em; align-items: center; }
.footer__logo .mlcom-brand-duo .mlcom-brand-name { grid-column: 1; font-size: .72em; color: var(--paper); font-style: normal; margin-left: 0; white-space: nowrap; }
.footer__logo .mlcom-brand-duo .mlcom-brand-name--second { grid-row: 2; }
.footer__logo .mlcom-brand-duo .mlcom-brand-photo { grid-column: 2; grid-row: 1 / span 2; font-size: .72em; margin-left: 0; white-space: nowrap; }
/* MB-02 (wp13-g03-site-fixes-r1): /foglalas/ H2/H3 compute to Georgia via the
   theme.json global `h1..h6` rule served inline in foglalas.html; H1 is already
   overridden to Fraunces by `.booking-page h1` (adapter.css served L191).
   Append verbatim to live:
   wp-content/plugins/mlcom-marketing-live-r1/assets/redesign/adapter.css
   Specificity (0,1,1) beats the theme `h1,h2,h3` rule (0,0,1). Footer h2s are
   outside main.booking-page and keep their current style. */
.booking-page h2,
.booking-page h3 {
  font-family: var(--serif);
}
/* MB-05 (wp13-g03-site-fixes-r1): at >=960px the sticky story frame contain-fits
   (style.css served L696, winning over L278 cover) the portrait ovoda asset
   (1200x1801, AR 0.67) into a landscape-ish frame (~617x648) -> side bars.
   Scope cover to the ovoda asset only; the shared override block and the
   landscape siblings are untouched. Mobile (.story__inline, height auto) is
   unaffected since object-fit is a no-op there. Crop caveat: cover crops the
   portrait top/bottom ~30%; needs one human/browser look after install.
   Append verbatim to live:
   wp-content/plugins/mlcom-marketing-live-r1/assets/redesign/adapter.css
   Specificity (0,2,0) beats `.story__img` (0,1,0) regardless of order. */
.story__img[src*="MLC_home_service_ovoda_01"] {
  object-fit: cover;
}

/* K6-F2: confine legal content tables to their own horizontal scroll area. */
body:is(.page-id-3,.page-id-15825) .entry-content table.ml-legal {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}
