/* Helyi, keretrendszer nélküli alapstílusok; a korábbi megjelenés megőrzéséhez. */
*, ::before, ::after { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid; }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; }
body { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
a { color: inherit; text-decoration: inherit; }
button, input, select, textarea { font: inherit; letter-spacing: inherit; color: inherit; }
button { background-color: transparent; }
ul, ol { list-style: none; }
img, svg { display: block; vertical-align: middle; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }

:root {
  font-family: Arial, Helvetica, sans-serif;
  font-synthesis: none;
  --background-primary: #F8F3F2;
  --background-secondary: #E2CDCA;
  --background-dark: #310E1C;
  --surface: #EDE0DD;
  --surface-soft: #F2E7E4;
  --text-primary: #310E1C;
  --text-secondary: #684B50;
  --text-inverse: #F8F3F2;
  --text-inverse-secondary: #DFC5C4;
  --accent: #B28578;
  --accent-strong: #734B51;
  --accent-muted: #C8ACAB;
  --border: rgb(115 75 81 / 28%);
  --border-inverse: rgb(226 205 202 / 32%);
  --button-primary: #310E1C;
  --button-hover: #734B51;
  --header-background: #E2CDCA;
  --art-base: #C8ACAB;
  --art-shadow: #B5969A;
  --art-highlight: #E2CDCA;
  --art-fold-light: #E6D3CE;
  --art-line: rgb(248 243 242 / 48%);
  --shadow-soft: rgb(49 14 28 / 9%);
  color: var(--text-primary);
  background: var(--background-primary);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
::selection { background: var(--accent); color: var(--text-primary); }
h1, h2, h3, p, blockquote { margin: 0; }
h1, h2, h3, blockquote { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
h2 { font-size: clamp(36px, 3.45vw, 50px); line-height: 1.08; letter-spacing: -1.8px; }
em { font-weight: 400; color: var(--accent-strong); }
p { font-size: 14px; line-height: 1.7; color: var(--text-secondary); }
.shell { width: min(1296px, calc(100% - 112px)); margin-inline: auto; }
.section { padding-block: 74px; }
.eyebrow { font-size: 10px; font-weight: 500; letter-spacing: 2px; line-height: 1.5; color: var(--background-dark); margin-bottom: 23px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 48px; padding: 14px 20px; background: var(--background-dark); color: var(--background-primary); border: 1px solid var(--background-dark); font-size: 12px; line-height: 1.4; transition: background .2s, color .2s; }
.button:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.button svg { flex-shrink: 0; transition: transform .2s; }
.button:hover svg { transform: translate(2px, -2px); }
.text-link { display: inline-flex; gap: 16px; align-items: center; min-height: 44px; font-size: 12px; border-bottom: 1px solid var(--border); transition: border-color .2s; }
.text-link:hover { border-color: currentColor; }
.text-link svg { flex-shrink: 0; }
.moment-mark { width: 43px; height: 43px; flex-shrink: 0; }

/* Fejléc: púdertónusú márkafelület, az eredeti logóval. */
.header { position: sticky; top: 0; z-index: 50; background: var(--header-background); color: var(--background-primary); border-bottom: 1px solid var(--border); backdrop-filter: blur(14px); }
.header-inner { height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font: 34px/.95 Georgia, serif; letter-spacing: -1.7px; }
.brand .moment-mark { color: var(--accent); }
.brand-sub { display: block; font: 7px/1.4 Arial, sans-serif; letter-spacing: 2.3px; margin-top: 8px; }
.desktop-nav { display: flex; gap: 27px; align-items: center; font-size: 11px; }
.desktop-nav a { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 1px solid transparent; }
.desktop-nav a:hover { border-color: var(--accent); }
.header-book { font-size: 11px; min-height: 42px; border-color: var(--border); background: transparent; padding: 10px 16px; gap: 20px; }
.header-book:hover { background: var(--background-secondary); color: var(--background-dark); border-color: var(--background-secondary); }
.menu-toggle { display: none; border: 0; background: transparent; color: inherit; width: 44px; height: 44px; align-items: center; justify-content: center; flex-shrink: 0; }
.mobile-nav { padding: 8px 28px 24px; border-top: 1px solid var(--border); }
.mobile-nav[hidden] { display: none; }
.mobile-nav > a:not(.button) { display: flex; justify-content: space-between; align-items: center; min-height: 48px; border-bottom: 1px solid var(--border); font-size: 14px; }
.mobile-nav .button { margin-top: 20px; background: var(--background-secondary); color: var(--background-dark); }

/* Nyitókép: tipográfia és egyetlen, megszakított ív. */
.hero { background: var(--background-dark); color: var(--background-primary); }
.hero-layout { position: relative; display: grid; grid-template-columns: 1.12fr 1fr; column-gap: 32px; padding-top: 36px; }
.hero-copy { position: relative; z-index: 2; padding-top: 5px; padding-bottom: 28px; }
h1 { font-size: clamp(72px, 7.3vw, 112px); line-height: .97; letter-spacing: -5px; }
.hero-subtitle { font: italic clamp(26px, 2.65vw, 40px)/1.2 Georgia, serif; color: var(--accent-strong); margin-top: 18px; letter-spacing: -.8px; }
.hero-description { max-width: 390px; color: var(--text-secondary); font-size: 13px; line-height: 1.75; margin-top: 25px; }
.hero-actions { display: flex; align-items: center; gap: 25px; margin-top: 23px; flex-wrap: wrap; }
.hero-actions .button { background: var(--background-secondary); color: var(--background-dark); border-color: var(--background-secondary); }
.hero-actions .button:hover { background: var(--accent); border-color: var(--accent); }
.hero-actions .text-link { font-size: 11px; border-color: var(--border); color: var(--text-primary); }
.hero-actions .text-link:hover { border-color: var(--text-primary); }
.hero-visual { position: relative; }
.art { position: relative; overflow: hidden; }
.art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.art-hero { height: 100%; min-height: 440px; background: var(--art-base); }
.abstract-art { position: absolute; inset: 0; overflow: hidden; background: var(--art-base); }
.art-plane { position: absolute; }
.plane-back { width: 83%; height: 127%; top: -23%; left: -25%; background: var(--art-shadow); transform: rotate(27deg); border-radius: 0 0 48% 0; }
.plane-front { width: 85%; height: 100%; left: 33%; top: 40%; background: var(--art-highlight); border-radius: 55% 0 0 0; transform: rotate(-21deg); box-shadow: -18px -6px 32px var(--shadow-soft); }
.art-fold { position: absolute; height: 130%; width: 80%; left: 57%; top: -30%; transform: rotate(-24deg); background: linear-gradient(90deg, var(--art-base), var(--art-fold-light) 28%, var(--art-base) 80%); border-left: 1px solid var(--art-line); border-radius: 48% 0 0 0; }
.art-texture { position: absolute; inset: 0; opacity: .3; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='currentColor' opacity='.22' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E"); }
.art-mark { position: absolute; width: 80%; height: auto; top: 8%; left: 5%; color: var(--art-line); transform: rotate(-8deg); }
.art-caption { position: absolute; left: 22px; bottom: 20px; font-size: 8px; letter-spacing: 2.2px; color: var(--text-primary); }
.hero-word { position: absolute; right: -5px; bottom: -5px; font: italic clamp(86px, 9vw, 134px)/1 Georgia, serif; color: var(--background-primary); letter-spacing: -7px; }

/* Háromrészes bemutatkozás: cím, kép és személyes hang. */
.about { display: grid; grid-template-columns: .9fr .8fr 1fr; gap: 45px; align-items: start; }
.about-heading h2 { font-size: clamp(36px, 3.8vw, 55px); }
.about-heading { padding-top: 3px; }
.editorial-note { display: inline-block; margin-top: 40px; font: italic 14px Georgia, serif; color: var(--accent-strong); padding-left: 34px; position: relative; }
.editorial-note::before { content: ''; position: absolute; width: 23px; left: 0; top: 50%; border-top: 1px solid var(--accent-strong); }
.about-portrait { padding-top: 27px; }
.art-portrait { height: 290px; background: var(--art-base); }
.art-portrait .abstract-art { background: var(--art-highlight); }
.art-portrait .plane-back { background: var(--art-shadow); width: 100%; height: 80%; top: -10%; left: -40%; border-radius: 0 0 65% 0; transform: rotate(-12deg); }
.art-portrait .plane-front { background: var(--art-base); width: 90%; top: 45%; left: 25%; transform: rotate(15deg); }
.art-portrait .art-fold { display: none; }
.art-portrait .art-caption { font-size: 7px; left: 14px; bottom: 15px; }
.image-caption { display: block; font-size: 8px; letter-spacing: 1.7px; color: var(--text-secondary); padding-top: 12px; }
.about-copy { padding-top: 45px; }
.about-copy blockquote { font-size: clamp(25px, 2.2vw, 33px); line-height: 1.25; font-style: italic; color: var(--accent-strong); padding-bottom: 23px; border-bottom: 1px solid var(--border); }
.sample-label { text-transform: uppercase; font-size: 8px; line-height: 1.6; letter-spacing: 1px; color: var(--text-secondary); margin-top: 20px; }
.about-copy > p:not(.sample-label) { margin-top: 10px; font-size: 13px; }
.about-copy .text-link { margin-top: 10px; font-size: 11px; }

/* Kezelési katalógus: elválasztó vonalak, önálló időtartamok. */
.services { background: var(--background-dark); }
.catalogue-layout { display: grid; grid-template-columns: .8fr 2fr; gap: 70px; }
.catalogue-heading h2 { font-size: clamp(36px, 3.2vw, 46px); }
.catalogue-note { max-width: 230px; font-size: 12px; margin-top: 20px; }
.art-catalogue { height: 115px; max-width: 215px; margin-top: 30px; }
.art-catalogue .abstract-art { background: var(--art-base); }
.art-catalogue .plane-back { background: var(--art-shadow); }
.art-catalogue .art-fold { display: none; }
.art-catalogue .art-caption { left: 13px; bottom: 13px; font-size: 7px; }
.service-list { border-top: 1px solid var(--border-inverse); }
.service-row { display: grid; grid-template-columns: minmax(0, 1fr) 145px; gap: 18px; padding: 27px 0; border-bottom: 1px solid var(--border-inverse); transition: border-color .2s; }
.service-row:hover { border-color: var(--accent-strong); }
.service-content h3 { font-size: clamp(23px, 2.1vw, 31px); line-height: 1.15; letter-spacing: -.6px; }
.service-content > p { font-size: 12px; line-height: 1.75; max-width: 350px; margin-top: 11px; }
.service-details { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.duration { font: italic 19px/1.25 Georgia, serif; color: var(--background-dark); }
.price { font-size: 9px; color: var(--text-inverse-secondary); }
.service-book { margin-top: 3px; background: transparent; border: 0; border-bottom: 1px solid var(--border-inverse); color: var(--background-dark); min-height: 44px; padding: 8px 0; gap: 15px; font-size: 10px; }
.service-book:hover { background: transparent; color: var(--accent-strong); border-color: var(--accent-strong); }

/* Test és lélek: két eltérő arányú, egymásba kapcsolódó felület. */
.balance { background: var(--background-primary); padding-block: 65px; }
.balance-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 55px; align-items: center; }
.balance-heading h2 { font-size: clamp(32px, 3.2vw, 47px); line-height: 1.2; }
.balance-heading h2 em { display: inline-block; margin-top: 4px; }
.benefits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; }
.benefit-title { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--border); padding-bottom: 12px; gap: 10px; }
.benefit-title h3 { font-size: 30px; letter-spacing: -.7px; white-space: nowrap; }
.benefit-title > span { font-size: 8px; color: var(--accent-strong); }
.benefit-subtitle { font: italic 13px/1.5 Georgia, serif; margin-top: 12px; color: var(--accent-strong); }
.benefit ul { list-style: none; padding: 0; margin: 12px 0 0; }
.benefit li { font-size: 11px; line-height: 1.65; padding-block: 6px; color: var(--text-secondary); }
.benefit-1 { padding: 23px 20px 20px; margin-top: 25px; background: var(--surface); border-radius: 0 0 55px 0; }
.benefit-1 .benefit-title h3 { font-style: italic; }
.pause { background: var(--background-dark); color: var(--background-primary); padding: 38px 0 42px; overflow: hidden; }
.pause-layout { display: grid; grid-template-columns: .55fr 2fr .2fr; gap: 35px; align-items: center; }
.pause-index { font-size: 8px; letter-spacing: 1.8px; line-height: 1.8; max-width: 155px; color: var(--text-inverse-secondary); }
.pause h2 { font-size: clamp(30px, 3.25vw, 47px); letter-spacing: -1.3px; }
.pause p { font: italic clamp(20px, 2.1vw, 29px)/1.3 Georgia, serif; color: var(--text-inverse-secondary); margin-top: 12px; }
.pause-line { width: 50px; height: 65px; border-right: 1px solid var(--accent); border-radius: 50%; transform: rotate(30deg); animation: breathe 10s ease-in-out infinite alternate; }
@keyframes breathe { to { transform: rotate(42deg) translateY(-4px); } }

/* Kapcsolat: kiemelt telefonszám, dobozok nélkül. */
.contact { display: grid; grid-template-columns: 1fr 1.05fr; gap: 80px; align-items: center; }
.contact h2 { font-size: clamp(38px, 3.6vw, 54px); }
.contact-intro > p:not(.eyebrow) { max-width: 340px; font-size: 13px; margin-top: 18px; }
.contact-intro .button { margin-top: 22px; }
.contact-details { border-top: 1px solid var(--background-dark); padding-top: 20px; }
.contact-city { font: italic 27px Georgia, serif; display: block; margin-bottom: 28px; color: var(--accent-strong); }
.contact-label { font-size: 8px; letter-spacing: 2px; color: var(--text-secondary); }
.contact-phone { display: flex; justify-content: space-between; align-items: center; gap: 14px; font: clamp(28px, 3.15vw, 47px)/1.3 Georgia, serif; letter-spacing: -1.5px; white-space: nowrap; margin-top: 0; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.contact-phone svg { width: 25px; height: 25px; flex-shrink: 0; }
.contact-phone:hover { color: var(--accent-strong); }
.contact-bottom { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; margin-top: 12px; }
.call-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 11px; white-space: nowrap; }
.contact-bottom p { font-size: 10px; max-width: 185px; padding-top: 9px; }
footer { background: var(--background-dark); color: var(--text-inverse); padding: 20px 0; }
.footer-top { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding-bottom: 27px; }
.footer-top .brand { font-size: 30px; }
.footer-top .brand .moment-mark { width: 36px; height: 36px; }
.footer-top p { font: italic 13px Georgia, serif; color: var(--text-inverse-secondary); margin: 13px 0 0 46px; }
.footer-top nav { display: flex; gap: 27px; font-size: 11px; }
.footer-top nav a { display: inline-flex; align-items: center; min-height: 44px; }
.back-top { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--border-inverse); }
.back-top:hover { background: var(--accent-strong); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid var(--border-inverse); padding-top: 18px; font-size: 9px; line-height: 1.7; color: var(--text-inverse-secondary); }
.footer-bottom > div { display: flex; gap: 25px; }
.footer-bottom small { display: block; color: var(--text-inverse-secondary); font-size: 8px; }
.footer-bottom a { display: inline-block; padding-block: 8px; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; background: var(--background-secondary); color: var(--background-dark); padding: 15px; }
.skip-link:focus { top: 10px; }
.reveal-ready { opacity: 0; transform: translateY(14px); transition: opacity .55s ease, transform .55s ease; }
.reveal-ready.visible { opacity: 1; transform: none; }


/* V3: az eredeti logó színeihez hangolt felületek és kontrasztok. */
.header { color: var(--text-primary); backdrop-filter: none; }
.header-inner { height: 104px; }
.brand { gap: 13px; flex-shrink: 0; }
.brand-logo {
  display: block; width: 90px; height: 90px; object-fit: contain; flex-shrink: 0;
  /* Csak az üres sarkok és a külső perem tűnnek át; a teljes grafika érintetlen. */
  mask-image: radial-gradient(circle closest-side, black 94%, transparent 100%);

}
.brand-type { display: block; }
.brand-name { display: block; font-size: 31px; letter-spacing: -.9px; }
.brand-sub { font-size: 7px; letter-spacing: 2.3px; }
.brand-owner { display: block; font: italic 13px/1.2 Georgia, serif; letter-spacing: .2px; color: var(--accent-strong); margin-top: 9px; }
.header-book { background: var(--button-primary); border-color: var(--button-primary); color: var(--text-inverse); }
.header-book:hover, .mobile-nav .button:hover { background: var(--button-hover); border-color: var(--button-hover); color: var(--text-inverse); }
.mobile-nav .button { background: var(--button-primary); color: var(--text-inverse); }
html { scroll-padding-top: 116px; }
.button { background: var(--button-primary); border-color: var(--button-primary); color: var(--text-inverse); }
.button:hover { background: var(--button-hover); border-color: var(--button-hover); }
.hero { background: var(--background-secondary); color: var(--text-primary); }
.hero-description { color: var(--text-secondary); }
.hero-actions .button { background: var(--button-primary); color: var(--text-inverse); border-color: var(--button-primary); }
.hero-actions .button:hover { background: var(--button-hover); border-color: var(--button-hover); }
.hero-actions .text-link { color: var(--text-primary); border-color: var(--border); }
.hero-actions .text-link:hover { border-color: var(--accent-strong); }
.hero-word { color: var(--text-primary); }
.hero-layout { padding-top: 30px; }
.art-hero { border-radius: 46% 0 0 0; }
.art-mark { color: var(--accent-strong); }
.art-texture { background-image: none; opacity: .2; background: repeating-linear-gradient(25deg, transparent, transparent 3px, var(--art-line) 4px, transparent 5px); }
.about-copy blockquote { border-color: var(--accent); }
.editorial-note::before { border-color: var(--accent); }
.services { color: var(--text-inverse); }
.services .eyebrow, .catalogue-note, .service-content > p { color: var(--text-inverse-secondary); }
.services h2 em { color: var(--accent-muted); }
.duration { color: var(--text-inverse); }
.service-row:hover { border-color: var(--accent-muted); }
.service-book { background: transparent; color: var(--text-inverse); border-color: var(--border-inverse); }
.service-book:hover { background: transparent; color: var(--background-secondary); border-color: var(--background-secondary); }
.benefit-title > span { color: var(--accent-strong); }
.pause { color: var(--text-inverse); }
.contact-section { background: var(--background-secondary); }
.contact-details { border-color: var(--accent-strong); }
footer { color: var(--text-inverse); }
.brand-footer .brand-owner { color: var(--text-inverse-secondary); }
.footer-top p { margin-left: 0; }
.back-top:hover { background: var(--button-hover); }

@media (min-width: 1600px) { .hero-layout { padding-top: 45px; } }
@media (max-width: 1199px) {
  .shell { width: calc(100% - 72px); }
  .header-inner { gap: 18px; }
  .desktop-nav { gap: 18px; }
  .brand { font-size: 30px; }
  .hero-layout { column-gap: 20px; }
  h1 { font-size: 8vw; }
  .hero-actions { gap: 15px; }
  .hero-actions .text-link { font-size: 10px; gap: 10px; }
  .hero-actions .button { padding-inline: 16px; gap: 14px; font-size: 11px; }
  .about { gap: 28px; grid-template-columns: .9fr .8fr 1fr; }
  .catalogue-layout { gap: 40px; }
  .service-row { grid-template-columns: minmax(0, 1fr) 125px; gap: 14px; }
  .balance-layout { grid-template-columns: 1fr 1.15fr; gap: 35px; }
  .benefits-grid { gap: 20px; }
  .benefit-1 { padding-inline: 15px; }
  .contact { gap: 45px; }
}
@media (max-width: 999px) {
  .desktop-nav { display: none; }
  .header-book { margin-left: auto; }
  .menu-toggle { display: inline-flex; }
  .section { padding-block: 58px; }
  .hero-layout { padding-top: 30px; }
  h1 { font-size: 8.6vw; letter-spacing: -3px; }
  .hero-subtitle { font-size: 28px; }
  .hero-description { font-size: 12px; margin-top: 20px; }
  .hero-actions { flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 20px; }
  .art-hero { min-height: 405px; }
  .hero-word { font-size: 90px; }
  .about { grid-template-columns: 1fr 1fr; gap: 24px 40px; }
  .about-heading { grid-column: 1; }
  .about-portrait { grid-column: 2; grid-row: 1/3; padding-top: 0; }
  .art-portrait { height: 360px; }
  .about-copy { grid-column: 1; padding-top: 0; }
  .about-heading h2 { font-size: 42px; }
  .about-copy blockquote { font-size: 25px; padding-bottom: 16px; }
  .editorial-note { display: none; }
  .sample-label { margin-top: 15px; }
  .catalogue-layout { grid-template-columns: .7fr 1.6fr; gap: 30px; }
  .catalogue-heading h2 { font-size: 34px; }
  .service-row { grid-template-columns: minmax(0, 1fr); gap: 12px; padding-block: 23px; }
  .service-content h3 { font-size: 26px; }
  .service-details { grid-column: 1; flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 7px 18px; }
  .duration { font-size: 17px; }
  .price { margin-left: auto; }
  .service-book { margin-top: 0; }
  .balance { padding-block: 55px; }
  .balance-layout { grid-template-columns: 1fr; gap: 30px; }
  .balance-heading h2 { font-size: 40px; }
  .benefits-grid { max-width: 560px; margin-left: auto; width: 85%; gap: 40px; }
  .benefit li { font-size: 12px; }
  .pause-layout { grid-template-columns: .5fr 2fr; gap: 20px; }
  .pause h2 { font-size: 33px; }
  .pause p { font-size: 24px; }
  .pause-line { display: none; }
  .contact h2 { font-size: 38px; }
  .contact { gap: 35px; }
  .contact-phone { font-size: 29px; letter-spacing: -1px; }
  .contact-phone svg { width: 20px; }
  .contact-bottom { display: block; }
  .contact-bottom p { padding: 0; max-width: none; }
  .footer-top nav { gap: 18px; }
  .footer-bottom { gap: 15px; flex-wrap: wrap; }
}
@media (max-width: 639px) {
  html { scroll-padding-top: 80px; }
  .shell { width: calc(100% - 40px); }
  .section { padding-block: 46px; }
  .eyebrow { font-size: 8px; letter-spacing: 1.7px; margin-bottom: 18px; }
  .header-inner { height: 70px; gap: 10px; }
  .brand { font-size: 27px; gap: 5px; }
  .brand .moment-mark { width: 33px; height: 33px; }
  .brand-sub { font-size: 6px; letter-spacing: 1.7px; margin-top: 6px; }
  .header-book { font-size: 9px; padding: 9px 10px; gap: 8px; min-height: 44px; }
  .header-book svg { width: 13px; }
  .menu-toggle { width: 34px; }
  .mobile-nav { padding-inline: 20px; }
  .hero-layout { grid-template-columns: 1fr; gap: 0; padding-top: 24px; }
  .hero-copy { padding-top: 0; padding-bottom: 24px; }
  h1 { font-size: clamp(64px, 16vw, 94px); line-height: .95; letter-spacing: -3.4px; }
  .hero-subtitle { margin-top: 15px; font-size: 29px; }
  .hero-description { margin-top: 19px; max-width: 390px; font-size: 13px; }
  .hero-actions { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 8px 20px; margin-top: 20px; }
  .hero-actions .button { font-size: 11px; gap: 17px; min-height: 46px; padding: 12px 15px; }
  .hero-actions .text-link { font-size: 10px; min-height: 44px; }
  .hero-visual { width: 77%; margin-left: auto; }
  .art-hero { height: 235px; min-height: 0; }
  .hero-word { font-size: 86px; right: auto; left: -68px; bottom: 6px; letter-spacing: -5px; }
  .art-caption { font-size: 6px; left: 13px; bottom: 13px; letter-spacing: 1.5px; }
  .about { grid-template-columns: 1fr 1fr; gap: 22px 18px; }
  .about-heading { grid-column: 1/-1; }
  .about-heading h2 { font-size: 45px; }
  .about-heading h2 br { display: none; }
  .about-heading h2 em { display: block; }
  .about-portrait { grid-column: 1; grid-row: 2; padding-top: 0; }
  .art-portrait { height: 255px; }
  .art-portrait .art-caption { font-size: 5px; line-height: 1.7; letter-spacing: 1px; bottom: 12px; left: 10px; right: 8px; }
  .image-caption { font-size: 6px; line-height: 1.6; letter-spacing: 1px; padding-top: 10px; }
  .about-copy { grid-column: 2; grid-row: 2; padding-top: 0; }
  .about-copy blockquote { font-size: 23px; padding-bottom: 15px; }
  .sample-label { font-size: 6px; letter-spacing: .7px; margin-top: 14px; }
  .about-copy > p:not(.sample-label) { font-size: 11px; line-height: 1.65; margin-top: 9px; }
  .about-copy .text-link { font-size: 9px; gap: 6px; line-height: 1.6; margin-top: 8px; }
  .about-copy .text-link svg { width: 13px; }
  .catalogue-layout { grid-template-columns: 1fr; gap: 25px; }
  .catalogue-heading { position: relative; padding-right: 72px; }
  .catalogue-heading h2 { font-size: 41px; }
  .catalogue-note { margin-top: 16px; font-size: 12px; max-width: 230px; }
  .art-catalogue { position: absolute; right: 0; top: 0; width: 51px; height: 100%; margin: 0; max-height: 180px; }
  .art-catalogue .art-caption { display: none; }
  .service-row { padding-block: 23px; gap: 12px; grid-template-columns: minmax(0, 1fr); }
  .service-content h3 { font-size: 28px; max-width: 260px; }
  .service-content > p { font-size: 12px; line-height: 1.7; margin-top: 10px; }
  .service-details { gap: 5px 12px; }
  .duration { font-size: 17px; }
  .price { font-size: 8px; }
  .service-book { font-size: 10px; min-height: 44px; gap: 12px; }
  .balance { padding-block: 46px; }
  .balance-heading h2 { font-size: 35px; letter-spacing: -1.4px; line-height: 1.15; }
  .balance-layout { gap: 25px; }
  .benefits-grid { width: 100%; max-width: none; gap: 18px; }
  .benefit-title h3 { font-size: 28px; }
  .benefit-title { padding-bottom: 10px; }
  .benefit-subtitle { font-size: 12px; margin-top: 10px; }
  .benefit li { font-size: 11px; line-height: 1.65; padding-block: 6px; }
  .benefit-1 { margin-top: 22px; padding: 18px 13px; border-radius: 0 0 40px 0; }
  .benefit ul { margin-top: 10px; }
  .pause { padding-block: 29px 33px; }
  .pause-layout { grid-template-columns: 1fr; gap: 17px; }
  .pause-index { font-size: 7px; max-width: none; letter-spacing: 1.1px; }
  .pause h2 { font-size: 33px; line-height: 1.12; }
  .pause p { font-size: 23px; margin-top: 12px; }
  .contact { grid-template-columns: 1fr; gap: 30px; }
  .contact h2 { font-size: 41px; }
  .contact-intro > p:not(.eyebrow) { margin-top: 16px; font-size: 13px; }
  .contact-intro .button { margin-top: 18px; }
  .contact-details { padding-top: 17px; }
  .contact-city { font-size: 24px; margin-bottom: 20px; }
  .contact-phone { font-size: clamp(29px, 8.7vw, 45px); padding-bottom: 16px; letter-spacing: -1px; }
  .contact-bottom { display: flex; align-items: center; gap: 20px; margin-top: 8px; }
  .contact-bottom p { font-size: 9px; max-width: 160px; }
  .call-link { font-size: 10px; gap: 8px; }
  footer { padding-top: 20px; }
  .footer-top { flex-wrap: wrap; gap: 15px; padding-bottom: 20px; }
  .footer-top .brand { font-size: 29px; }
  .footer-top nav { order: 3; width: 100%; gap: 10px 22px; flex-wrap: wrap; font-size: 10px; }
  .footer-top p { font-size: 12px; }
  .back-top { margin-left: auto; }
  .footer-bottom { gap: 15px; align-items: flex-start; font-size: 8px; padding-top: 17px; }
  .footer-bottom > div { gap: 20px; }
  .footer-bottom > span:last-child { width: 100%; }
}
@media (max-width: 359px) {
  .header-book { display: none; }
  .menu-toggle { margin-left: auto; }
  h1 { font-size: 59px; }
  .hero-subtitle { font-size: 27px; }
  .about { grid-template-columns: 1fr; }
  .about-portrait { grid-column: 1; grid-row: 2; width: 75%; }
  .about-copy { grid-column: 1; grid-row: 3; }
  .about-copy > p:not(.sample-label) { font-size: 13px; }
  .sample-label { font-size: 8px; }
  .benefits-grid { gap: 12px; }
  .benefit-title h3 { font-size: 25px; }
  .benefit-1 { padding-inline: 10px; }
  .contact-bottom { display: block; }
  .contact-bottom p { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal-ready { opacity: 1; transform: none; }
}
@media print {
  .header, .hero-visual, .art, .back-top, .menu-toggle { display: none; }
  .hero, .pause, footer { background: white; color: var(--text-primary); }
  .reveal-ready { opacity: 1; transform: none; }
}
/* Mobilon a portré és az idézet mellé a bekezdések teljes olvasási szélességet kapnak. */
@media (min-width: 360px) and (max-width: 639px) {
  .about { gap: 16px 22px; }
  .about-portrait { grid-column: 1; grid-row: 2; }
  .art-portrait { height: 220px; }
  .about-copy { display: contents; }
  .about-copy blockquote { grid-column: 2; grid-row: 2; align-self: center; font-size: 29px; padding-bottom: 20px; }
  .about-copy > p, .about-copy > .text-link { grid-column: 1/-1; margin-top: 0; }
  .about-copy .sample-label { font-size: 8px; margin-top: 5px; }
  .about-copy > p:not(.sample-label) { font-size: 13px; line-height: 1.7; margin-top: 0; }
  .about-copy .text-link { justify-self: start; font-size: 11px; margin-top: 0; }
  .benefit li { font-size: 12px; }
}

@media (max-width: 999px) {
  .brand-name { font-size: 29px; }
  .brand-logo { width: 80px; height: 80px; }
  .header-inner { height: 96px; }
  html { scroll-padding-top: 108px; }
}
@media (max-width: 639px) {
  .header-inner { height: 80px; }
  .brand { gap: 9px; }
  .brand-logo { width: 64px; height: 64px; }
  .brand-name { font-size: 27px; }
  .brand-sub { font-size: 6px; letter-spacing: 1.9px; margin-top: 6px; }
  .brand-owner { font-size: 11px; margin-top: 6px; }
  .header-book { display: none; }
  .menu-toggle { width: 44px; margin-left: auto; }
  html { scroll-padding-top: 92px; }
  .footer-top p { margin-left: 0; }
}


/* Csak a fejléc szöveges márkablokkja; a logó és a fejléc mérete változatlan. */
.header .brand-type {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}
.header .brand-name {
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: .35px;
  color: var(--text-primary);
}
.header .brand-owner { margin-top: 0; }
@media (max-width: 999px) {
  .header .brand-name { font-size: 33px; }
}
@media (max-width: 639px) {
  .header .brand-name { font-size: 31px; }
}

/* Kizárólag a fejléc navigációja: helyi serif, finom rozéarany állapotjelzés. */
.header .desktop-nav {
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: 13.5px;
  font-weight: 400;
  letter-spacing: .25px;
  color: var(--text-primary);
  gap: 26px;
}
.header .desktop-nav a,
.header .desktop-nav a:hover {
  border-bottom-color: transparent;
  background: transparent;
  white-space: nowrap;
}
.header .mobile-nav > a:not(.button) {
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: .25px;
  color: var(--text-primary);
  border-bottom-color: transparent;
  background: transparent;
}
.header .nav-label { position: relative; display: inline-block; line-height: 1.2; }
.header .nav-label::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .22s ease-out;
}
.header .desktop-nav a:is(:hover, :focus-visible, [aria-current="location"]) .nav-label::after,
.header .mobile-nav > a:not(.button):is(:hover, :focus-visible, [aria-current="location"]) .nav-label::after {
  transform: scaleX(1);
}
@media (min-width: 1000px) and (max-width: 1199px) {
  .header .desktop-nav { gap: 18px; }
}

/* Kizárólag a jobb felső telefonos időpontkérő gomb. */
.header .header-book {
  border-radius: 999px;
  background: var(--button-primary);
  border: 1px solid var(--accent);
  color: var(--text-inverse);
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .15px;
  gap: 14px;
  white-space: nowrap;
  transition: background-color .25s ease, color .25s ease;
}
.header .header-book svg {
  width: 14px;
  height: 14px;
  stroke-width: 1.4;
  transition: transform .25s ease;
}
.header .header-book:hover {
  background: var(--button-hover);
  border-color: var(--accent);
  color: var(--text-inverse);
}
.header .header-book:hover svg { transform: translateX(3px); }

/* A Hero bal oldali szövege és egyetlen, középre igazított kezelési linkje. */
.hero-copy {
  align-self: center;
  min-width: 0;
  padding-block: 0;
  margin-bottom: 0;
}
.hero-copy .hero-title {
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: clamp(34.2px, 4.33vw, 64px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.8px;
  color: var(--text-primary);
}
.hero-copy .hero-title-main { display: block; }
.hero-copy .hero-title-soft {
  display: block;
  margin-top: 12px;
  font-size: .73em;
  font-weight: 400;
  font-style: italic;
  line-height: 1.2;
  letter-spacing: -.25px;
  color: var(--accent-strong);
}
.hero-copy .hero-description {
  max-width: 500px;
  width: 100%;
  font-size: 16px;
  line-height: 1.75;
  margin-top: 22px;
}
.hero-copy .hero-actions {
  width: 100%;
  max-width: 500px;
  flex-direction: row;
  justify-content: center;
  padding-inline: 0;
  align-items: center;
  gap: 0;
  margin-top: 42px;
}
@media (min-width: 640px) and (max-width: 999px) {
  .hero-copy .hero-title { font-size: clamp(33px, 4.55vw, 46px); }
}
@media (max-width: 639px) {
  .hero-copy { margin-bottom: 0; padding-bottom: 24px; }
  .hero-copy .hero-title { font-size: clamp(29.5px, 8.5vw, 48px); letter-spacing: -.5px; }
  .hero-copy .hero-title-soft { font-size: .79em; margin-top: 10px; letter-spacing: -.2px; }
  .hero-copy .hero-description { margin-top: 20px; }
  .hero-copy .hero-actions { margin-top: 38px; }
}

/* Kizárólag a Hero CTA: középre rögzített, finoman lélegző méret. */
.hero-explore {
  position: relative;
  transform: scale(1);
  transform-origin: center;
  animation: hero-explore-scale 3s ease-in-out infinite;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: calc(100% / 1.05);
  min-height: 46px;
  padding: 12px 24px;
  border: 1px solid rgb(178 133 120 / 65%);
  border-radius: 999px;
  background: rgb(248 243 242 / 28%);
  color: var(--text-primary);
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: 13.75px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: .2px;
  text-align: center;
  text-decoration: none;
  transition: background-color .25s ease, border-color .25s ease;
}
.hero-explore::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: 0 0 0 4px rgb(181 150 154 / 16%), 0 0 24px rgb(115 75 81 / 22%);
  opacity: .35;
}
@keyframes hero-explore-scale {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
.hero-explore:hover,
.hero-explore:focus-visible {
  background: rgb(248 243 242 / 46%);
  border-color: var(--accent);
}
@media (max-width: 1199px) {
  .hero-explore { font-size: 12.75px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-explore { animation: none; transform: none; }
  .hero-explore::before { animation: none; opacity: .35; }
}

/* Egyetlen, teljes Hero-felületű fotós háttérréteg, egyszerű púderfedéssel. */
.hero {
  position: relative;
  isolation: isolate;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background-image:
    linear-gradient(to right, var(--background-secondary) 0%, var(--background-secondary) 30%, rgb(226 205 202 / 95%) 40%, rgb(226 205 202 / 70%) 50%, rgb(226 205 202 / 30%) 65%, rgb(226 205 202 / 6%) 80%, transparent 92%),
    url('../assets/optimized/masszorkep-652.webp');
  background-repeat: no-repeat;
  background-size: 100% 100%, max(80%, 720px) auto;
  background-position: center, right 44%;
}
/* A kép és a púderfedés együtt halványul törtfehérbe, külön alsó rétegen. */
.hero::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 100px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent 0%, var(--background-primary) 100%);
}
.hero .hero-layout {
  width: 100%;
  padding-top: 0;
  padding-inline-start: max(56px, calc((100% - 1296px) / 2));
  padding-inline-end: 0;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
}
.hero .hero-copy { padding-block: 30px; }
/* A korábbi képrésszel azonos méret tartja a Hero magasságát és a szöveg helyét.
   Ez csak egy láthatatlan grid-mérettartó, nem külön képmező. */
.hero .hero-layout::after {
  content: '';
  min-width: 0;
  height: clamp(440px, 35vw, 520px);
  pointer-events: none;
}
@media (max-width: 1199px) {
  .hero .hero-layout { padding-inline-start: 36px; }
}
@media (max-width: 799px) {
  .hero .hero-layout {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: 36px;
    gap: 0;
  }
  .hero .hero-copy { padding-block: 28px 24px; }
  .hero .hero-layout::after { height: clamp(300px, 85vw, 430px); }
  .hero::before {
    background-image:
      linear-gradient(to bottom, var(--background-secondary) 0%, var(--background-secondary) 38%, rgb(226 205 202 / 94%) 47%, rgb(226 205 202 / 45%) 57%, transparent 68%),
      url('../assets/optimized/masszorkep-652.webp');
    background-size: 100% 100%, 100% auto;
    background-position: center, center calc(100% + 160px);
  }
}
@media (max-width: 639px) {
  .hero .hero-layout { padding-inline: 20px; }
  .hero .hero-copy { padding-block: 24px; }
  .hero::before { background-position: center, center bottom; }
}
@media (min-width: 2000px) {
  .hero::before { background-size: 100% 100%, 72% auto; }
}
@media print {
  .hero::before, .hero::after, .hero .hero-layout::after { display: none; }
}

/* Andrea valódi portréja: csak a Magamról középső képmezője. */
.about .about-portrait {
  width: 100%;
  max-width: 340px;
  justify-self: center;
  align-self: center;
}
.about .andrea-portrait {
  display: block;
  width: 100%;
  height: 350px;
  object-fit: cover;
  object-position: 50% 18%;
  border: 0;
  box-shadow: none;
  filter: none;
  /* Egyetlen kétdimenziós maszk: az arc és a felsőtest teljesen fedett,
     a külső építészeti háttér az elliptikus peremen tűnik át. */
  -webkit-mask-image: radial-gradient(ellipse 50% 52% at 50% 50%, black 0%, black 90%, rgb(0 0 0 / 85%) 92%, rgb(0 0 0 / 35%) 94%, transparent 96%);
  mask-image: radial-gradient(ellipse 50% 52% at 50% 50%, black 0%, black 90%, rgb(0 0 0 / 85%) 92%, rgb(0 0 0 / 35%) 94%, transparent 96%);
}
@media (min-width: 640px) and (max-width: 999px) {
  .about .andrea-portrait { height: 380px; }
}
@media (max-width: 639px) {
  .about { grid-template-columns: minmax(0, 1fr); }
  .about .about-heading,
  .about .about-portrait,
  .about .about-copy { grid-column: 1; grid-row: auto; }
  .about .about-portrait { max-width: 260px; padding-top: 0; }
  .about .andrea-portrait { height: 300px; }
  .about .about-copy { display: block; }
  .about .about-copy > * + * { margin-top: 16px; }
}

/* Magamról → Szolgáltatások: 100 px-es háttérátmenet, új térköz nélkül.
   40 px a Magamról alsó üres térközében, 60 px a Szolgáltatások tetején. */
.services {
  position: relative;
  isolation: isolate;
}
.services::before {
  content: '';
  position: absolute;
  inset-inline: 0;
  top: -40px;
  height: 100px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(to bottom, var(--background-primary) 0%, var(--background-dark) 100%);
}

/* Egyetlen, szekción belül maradó foglalás. A külön sáv nem fedi a listát. */
.services-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 24px;
  min-width: 0;
}
.services-body .service-list, .services-body .service-content { min-width: 0; }
.services-booking-rail { min-width: 0; align-self: stretch; }
.services-booking-unit {
  position: sticky;
  top: calc(var(--booking-header-height, 104px) + 20px);
  width: 152px;
  max-width: 100%;
  transition: opacity .3s ease, transform .3s ease, visibility 0s;
}
.services-opening-note {
  margin: 15px 0 0;
  color: var(--text-inverse);
  font: 400 13.2px/1.55 Garamond, "Palatino Linotype", Georgia, serif;
  text-align: center;
  overflow-wrap: break-word;
  text-wrap: pretty;
}
.services-floating-book {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 152px;
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid var(--accent);
  border-radius: 999px;
  background: var(--background-secondary);
  color: var(--text-primary);
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.25;
  text-align: center;
  box-shadow: 0 5px 18px rgb(0 0 0 / 10%);
  transition: opacity .3s ease, transform .3s ease, background-color .25s ease, visibility 0s;
}
.services-floating-book:hover { background: var(--surface); }
.services.booking-enhanced .services-booking-unit {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition-delay: 0s, 0s, .3s;
}
.services.booking-enhanced.is-booking-visible .services-booking-unit {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s;
}
@media (min-width: 640px) and (max-width: 999px) {
  .services-body { gap: 18px; }
  .services-booking-unit { width: 136px; }
  .services-floating-book { min-width: 136px; padding-inline: 12px; }
}
@media (max-width: 639px) {
  .services-booking-unit {
    width: 100%;
    top: calc(100vh - 144px - env(safe-area-inset-bottom, 0px));
    top: calc(100svh - 144px - env(safe-area-inset-bottom, 0px));
  }
  .services-body { grid-template-columns: minmax(0, 1fr) clamp(88px, 27vw, 104px); gap: 12px; }
  .services-floating-book {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: 8px 10px;
    font-size: 15px;
    line-height: 1.2;

  }
}
@media (prefers-reduced-motion: reduce) {
  .services-booking-unit, .services-floating-book { transition: none; }
  .services.booking-enhanced .services-booking-unit { transform: none; }
}

