/* Bíró Szilvia EV — site stylesheet
   "Egy nap íve" (arc of a day): the page reads as one day, dawn at the
   top to night in the footer — her motto „Tégy MA a holnapodért!” made
   structural. Logo orange is the sun; logo navy deepens into the night.
   Every CMS block keeps its module BEM classes; only the look lives here. */
:root {
  /* the day — ground colours, top to bottom */
  --dawn: #FBE3D0;
  --blush: #F8D3D6;
  --day: #FCEBD5;
  --gold: #F9D9A8;
  --sunset: #F5B27F;
  --rose: #EBB0A6;
  --lilac: #D8C3DF;
  --dusk: #3B2A55;
  --night: #1E1D3A;

  /* the sun — straight from the logo */
  --sun: #F08423;
  --sun-deep: #EA5A22;
  --ember: #B8481A;          /* orange as text: only on --card or at large sizes */
  --rosewood: #8E3563;       /* feminine accent as text: ≥5.4:1 on every ground */
  --orchid: #C7A3DE;
  --petal: #F2A0BA;

  --ink: #2E2140;
  --ink-soft: #553B4E;        /* ≥5.3:1 on every ground above */
  --card: #FFF6F4;
  --line: #E6CDBB;
  --moon: #F3DDD0;            /* light text on dusk / night */

  --radius: 22px;
  --radius-sm: 14px;
  --arch: 50% 50% 20px 20px / 36% 36% 20px 20px;   /* arched window */
  --shadow: 0 22px 44px -26px rgba(94, 45, 30, 0.45);
  --shadow-sm: 0 10px 24px -18px rgba(94, 45, 30, 0.45);

  --font-head: "Kurale", Georgia, "Times New Roman", serif;
  --font-body: "Alegreya Sans", "Segoe UI", system-ui, sans-serif;
  --font-hand: "Bad Script", "Segoe Script", cursive;

  --wrap: 1160px;
  --glint: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23B8578A' d='M12 0c1 8 4 11 12 12-8 1-11 4-12 12-1-8-4-11-12-12 8-1 11-4 12-12z'/%3E%3C/svg%3E");
  --glint-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23E39A2E' d='M12 0c1 8 4 11 12 12-8 1-11 4-12 12-1-8-4-11-12-12 8-1 11-4 12-12z'/%3E%3C/svg%3E");
  --ease: cubic-bezier(0.16, 1, 0.3, 1);

  /* half-sun ornament used under section titles */
  --ornament: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 20'%3E%3Cpath d='M16 20a8 8 0 0 1 16 0z'/%3E%3Cg stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M24 9V3M31.8 12.2 36 8M16.2 12.2 12 8M34.8 17.7l5.8-1.2M13.2 17.7l-5.8-1.2'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- Cross-page continuity ----------
   Native View Transitions for full-page navigation (progressive
   enhancement; unsupported browsers keep plain navigation). */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) {
  animation-duration: .38s;
  animation-timing-function: var(--ease);
}
.site-header { view-transition-name: site-header; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scrollbar-color: #C99A8E var(--dawn);
  background: var(--night);
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1.1875rem;       /* 19px — generous for older eyes */
  color: var(--ink);
  background: var(--dawn);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  caret-color: var(--sun-deep);
  accent-color: var(--ember);
}
::selection { background: #F7C08F; color: var(--ink); }
img { max-width: 100%; display: block; }
a { color: var(--ink); text-decoration-color: var(--sun); text-underline-offset: 0.2em; }
a:hover { color: var(--ember); }
:focus-visible { outline: 3px solid var(--ember); outline-offset: 3px; border-radius: 6px; }

h1, h2, h3, h4 {
  font-family: var(--font-head); font-weight: 400; color: var(--ink);
  line-height: 1.15; margin: 0 0 0.5em; text-wrap: balance;
}
h1 { font-size: clamp(2.3rem, 5vw, 3.4rem); }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; text-wrap: pretty; }
ul { margin: 0; padding: 0; list-style: none; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }

/* The day itself: one continuous ground behind every section, whatever
   order the CMS puts the blocks in. Sections stay transparent on it. */
#main-content {
  display: block; position: relative; isolation: isolate; overflow: clip;
  background: linear-gradient(180deg,
    var(--dawn) 0%, var(--blush) 12%, var(--day) 24%, var(--gold) 40%,
    var(--sunset) 58%, var(--rose) 76%, var(--lilac) 100%);
}
/* Energiamezők — soft aura fields (rose, orchid, gold) breathing behind
   every section; the BEMER idea of a field made visible, felt not read. */
