/* ===================================================== tokens */
:root {
  --paper:      #FBF6F4;
  --ink:        #19181b;
  --coral:      #FF7676;
  --blush:      #FBEAE7;
  --sand:       #F1E2DE;
  --muted:      #626262;
  --w72:        rgba(255, 255, 255, .72);
  --w55:        rgba(255, 255, 255, .55);
  --line:       rgba(25, 24, 27, .14);
  --line-mid:   rgba(25, 24, 27, .16);
  --line-dark:  rgba(25, 24, 27, .18);
  --line-light: rgba(255, 255, 255, .14);

  --font-display: 'Archivo', sans-serif;
  --font-body:    'Jost', system-ui, sans-serif;

  --container: 1540px;
  --gutter: clamp(24px, 4.5vw, 72px);
  --ease: cubic-bezier(.16, .84, .28, 1);
  --r-block: 36px;
  --r-card: 26px;
}

/* ===================================================== base */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: var(--font-body); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { max-width: 100%; height: auto; }
a { color: var(--coral); text-decoration: none; }
a:hover { color: var(--ink); }
h1, h2, h3 { letter-spacing: -.025em; font-weight: 400; }
.container { max-width: calc(var(--container)); margin-inline: auto; padding-inline: var(--gutter); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

/* type patterns from the design: archivo display + jost ui */
.h1 { font-family: var(--font-display); font-size: clamp(38px, 4.6vw, 68px); line-height: 1.05; }
.h2 { font-family: var(--font-display); font-size: clamp(30px, 3.4vw, 48px); line-height: 1.1; }
.h3 { font-family: var(--font-display); font-size: clamp(24px, 2.4vw, 34px); line-height: 1.16; }
.h2 em, .h1 em, .h3 em { font-style: italic; color: var(--coral); }
.eyebrow { font: 400 13px var(--font-body); letter-spacing: .28em; color: var(--coral); text-transform: uppercase; }
.eyebrow--tight { letter-spacing: .22em; font-size: 14px; }
.lead { font: 400 20px/1.75 var(--font-body); color: var(--muted); text-wrap: pretty; }
.body-copy { font: 400 18px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.body-lg { font: 400 21px/1.6 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }

/* section head with the rule line running to the edge */
.sec-head { display: flex; align-items: center; gap: 16px; }
.sec-head::after { content: ""; flex: 1; height: 1px; background: var(--line-mid); }
.sec-head--eyebrow { gap: 14px; }

/* ===================================================== buttons */
/* pill buttons fill from the center via background-size, per the design */
.btn { display: inline-block; padding: 17px 34px; border-radius: 999px; font: 400 16px var(--font-body); letter-spacing: .03em; white-space: nowrap; transition: background-size .5s var(--ease), color .35s ease, border-color .35s ease; cursor: pointer; }
.btn--dark { background: linear-gradient(var(--coral), var(--coral)) no-repeat center/0% 100%, var(--ink); color: #fff; }
.btn--dark:hover { background-size: 100% 100%; color: var(--ink); }
.btn--coral { background: linear-gradient(var(--ink), var(--ink)) no-repeat center/0% 100%, var(--coral); color: #fff; }
.btn--coral:hover { background-size: 100% 100%; color: #fff; }
.btn--outline { border: 1px solid rgba(25, 24, 27, .22); background: linear-gradient(var(--ink), var(--ink)) no-repeat center/0% 100%; color: var(--ink); padding: 17px 32px; }
.btn--outline:hover { background-size: 100% 100%; color: #fff; border-color: var(--ink); }
.btn--outline-light { border: 1px solid rgba(255, 255, 255, .45); background: linear-gradient(var(--coral), var(--coral)) no-repeat center/0% 100%; color: #fff; }
.btn--outline-light:hover { background-size: 100% 100%; border-color: var(--coral); }

/* underline arrow link */
.link-arrow { display: inline-flex; align-items: center; gap: 14px; padding-bottom: 8px; border-bottom: 1px solid rgba(255, 118, 118, .55); color: var(--ink); font: 400 16px var(--font-body); letter-spacing: .03em; transition: color .3s ease, border-color .3s ease, gap .3s ease; }
.link-arrow span { color: var(--coral); }
.link-arrow:hover { color: var(--coral); border-color: var(--coral); gap: 22px; }

/* ===================================================== brand */
.brand { display: flex; flex-direction: column; gap: 5px; line-height: 1; color: var(--ink); white-space: nowrap; transition: color .35s ease, transform .25s var(--ease); }
.brand:hover { color: var(--coral); }
.brand:active { transform: scale(.955); }
.brand__top { font-family: var(--font-display); font-size: 23px; line-height: 1; letter-spacing: .22em; color: var(--ink); }
.brand__sub { font-family: var(--font-body); font-size: 12.5px; line-height: 1; letter-spacing: .3em; padding-left: 2px; }
.brand__hl { color: var(--coral); }
/* the sub line inherits the brand color, so the dark footer needs the whole
   lockup lifted to white - otherwise "in beauty" disappears on the dark card */
.brand--light { color: #fff; }
.brand--light .brand__top { color: #fff; font-size: 25px; }
.brand--light .brand__sub { font-size: 13px; }
.brand--light:hover .brand__top { color: var(--coral); }

/* ===================================================== nav */
.nav-shell { position: sticky; top: 0; z-index: 50; padding: 14px 0; }
.nav-pill { padding: 14px clamp(20px, 2.2vw, 34px); display: flex; align-items: center; justify-content: space-between; gap: clamp(14px, 2vw, 32px); border-radius: 999px; background: rgba(251, 246, 244, 0); box-shadow: 0 0 0 rgba(25, 24, 27, 0); transition: background .35s ease, box-shadow .35s ease; }
.nav-pill.is-frosted { background: rgba(251, 246, 244, .94); box-shadow: 0 10px 30px -18px rgba(25, 24, 27, .35); }
.nav-desktop { display: flex; align-items: center; gap: clamp(16px, 1.6vw, 30px); min-width: 0; }
.nav-link { font: 400 clamp(14px, 1.05vw, 16px) var(--font-body); letter-spacing: .05em; white-space: nowrap; color: var(--muted); padding-bottom: 4px; border-bottom: 1px solid transparent; transition: color .2s ease; display: flex; align-items: center; gap: 7px; }
.nav-link:hover { color: var(--coral); }
.nav-link.is-active { color: var(--ink); border-bottom-color: var(--coral); }
.nav-cta { padding: 14px clamp(18px, 1.8vw, 30px); font-size: clamp(14px, .95vw, 15px); letter-spacing: .08em; }

.nav-dd { position: relative; display: flex; align-items: center; }
.nav-dd__caret { display: block; width: 5px; height: 5px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg) translateY(-1px); transition: transform .3s ease; }
.nav-dd__menu { position: absolute; top: 100%; left: -14px; padding-top: 16px; min-width: 224px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .24s ease, transform .28s var(--ease), visibility 0s linear .24s; }
.nav-dd:hover .nav-dd__menu, .nav-dd:focus-within .nav-dd__menu { opacity: 1; visibility: visible; transform: none; transition: opacity .24s ease, transform .28s var(--ease), visibility 0s; }
.nav-dd:hover .nav-dd__caret, .nav-dd:focus-within .nav-dd__caret { transform: rotate(225deg) translateY(-1px); }
.nav-dd__card { padding: 10px; border-radius: 20px; background: var(--paper); box-shadow: 0 18px 44px -20px rgba(25, 24, 27, .34); display: flex; flex-direction: column; gap: 2px; }
.nav-dd__card a { padding: 12px 16px; border-radius: 14px; font: 400 15px var(--font-body); color: var(--ink); white-space: nowrap; transition: background .25s ease, color .25s ease; }
.nav-dd__card a:hover { background: var(--blush); color: var(--coral); }

.nav-burger { display: none; align-items: center; gap: 12px; padding: 12px 22px; border-radius: 999px; border: 0; background: var(--ink); color: #fff; font: 400 14px var(--font-body); letter-spacing: .14em; white-space: nowrap; cursor: pointer; }
.nav-burger__lines { display: flex; flex-direction: column; gap: 4px; }
.nav-burger__lines span { display: block; width: 18px; height: 1px; background: #fff; }

.mobile-nav { position: fixed; inset: 0; z-index: 80; background: var(--paper); padding: 22px var(--gutter); display: flex; flex-direction: column; gap: 8px; overflow: auto; }
.mobile-nav[hidden] { display: none; }
.mobile-nav__head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 32px; }
.mobile-nav__close { padding: 12px 24px; border-radius: 999px; border: 1px solid rgba(25, 24, 27, .22); background: none; color: var(--ink); font: 400 14px var(--font-body); letter-spacing: .12em; cursor: pointer; }
.mobile-nav__link { padding: 22px 0; border-bottom: 1px solid rgba(25, 24, 27, .12); color: var(--ink); font-family: var(--font-display); font-size: clamp(26px, 7vw, 38px); letter-spacing: -.018em; }
.mobile-nav__link:hover { color: var(--coral); }
.mobile-nav__sublink { padding: 15px 0 15px 22px; border-bottom: 1px solid rgba(25, 24, 27, .12); color: var(--muted); font: 400 19px var(--font-body); }
.mobile-nav__sublink:hover { color: var(--coral); }
.mobile-nav__contact { display: flex; flex-direction: column; gap: 10px; padding-top: 36px; }
.mobile-nav__contact .eyebrow { letter-spacing: .24em; }
.mobile-nav__phone { font: 400 20px var(--font-body); color: var(--ink); }
.mobile-nav__mail, .mobile-nav__addr { font: 400 17px var(--font-body); color: var(--muted); }

/* ===================================================== layout grids */
.col12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; align-items: center; }
.col2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 3.4vw, 56px); align-items: center; }
.col2--offset { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 4vw, 64px); align-items: start; }
.col3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 28px); }

/* ===================================================== hero (front page) */
.hero { position: relative; height: min(80vh, 780px); min-height: 580px; border-radius: var(--r-block); overflow: hidden; background: var(--ink); }
.hero__img { position: absolute; inset: 0; }
.hero__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero__scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(25, 24, 27, .86) 0%, rgba(25, 24, 27, .6) 45%, rgba(25, 24, 27, .25) 100%); pointer-events: none; }
.hero__inner { position: relative; width: 100%; height: 100%; padding: 0 clamp(28px, 5vw, 84px); display: flex; flex-direction: column; justify-content: center; gap: 30px; }
.hero__tag { display: flex; align-items: center; gap: 12px; }
.hero__tag .eyebrow { letter-spacing: .28em; }
.hero__title { max-width: 1000px; color: #fff; }
.hero__lead { max-width: 560px; font: 400 20px/1.8 var(--font-body); color: rgba(255, 255, 255, .78); text-wrap: pretty; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: var(--coral); flex: none; }

/* typing rotator: two lines share the grid cell, css-only */
.type-wrap { display: inline-grid; justify-items: start; font-style: italic; color: var(--coral); }
.type-wrap span { grid-area: 1 / 1; display: block; width: max-content; max-width: 0; overflow: hidden; white-space: nowrap; border-right: .05em solid var(--coral); }
.type-a { animation: psTypeA 9.4s steps(17, end) infinite; }
.type-b { animation: psTypeB 9.4s steps(13, end) infinite; }

/* ===================================================== page hero (subpages) */
.page-hero { position: relative; width: 100%; aspect-ratio: 2.1; max-height: 620px; min-height: 380px; border-radius: var(--r-block); overflow: hidden; background: var(--ink); }
.page-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.page-hero__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(25, 24, 27, .12) 0%, rgba(25, 24, 27, .34) 45%, rgba(25, 24, 27, .72) 78%, rgba(25, 24, 27, .82) 100%); }
.page-hero__inner { position: relative; height: 100%; padding: clamp(32px, 5vw, 72px) clamp(32px, 5vw, 72px) clamp(48px, 7vw, 104px); display: flex; flex-direction: column; justify-content: flex-end; gap: 22px; }
.page-hero__tags { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.page-hero__tags span { font: 400 13px var(--font-body); letter-spacing: .24em; color: rgba(255, 255, 255, .74); text-transform: uppercase; }
.page-hero__tags span:first-child { color: var(--coral); }
.page-hero__title { font-family: var(--font-display); font-size: clamp(38px, 4.6vw, 68px); line-height: 1.05; color: #fff; }

/* ===================================================== marquee */
.marquee { padding: 30px 0; border-top: 1px solid rgba(25, 24, 27, .12); border-bottom: 1px solid rgba(25, 24, 27, .12); overflow: hidden; }
.marquee__track { display: flex; width: max-content; align-items: center; gap: clamp(28px, 3.4vw, 56px); animation: psMarquee 42s linear infinite; }
.marquee__item { display: flex; align-items: center; gap: clamp(28px, 3.4vw, 56px); }
.marquee__item span:first-child { font-family: var(--font-display); font-size: clamp(21px, 2.11vw, 32px); color: var(--ink); white-space: nowrap; }

/* ===================================================== dark band */
.band { position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--ink); color: #fff; }
.band .h2 { color: #fff; }
.band__bg { position: absolute; inset: 0; }
.band__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.band__scrim { position: absolute; inset: 0; }
.band__inner { position: relative; }
.band__list { display: flex; flex-direction: column; gap: 2px; max-width: 560px; }
.band__row { display: flex; gap: 18px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line-light); }
.band__row .dot { width: 6px; height: 6px; }
.band__row span:last-child { font: 400 16px/1.5 var(--font-display); color: #fff; }

/* ===================================================== stats */
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); padding: clamp(32px, 4.4vw, 68px) 0; }
.stats__item { padding: 0 clamp(20px, 2.6vw, 44px); display: flex; flex-direction: column; gap: 18px; }
.stats__item + .stats__item { border-left: 1px solid var(--line); }
.stats__item .eyebrow { letter-spacing: .24em; }
.stats__num { font-family: var(--font-display); font-weight: 300; font-size: clamp(54px, 6.6vw, 108px); line-height: 1.02; white-space: nowrap; color: var(--ink); }
.stats__num em { font-style: normal; color: var(--coral); }

/* ===================================================== cards / media */
.media-card { border-radius: var(--r-card); overflow: hidden; background: var(--sand); }
.media-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zoom img { transition: transform 1.3s var(--ease); }
.zoom:hover img { transform: scale(1.05); }
.soft-card { border-radius: 32px; background: var(--blush); }
.white-card { border-radius: var(--r-card); background: #fff; }

/* numbered rule row before feature blocks */
.num-rule { display: flex; align-items: baseline; gap: 18px; }
.num-rule span:first-child { font: 400 15px var(--font-body); letter-spacing: .2em; color: var(--coral); }
.num-rule::after { content: ""; flex: 1; height: 1px; background: var(--line-mid); }

/* ===================================================== reveals */
/* reveals ride an io class so every browser gets them - hidden state must be instant */
.js .rv { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js .rv.is-in { opacity: 1; transform: none; }
.js .rv-img { clip-path: inset(0 50% 0 50%); transition: clip-path 1s var(--ease); }
.js .rv-img.is-in { clip-path: inset(0 0 0 0); }
.js .rv:not(.is-in), .js .rv-img:not(.is-in) { transition-delay: 0s !important; }

@media (prefers-reduced-motion: reduce) {
  .js .rv, .js .rv-img { opacity: 1; transform: none; clip-path: none; transition: none; }
  .marquee__track, .type-a, .type-b { animation: none !important; }
  .type-wrap span { max-width: 100%; border-right: 0; }
  .type-wrap span:last-child { display: none; }
  html { scroll-behavior: auto; }
}

/* ===================================================== footer */
.site-foot { padding: clamp(56px, 8vw, 100px) 0 40px; }
.site-foot__card { padding: clamp(44px, 6vw, 76px) clamp(24px, 5vw, 80px) 40px; border-radius: var(--r-block); background: var(--ink); display: flex; flex-direction: column; gap: 44px; }
.site-foot__top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 36px; }
.site-foot__brandcol { display: flex; flex-direction: column; gap: 14px; }
.site-foot__tagline { max-width: 250px; font: 400 15px/1.75 var(--font-body); color: var(--w55); }
.site-foot__cols { display: flex; flex-wrap: wrap; gap: clamp(28px, 4vw, 64px); }
.site-foot__col { display: flex; flex-direction: column; gap: 10px; }
.site-foot__label { font: 400 13px var(--font-body); letter-spacing: .22em; color: var(--coral); margin-bottom: 4px; }
.site-foot__col a, .site-foot__col span:not(.site-foot__label) { font: 400 15px var(--font-body); color: var(--w72); }
.site-foot__col a:hover { color: var(--coral); }
.site-foot__bottom { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-top: 22px; border-top: 1px solid var(--line-light); font: 400 13px var(--font-body); letter-spacing: .14em; color: rgba(255, 255, 255, .5); }
.site-foot__credit a { color: rgba(255, 255, 255, .72); }
.site-foot__credit a:hover { color: var(--coral); }

/* ===================================================== responsive */
@media (max-width: 1150px) {
  .col2, .col2--offset, .col12 { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .col12 > *, .col2 > *, .col3 > * { grid-column: auto; grid-row: auto; margin-top: 0; }
  .col3 { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .col3 > * { border-left: none; padding-left: 0; padding-right: 0; }
  .hero { height: auto; min-height: 0; padding-top: 132px; padding-bottom: 64px; }
  .page-hero { aspect-ratio: auto; height: auto; min-height: min(74vw, 520px); max-height: none; display: flex; flex-direction: column; justify-content: flex-end; }
  .page-hero__inner { height: auto; min-height: min(62vw, 340px); padding-top: clamp(96px, 26vw, 180px); }
  .stats { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .stats__item + .stats__item { border-left: none; padding-left: 0; }
}
@media (max-width: 1000px) {
  .nav-desktop { display: none; }
  .nav-burger { display: flex; }
}
@media (max-width: 900px) {
  .svc-img { order: -1; }
}
@media (max-width: 760px) {
  .site-foot__top, .site-foot__cols { flex-direction: column; gap: 40px; }
  .site-foot__cols { gap: 32px; }
  .site-foot__bottom { flex-direction: column; gap: 12px; align-items: flex-start; }
}
@media (max-width: 620px) {
  .page-hero__title { font-size: clamp(30px, 8vw, 44px); }
}
@media (max-width: 560px) {
  .hero__title { font-size: clamp(26px, 8.2vw, 39px); }
}

/* ===================================================== shared subpage parts */
.page-hero--wide { aspect-ratio: 2.35; max-height: 560px; min-height: 360px; }
.page-hero__inner--tight { gap: 18px; }

/* pillar cards: grid on desktop, scroll-snap strip under 1150px */
.pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 28px); align-items: stretch; }
.pillar { padding: clamp(28px, 3vw, 38px); border-radius: var(--r-card); display: flex; flex-direction: column; gap: 16px; }
.pillar--blush { background: var(--blush); }
.pillar--white { background: #fff; }
.pillar__label { font: 400 15px var(--font-body); letter-spacing: .22em; color: var(--ink); }
.pillar__title { font: 400 17px/1.6 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.pillar__copy { font: 400 15.5px/1.75 var(--font-body); color: var(--muted); text-wrap: pretty; }
.dot--lg { width: 8px; height: 8px; }
@media (max-width: 1150px) {
  .pillars { display: flex; align-items: stretch; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 24px; gap: 16px; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); padding-bottom: 18px; -webkit-overflow-scrolling: touch; }
  .pillars > * { flex: 0 0 auto; width: min(76%, 320px); scroll-snap-align: start; }
  .pillars::-webkit-scrollbar { height: 4px; }
  .pillars::-webkit-scrollbar-thumb { background: rgba(255, 118, 118, .5); border-radius: 99px; }
  .pillars::-webkit-scrollbar-track { background: rgba(25, 24, 27, .08); border-radius: 99px; }
}

/* device cards on the gépek overview */
.device-card { display: flex; flex-direction: column; gap: 24px; color: var(--ink); transition: transform .5s var(--ease); scroll-margin-top: 120px; }
.device-card:hover { transform: translateY(-6px); color: var(--ink); }
.device-card__media { position: relative; aspect-ratio: 1.5; border-radius: var(--r-card); overflow: hidden; background: var(--sand); }
.device-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.device-card__badge { position: absolute; left: 22px; bottom: 22px; padding: 11px 24px; border-radius: 999px; background: rgba(251, 246, 244, .94); color: var(--ink); font: 400 13px var(--font-body); letter-spacing: .2em; }
.device-card__body { display: flex; flex-direction: column; gap: 16px; }
.device-card__body p { font: 400 16.5px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.device-card__body .link-arrow { align-self: flex-start; margin-top: 6px; }

/* white info cards on the device pages */
.info-card { padding: clamp(28px, 3vw, 40px); border-radius: var(--r-card); background: #fff; display: flex; flex-direction: column; gap: 16px; }
.info-card p { font: 400 16px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }

/* blush effects panel with the soft rose in the corner */
.fx-panel { padding: clamp(44px, 6vw, 88px) clamp(28px, 5vw, 72px); position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--blush); }
.fx-panel__rose { position: absolute; right: -7%; bottom: -34%; width: min(520px, 46%); opacity: .13; pointer-events: none; }
.fx-panel .sec-head { padding-bottom: clamp(28px, 3.4vw, 44px); }
.fx-panel__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(28px, 4vw, 64px); position: relative; }
.check-row { display: flex; align-items: baseline; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.check-row span:last-child { font: 400 17.5px/1.6 var(--font-body); color: var(--ink); }
@media (max-width: 1150px) {
  .fx-panel__grid { grid-template-columns: minmax(0, 1fr); }
}

/* dark contact band at the foot of device pages */
.contact-band { margin: clamp(56px, 8vw, 110px) 0 clamp(24px, 3vw, 40px); position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--ink); }
.contact-band__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.contact-band__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(25, 24, 27, .12) 0%, rgba(25, 24, 27, .34) 45%, rgba(25, 24, 27, .72) 78%, rgba(25, 24, 27, .82) 100%); }
.contact-band__inner { position: relative; padding: clamp(48px, 6.5vw, 96px) clamp(28px, 5vw, 72px); display: flex; flex-direction: column; gap: clamp(32px, 4vw, 56px); }
.contact-band__head { display: flex; flex-direction: column; gap: 16px; }
.contact-band__title { max-width: 820px; color: #fff; text-wrap: balance; }
.contact-band__cols { gap: clamp(28px, 3.4vw, 56px); align-items: start; }
.contact-band__col { display: flex; flex-direction: column; gap: 16px; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .24); }
.contact-band__col p { font: 400 17px/1.8 var(--font-body); color: rgba(255, 255, 255, .74); text-wrap: pretty; }
.contact-band__cta { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(20px, 2.6vw, 36px); }
.contact-band__cta span { font: 400 17px var(--font-body); color: rgba(255, 255, 255, .74); }

.btn--white { background: linear-gradient(var(--coral), var(--coral)) no-repeat center/0% 100%, #fff; color: var(--ink); }
.btn--white:hover { background-size: 100% 100%; color: var(--ink); }

.page-hero--right .page-hero__inner { align-items: flex-end; text-align: right; gap: 16px; }

/* ===================================================== kozmetikai gépek */
.gp-intro { padding: clamp(56px, 8vw, 120px) 0 clamp(40px, 5vw, 72px); }
.gp-intro__head { display: flex; flex-direction: column; gap: 20px; }
.gp-intro__body { display: flex; flex-direction: column; gap: 28px; }
.gp-tech { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding-top: 6px; border-top: 1px solid var(--line); }
.gp-tech__label { flex: none; width: 100%; padding-bottom: 2px; font: 400 13px var(--font-body); letter-spacing: .22em; color: var(--coral); }
.gp-tech__list { font: 400 16px/1.75 var(--font-body); color: var(--ink); }
.gp-pillars { padding-bottom: clamp(56px, 8vw, 110px); }
.gp-devices { padding: clamp(44px, 5vw, 72px) 0 clamp(56px, 8vw, 110px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 4vw, 64px); }
@media (max-width: 900px) {
  .gp-devices { grid-template-columns: minmax(0, 1fr); }
}

/* ===================================================== device pages */
.coral { color: var(--coral); }
.dev-why { padding: clamp(56px, 8vw, 120px) 0 clamp(44px, 6vw, 88px); }
.dev-sec-head { padding-bottom: clamp(32px, 4vw, 52px); }
.dev-cards { padding-bottom: clamp(56px, 8vw, 110px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 28px); }
.dev-split { align-items: center; }
.dev-split__text { display: flex; flex-direction: column; gap: 20px; }
.dev-split__text p { font: 400 17px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.dev-split__img { aspect-ratio: 1.5; }
.dev-split--second { padding: clamp(28px, 3.4vw, 56px) 0 clamp(56px, 8vw, 110px); }
@media (max-width: 900px) {
  .dev-cards { grid-template-columns: minmax(0, 1fr); }
}

/* hpl page: numbered benefits + treatment head rows */
.dev-cards--flat { padding-bottom: 0; }
.num-list { padding: clamp(36px, 4.4vw, 64px) 0 clamp(56px, 8vw, 110px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(28px, 4vw, 64px); }
.num-row { display: flex; gap: 18px; align-items: baseline; padding: 22px 0; border-bottom: 1px solid var(--line); }
.num-row span:first-child { flex: none; font: 400 13px var(--font-body); letter-spacing: .18em; color: var(--coral); }
.num-row span:last-child { font: 400 17.5px/1.6 var(--font-body); color: var(--ink); text-wrap: pretty; }
.dev-fx-head { display: flex; flex-direction: column; gap: 20px; padding-bottom: clamp(40px, 5vw, 72px); }
.dev-fx-head .body-copy { max-width: 640px; }
.hpl-head { gap: clamp(28px, 3.4vw, 56px); }
.hpl-head--next { margin-top: clamp(48px, 7vw, 110px); }
.hpl-head__text { grid-row: 1; grid-column: 1 / span 5; display: flex; flex-direction: column; gap: 22px; }
.hpl-head__text--right { grid-column: 8 / span 5; }
.hpl-head__img { grid-row: 1; grid-column: 7 / span 6; aspect-ratio: 1.3; }
.hpl-head__img--left { grid-column: 1 / span 6; }
.hpl-head__title { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.hpl-head__title span { font: 400 17px var(--font-body); letter-spacing: .05em; color: var(--coral); }
.hpl-head__list { display: flex; flex-direction: column; }
.hpl-head__row { display: flex; align-items: baseline; gap: 16px; padding: 15px 0; border-bottom: 1px solid rgba(25, 24, 27, .12); }
.hpl-head__row span:last-child { font: 400 16.5px/1.6 var(--font-body); color: var(--muted); }
@media (max-width: 1150px) {
  .num-list { grid-template-columns: minmax(0, 1fr); gap: 0; }
}

/* led maszk page: red/blue mask rows */
.info-card--blush { background: var(--blush); }
.num-rule--label span:first-child { font-size: 13px; letter-spacing: .24em; }
.led-mask { gap: clamp(28px, 3.4vw, 56px); align-items: start; }
.led-mask--next { margin-top: clamp(56px, 8vw, 120px); }
.led-mask__img { grid-row: 1; grid-column: 1 / span 5; aspect-ratio: 1.05; }
.led-mask__img--right { grid-column: 8 / span 5; }
.led-mask__text { grid-row: 1; grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 22px; }
.led-mask__text--left { grid-column: 1 / span 6; }
.led-mask__para { font: 400 17px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.led-mask__fxlabel { margin-top: 8px; font: 400 13px var(--font-body); letter-spacing: .22em; color: var(--coral); }
.led-mask__fx { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(20px, 2.6vw, 36px); }
.led-mask__row { display: flex; align-items: baseline; gap: 14px; padding: 14px 0; border-bottom: 1px solid rgba(25, 24, 27, .12); }
.led-mask__row span:last-child { font: 400 16px/1.55 var(--font-body); color: var(--ink); }
.led-mask__outro { margin-top: 8px; font: 400 16.5px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
@media (max-width: 620px) {
  .led-mask__fx { grid-template-columns: minmax(0, 1fr); }
}

/* ipulse page: numbered feature rows + equation panel + board */
.ip-features { display: flex; flex-direction: column; }
.ip-feature { gap: clamp(20px, 3vw, 48px); padding: clamp(30px, 3.6vw, 52px) 0; border-top: 1px solid var(--line); align-items: start; }
.ip-feature__head { grid-column: 1 / span 4; display: flex; flex-direction: column; gap: 12px; }
.ip-feature__head span { font: 400 13px var(--font-body); letter-spacing: .2em; color: var(--coral); }
.ip-feature__body { grid-column: 6 / span 7; display: flex; flex-direction: column; gap: 18px; }
.ip-feature__body p { font: 400 17px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.ip-equation { margin-top: clamp(44px, 6vw, 88px); }
.ip-equation__panel { padding: clamp(36px, 4.4vw, 60px) clamp(30px, 3.6vw, 52px); display: flex; flex-direction: column; gap: 8px; }
.ip-equation__row { display: flex; align-items: baseline; gap: 14px; padding: 13px 0; }
.ip-equation__row span:first-child { flex: none; font: 400 20px var(--font-display); color: var(--coral); }
.ip-equation__row span:last-child { font: 400 19px/1.5 var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.ip-equation__rule { height: 1px; background: rgba(25, 24, 27, .22); margin: 14px 0; }
.ip-equation__row--sum { padding: 0; }
.ip-equation__row--sum span:last-child { font-family: var(--font-display); font-size: clamp(26px, 2.6vw, 38px); line-height: 1.14; letter-spacing: -.02em; }
.ip-equation__img { aspect-ratio: 1.2; }
.ip-maker { padding: clamp(56px, 8vw, 110px) 0 clamp(36px, 4.4vw, 64px); }
.ip-maker__body { display: flex; flex-direction: column; gap: 18px; }
.ip-maker__body p { font: 400 17px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.ip-board-head { padding-bottom: clamp(28px, 3.4vw, 44px); }
.ip-board { align-items: stretch; }
.ip-board .pillar { gap: 14px; }
.ip-board__name { font: 400 20px/1.35 var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.ip-board__role { font: 400 13px var(--font-body); letter-spacing: .2em; color: var(--coral); }
@media (max-width: 1150px) {
  .ip-feature__head, .ip-feature__body { grid-column: auto; }
}

/* lookx page */
.lx-intro { padding: clamp(56px, 8vw, 120px) 0 clamp(44px, 6vw, 88px); gap: clamp(28px, 3.4vw, 56px); }
.lx-intro__text { grid-row: 1; grid-column: 1 / span 5; display: flex; flex-direction: column; gap: 24px; }
.lx-intro__img { grid-row: 1; grid-column: 7 / span 6; aspect-ratio: 1.38; display: flex; align-items: center; justify-content: center; padding: clamp(10px, 1.6vw, 28px); }
.lx-intro__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lx-what { padding-bottom: clamp(36px, 4.4vw, 64px); }
.lx-what__head { display: flex; flex-direction: column; gap: 14px; }
.lx-what__body { display: flex; flex-direction: column; gap: 22px; }
.lx-chips { display: flex; flex-direction: column; gap: 12px; padding-top: 6px; }
.lx-chips__label { font: 400 17px var(--font-body); color: var(--ink); }
.lx-chips__row { display: flex; flex-wrap: wrap; gap: 10px; }
.lx-chips__row span { padding: 12px 26px; border-radius: 999px; background: var(--blush); font: 400 15px var(--font-body); color: var(--ink); }
.lx-pillars { padding: clamp(20px, 2.6vw, 36px) 0 clamp(56px, 8vw, 110px); }
.pillar__copy--lg { font-size: 16.5px; line-height: 1.7; }
.lx-techs { padding-bottom: clamp(56px, 8vw, 110px); gap: clamp(28px, 3.4vw, 56px); align-items: start; }
.lx-tech { display: flex; flex-direction: column; gap: 18px; padding-top: 26px; border-top: 1px solid var(--line-dark); }
.lx-tech__head { display: flex; align-items: baseline; gap: 14px; }
.lx-tech__head span:first-child { font: 400 13px var(--font-body); letter-spacing: .2em; color: var(--coral); }
.lx-tech__head span:last-child { font: 400 13px var(--font-body); letter-spacing: .22em; color: var(--ink); }
.lx-tech p { font: 400 17px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.lx-gallery { padding-bottom: clamp(56px, 8vw, 110px); gap: clamp(20px, 2.6vw, 28px); align-items: start; }
.lx-gallery__item { aspect-ratio: .82; min-width: 0; }
.lx-gallery__item--drop { margin-top: clamp(0px, 6vw, 90px); }
@media (max-width: 1150px) {
  .lx-intro__text, .lx-intro__img { grid-column: auto; grid-row: auto; }
  .lx-gallery__item--drop { margin-top: 0; }
}

/* ===================================================== szépségteremtők */
.szt-ask { padding: clamp(56px, 8vw, 120px) 0 clamp(44px, 6vw, 88px); }
.szt-ask__head { display: flex; flex-direction: column; gap: 16px; }
.szt-ask__sub { font: 400 17px var(--font-body); color: var(--muted); }
.szt-ask__body { display: flex; flex-direction: column; gap: 22px; padding-top: 33px; }
.szt-fact { align-items: center; }
.szt-fact__card { padding: clamp(36px, 4.4vw, 60px) clamp(30px, 3.6vw, 52px); display: flex; flex-direction: column; gap: 18px; }
.szt-fact__card p { font: 400 24px/1.55 var(--font-display); letter-spacing: -.015em; color: var(--ink); text-wrap: pretty; }
.szt-fact__img { aspect-ratio: 1.15; }
.szt-mission { padding: clamp(48px, 7vw, 110px) 0 clamp(44px, 6vw, 88px); }
.szt-mission__body { display: flex; flex-direction: column; gap: 20px; }
.szt-mission__list { gap: clamp(16px, 2vw, 24px); padding-top: 8px; }
.szt-mission__item { display: flex; flex-direction: column; gap: 12px; padding-top: 22px; border-top: 1px solid var(--line-dark); }
.szt-mission__item span:last-child { font: 400 16.5px/1.5 var(--font-body); color: var(--ink); }
.szt-mission__outro { margin-top: 12px; }
.szt-spheres { position: relative; overflow: hidden; border-radius: var(--r-block); background: #F3CFC3; }
.szt-spheres__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; display: block; }
.szt-spheres__scrim { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(250, 236, 231, .92) 0%, rgba(250, 236, 231, .74) 44%, rgba(250, 236, 231, .3) 100%); }
.szt-spheres__inner { position: relative; padding: clamp(48px, 6.5vw, 96px) clamp(28px, 5vw, 72px); display: flex; flex-direction: column; align-items: flex-start; gap: 22px; max-width: 760px; }
.szt-spheres__inner .h2 { max-width: 780px; text-wrap: balance; }
.szt-spheres__copy { max-width: 620px; font: 400 18px/1.8 var(--font-body); color: #4A3A34; text-wrap: pretty; }
.szt-spheres__lead { margin-top: 6px; max-width: 620px; font: 400 20px/1.6 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.szt-video-wrap { padding: clamp(48px, 7vw, 110px) 0 0; display: flex; flex-direction: column; gap: clamp(24px, 3vw, 40px); }
.szt-video { position: relative; display: block; aspect-ratio: 1.777; border-radius: 32px; overflow: hidden; background: var(--ink); }
.szt-video > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s var(--ease), opacity .5s ease; }
.szt-video:hover > img { transform: scale(1.04); opacity: .75; }
.szt-video__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(25, 24, 27, .22) 0%, rgba(25, 24, 27, .3) 100%); }
.szt-video__inner { position: relative; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; padding: clamp(24px, 4vw, 56px); text-align: center; }
.szt-video__play { width: 82px; height: 82px; border-radius: 50%; background: rgba(251, 246, 244, .94); display: flex; align-items: center; justify-content: center; transition: background .35s ease, transform .35s var(--ease); }
.szt-video:hover .szt-video__play { background: var(--coral); transform: scale(1.06); }
.szt-video__play span { width: 0; height: 0; border-left: 19px solid var(--ink); border-top: 12px solid transparent; border-bottom: 12px solid transparent; margin-left: 6px; }
.szt-video__label { padding: 12px 26px; border-radius: 999px; background: rgba(251, 246, 244, .94); font: 400 13px var(--font-body); letter-spacing: .24em; color: var(--ink); }
.szt-magic-head { padding: clamp(48px, 7vw, 110px) 0 clamp(28px, 3.4vw, 44px); display: flex; flex-direction: column; gap: 16px; }
.szt-magic-head__hint { font: 400 16px var(--font-body); color: var(--muted); }

/* flip cards */
.magics { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: clamp(10px, 1.2vw, 16px); }
.magic { display: block; width: 100%; padding: 0; margin: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; perspective: 1600px; -webkit-tap-highlight-color: transparent; }
.magic:focus { outline: none; }
.magic:focus-visible { border-radius: 26px; box-shadow: 0 0 0 2px var(--coral); }
.magic__flip { position: relative; display: block; width: 100%; aspect-ratio: .74; border-radius: 22px; transform-style: preserve-3d; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.magic.is-flipped .magic__flip { transform: rotateY(180deg); }
.magic__face { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; padding: clamp(20px, 2.2vw, 28px); border-radius: 22px; overflow: hidden; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.magic__face--back { transform: rotateY(180deg); }
.magic__face img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.magic__face--back img { transform: scaleX(-1); }
.magic__face > span { position: relative; }
.magic__label { font-family: var(--font-display); font-size: clamp(17px, 1.5vw, 21px); line-height: 1.2; letter-spacing: -.015em; color: #FFFBF7; }
.magic__eyebrow { font: 400 12px var(--font-body); letter-spacing: .22em; color: var(--ink); }
.magic__sub { font: 400 17px/1.45 var(--font-body); color: var(--ink); }
@media (max-width: 1250px) { .magics { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 820px) { .magics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.szt-choose { padding: clamp(56px, 8vw, 110px) 0 clamp(36px, 4.4vw, 60px); }
.szt-choose__text { display: flex; flex-direction: column; gap: 20px; }
.szt-choose__tagline { font: 400 clamp(21px, 2vw, 24px)/1.55 var(--font-display); letter-spacing: -.015em; color: var(--ink); text-wrap: pretty; }
.szt-choose__tagline em { font-style: italic; color: var(--coral); }
.szt-choose__img { aspect-ratio: 1.15; }
.szt-paths { align-items: stretch; position: relative; z-index: 1; }

/* a három út: kiemelt CTA-panel sötét alapon, halvány fehér rózsával */
.szt-cta { margin: clamp(56px, 8vw, 110px) 0 0; padding: clamp(44px, 6vw, 88px) clamp(28px, 5vw, 72px); position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--ink); }
.szt-cta__head { position: relative; z-index: 1; padding-bottom: clamp(32px, 4vw, 52px); }
.szt-cta__head .h2 { color: #fff; }
.szt-cta .sec-head::after { background: rgba(255, 255, 255, .18); }
/* minden kártya a saját rózsáját viseli, nem egy nagy a panel mögött */
.szt-path__rose { position: absolute; right: -4%; bottom: -6%; width: 30%; opacity: .11; pointer-events: none; }
.szt-path > span { position: relative; z-index: 1; }
.szt-path__btn { align-self: flex-start; margin-top: auto; padding: 15px 30px; font-size: 15.5px; }
.szt-path:hover .szt-path__btn { background-size: 100% 100%; color: #fff; }
.szt-path-wrap { display: flex; }
.szt-path { position: relative; flex: 1; display: flex; flex-direction: column; gap: 14px; padding: clamp(34px, 3.6vw, 46px); border-radius: var(--r-card); overflow: hidden; transition: transform .45s var(--ease), box-shadow .45s ease; box-shadow: 0 0 0 rgba(25, 24, 27, 0); }
.szt-path:hover { transform: translateY(-6px); box-shadow: 0 22px 44px -26px rgba(25, 24, 27, .42); }
.szt-path--white { background: #fff; color: var(--ink); }
.szt-path--white:hover { color: var(--ink); }
.szt-path--dark { background: var(--ink); color: #fff; }
.szt-path--dark:hover { color: #fff; }
.szt-path__num { font: 400 13px var(--font-body); letter-spacing: .2em; color: var(--coral); }
.szt-path__title { font-family: var(--font-display); font-size: clamp(21px, 2vw, 27px); line-height: 1.2; letter-spacing: -.015em; }
.szt-path__sub { font: 400 16.5px/1.6 var(--font-body); color: var(--muted); }
.szt-path--dark .szt-path__sub { color: rgba(255, 255, 255, .72); }
.szt-path__more { margin-top: auto; padding-top: 18px; display: flex; align-items: center; gap: 12px; font: 400 15.5px var(--font-body); color: var(--coral); }
.szt-groups { margin: clamp(56px, 8vw, 110px) 0 clamp(24px, 3vw, 40px); padding: clamp(44px, 6vw, 88px) clamp(28px, 5vw, 72px); position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--blush); }
.szt-groups__head { display: flex; flex-direction: column; gap: 14px; padding-bottom: clamp(28px, 3.4vw, 44px); }
.szt-groups__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 28px); align-items: stretch; position: relative; }
.szt-group { padding: clamp(28px, 3vw, 38px); display: flex; flex-direction: column; gap: 14px; }
.szt-group__title { font: 400 21px/1.3 var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.szt-group__sub { font: 400 16.5px/1.6 var(--font-body); color: var(--muted); }
.szt-group__btn { align-self: flex-start; margin-top: 8px; padding: 15px 30px; font-size: 15.5px; }

/* szépségteremtők - vendég */
.vd-hello { position: relative; padding: clamp(56px, 8vw, 120px) 0 clamp(44px, 6vw, 88px); }
.vd-hello__rose { position: absolute; right: -3%; top: 6%; width: min(430px, 34%); opacity: .11; pointer-events: none; z-index: 0; }
.vd-hello__head { position: sticky; top: 120px; align-self: start; z-index: 1; display: flex; flex-direction: column; gap: 16px; }
.vd-hello__body { display: flex; flex-direction: column; gap: 20px; position: relative; }
.vd-chips { display: flex; flex-wrap: wrap; gap: 10px; padding: 4px 0; }
.vd-chips span { padding: 11px 24px; border-radius: 999px; background: var(--blush); font: 400 15px var(--font-body); color: var(--ink); }
.vd-hello__cta { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 6px; }
.vd-hello__more { display: flex; flex-direction: column; gap: 20px; }
.vd-hello__more[hidden] { display: none; }
.vd-hello__toggle { align-self: flex-start; margin-top: 4px; background: none; border: 0 none; border-bottom: 1px solid rgba(255, 118, 118, .55); cursor: pointer; }
.vd-founder { gap: clamp(28px, 3.4vw, 56px); }
.vd-founder__img { grid-row: 1; grid-column: 1 / span 5; aspect-ratio: .92; }
.vd-founder__text { grid-row: 1; grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 20px; }
.vd-sign { display: flex; flex-direction: column; gap: 4px; padding-top: 10px; border-top: 1px solid var(--line-dark); }
.vd-sign span:first-child { font: 400 19px var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.vd-sign span:last-child { font: 400 15.5px var(--font-body); color: var(--muted); }
.vd-sec-head { padding-bottom: clamp(28px, 3.4vw, 48px); }
.vd-tools { padding: clamp(48px, 7vw, 110px) 0 0; }
.vd-tools__grid { align-items: stretch; }
.vd-tool { gap: 14px; position: relative; overflow: hidden; }
.vd-tool > * { position: relative; z-index: 1; }
.vd-tool__rose { position: absolute; right: -5%; bottom: -8%; width: 34%; opacity: .12; pointer-events: none; z-index: 0; }
/* öt kártya három hasábban egy lyukat hagyna, ezért az utolsó kettő 50-50 asztalin */
@media (min-width: 1151px) {
  .vd-tools__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .vd-tools__grid > * { grid-column: span 2; }
  .vd-tools__grid > :nth-child(4), .vd-tools__grid > :nth-child(5) { grid-column: span 3; }
}
.vd-tool__title { font: 400 20px/1.3 var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.vd-tool__copy { font: 400 16px/1.7 var(--font-body); color: var(--muted); text-wrap: pretty; }
.vd-rituals-intro { padding: clamp(48px, 7vw, 110px) 0 0; scroll-margin-top: 110px; }
.vd-rituals-intro__cols { align-items: start; }
.vd-face { padding: clamp(48px, 7vw, 96px) 0 0; }
.vd-face__head { display: flex; flex-direction: column; gap: 16px; padding-bottom: clamp(28px, 3.4vw, 44px); }
.vd-quote { max-width: 820px; font: 400 24px/1.6 var(--font-display); letter-spacing: -.015em; color: var(--ink); text-wrap: pretty; }
.vd-rituals { align-items: stretch; }
.ritual { padding: clamp(30px, 3.2vw, 42px); border-radius: var(--r-card); display: flex; flex-direction: column; gap: 16px; }
.ritual--white { background: #fff; color: var(--ink); }
.ritual--dark { background: var(--ink); color: #fff; }
.ritual__num { font: 400 13px var(--font-body); letter-spacing: .2em; color: var(--coral); }
.ritual__title { font-family: var(--font-display); font-size: clamp(23px, 2.2vw, 30px); line-height: 1.2; letter-spacing: -.015em; }
.ritual__meta { display: flex; align-items: baseline; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line-mid); }
.ritual--dark .ritual__meta { border-bottom-color: rgba(255, 255, 255, .2); }
.ritual__meta span:first-child { font: 400 15.5px var(--font-body); color: var(--muted); }
.ritual--dark .ritual__meta span:first-child { color: var(--w72); }
.ritual__meta span:last-child { font: 400 21px var(--font-display); letter-spacing: -.01em; color: var(--coral); }
.ritual p { font: 400 16px/1.7 var(--font-body); color: var(--muted); text-wrap: pretty; }
.ritual--dark p { color: var(--w72); }
.vd-body-ritual { padding: clamp(48px, 7vw, 110px) 0 0; gap: clamp(28px, 3.4vw, 56px); }
.vd-body-ritual__text { grid-row: 1; grid-column: 1 / span 6; display: flex; flex-direction: column; gap: 18px; }
.vd-body-ritual__img { grid-row: 1; grid-column: 8 / span 5; aspect-ratio: .78; }
.vd-body-ritual__price { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; padding: 8px 0 14px; border-bottom: 1px solid var(--line-mid); }
.vd-body-ritual__name { font: 400 24px var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.vd-body-ritual__time { font: 400 15.5px var(--font-body); color: var(--muted); }
.vd-body-ritual__cost { font: 400 21px var(--font-display); letter-spacing: -.01em; color: var(--coral); }
.vd-para { font: 400 17px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.vd-list { display: flex; flex-direction: column; padding-top: 6px; }
.vd-list__row { display: flex; align-items: baseline; gap: 14px; padding: 14px 0; border-bottom: 1px solid rgba(25, 24, 27, .12); }
.vd-list__row span:last-child { font: 400 16.5px/1.6 var(--font-body); color: var(--ink); }
.vd-body-ritual__cta { padding-top: 14px; }
.vd-magic-panel { margin-top: clamp(48px, 7vw, 110px); display: flex; flex-direction: column; gap: 22px; }
.vd-magic-panel__title { max-width: 900px; }
.vd-magic-panel__quote { max-width: 860px; font: 400 22px/1.6 var(--font-display); letter-spacing: -.015em; color: var(--ink); text-wrap: pretty; }
.vd-magic-panel__cols { gap: clamp(24px, 3vw, 44px); align-items: start; padding-top: 8px; position: relative; }
.vd-prices { padding: clamp(24px, 2.8vw, 32px); display: flex; flex-direction: column; gap: 12px; }
.vd-prices > div { display: flex; align-items: baseline; gap: 14px; }
.vd-prices__old { font: 400 16px var(--font-body); color: var(--muted); text-decoration: line-through; }
.vd-prices__new { font: 400 24px var(--font-display); letter-spacing: -.01em; color: var(--coral); }
.vd-magic-panel__outro { max-width: 900px; position: relative; }
.vd-exclusive { margin-top: clamp(48px, 7vw, 110px); position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--ink); }
.vd-exclusive__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.vd-exclusive__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(25, 24, 27, .74) 0%, rgba(25, 24, 27, .68) 50%, rgba(25, 24, 27, .76) 100%); }
.vd-exclusive__inner { position: relative; padding: clamp(48px, 6.5vw, 96px) clamp(28px, 5vw, 72px); display: flex; flex-direction: column; gap: clamp(28px, 3.4vw, 48px); }
.vd-exclusive__head { display: flex; flex-direction: column; gap: 18px; }
.vd-exclusive__title { max-width: 900px; color: #fff; }
.vd-exclusive__quote { max-width: 760px; font: 400 21px/1.6 var(--font-display); letter-spacing: -.01em; color: #fff; text-wrap: pretty; }
.vd-exclusive__copy { max-width: 820px; font: 400 17px/1.8 var(--font-body); color: rgba(255, 255, 255, .74); text-wrap: pretty; }
.vd-exclusive__cols { gap: clamp(24px, 3vw, 44px); }
.vd-exclusive__col { display: flex; flex-direction: column; gap: 14px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .24); }
.vd-exclusive__col span { font: 400 12.5px var(--font-body); letter-spacing: .22em; color: var(--coral); }
.vd-exclusive__col p { font: 400 16.5px/1.75 var(--font-body); color: rgba(255, 255, 255, .74); text-wrap: pretty; }
.vd-tale { padding: clamp(48px, 7vw, 110px) 0 0; gap: clamp(28px, 3.4vw, 56px); }
.vd-tale__img { grid-row: 1; grid-column: 1 / span 5; aspect-ratio: .9; }
.vd-tale__text { grid-row: 1; grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 20px; }
.vd-tale__closing { font: 400 19px/1.65 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.vd-program { padding: clamp(48px, 7vw, 110px) 0 0; }
.vd-program__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 3.4vw, 56px); align-items: start; }
.vd-program__left { display: flex; flex-direction: column; gap: 20px; }
.vd-program__card { display: flex; flex-direction: column; gap: 16px; padding: clamp(26px, 3vw, 36px); border-radius: var(--r-card); }
.vd-program__card--blush { background: var(--blush); }
.vd-program__card--white { background: #fff; }
.vd-program__card span { font: 400 12.5px var(--font-body); letter-spacing: .22em; color: var(--coral); }
.vd-program__card p { font: 400 16.5px/1.75 var(--font-body); color: var(--muted); text-wrap: pretty; }
.vd-program__right { display: flex; flex-direction: column; gap: 20px; padding: clamp(32px, 3.6vw, 48px); border-radius: 32px; background: #fff; color: var(--ink); }
.vd-program__lead { font: 400 20px/1.6 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.vd-program__block { display: flex; flex-direction: column; gap: 14px; }
.vd-program__block span:not(.vd-program__label) { font: 400 16.5px/1.7 var(--font-body); color: var(--ink); }
.vd-program__label { font: 400 12.5px var(--font-body); letter-spacing: .22em; color: rgba(25, 24, 27, .55); }
.vd-program__gives { display: flex; flex-direction: column; padding-top: 6px; }
.vd-program__gives .vd-program__label { padding-bottom: 14px; }
.vd-program__gives > div { display: flex; align-items: baseline; gap: 14px; padding: 13px 0; border-top: 1px solid var(--line); }
.vd-program__gives > div span:last-child { font: 400 16.5px/1.6 var(--font-body); color: var(--ink); }
.vd-program__closing { margin-top: 6px; font: 400 19px/1.6 var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.vd-community { padding: clamp(48px, 7vw, 110px) 0 0; }
.vd-community__text { display: flex; flex-direction: column; gap: 20px; }
.vd-community__btn { align-self: flex-start; }
.vd-community__img { aspect-ratio: 1.02; }
.vd-stories { padding: clamp(48px, 7vw, 110px) 0 0; }
.vd-stories__intro { gap: clamp(24px, 3vw, 44px); align-items: start; padding-bottom: clamp(28px, 3.4vw, 44px); }
.vd-stories__grid { align-items: stretch; }
.story { padding: clamp(30px, 3.2vw, 40px); border-radius: var(--r-card); display: flex; flex-direction: column; gap: 16px; }
.story--blush { background: var(--blush); }
.story--white { background: #fff; }
.story__title { font: 400 21px/1.3 var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.story p { font: 400 16px/1.75 var(--font-body); color: var(--muted); text-wrap: pretty; }
.story__who { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); font: 400 13px var(--font-body); letter-spacing: .2em; color: var(--coral); }
.vd-stories__share { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(18px, 2.4vw, 32px); padding-top: clamp(28px, 3.4vw, 44px); }
.vd-stories__share-title { font: 400 18px var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.vd-stories__share-copy { font: 400 16.5px/1.7 var(--font-body); color: var(--muted); max-width: 640px; }
.vd-final { margin: clamp(48px, 7vw, 110px) 0 clamp(24px, 3vw, 40px); position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--ink); }
.vd-final__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.vd-final__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(25, 24, 27, .58) 0%, rgba(25, 24, 27, .5) 50%, rgba(25, 24, 27, .62) 100%); }
.vd-final__inner { position: relative; padding: clamp(48px, 6.5vw, 96px) clamp(28px, 5vw, 72px); display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
.vd-final__title { max-width: 820px; color: #fff; text-wrap: balance; }
.vd-final__inner p { max-width: 640px; font: 400 17px/1.8 var(--font-body); color: rgba(255, 255, 255, .74); text-wrap: pretty; }
.vd-final__btn { margin-top: 6px; }
@media (max-width: 1150px) {
  .vd-program__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 1000px) {
  .vd-hello__rose { display: none; }
  .vd-hello__head { position: static; }
}

/* szépségteremtők - kozmetikus */
.kz-two { padding: clamp(48px, 7vw, 110px) 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 28px); align-items: stretch; }
.kz-two__card { padding: clamp(32px, 3.6vw, 48px); border-radius: 32px; background: var(--blush); display: flex; flex-direction: column; gap: 16px; }
.kz-two__card:last-child { background: #fff; }
.kz-two__label { font-size: 12.5px; }
.kz-two__ctas { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 10px; margin-top: auto; }
.kz-pillars { padding: clamp(48px, 7vw, 110px) 0 0; }
.kz-pillars__intro { padding-bottom: clamp(28px, 3.4vw, 48px); }
.kz-pillars__intro-col { display: flex; flex-direction: column; gap: 20px; }
.kz-pillar__head { gap: 12px; }
.kz-pillar__sub { font: 400 15.5px/1.5 var(--font-body); color: var(--muted); }
.kz-quote { font: 400 21px/1.6 var(--font-display) !important; letter-spacing: -.01em; color: var(--ink) !important; }
.kz-triple { gap: clamp(20px, 2.6vw, 32px); padding-top: 8px; }
.kz-triple > div { display: flex; flex-direction: column; gap: 10px; padding-top: 18px; border-top: 1px solid var(--line-dark); }
.kz-triple > div span:first-child { font: 400 12.5px var(--font-body); letter-spacing: .2em; color: var(--coral); }
.kz-triple > div span:last-child { font: 400 16px/1.7 var(--font-body); color: var(--muted); }
.kz-guest { margin-top: clamp(48px, 7vw, 110px); }
.kz-courses { padding: clamp(48px, 7vw, 110px) 0 0; scroll-margin-top: 110px; }
.kz-courses__intro { max-width: 900px; padding-bottom: clamp(20px, 2.6vw, 36px); }
.kz-course__cta { padding-top: 8px; }
/* pillér-bélyegképek és a képzési szintek halvány rózsája */
.kz-pillar__img { margin-top: 8px; width: 100%; max-width: 280px; aspect-ratio: 1; }
.kz-course__rose { width: 88px; height: auto; margin-top: 10px; opacity: .16; pointer-events: none; }
.kz-course__cta .btn { align-self: flex-start; }
.kz-takeaway { font: 400 13px var(--font-body); letter-spacing: .22em; color: var(--coral); }
.kz-join__img { aspect-ratio: 1.2; }
.kz-dual { margin-top: clamp(48px, 7vw, 110px); scroll-margin-top: 110px; }
.kz-dual__head { display: flex; flex-direction: column; gap: 16px; padding-bottom: clamp(28px, 3.4vw, 44px); position: relative; }
.kz-dual__grid { gap: clamp(24px, 3vw, 44px); align-items: start; position: relative; }
.kz-dual__text { display: flex; flex-direction: column; gap: 18px; }
.kz-dual__btn { align-self: flex-start; margin-top: 6px; }
.kz-dual__side { display: flex; flex-direction: column; gap: 20px; }
.kz-galatea { padding: clamp(28px, 3vw, 38px); display: flex; flex-direction: column; gap: 14px; }
.kz-galatea__label { font: 400 12.5px var(--font-body); letter-spacing: .22em; color: var(--coral); }
.kz-galatea__name { font: 400 22px var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.kz-galatea__role { font: 400 15px var(--font-body); color: var(--muted); }
.kz-galatea p { font: 400 16px/1.75 var(--font-body); color: var(--muted); text-wrap: pretty; }
.kz-quote-card { padding: clamp(28px, 3vw, 38px); border-radius: var(--r-card); background: var(--ink); display: flex; flex-direction: column; gap: 14px; }
.kz-quote-card p { font: 400 19px/1.65 var(--font-display); letter-spacing: -.01em; color: #fff; text-wrap: pretty; }
.kz-quote-card span { font: 400 12.5px var(--font-body); letter-spacing: .2em; color: var(--coral); }
@media (max-width: 1150px) {
  .kz-two { grid-template-columns: minmax(0, 1fr); }
}

/* ===================================================== rólunk */
.ro-exp { gap: clamp(28px, 3.4vw, 56px); }
.ro-exp__text { grid-row: 1; grid-column: 1 / span 5; display: flex; flex-direction: column; gap: 26px; }
.ro-exp__img { grid-row: 1; grid-column: 7 / span 6; aspect-ratio: 1.02; }
.ro-block { display: flex; flex-direction: column; gap: 16px; }
.ro-card { display: flex; flex-direction: column; gap: 16px; padding: clamp(28px, 3vw, 38px); border-radius: var(--r-card); background: var(--blush); }
.ro-card p { font: 400 17px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.ro-mission { padding: clamp(48px, 7vw, 110px) 0 0; gap: clamp(28px, 3.4vw, 56px); }
.ro-mission__img { grid-row: 1; grid-column: 1 / span 6; aspect-ratio: 1.3; }
.ro-mission__text { grid-row: 1; grid-column: 8 / span 5; display: flex; flex-direction: column; gap: 26px; }
.ro-mission__btn { align-self: flex-start; margin-top: 4px; }
.ro-stats { margin-top: clamp(56px, 8vw, 110px); }
.stats__num--sm { font-size: clamp(48px, 5.4vw, 90px); }
.ro-help { margin-top: clamp(44px, 6vw, 88px); padding: clamp(36px, 4.6vw, 72px) 0 clamp(24px, 3vw, 40px); }

/* ===================================================== kapcsolat */
.kap { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(32px, 4vw, 64px); align-items: start; padding-bottom: clamp(56px, 8vw, 110px); scroll-margin-top: 110px; }
.kap__form { display: flex; flex-direction: column; gap: 24px; }
.kap__fields { display: flex; flex-direction: column; gap: 14px; }
.kap__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.kap__topics-wrap { display: flex; flex-direction: column; gap: 10px; padding-bottom: 6px; }
.kap__topics-label { font: 400 13px var(--font-body); letter-spacing: .22em; color: var(--coral); }
.kap__topics { display: flex; flex-wrap: wrap; gap: 10px; }
.kap__topic input { position: absolute; opacity: 0; pointer-events: none; }
.kap__topic span { display: inline-block; padding: 12px 24px; border-radius: 999px; border: 1px solid rgba(25, 24, 27, .16); background: #fff; color: var(--ink); font: 400 15px var(--font-body); cursor: pointer; transition: border-color .25s ease, color .25s ease, background .25s ease; }
.kap__topic:hover span { border-color: var(--coral); color: var(--coral); }
.kap__topic input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; }
.kap__topic input:focus-visible + span { box-shadow: 0 0 0 2px var(--coral); }
.kap__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.kap__fields input[type="text"], .kap__fields input[type="email"], .kap__fields input[type="tel"] { padding: 21px 28px; border-radius: 999px; border: 1px solid rgba(25, 24, 27, .12); background: #fff; font: 400 16px var(--font-body); color: var(--ink); width: 100%; }
.kap__fields textarea { padding: 22px 28px; border-radius: 28px; border: 1px solid rgba(25, 24, 27, .12); background: #fff; font: 400 16px/1.7 var(--font-body); color: var(--ink); width: 100%; resize: vertical; }
.kap__fields input:focus, .kap__fields textarea:focus { outline: none; border-color: var(--coral); }
.kap__submit { margin-top: 16px; align-self: flex-start; border: 0; }
.kap__error { padding: 14px 24px; border-radius: 18px; background: var(--blush); font: 400 15px var(--font-body); color: var(--ink); }
.kap__done { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; padding: clamp(36px, 4.4vw, 56px); border-radius: 32px; background: var(--blush); }
.kap__done-check { width: 56px; height: 56px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 22px; color: var(--coral); }
.kap__done p { max-width: 440px; font: 400 17px/1.8 var(--font-body); color: var(--muted); }
.kap__info { display: flex; flex-direction: column; gap: 28px; }
.kap__card { display: flex; flex-direction: column; padding: clamp(28px, 3vw, 38px); border-radius: var(--r-card); background: var(--blush); }
.kap__phone { font: 400 26px var(--font-display); letter-spacing: -.01em; color: var(--ink); padding-bottom: 18px; border-bottom: 1px solid var(--line-mid); }
.kap__phone:hover { color: var(--coral); }
.kap__addr { padding: 18px 0; border-bottom: 1px solid var(--line-mid); font: 400 17px/1.6 var(--font-body); color: var(--muted); }
.kap__mail { padding-top: 18px; font: 400 17px var(--font-body); color: var(--muted); transition: color .3s ease; }
.kap__mail:hover { color: var(--coral); }
.kap__block { display: flex; flex-direction: column; gap: 16px; }
.kap__fb { align-self: flex-start; padding: 15px 32px; }
.kap__map { aspect-ratio: 1.4; border-radius: var(--r-card); overflow: hidden; background: #EFE1DD; }
.kap__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.kap__note { font: 400 15px var(--font-body); color: var(--muted); }
@media (max-width: 1150px) {
  .kap { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 620px) {
  .kap__row { grid-template-columns: minmax(0, 1fr); }
}

/* ===================================================== front page */
.hero__cta { align-self: flex-start; margin-top: 8px; }
.fp-svc-head { padding: clamp(56px, 9vw, 130px) 0 40px; }
.fp-svc__text { display: flex; flex-direction: column; gap: 24px; }
.fp-svc__text .lead { max-width: 520px; }
.fp-svc__text .btn { align-self: flex-start; margin-top: 6px; }
.fp-svc__text--1 { grid-column: 1 / span 5; position: relative; z-index: 1; }
.fp-svc__img--1 { grid-column: 7 / span 6; aspect-ratio: 1.15; max-height: 660px; display: flex; align-items: center; justify-content: center; padding: clamp(16px, 2.4vw, 40px); }
.fp-svc__img--2 { grid-column: 1 / span 6; margin-top: clamp(48px, 7vw, 130px); aspect-ratio: 1.15; max-height: 660px; display: flex; align-items: center; justify-content: center; padding: clamp(10px, 1.6vw, 28px); }
.fp-svc__text--2 { grid-column: 8 / span 5; margin-top: 130px; }
.fp-svc__img--1 img, .fp-svc__img--2 img { width: 100%; height: 100%; object-fit: contain; display: block; }
.fp-marquee-wrap { margin-top: clamp(56px, 9vw, 130px); }
.fp-band-wrap { margin-top: clamp(56px, 9vw, 130px); }
.fp-band__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 4vw, 80px); padding: clamp(44px, 6.5vw, 110px) clamp(24px, 5vw, 84px); }
.fp-band__text { display: flex; flex-direction: column; gap: 30px; }
.fp-band__q { max-width: 520px; font: 400 15px/1.8 var(--font-body); letter-spacing: .16em; color: var(--w72); text-transform: uppercase; }
.fp-band__cta { align-self: flex-start; margin-top: 10px; }
.fp-band__img { aspect-ratio: 1.05; max-height: 680px; background: #211f24; }
.fp-favs { padding-top: 130px; }
.fp-favs__head { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.fp-fav { gap: clamp(28px, 3.4vw, 56px); }
.fp-fav:first-of-type { margin-top: clamp(40px, 5vw, 72px); }
.fp-fav--flip { margin-top: clamp(56px, 7vw, 110px); }
.fp-fav__img { aspect-ratio: 1.55; }
.fp-fav__img--left { grid-column: 1 / span 6; grid-row: 1; }
.fp-fav__text--right { grid-column: 8 / span 5; grid-row: 1; }
.fp-fav__img--right { grid-column: 7 / span 6; grid-row: 1; }
.fp-fav__text--left { grid-column: 1 / span 5; grid-row: 1; }
.fp-fav__text { display: flex; flex-direction: column; gap: 20px; }
.fp-fav__text .num-rule { gap: 16px; }
.fp-fav__copy { font: 400 17px/1.85 var(--font-body); color: var(--muted); text-wrap: pretty; }
.fp-fav__text .link-arrow { align-self: flex-start; margin-top: 10px; }
.fp-lookx-wrap { margin-top: clamp(60px, 9.5vw, 140px); }
.fp-lookx__bg { opacity: .62; }
.fp-lookx__scrim { background: linear-gradient(180deg, rgba(25, 24, 27, .58) 0%, rgba(25, 24, 27, .5) 50%, rgba(25, 24, 27, .62) 100%); }
.fp-lookx__inner { padding: clamp(44px, 6.5vw, 110px) clamp(24px, 5vw, 84px); display: flex; flex-direction: column; gap: 56px; }
.fp-lookx__head { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.fp-lookx__cols { gap: clamp(24px, 3vw, 56px); }
.fp-lookx__col { display: flex; flex-direction: column; gap: 18px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .16); }
.fp-lookx__col p { font: 400 16.5px/1.85 var(--font-body); color: rgba(255, 255, 255, .74); text-wrap: pretty; }
.fp-lookx__cta { align-self: center; }
.fp-partners { padding-top: 110px; display: flex; flex-direction: column; align-items: center; gap: 44px; }
.fp-partners__logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 80px; }
.fp-partners__logos img { width: auto; object-fit: contain; display: block; }
.fp-partners__logos img:nth-child(1) { height: 66px; }
.fp-partners__logos img:nth-child(2) { height: 62px; }
.fp-partners__logos img:nth-child(3) { height: 70px; }
.fp-partners__cta { display: flex; justify-content: center; padding-top: clamp(56px, 6vw, 88px); }
.fp-stats { margin-top: clamp(60px, 9.5vw, 140px); }
.fp-stats__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; padding-bottom: clamp(32px, 3.6vw, 56px); }
.fp-stats__tag { font: 400 13px var(--font-body); letter-spacing: .22em; color: var(--muted); }
.fp-help { margin-top: clamp(56px, 9vw, 130px); padding: clamp(36px, 4.6vw, 72px) 0; border-top: 1px solid var(--line-dark); grid-template-columns: minmax(0, 1fr) auto; gap: clamp(28px, 4vw, 64px); align-items: end; }
.fp-help__text { display: flex; flex-direction: column; gap: 18px; }
.fp-help__rows { display: flex; flex-wrap: wrap; gap: 8px 40px; margin-top: 6px; }
.fp-help__rows a, .fp-help__rows span { font: 400 20px var(--font-body); letter-spacing: .02em; }
.fp-help__phone { color: var(--ink); }
.fp-help__mail, .fp-help__addr { color: var(--muted); }
.fp-help__cta { align-self: end; }

@media (max-width: 1150px) {
  .fp-svc__text--2, .fp-svc__img--2 { margin-top: 0; }
  .fp-help { grid-template-columns: minmax(0, 1fr); }
  .fp-help__cta { align-self: flex-start; }
}

/* ===================================================== legal page */
.legal { padding-bottom: clamp(56px, 8vw, 110px); }
.legal__head { display: flex; flex-direction: column; gap: 16px; padding: clamp(40px, 6vw, 88px) 0 clamp(32px, 4vw, 56px); border-bottom: 1px solid var(--line-dark); }
.legal__meta { font: 400 15px var(--font-body); color: var(--muted); }
.legal__body { max-width: 860px; padding-top: clamp(32px, 4vw, 56px); display: flex; flex-direction: column; gap: clamp(36px, 4.4vw, 56px); }
.legal__body section { display: flex; flex-direction: column; gap: 16px; }
.legal__body h2 { font-family: var(--font-display); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.2; }
.legal__body h3 { font-family: var(--font-display); font-size: clamp(18px, 1.7vw, 22px); line-height: 1.3; padding-top: 8px; }
.legal__body p { font: 400 16.5px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.legal__body ul { list-style: none; display: flex; flex-direction: column; }
.legal__body li { position: relative; padding: 10px 0 10px 26px; border-bottom: 1px solid rgba(25, 24, 27, .08); font: 400 16.5px/1.7 var(--font-body); color: var(--muted); }
.legal__body li::before { content: ""; position: absolute; left: 4px; top: 20px; width: 6px; height: 6px; border-radius: 50%; background: var(--coral); }
.legal__body strong { color: var(--ink); font-weight: 500; }

/* consent note under the contact form */
.kap__consent { font: 400 14px/1.6 var(--font-body); color: var(--muted); }
.kap__consent a { text-decoration: underline; }

/* ===================================================== események (CPT) */
.ev-head { padding: clamp(40px, 6vw, 78px) 0 clamp(28px, 3.4vw, 48px); display: flex; flex-direction: column; gap: 16px; }
.ev-head__intro { max-width: 760px; }

.ev-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 30px); align-items: stretch; }
.ev-card { display: flex; flex-direction: column; gap: 18px; padding: 14px 14px 26px; border-radius: var(--r-block); background: #fff; color: var(--ink); transition: transform .45s var(--ease), box-shadow .45s ease; box-shadow: 0 0 0 rgba(25, 24, 27, 0); }
.ev-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px -26px rgba(25, 24, 27, .42); color: var(--ink); }
.ev-card__media { position: relative; aspect-ratio: 1.32; }
.ev-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ev-card__fallback { object-fit: contain !important; padding: 22%; opacity: .18; background: var(--blush); }
.ev-card__badge { position: absolute; left: 14px; bottom: 14px; padding: 9px 18px; border-radius: 999px; background: rgba(251, 246, 244, .94); font: 400 13.5px var(--font-body); letter-spacing: .02em; color: var(--ink); }
.ev-card__body { display: flex; flex-direction: column; gap: 12px; padding: 0 clamp(12px, 1.4vw, 18px); }
.ev-card__title { font: 400 clamp(21px, 2vw, 26px)/1.2 var(--font-display); letter-spacing: -.015em; color: var(--ink); }
.ev-card__loc { display: inline-flex; align-items: center; gap: 10px; font: 400 15.5px var(--font-body); color: var(--muted); }
.ev-card__excerpt { font: 400 16px/1.7 var(--font-body); color: var(--muted); text-wrap: pretty; }
.ev-card__more { margin-top: auto; padding-top: 12px; display: inline-flex; align-items: center; gap: 12px; font: 400 15.5px var(--font-body); color: var(--coral); }

.ev-empty { padding: clamp(36px, 4.4vw, 60px); display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.ev-past { padding-top: clamp(48px, 7vw, 100px); }
.ev-past__head { padding-bottom: clamp(24px, 3vw, 40px); }
.ev-grid--past .ev-card { opacity: .72; }
.ev-grid--past .ev-card:hover { opacity: 1; }

.ev-facts { margin-top: clamp(28px, 3.4vw, 44px); padding: clamp(28px, 3.4vw, 46px) clamp(26px, 3vw, 52px); display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: clamp(20px, 2.6vw, 40px); }
.ev-fact { display: flex; flex-direction: column; gap: 8px; }
.ev-fact__label { font: 400 13px var(--font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--coral); }
.ev-fact__value { font: 400 19px/1.45 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }

.ev-body { padding: clamp(40px, 6vw, 88px) 0 0; }
.ev-content { max-width: 880px; margin-inline: auto; display: flex; flex-direction: column; gap: 20px; }
.ev-content > * { margin: 0; }
.ev-content p { font: 400 17.5px/1.8 var(--font-body); color: var(--muted); text-wrap: pretty; }
.ev-content h2 { font: 400 clamp(26px, 2.8vw, 36px)/1.15 var(--font-display); letter-spacing: -.015em; color: var(--ink); padding-top: clamp(14px, 1.8vw, 24px); }
.ev-content h3 { font: 400 clamp(20px, 2vw, 24px)/1.3 var(--font-display); letter-spacing: -.015em; color: var(--ink); padding-top: clamp(8px, 1vw, 14px); }
.ev-content strong { font-weight: 500; color: var(--ink); }
.ev-content a { color: var(--coral); border-bottom: 1px solid rgba(255, 118, 118, .45); }
.ev-content a:hover { color: var(--ink); border-color: var(--ink); }
.ev-content ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ev-content ul li { position: relative; padding-left: 26px; font: 400 17px/1.7 var(--font-body); color: var(--muted); text-wrap: pretty; }
.ev-content ul li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--coral); }
.ev-content blockquote { padding: clamp(24px, 3vw, 38px); border-radius: var(--r-card); background: var(--blush); }
.ev-content blockquote p { font: 400 20px/1.55 var(--font-display); letter-spacing: -.015em; color: var(--ink); }

.ev-cta { margin: clamp(48px, 7vw, 100px) 0 0; padding: clamp(44px, 6vw, 84px) clamp(28px, 5vw, 72px); position: relative; overflow: hidden; border-radius: var(--r-block); background: var(--ink); }
.ev-cta__rose { position: absolute; right: -4%; bottom: -22%; width: min(360px, 32%); opacity: .12; pointer-events: none; }
.ev-cta__inner { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.ev-cta__inner .h2 { color: #fff; }
.ev-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; padding-top: 8px; }
.ev-cta__phone { font: 400 18px var(--font-display); letter-spacing: -.01em; color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .35); }
.ev-cta__phone:hover { color: var(--coral); border-color: var(--coral); }
.ev-back { padding: clamp(28px, 3.4vw, 48px) 0 0; }

@media (max-width: 1150px) { .ev-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .ev-grid { grid-template-columns: minmax(0, 1fr); } }

/* ===================================================== mobile collapse */
/* page sections come later in this file than the generic responsive block, so
   their grid-column pins would win the cascade - the collapse is forced here,
   the same way the design does it */
@media (max-width: 1150px) {
  .col2, .col2--offset, .col12 { grid-template-columns: minmax(0, 1fr) !important; }
  .col12 > *, .col2 > *, .col2--offset > *, .col3 > * { grid-column: auto !important; grid-row: auto !important; }
  .fp-svc__text--2, .fp-svc__img--2 { margin-top: 0 !important; }
  /* the strip's scrollbar hugs the container edge, so the section gap has to
     come from margin - padding would push the scrollbar away from the cards */
  .gp-pillars, .lx-pillars { padding-bottom: 18px !important; margin-bottom: clamp(44px, 7vw, 72px); }
  /* treatment-head rows read image first once stacked */
  .hpl-head__img { order: -1; }
}
@media (max-width: 900px) {
  .svc-img { order: -1; }
}

/* ===================================================== keyframes */
@keyframes psMarquee { to { transform: translateX(-50%); } }
@keyframes psTypeA {
  0% { max-width: 0; border-right-color: var(--coral); }
  22%, 42% { max-width: 100%; border-right-color: var(--coral); }
  49% { max-width: 0; border-right-color: var(--coral); }
  50%, 100% { max-width: 0; border-right-color: transparent; }
}
@keyframes psTypeB {
  0%, 49% { max-width: 0; border-right-color: transparent; }
  50% { max-width: 0; border-right-color: var(--coral); }
  72%, 92% { max-width: 100%; border-right-color: var(--coral); }
  99% { max-width: 0; border-right-color: var(--coral); }
  100% { max-width: 0; border-right-color: transparent; }
}