/* Kizárólag a három szolgáltatássor egyszeri megjelenése és hoverállapota. */
.services .service-reveal.service-enter-ready {
  opacity: .6;
  transform: translateY(15px);
  transition: opacity .7s ease-out, transform .7s ease-out;
  transition-delay: var(--service-enter-delay, 0ms);
}
.services .service-reveal.service-enter-ready.service-entered {
  opacity: 1;
  transform: translateY(0);
}
.services .service-row { position: relative; }
.services .service-row:hover { border-bottom-color: var(--border-inverse); }
.services .service-row::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  bottom: -1px;
  height: 1px;
  background: var(--accent);
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .4s ease-out;
}
.services .service-content h3 {
  transition: color .3s ease, transform .3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .services .service-row:hover::after { transform: scaleX(1); }
  .services .service-row:hover .service-content h3 {
    color: #FFF4E7;
    transform: translateX(3px);
  }
}
.services .service-row:focus-within::after { transform: scaleX(1); }
.services .service-row:focus-within .service-content h3 { color: #FFF4E7; }
@media (prefers-reduced-motion: reduce) {
  .services .service-reveal.service-enter-ready {
    opacity: 1;
    transform: none;
    transition: none;
    transition-delay: 0s;
  }
  .services .service-row::after { transition: none; }
  .services .service-content h3 { transform: none !important; transition: none; }
}

/* Szolgáltatások: teljes szélességű, eredeti arányú montázs a bal oszlopban. */
.catalogue-heading .services-montage {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 28px;
  object-fit: contain;
  border: 0;
  border-radius: 3px;
  box-shadow: none;
}
@media (max-width: 639px) {
  .catalogue-heading .services-montage {
    /* A régi oldalsó grafika 72 px-es helyét a kép használja fel,
       a címsor és leírás meglévő tördelésének változtatása nélkül. */
    width: calc(100% + 72px);
    max-width: none;
    margin-top: 24px;
  }
}

/* Csak a szolgáltatáskatalógus bal oldali címének és alcímének finomítása. */
.services .catalogue-heading h2 {
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: clamp(29px, 2.65vw, 39px);
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: -.5px;
  color: var(--text-inverse);
}
.services .catalogue-heading h2 em {
  font-style: italic;
  font-weight: 400;
  color: var(--background-secondary);
}
.services .catalogue-heading .catalogue-note {
  font-size: 13px;
  line-height: 1.7;
  margin-top: 16px;
}
@media (min-width: 640px) and (max-width: 999px) {
  .services .catalogue-heading h2 { font-size: clamp(21px, 3.1vw, 30px); }
}
@media (max-width: 639px) {
  .services .catalogue-heading h2 { font-size: clamp(24px, 7.2vw, 34px); }
}

/* A bal oldali három szöveg igazítása a montázs középvonalához. */
.services .catalogue-heading h2,
.services .catalogue-heading .catalogue-note { text-align: center; }
.services .catalogue-heading .catalogue-note { margin-inline: auto; }
@media (max-width: 639px) {
  /* A montázs a meglévő 72 px-es jobb oldali belső teret is kitölti.
     Csak a szövegek középvonalát toljuk ennek felével, tördelésük megtartásával. */
  .services .catalogue-heading h2,
  .services .catalogue-heading .catalogue-note {
    position: relative;
    inset-inline-start: 36px;
  }
}

/* Szolgáltatások → Test és lélek: 100 px, kizárólag háttérrétegen.
   A szakaszhatár fölött 40 px, alatta 60 px; nem foglal el helyet. */
.balance {
  position: relative;
  isolation: isolate;
}
.balance::before {
  content: '';
  position: absolute;
  inset-inline: 0;
  top: -40px;
  height: 100px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(to bottom, var(--background-dark) 0%, var(--background-primary) 100%);
}

/* Test és lélek: középre rendezett főcím, alatta két egyenrangú oszlop. */
.balance .balance-layout {
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}
.balance .balance-heading { text-align: center; }
.balance .benefits-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}
.balance .benefit {
  min-width: 0;
  margin-top: 0;
  padding: 20px 24px;
}
@media (max-width: 639px) {
  .balance .balance-layout { gap: 24px; }
  .balance .balance-heading h2 { font-size: clamp(26px, 6.8vw, 35px); letter-spacing: -1px; }
  .balance .benefits-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 460px;
    gap: 20px;
  }
  .balance .benefit { padding: 18px 20px; }
}