#main-content::before {
  content: ""; position: absolute; inset: -4% -8%; z-index: -1; pointer-events: none;
  background:
    radial-gradient(38vmax 30vmax at 6% 5%, rgba(242, 160, 186, 0.6), transparent 70%),
    radial-gradient(34vmax 28vmax at 94% 14%, rgba(199, 163, 222, 0.55), transparent 70%),
    radial-gradient(40vmax 30vmax at 10% 32%, rgba(247, 196, 108, 0.45), transparent 70%),
    radial-gradient(36vmax 30vmax at 90% 46%, rgba(242, 160, 186, 0.5), transparent 70%),
    radial-gradient(40vmax 32vmax at 8% 63%, rgba(199, 163, 222, 0.55), transparent 70%),
    radial-gradient(36vmax 30vmax at 92% 79%, rgba(240, 132, 35, 0.22), transparent 70%),
    radial-gradient(40vmax 30vmax at 22% 95%, rgba(160, 110, 200, 0.4), transparent 70%);
  animation: aura-breathe 26s ease-in-out infinite alternate;
}
@keyframes aura-breathe {
  from { transform: translate3d(0, 0, 0) scale(1); opacity: .85; }
  to   { transform: translate3d(2%, -1.2%, 0) scale(1.05); opacity: 1; }
}
/* Field rings flowing outward: --field-o shifts a fixed-period repeating
   gradient by one period, so the rings emanate endlessly. Browsers without
   @property show the same rings, still. */
@property --field-o { syntax: "<length>"; inherits: false; initial-value: 0px; }
@keyframes field-flow { to { --field-o: var(--field-period); } }

section { padding: clamp(56px, 7vw, 88px) 0; }
section + section { padding-top: 0; }

/* Section titles carry a small rising sun instead of a bar. */
.block-badges__title,
.block-collection__title,
.block-cta__title,
.block-editorial__title,
.block-faq__title,
.block-gallery__title,
.block-map__title,
.block-paragraph__title,
.block-pushes__title,
.block-testimonials__title,
.block-informations__title,
.bemer-embed h2 {
  display: block; position: relative; text-align: center;
  padding-bottom: 30px; margin-bottom: 28px;
}
.block-badges__title::after,
.block-collection__title::after,
.block-cta__title::after,
.block-editorial__title::after,
.block-faq__title::after,
.block-gallery__title::after,
.block-map__title::after,
.block-paragraph__title::after,
.block-testimonials__title::after,
.block-informations__title::after,
.bemer-embed h2::after {
  content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 48px; height: 20px; background: linear-gradient(90deg, var(--sun), #D9709A);
  -webkit-mask: var(--ornament) center / contain no-repeat;
  mask: var(--ornament) center / contain no-repeat;
}

/* ---------- Buttons ---------- */
.btn, .block-cta__button, .block-pushes__button, .block-testimonials__button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-body); font-weight: 700; font-size: 1.05rem; line-height: 1.2;
  padding: 14px 28px; border-radius: 999px; border: 2px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.btn:hover, .block-cta__button:hover, .block-pushes__button:hover, .block-testimonials__button:hover { transform: translateY(-1px); }
.btn--primary, .block-cta__button, .block-testimonials__button {
  background: var(--sun); color: var(--ink); border-color: var(--sun);
  box-shadow: 0 10px 22px -12px rgba(234, 90, 34, 0.7);
}
.btn--primary:hover, .block-cta__button:hover, .block-testimonials__button:hover {
  background: var(--sun-deep); border-color: var(--sun-deep); color: var(--ink);
  box-shadow: 0 14px 26px -12px rgba(234, 90, 34, 0.8);
}
.btn--outline, .block-pushes__button {
  background: transparent; color: var(--ink); border-color: var(--ink);
}
.btn--outline:hover, .block-pushes__button:hover { background: var(--ink); color: var(--card); border-color: var(--ink); }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(251, 227, 208, 0.96);
  border-bottom: 1px solid rgba(46, 33, 64, 0.08);
}
.site-header__inner { display: flex; align-items: center; justify-content: space-between; padding-top: 12px; padding-bottom: 12px; gap: 20px; }
.site-header__brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.site-header__logo {
  width: 48px; height: 48px; object-fit: contain; padding: 4px;
  border-radius: 50%; background: var(--card); box-shadow: var(--shadow-sm);
}
.site-header__brandtext { font-family: var(--font-head); color: var(--ink); font-size: 1.3rem; line-height: 1.1; }
.site-header__toggle {
  display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 10px;
}
.site-header__toggle span { width: 26px; height: 2px; background: var(--ink); border-radius: 2px; }
.site-nav { display: flex; align-items: center; gap: 32px; }
.site-nav ul { display: flex; gap: 28px; }
.site-nav ul a {
  color: var(--ink); font-weight: 500; font-size: 1.1rem; padding: 6px 0; text-decoration: none;
  background: linear-gradient(var(--sun), var(--sun)) left bottom / 0 2px no-repeat;
  transition: background-size .3s var(--ease), color .2s;
}
.site-nav ul a:hover, .site-nav ul a.is-active { color: var(--ink); background-size: 100% 2px; }
.site-nav__cta { padding: 11px 24px; }