/* Kizárólag a Test és lélek két csempéje; a főcím és az átmenet érintetlen. */
.balance .benefits-grid { align-items: stretch; grid-auto-rows: 1fr; }
.balance .benefit-reveal { min-width: 0; }
.balance .benefit {
  width: 100%;
  height: 100%;
  min-width: 0;
  margin: 0;
  padding: 26px 28px;
  background: var(--surface);
  border: 1px solid rgb(178 133 120 / 28%);
  border-radius: 20px;
  box-shadow: none;
  transition: transform .3s ease, border-color .3s ease, background-color .3s ease;
}
.balance .benefit-title { padding-bottom: 14px; justify-content: center; text-align: center; }
.balance .benefit-title h3 {
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: 44px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.15;
  letter-spacing: -.3px;
}
.balance .benefit-subtitle { margin-top: 14px; font-size: 17.8px; text-align: left; }
.balance .benefit ul { margin-top: 16px; text-align: left; }
.balance .benefit li { padding-block: 9px; font-size: 16px; line-height: 1.7; }
.balance .benefit-reveal.benefit-enter-ready {
  opacity: .6;
  transform: translateY(14px);
  transition: opacity .7s ease-out, transform .7s ease-out;
  transition-delay: var(--benefit-enter-delay, 0ms);
}
.balance .benefit-reveal.benefit-enter-ready.benefit-entered { opacity: 1; transform: translateY(0); }
.balance .benefit-enter-ready li {
  opacity: .35;
  transform: translateY(8px);
  transition: opacity .5s ease-out, transform .5s ease-out;
  transition-delay: var(--benefit-item-delay, 0ms);
}
.balance .benefit-enter-ready.benefit-entered li { opacity: 1; transform: translateY(0); }
@media (hover: hover) and (pointer: fine) {
  .balance .benefit:hover {
    border-color: rgb(178 133 120 / 60%);
    background: var(--surface-soft);
    transform: translateY(-3px);
  }
}
@media (max-width: 999px) {
  .balance .benefit li { font-size: 17px; }
}
@media (max-width: 639px) {
  .balance .benefit { padding: 22px; }
  .balance .benefit-title h3 { font-size: 42px; }
}
@media (max-width: 359px) {
  .balance .benefit-title h3 { font-size: 37px; }
}
@media (prefers-reduced-motion: reduce) {
  .balance .benefit,
  .balance .benefit-reveal.benefit-enter-ready,
  .balance .benefit-enter-ready li {
    opacity: 1;
    transform: none !important;
    transition: none;
    transition-delay: 0s;
  }
}

/* A hangulati szekció egyetlen, középre szerkesztett mondata. */
.pause {
  position: relative;
  isolation: isolate;
  overflow: visible;
  padding-block: 56px;
}
.pause::before {
  content: '';
  position: absolute;
  inset-inline: 0;
  top: 0;
  height: 25px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(to bottom, var(--background-primary) 0%, var(--background-dark) 100%);
}
.pause::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 25px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(to bottom, var(--background-dark) 0%, var(--background-secondary) 100%);
}
.pause .pause-layout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  text-align: center;
}
.pause .pause-statement {
  width: 100%;
  max-width: 1100px;
  margin: 0;
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: clamp(40px, 4.8vw, 70px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.9px;
  color: var(--text-inverse);
  text-wrap: balance;
}
.pause .pause-statement > span { display: block; font-weight: 400; letter-spacing: -.35px; }
.pause .pause-statement em {
  display: block;
  margin-top: 10px;
  font-family: "Palatino Linotype", "Book Antiqua", Garamond, Georgia, serif;
  font-size: .84em;
  font-weight: 400;
  font-style: italic;
  line-height: 1.147;
  letter-spacing: .05px;
  color: var(--background-secondary);
}
@media (max-width: 639px) {
  .pause { padding-block: 44px; }
  .pause .pause-statement { font-size: clamp(29px, 7.8vw, 43px); letter-spacing: -.45px; }
  .pause .pause-statement em { margin-top: 8px; }
}

/* Valódi, helyben beágyazott Cormorant Garamond: file:// mellett sincs fontbetöltési kérés. */
@font-face {
  font-family: "Jelenido Quote Cormorant";
  src: url("../assets/fonts/CormorantGaramond-Variable.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Jelenido Quote Cormorant";
  src: url("../assets/fonts/CormorantGaramond-Italic-Variable.woff2") format("woff2");
  font-weight: 300 700;
  font-style: italic;
  font-display: swap;
}

/* A külön név és a legutolsó, szekcióra szűkített szabály kizárja a régi családok felülírását. */
.pause .pause-statement,
.pause .pause-statement > span,
.pause .pause-statement em {
  font-family: "Jelenido Quote Cormorant", Garamond, serif;
  font-weight: 300;
  font-synthesis: none;
}
.pause .pause-statement > span { font-style: normal; }
.pause .pause-statement em { font-style: italic; }

/* Contact: one personal, telephone-focused invitation. */
.contact-section .contact { grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: clamp(28px, 4vw, 64px); }
.contact-section .contact-option { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: clamp(24px, 3vw, 40px); border: 1px solid rgb(178 133 120 / 45%); border-radius: 20px; background: var(--background-primary); }
.contact-section .contact-option h3 { max-width: 100%; font-family: Garamond, 'Palatino Linotype', serif; font-size: clamp(22px, 2vw, 28px); font-weight: 400; line-height: 1.25; letter-spacing: -.2px; margin: 0; color: var(--text-primary); }
.contact-section .contact-option p { max-width: 58ch; font-size: 15px; line-height: 1.8; margin: 0; color: var(--text-secondary); }
.contact-section .contact-option-phone { max-width: 100%; font-family: Garamond, 'Palatino Linotype', serif; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.3; color: var(--text-primary); white-space: nowrap; }
.contact-section .contact-option-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; max-width: 100%; padding: 11px 26px; border: 1px solid var(--accent); border-radius: 999px; background: var(--button-primary); color: var(--text-inverse); font: 400 20px/1.3 Garamond, 'Palatino Linotype', serif; text-align: center; transition: background-color 250ms ease, transform 250ms ease; }
.contact-section .contact-option-cta:focus-visible, .contact-section .contact-option-phone:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .contact-section a.contact-option-cta:hover { background: var(--button-hover); transform: translateY(-2px); }
}
@media (max-width: 999px) {
  .contact-section .contact { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 639px) {
  .contact-section .contact-option { padding: 24px; gap: 18px; }
  .contact-section .contact-option h3 { font-size: 26px; letter-spacing: normal; }
  .contact-section .contact-option-phone { font-size: clamp(28px, 8vw, 36px); }
}
@media (prefers-reduced-motion: reduce) {
  .contact-section .contact-option-cta { transition: none; }
  .contact-section a.contact-option-cta:hover { transform: none; }
}

/* Contact introduction uses the established Hero serif family. */
.contact-section .contact-intro { align-self: center; min-width: 0; }
.contact-section .contact-intro h2 {
  font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-weight: 400;
  color: var(--text-primary);
}
.contact-section .contact-intro h2 em { font-weight: 400; font-style: italic; color: var(--accent-strong); }

/* Discreet footer maker credit. */
.footer-bottom .footer-credit { display: flex; flex-direction: column; align-items: flex-end; text-align: right; max-width: 100%; margin-left: auto; }
.footer-credit .footer-credit-intro { font-size: 10px; line-height: 1.5; color: var(--text-inverse-secondary); }
.footer-bottom .footer-credit-link { display: inline-flex; align-items: center; gap: 7px; padding: 4px 0 7px; color: var(--text-inverse-secondary); font: 400 27px/1.15 Garamond, "Palatino Linotype", Georgia, serif; transition: color 250ms ease; }
.footer-credit-link svg { flex-shrink: 0; color: var(--accent); transition: transform 250ms ease, color 250ms ease; }
.footer-credit .footer-credit-tagline { border-top: 1px solid var(--accent); padding-top: 7px; font-size: 8px; line-height: 1.6; letter-spacing: 1px; color: var(--text-inverse-secondary); }
.footer-bottom .footer-credit-link:hover { color: var(--text-inverse); }
.footer-credit-link:hover svg { transform: translateX(2px); color: var(--text-inverse); }
.footer-credit-link:focus-visible { outline: 1px solid var(--accent); outline-offset: 4px; border-radius: 2px; }
@media (max-width: 639px) {
  .footer-bottom .footer-credit { align-items: flex-start; text-align: left; margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .footer-bottom .footer-credit-link, .footer-credit-link svg { transition: none; }
  .footer-credit-link:hover svg { transform: none; }
}

/* Gentle, automatic maker-signature animations. */
.footer-bottom .footer-credit-link { transition: color 300ms ease; }
.footer-credit-name { display: inline-block; color: inherit; }
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .footer-credit-name {
    color: transparent;
    background-color: var(--text-inverse-secondary);
    transition: background-color 300ms ease;
    background-image: linear-gradient(100deg, transparent 42%, rgb(178 133 120 / 25%) 47%, var(--accent) 50%, rgb(178 133 120 / 25%) 53%, transparent 58%);
    background-size: 300% 100%;
    background-repeat: no-repeat;
    background-position: 100% 0;
    -webkit-background-clip: text;
    background-clip: text;
    animation: petiweb-shimmer 3s ease-in-out infinite;
  }
}
.footer-credit-link .footer-credit-star {
  color: var(--accent);
  transform-origin: center;
  animation: petiweb-star-breathe 4s ease-in-out infinite;
  transition: color 300ms ease, opacity 300ms ease;
  opacity: .8;
}
.footer-credit-link:hover .footer-credit-star { color: var(--accent); opacity: 1; }
@keyframes petiweb-shimmer {
  0%, 65% { background-position: 100% 0; }
  100% { background-position: 0% 0; }
}
@keyframes petiweb-star-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-credit-name { animation: none; background-image: none; }
  .footer-credit-link .footer-credit-star { animation: none; transform: none; transition: none; }
  .footer-bottom .footer-credit-link { transition: none; }
}