@media (max-width: 820px) {
  .site-header__toggle { display: flex; }
  .site-nav {
    position: absolute; top: 100%; left: 0; right: 0; background: var(--dawn);
    border-bottom: 1px solid var(--line); box-shadow: var(--shadow);
    flex-direction: column; align-items: flex-start; gap: 20px; padding: 20px 24px 28px;
    display: flex; opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(-8px);
    transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
  }
  .site-nav.is-open {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
    transition: opacity .22s ease, transform .22s ease;
  }
  .site-nav ul { flex-direction: column; gap: 14px; width: 100%; }
  .site-nav ul a { font-size: 1.2rem; }
  .site-nav__cta { width: 100%; }
}
@media (max-width: 420px) {
  .site-header__brandtext { font-size: 1.1rem; }
}

/* ---------- Page header (inner pages) ---------- */
.page-header { padding: 64px 0 36px; text-align: center; }
.page-header h1 { margin-bottom: 0.35em; }
.page-header + section, .service-page .page-header ~ .block-paragraph { padding-top: 8px; }
.page-header__lead { color: var(--ink-soft); max-width: 640px; margin: 0 auto; font-size: 1.15rem; }
.page-content { max-width: 720px; margin: 0 auto 32px; }
.page-content h2 { font-size: 1.5rem; }
.page-content ul { list-style: disc; padding-left: 1.3em; margin: 0 0 1em; }
.page-content li { margin-bottom: 0.4em; }

/* ================= BLOCKS ================= */

/* ---- hero-carousel: an arched window with the sun rising behind it ---- */
.block-hero-carousel {
  --cap-h: 190px;
  position: relative; padding: 28px 24px 0; overflow: hidden; isolation: isolate;
}
.block-hero-carousel::before {           /* the sun */
  content: ""; position: absolute; z-index: -1; left: 50%; top: -34%;
  width: min(1100px, 130vw); aspect-ratio: 1; border-radius: 50%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240, 132, 35, 0.55) 0%, rgba(245, 178, 127, 0.4) 34%, rgba(251, 227, 208, 0) 66%);
  animation: sunrise 2.8s var(--ease) both;
}
.block-hero-carousel::after {           /* the field around the window */
  --field-period: 84px;
  content: ""; position: absolute; z-index: -1; left: 50%; top: 40%;
  width: min(1500px, 175vw); aspect-ratio: 1; border-radius: 50%;
  transform: translate(-50%, -50%); pointer-events: none;
  background: repeating-radial-gradient(circle,
    transparent calc(var(--field-o) - 84px), transparent calc(var(--field-o) - 3px),
    rgba(142, 53, 99, 0.2) calc(var(--field-o) - 2px), rgba(142, 53, 99, 0.2) var(--field-o));
  -webkit-mask: radial-gradient(circle, transparent 14%, #000 26%, #000 40%, transparent 66%);
  mask: radial-gradient(circle, transparent 14%, #000 26%, #000 40%, transparent 66%);
  animation: field-flow 6s linear infinite;
}
.block-hero-carousel__track::before, .block-hero-carousel__track::after {   /* glints */
  content: ""; position: absolute; inset: -18px -30px auto; height: 58%; z-index: 2; pointer-events: none;
  background:
    var(--glint) 2% 6% / 22px no-repeat, var(--glint) 9% 26% / 12px no-repeat,
    var(--glint) 97% 8% / 18px no-repeat, var(--glint) 91% 30% / 12px no-repeat,
    var(--glint) 14% 2% / 10px no-repeat;
  animation: twinkle 4.2s ease-in-out infinite;
}
.block-hero-carousel__track::after {
  background:
    var(--glint-gold) 5% 16% / 14px no-repeat, var(--glint-gold) 94% 20% / 20px no-repeat,
    var(--glint-gold) 86% 2% / 10px no-repeat, var(--glint-gold) 1% 40% / 10px no-repeat;
  animation-delay: -2.1s;
}
@keyframes twinkle { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@keyframes sunrise {
  from { transform: translateX(-50%) translateY(16%); opacity: 0.35; }
  to   { transform: translateX(-50%) translateY(0); opacity: 1; }
}
.block-hero-carousel__track {
  position: relative; max-width: 1120px; margin: 0 auto;
  height: clamp(560px, 84vh, 760px);
}
.block-hero-carousel__slide {
  position: absolute; inset: 0; opacity: 0; visibility: hidden;
  transition: opacity 1s var(--ease), visibility 0s linear 1s;
}
.block-hero-carousel__slide.is-active { opacity: 1; visibility: visible; transition: opacity 1s var(--ease); }
.block-hero-carousel__media {
  position: absolute; top: 0; left: 0; width: 100%; height: calc(100% - var(--cap-h));
  object-fit: cover; object-position: center;
  border-radius: var(--arch); box-shadow: var(--shadow);
}
.block-hero-carousel__caption {
  position: absolute; left: 0; right: 0; bottom: 0; height: var(--cap-h);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 8px 12px 34px;
}
.block-hero-carousel__quote {
  font-family: var(--font-head); color: var(--ink);
  font-size: clamp(1.35rem, 2.5vw, 1.95rem); line-height: 1.3; max-width: 860px; margin: 0 auto 4px;
}
.block-hero-carousel__credit { font-family: var(--font-hand); color: var(--rosewood); font-size: 1.45rem; margin: 0; }
.block-hero-carousel__quote, .block-hero-carousel__credit {
  opacity: 0; transform: translateY(10px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.block-hero-carousel__slide.is-active .block-hero-carousel__quote { transition-delay: .2s; opacity: 1; transform: none; }
.block-hero-carousel__slide.is-active .block-hero-carousel__credit { transition-delay: .4s; opacity: 1; transform: none; }
.block-hero-carousel__controls {
  position: absolute; left: 0; right: 0; top: 0; bottom: var(--cap-h); z-index: 3;
  display: flex; align-items: center; justify-content: space-between;
  pointer-events: none; padding: 0 18px;
}
.block-hero-carousel__prev, .block-hero-carousel__next {
  pointer-events: auto; width: 48px; height: 48px; border-radius: 50%; border: 0;
  background: rgba(255, 248, 241, 0.88); color: var(--ink); font-size: 1.6rem; line-height: 1;
  cursor: pointer; box-shadow: var(--shadow-sm); transition: background .2s, color .2s;
}
.block-hero-carousel__prev:hover, .block-hero-carousel__next:hover { background: var(--sun); color: var(--ink); }
.block-hero-carousel__indicators {
  position: absolute; bottom: 8px; left: 0; right: 0; z-index: 3;
  display: flex; justify-content: center; gap: 10px;
}
.block-hero-carousel__dot {
  width: 10px; height: 10px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  background: rgba(46, 33, 64, 0.28); transition: background .2s, width .3s var(--ease);
}
.block-hero-carousel__dot.is-active { background: linear-gradient(90deg, var(--sun), #D9709A); width: 28px; border-radius: 6px; }
@media (max-width: 700px) {
  .block-hero-carousel { --cap-h: 230px; padding: 18px 16px 0; }
  .block-hero-carousel__track { height: clamp(540px, 86svh, 680px); }
  .block-hero-carousel__controls { padding: 0 8px; }
  .block-hero-carousel__prev, .block-hero-carousel__next { width: 42px; height: 42px; }
}

/* ---- editorial ("Rólam") ---- */
.block-editorial__inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(36px, 6vw, 80px); align-items: center; }
.block-editorial--reversed .block-editorial__media { order: 2; }
.block-editorial__media img {
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: var(--arch); box-shadow: var(--shadow);
}
.block-editorial__body .block-editorial__title { text-align: left; }
.block-editorial__body .block-editorial__title::after { left: 0; transform: none; }
.block-editorial__text { max-width: 62ch; }
.block-editorial__text strong { font-weight: 700; }
.block-editorial__text p:last-child {         /* her motto, in her hand */
  margin: 0.8em 0 1.2em; font-family: var(--font-hand);
  font-size: clamp(1.8rem, 3.4vw, 2.4rem); line-height: 1.3; color: var(--rosewood);
}
.block-editorial__text p:last-child em { font-style: normal; }
@media (max-width: 820px) {
  .block-editorial__inner { grid-template-columns: 1fr; }
  .block-editorial--reversed .block-editorial__media { order: 0; }
  .block-editorial__media { max-width: 420px; margin: 0 auto; width: 100%; }
}

/* ---- badges ---- */
.block-badges { text-align: center; }
.block-badges__list {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 14px;
  max-width: 820px; margin: 0 auto; padding: 0 24px;
}
.block-badges__item {
  display: inline-flex; align-items: center; gap: 10px; padding: 10px 20px 10px 16px;
  border-radius: 999px; background: var(--card); box-shadow: var(--shadow-sm);
  font-weight: 500; font-size: 1.05rem; color: var(--ink);
}
.block-badges__item::before {
  content: ""; width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  background: radial-gradient(circle, var(--sun) 0 40%, #D9709A 70%);
  box-shadow: 0 0 0 4px rgba(217, 112, 154, 0.2), 0 0 0 9px rgba(199, 163, 222, 0.18);
}
.block-badges__footnote { margin: 22px auto 0; color: var(--ink-soft); max-width: 560px; padding: 0 24px; }

/* ---- pushes: three open windows, no boxes ---- */
.block-pushes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 4vw, 48px); }
.block-pushes__item { display: flex; flex-direction: column; }
.block-pushes__media img, .block-pushes__media--placeholder {
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: var(--arch); box-shadow: var(--shadow);
}
.block-pushes__media--placeholder, .block-collection__media--placeholder {
  position: relative; overflow: hidden; isolation: isolate;
}
.block-pushes__media--placeholder::after, .block-collection__media--placeholder::after {
  --field-period: 22px;
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: repeating-radial-gradient(circle at var(--sun-at),
    transparent calc(var(--field-o) - 22px), transparent calc(var(--field-o) - 2px),
    rgba(142, 53, 99, 0.22) calc(var(--field-o) - 1px), rgba(142, 53, 99, 0.22) var(--field-o));
  -webkit-mask: radial-gradient(circle at var(--sun-at), transparent 14%, #000 22%, transparent 70%);
  mask: radial-gradient(circle at var(--sun-at), transparent 14%, #000 22%, transparent 70%);
  animation: field-flow 4s linear infinite;
}
.block-pushes__media--placeholder {
  --sun-at: 50% 62%;
  background:
    radial-gradient(circle at 50% 62%, var(--sun) 0 17%, rgba(240, 132, 35, 0.35) 18% 30%, transparent 31%),
    linear-gradient(180deg, var(--blush) 0%, var(--gold) 55%, var(--sunset) 100%);
}
.block-pushes__body { padding: 22px 8px 0; text-align: center; flex: 1; display: flex; flex-direction: column; align-items: center; }
.block-pushes__item--left .block-pushes__body { align-items: flex-start; text-align: left; }
.block-pushes__item--right .block-pushes__body { align-items: flex-end; text-align: right; }
.block-pushes__title { font-size: 1.6rem; margin-bottom: .35em; }
.block-pushes__text { color: var(--ink-soft); flex: 1; margin-bottom: 1.2em; }
.block-pushes__text p { margin: 0; }
@media (max-width: 900px) {
  .block-pushes__grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
  .block-pushes__media img, .block-pushes__media--placeholder { aspect-ratio: 4 / 3; }
}

/* ---- collection (services grid, reused on the szolgaltatasok list page) ---- */
.block-collection__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 28px; }
.block-collection__card {
  display: flex; flex-direction: column; text-decoration: none; color: var(--ink);
  background: var(--card); border-radius: var(--radius); padding: 12px 12px 0;
  box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.block-collection__card:hover { transform: translateY(-4px); box-shadow: var(--shadow); color: var(--ink); }
.block-collection__media img, .block-collection__media--placeholder {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: 50% 50% 12px 12px / 30% 30% 12px 12px;
}
.block-collection__media--placeholder {
  --sun-at: 50% 42%;
  display: flex; align-items: flex-end; justify-content: center; padding-bottom: 14%;
  background:
    radial-gradient(circle at 50% 42%, var(--sun) 0 13%, rgba(240, 132, 35, 0.3) 14% 24%, transparent 25%),
    linear-gradient(180deg, var(--blush) 0%, var(--gold) 55%, var(--sunset) 100%);
}
.block-collection__media--placeholder span { font-family: var(--font-head); font-size: 1.35rem; color: var(--ink); }
.block-collection__body { padding: 18px 10px 24px; }
.block-collection__tag {
  display: inline-block; font-size: .9rem; font-weight: 700; letter-spacing: .02em;
  color: var(--rosewood); margin-bottom: 6px;
}
.block-collection__card-title { margin-bottom: .35em; font-size: 1.35rem; }
.block-collection__summary { color: var(--ink-soft); font-size: 1.05rem; margin-bottom: 0; }
.block-collection__price { display: block; margin-top: 10px; font-weight: 700; color: var(--ink); }
.block-collection__card[hidden] { display: none; }

/* ---- service filter (szolgáltatások lista) ---- */
.service-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 36px; }
.service-filter__btn {
  font-family: var(--font-body); font-size: 1.05rem; font-weight: 700; color: var(--ink);
  background: var(--card); border: 2px solid transparent; border-radius: 999px; padding: 9px 22px;
  cursor: pointer; box-shadow: var(--shadow-sm);
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.service-filter__btn:hover { border-color: var(--sun); }
.service-filter__btn.is-active { background: var(--sun); border-color: var(--sun); color: var(--ink); }
.service-filter__empty { text-align: center; color: var(--ink-soft); }

/* ---- gallery ---- */
.block-gallery__grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px;
  max-width: var(--wrap); margin: 0 auto; padding: 0 24px;
}
.block-gallery__item { display: block; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.block-gallery__thumb { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; transition: transform .6s var(--ease); }
.block-gallery__item:hover .block-gallery__thumb { transform: scale(1.04); }
.block-gallery__lightbox {
  position: fixed; inset: 0; z-index: 100; background: rgba(30, 29, 58, 0.94);
  display: flex; align-items: center; justify-content: center; padding: 32px;
  opacity: 0; visibility: hidden;
  transition: opacity .25s var(--ease), visibility 0s linear .25s;
}
.block-gallery__lightbox[hidden] { display: none; }
.block-gallery__lightbox.is-open { opacity: 1; visibility: visible; transition: opacity .25s var(--ease); }
.block-gallery__lightbox-figure {
  max-width: 90vw; max-height: 85vh; text-align: center;
  transform: scale(.96); transition: transform .25s var(--ease);
}
.block-gallery__lightbox.is-open .block-gallery__lightbox-figure { transform: scale(1); }
.block-gallery__lightbox-image { max-width: 90vw; max-height: 78vh; border-radius: var(--radius-sm); margin: 0 auto; }
.block-gallery__lightbox-caption { color: var(--moon); margin-top: 12px; font-family: var(--font-head); font-size: 1.2rem; }
.block-gallery__lightbox-close, .block-gallery__lightbox-prev, .block-gallery__lightbox-next {
  position: absolute; background: rgba(255, 248, 241, 0.15); color: #fff; border: 0; border-radius: 50%;
  cursor: pointer; font-size: 1.5rem; width: 48px; height: 48px;
}
.block-gallery__lightbox-close:hover, .block-gallery__lightbox-prev:hover, .block-gallery__lightbox-next:hover { background: var(--sun); color: var(--ink); }
.block-gallery__lightbox-close { top: 20px; right: 20px; }
.block-gallery__lightbox-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.block-gallery__lightbox-next { right: 20px; top: 50%; transform: translateY(-50%); }

/* ---- faq ---- */
.block-faq__items { max-width: 780px; margin: 0 auto; padding: 0 24px; display: flex; flex-direction: column; gap: 14px; }
.block-faq__item {
  background: var(--card); border-radius: var(--radius-sm); padding: 4px 24px;
  box-shadow: var(--shadow-sm); interpolate-size: allow-keywords;
}
.block-faq__question {
  cursor: pointer; font-family: var(--font-head); font-size: 1.2rem; line-height: 1.35;
  padding: 16px 40px 16px 0; list-style: none; position: relative;
}
.block-faq__question::-webkit-details-marker { display: none; }
.block-faq__question::before, .block-faq__question::after {   /* drawn plus */
  content: ""; position: absolute; right: 6px; top: 50%; width: 16px; height: 2px; margin-top: -1px;
  border-radius: 2px; background: var(--rosewood); transition: transform .3s var(--ease);
}
.block-faq__question::after { transform: rotate(90deg); }
.block-faq__item[open] .block-faq__question::after { transform: rotate(0deg); }
.block-faq__answer { padding-bottom: 18px; color: var(--ink-soft); }
.block-faq__answer a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--sun); }
/* Progressive enhancement (Chrome/Edge 131+): animated <details> reveal. */
.block-faq__item::details-content {
  overflow: hidden; display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows .35s var(--ease), content-visibility .35s allow-discrete;
}
.block-faq__item[open]::details-content { grid-template-rows: 1fr; }

/* ---- testimonials ---- */
.block-testimonials__list {
  display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  max-width: var(--wrap); margin: 0 auto; padding: 0 24px;
}
.block-testimonials__item { background: var(--card); border-radius: var(--radius); padding: 28px; box-shadow: var(--shadow-sm); }
.block-testimonials__avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; margin-bottom: 12px; }
.block-testimonials__quote { font-family: var(--font-head); font-size: 1.15rem; line-height: 1.45; }
.block-testimonials__author { font-weight: 700; margin-right: 6px; }
.block-testimonials__role { color: var(--ink-soft); font-size: .95rem; }
.block-testimonials__star { color: var(--line); }
.block-testimonials__star.is-filled { color: var(--sun); }
.block-testimonials__cta { text-align: center; margin-top: 32px; }

/* ---- informations ---- */
.block-informations__items { max-width: 780px; margin: 0 auto; padding: 0 24px; }

/* ---- cta: sunset at dusk ---- */
.block-cta {
  position: relative; overflow: hidden; text-align: center; color: var(--moon);
  max-width: calc(var(--wrap) - 48px); margin: clamp(56px, 7vw, 88px) auto 0;
  padding: clamp(44px, 6vw, 64px) 28px clamp(64px, 8vw, 96px);
  border-radius: 32px; box-shadow: var(--shadow);
  background:
    radial-gradient(ellipse 60% 55% at 50% 118%, var(--sun) 0 34%, rgba(234, 90, 34, 0.55) 48%, rgba(234, 90, 34, 0) 72%),
    linear-gradient(180deg, #2B2148 0%, var(--dusk) 70%, #5A3552 100%);
}
section + .block-cta { margin-top: 0; }
.block-cta__title { color: #fff; }
.block-cta__text { color: var(--moon); max-width: 560px; margin: 0 auto 1.6em; font-size: 1.15rem; }
.block-cta__buttons { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
/* The CMS content tags both CTA buttons btn--outline; on dusk the first
   is the sun, the second a light outline. Scoped so .btn--outline can't win. */
.block-cta .block-cta__button {
  background: var(--sun); color: var(--ink); border-color: var(--sun);
  box-shadow: 0 10px 22px -12px rgba(234, 90, 34, 0.7);
}
.block-cta .block-cta__button:hover { background: var(--sun-deep); border-color: var(--sun-deep); color: var(--ink); }
.block-cta .block-cta__button + .block-cta__button {
  background: rgba(30, 29, 58, 0.35); color: #fff; border-color: var(--moon); box-shadow: none;
}
.block-cta .block-cta__button + .block-cta__button:hover { background: var(--moon); color: var(--ink); border-color: var(--moon); }
@media (max-width: 1208px) { .block-cta { margin-left: 24px; margin-right: 24px; } }
@media (max-width: 520px) { .block-cta { margin-left: 16px; margin-right: 16px; border-radius: 24px; } }

/* ---- paragraph ---- */
.block-paragraph__title, .block-paragraph__text { max-width: 720px; margin-left: auto; margin-right: auto; padding: 0 24px; }
.block-paragraph__text h2, .block-paragraph__text h3 { font-size: 1.5rem; }
.block-paragraph__text ul { list-style: disc; padding-left: 1.3em; margin: 0 0 1em; }
.block-paragraph__text li { margin-bottom: 0.4em; }
.block-paragraph__text li::marker { color: var(--rosewood); }

/* ---- map ---- */
.block-map__map {
  max-width: calc(var(--wrap) - 48px); margin: 0 auto;
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm);
}
@media (max-width: 1208px) { .block-map__map { margin: 0 24px; } }

/* ================= Kapcsolat page ================= */
.contact-layout__grid { display: grid; grid-template-columns: 1.3fr 0.9fr; gap: 40px; align-items: start; }
.contact-layout__form .block-paragraph { padding: 0 0 24px; }
.contact-layout__form .block-paragraph__text { padding: 0; margin: 0; }
.booking-form { background: var(--card); border-radius: var(--radius); padding: clamp(24px, 4vw, 36px); box-shadow: var(--shadow-sm); }
.booking-form h2 { font-size: 1.8rem; }
.booking-form__row { margin-bottom: 18px; }
.booking-form__row--split { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.booking-form label { display: block; font-weight: 700; margin-bottom: 6px; font-size: 1rem; }
.booking-form input, .booking-form select, .booking-form textarea {
  width: 100%; padding: 12px 14px; border-radius: 12px; border: 2px solid var(--line);
  font-family: var(--font-body); font-size: 1.05rem; color: var(--ink); background: #fff;
  transition: border-color .2s;
}
.booking-form input:focus-visible, .booking-form select:focus-visible, .booking-form textarea:focus-visible {
  outline: 3px solid rgba(240, 132, 35, 0.35); outline-offset: 0; border-color: var(--sun-deep);
}
.booking-form__hint, .booking-form__fallback { color: var(--ink-soft); font-size: .95rem; margin: 10px 0 0; }
.booking-form__fallback a { text-decoration: underline; }
.contact-card {
  position: relative; overflow: hidden; color: var(--moon);
  border-radius: var(--radius); padding: 34px; box-shadow: var(--shadow);
  background:
    radial-gradient(circle at 100% 0%, rgba(240, 132, 35, 0.55) 0, rgba(240, 132, 35, 0) 45%),
    linear-gradient(160deg, #2B2148, var(--dusk));
}
.contact-card h2 { color: #fff; font-size: 1.8rem; }
.contact-card__list { display: flex; flex-direction: column; gap: 20px; margin-bottom: 0; }
.contact-card__label { display: block; font-size: .95rem; color: var(--moon); opacity: .85; }
.contact-card a, .contact-card span { color: #fff; font-weight: 500; }
.contact-card a:hover { color: var(--gold); }
.contact-card__phone { display: block; font-family: var(--font-head); font-size: clamp(1.7rem, 4vw, 2.2rem); line-height: 1.15; text-decoration: none; }
@media (max-width: 900px) { .contact-layout__grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .booking-form__row--split { grid-template-columns: 1fr; } }

.bemer-embed { text-align: center; }
.bemer-embed__frame { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); margin: 24px 0; height: 70vh; min-height: 480px; background: #fff; }
.bemer-embed__frame iframe { width: 100%; height: 100%; border: 0; }

.cta-simple { text-align: center; }
.cta-simple p { font-family: var(--font-head); font-size: 1.35rem; max-width: 620px; margin: 0 auto 1em; }

.service-page__media img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 8px;
  border-radius: 50% 50% 22px 22px / 22% 22% 22px 22px; box-shadow: var(--shadow);
}
.service-page__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-top: 24px; padding-bottom: 56px; }

/* ================= Footer: night ================= */
.site-footer {
  color: var(--moon); padding-top: 150px;
  background:
    radial-gradient(1.5px 1.5px at 12% 42%, rgba(255,255,255,.7) 50%, transparent 51%),
    radial-gradient(1px 1px at 27% 58%, rgba(255,255,255,.55) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 46% 36%, rgba(255,255,255,.6) 50%, transparent 51%),
    radial-gradient(1px 1px at 63% 64%, rgba(255,255,255,.5) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 78% 40%, rgba(255,255,255,.65) 50%, transparent 51%),
    radial-gradient(1px 1px at 91% 55%, rgba(255,255,255,.5) 50%, transparent 51%),
    linear-gradient(180deg, var(--lilac) 0, #8E77A6 40px, #4A3A6A 100px, var(--night) 170px, var(--night) 100%);
}
.site-footer__inner { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 40px; }
.site-footer__brand { display: flex; gap: 14px; align-items: flex-start; }
.site-footer__logo-badge {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 56px; height: 56px; border-radius: 50%; background: var(--card); overflow: hidden; padding: 6px;
  box-shadow: 0 0 0 6px rgba(243, 221, 208, 0.08);
}
.site-footer__logo-badge img { object-fit: contain; }
.site-footer__brand strong { color: #fff; display: block; margin-bottom: 4px; font-family: var(--font-head); font-weight: 400; font-size: 1.25rem; }
.site-footer__brand p { color: var(--moon); opacity: .85; font-size: 1rem; margin: 0; }
.site-footer h2 { color: #fff; font-size: 1.2rem; margin-bottom: 14px; }
.site-footer__col ul { display: flex; flex-direction: column; gap: 10px; }
.site-footer__col a { color: var(--moon); text-decoration: none; }
.site-footer__col a:hover { color: var(--sun); }
.site-footer__legal { color: var(--moon); font-size: 1rem; }
.site-footer__bottom {
  border-top: 1px solid rgba(243, 221, 208, 0.14); padding: 20px 24px 28px;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px;
  font-size: .9rem; color: rgba(243, 221, 208, 0.75);
}
.site-footer__bottom p { margin: 0; }
.site-footer__credits a { color: rgba(243, 221, 208, 0.75); text-decoration: underline; }
@media (max-width: 820px) { .site-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .site-footer__inner { grid-template-columns: 1fr; } }

.simple-list { display: flex; flex-direction: column; gap: 10px; padding-bottom: 40px; }

/* ---------- Reduced motion ----------
   Every state change keeps working, without spatial movement. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
  .block-hero-carousel::before, .block-hero-carousel::after,
  .block-hero-carousel__track::before, .block-hero-carousel__track::after,
  #main-content::before,
  .block-pushes__media--placeholder::after, .block-collection__media--placeholder::after { animation: none; }
  .block-hero-carousel__quote, .block-hero-carousel__credit,
  .block-hero-carousel__slide.is-active .block-hero-carousel__quote,
  .block-hero-carousel__slide.is-active .block-hero-carousel__credit {
    transform: none !important; transition-duration: .01ms !important; transition-delay: 0s !important;
  }
  .btn:hover, .block-cta__button:hover, .block-pushes__button:hover,
  .block-testimonials__button:hover, .block-collection__card:hover { transform: none; }
  .block-gallery__item:hover .block-gallery__thumb { transform: none; }
  .site-nav, .site-nav.is-open { transform: none !important; }
  .block-gallery__lightbox-figure, .block-gallery__lightbox.is-open .block-gallery__lightbox-figure { transform: none !important; }
  .block-faq__item::details-content { transition-duration: .01ms !important; }
}