@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .footer-credit-link:hover .footer-credit-name { background-color: var(--text-inverse); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-credit-name { transition: none; }
}

/* Keep all maker-signature lines on one shared center axis. */
.footer-bottom .footer-credit { align-items: center; text-align: center; }
.footer-bottom .footer-credit-link { align-self: center; justify-content: center; }

/* Andrea's final introduction: readable paragraphs within the existing about grid. */
.about .about-copy { min-width: 0; }
.about .about-copy > p:not(.sample-label) { font-family: Garamond, "Palatino Linotype", "Book Antiqua", Georgia, serif; font-size: 18px; font-weight: 400; line-height: 1.65; margin-top: 18px; }
.about .about-copy .about-emphasis { color: var(--accent-strong); font-style: italic; }
.about .about-copy > p.about-closing { color: var(--accent-strong); font-weight: 400; font-style: italic; }
@media (max-width: 639px) {
  .about .about-copy > p:not(.sample-label) { font-size: 18px; line-height: 1.65; }
}

/* Magamról: naturally sized photograph and introduction share one grid row. */
.about.about-with-photo {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  grid-template-rows: auto;
  column-gap: clamp(36px, 5vw, 72px);
  row-gap: 22px;
  align-items: stretch;
}
.about.about-with-photo .about-photo-composition {
  grid-column: 1; grid-row: 1;
  width: calc(100% + 24px);
  max-width: 560px;
  margin-left: -24px;
  align-self: start;
  min-width: 0;
}
.about.about-with-photo .about-integrated-photo {
  display: block;
  width: 100%; height: auto;
  border: 0; border-radius: 0; box-shadow: none; filter: none;
  -webkit-mask-image: linear-gradient(to right, transparent, black 9%, black 73%, transparent), linear-gradient(to bottom, transparent, black 10%, black 80%, transparent);
  mask-image: linear-gradient(to right, transparent, black 9%, black 73%, transparent), linear-gradient(to bottom, transparent, black 10%, black 80%, transparent);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}
.about.about-with-photo .about-copy { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; padding-top: 0; }
.about.about-with-photo .about-copy > p:not(.sample-label) { font-size: 20px; line-height: 1.7; margin-top: 0; }
@media (max-width: 999px) and (min-width: 640px) {
  .about.about-with-photo { column-gap: 30px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
  .about.about-with-photo .about-photo-composition { width: calc(100% + 12px); margin-left: -12px; }
}
@media (max-width: 639px) {
  .about.about-with-photo { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; row-gap: 22px; }
  .about.about-with-photo .about-photo-composition { grid-column: 1; grid-row: 2; width: 100%; max-width: 340px; margin: 0; justify-self: center; }
  .about.about-with-photo .about-copy { grid-column: 1; grid-row: 2; padding-top: 0; gap: 18px; }
  .about.about-with-photo .about-copy > p:not(.sample-label) { font-size: 19px; line-height: 1.65; }
}

/* Magamról quote: 12.5% larger, centered over its full-width divider. */
.about.about-with-photo .about-copy > blockquote {
  width: 100%;
  min-width: 0;
  align-self: stretch;
  text-align: center;
  font-size: clamp(28.125px, 2.475vw, 37.125px);
  white-space: normal;
  overflow-wrap: break-word;
}
@media (min-width: 640px) and (max-width: 999px) {
  .about.about-with-photo .about-copy > blockquote { font-size: 28.125px; }
}
@media (max-width: 639px) {
  .about.about-with-photo .about-copy > blockquote { font-size: 32.625px; }
}

/* Only the closing about paragraph: slightly smaller, balanced wrapping. */
.about.about-with-photo .about-copy > p.about-closing {
  font-size: 19px;
  letter-spacing: -.1px;
  text-wrap: pretty;
  text-wrap: balance;
}
@media (max-width: 639px) {
  .about.about-with-photo .about-copy > p.about-closing {
    font-size: 18px;
    letter-spacing: normal;
    text-wrap: pretty;
  }
}

/* Header brand: a full name on wide screens, a compact hierarchy where needed. */
.header .brand-name { font-size: 32px; }
.header .brand-service { font: inherit; }
@media (max-width: 1199px) {
  .header .brand-name { font-size: 30px; }
  .header .brand-service { display: block; margin-top: 2px; font-size: .72em; line-height: 1.05; }
}
@media (max-width: 639px) {
  .header .brand-name { font-size: 27px; }
  .header .brand-type { gap: 5px; }
}
@media (max-width: 359px) {
  .header .brand-name { font-size: 24px; }
}

/* Services price list: keep each duration and price paired, including both full-body options. */
.services .service-details { min-width: 0; gap: 12px; }
.services .service-rate { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; width: 100%; min-width: 0; }
.services .service-rate .duration { font-size: 17px; white-space: nowrap; }
.services .service-rate .price { font-size: 14px; line-height: 1.4; color: var(--text-inverse); white-space: nowrap; margin-left: 0; }
@media (max-width: 999px) {
  .services .service-details { flex-direction: column; align-items: flex-start; flex-wrap: nowrap; gap: 10px; }
  .services .service-rate { max-width: 260px; }
}

/* Services: full-height left rail bounds the sticky text and montage. */
.services .catalogue-sticky-rail { min-width: 0; align-self: stretch; }
@media (min-width: 1000px) {
  .services .catalogue-layout { align-items: stretch; }
  .services .catalogue-sticky-rail > .catalogue-heading {
    position: sticky;
    top: calc(var(--booking-header-height, 104px) + 20px);
    display: flow-root;
  }
  .services .catalogue-sticky-rail .services-montage {
    max-height: calc(100vh - var(--booking-header-height, 104px) - 300px);
    max-height: calc(100svh - var(--booking-header-height, 104px) - 300px);
    object-fit: contain;
  }
}
@media (max-width: 999px), (max-height: 480px) {
  .services .catalogue-sticky-rail > .catalogue-heading { position: relative; top: auto; }
  .services .catalogue-sticky-rail .services-montage { max-height: none; }
}
@media print {
  .services .catalogue-sticky-rail > .catalogue-heading { position: static; }
  .services .catalogue-sticky-rail .services-montage { max-height: none; }
}

/* Magamról mobile: quote, photograph, then all paragraphs in separate flow rows. */
@media (max-width: 639px) {
  .about.about-with-photo {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    grid-auto-flow: row;
    grid-auto-rows: auto;
    gap: 22px 0;
    height: auto;
    min-height: 0;
  }
  .about.about-with-photo .about-copy {
    display: contents;
  }
  .about.about-with-photo .about-copy > blockquote {
    grid-column: 1;
    grid-row: 1;
    position: static;
    width: 100%;
    margin: 0;
    font-size: clamp(27px, 7.5vw, 32px);
    line-height: 1.25;
    text-align: center;
    align-self: start;
  }
  .about.about-with-photo .about-photo-composition {
    grid-column: 1;
    grid-row: 2;
    position: static;
    z-index: auto;
    width: 100%;
    max-width: 340px;
    height: auto;
    min-height: 0;
    margin: 0;
    justify-self: center;
  }
  .about.about-with-photo .about-integrated-photo {
    position: static;
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  .about.about-with-photo .about-copy > p:not(.sample-label) {
    grid-column: 1;
    grid-row: auto;
    position: static;
    min-width: 0;
    width: 100%;
    margin: 0;
    font-size: 19px;
    line-height: 1.65;
    overflow-wrap: break-word;
  }
  .about.about-with-photo .about-copy > p.about-closing { font-size: 18px; }
}

/* Hero location: a quiet note within the existing text column. */
.hero-copy .hero-location {
  width: 100%;
  max-width: 500px;
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid rgb(115 75 81 / 20%);
  color: var(--accent-strong);
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: break-word;
}
