/* Gastro Finance — v5 stíluslap (letisztultabb vonal, a brandbook tokenjeivel) */
:root{
  --cream:#ede9df;
  --card:#f5f2ea;
  --page:#e3dfd4;
  --ink:#12241d;
  --sky:#c9dff2;
  --sage:#96ac9b;
  --orange:#ed7a38;
  --butter:#f2e6a2;
  --line:rgba(18,36,29,.2);
  --edge:rgba(18,36,29,.14);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
  /* papírtextúra: varrat nélkül csempézhető minta, bármely háttérszínre rétegezhető */
  --grain:url("../img/paper.png");
  --wrap:1240px;
  --pad:40px;
  --gut:12px;
  --sec:clamp(80px,9vw,136px);
  --header-h:72px;
  --bar-h:48px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (max-width:900px){ :root{ --pad:20px; --gut:8px; } }
@media (max-width:640px){ :root{ --header-h:60px; --bar-h:46px; --sec:72px; } }

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background-color:var(--cream); background-image:var(--grain); color:var(--ink); font-family:var(--sans); line-height:1.55; -webkit-font-smoothing:antialiased; }
h1,h2,h3{ font-family:var(--serif); font-weight:400; margin:0; line-height:1.06; letter-spacing:-.015em; text-wrap:balance; }
p,ul,figure{ margin:0; }
a{ color:inherit; }
img{ max-width:100%; height:auto; display:block; }
[id]{ scroll-margin-top:calc(var(--header-h) + var(--bar-h)); }
::selection{ background:var(--orange); color:var(--ink); }
:focus-visible{ outline:3px solid var(--orange); outline-offset:3px; }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip{ position:absolute; left:12px; top:-60px; z-index:100; background:var(--ink); color:var(--cream); padding:10px 16px; text-decoration:none; font-family:var(--mono); font-size:.8rem; }
.skip:focus{ top:12px; }

.wrap{ width:100%; max-width:calc(var(--wrap) + 2 * var(--pad)); margin-inline:auto; padding-inline:var(--pad); }

/* ---------- közös elemek ---------- */
.eyebrow{ display:block; font-family:var(--mono); font-weight:600; font-size:.72rem; line-height:1.4; letter-spacing:.14em; text-transform:uppercase; }
h2{ margin-top:18px; font-size:clamp(2.1rem,3.7vw,3.3rem); letter-spacing:-.02em; }
.lead{ margin-top:22px; font-family:var(--mono); font-size:.95rem; line-height:1.65; max-width:56ch; }
.body-l{ margin-top:22px; font-size:1.06rem; line-height:1.65; max-width:52ch; }

.btn{ display:inline-flex; align-items:center; gap:16px; padding:15px 24px; background:var(--ink); color:var(--cream); border:1px solid var(--ink); font-family:var(--sans); font-weight:500; font-size:.94rem; text-decoration:none; cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.btn:hover{ background:var(--orange); border-color:var(--orange); color:var(--ink); }
.btn-cta{ background:var(--orange); border-color:var(--orange); color:var(--ink); }
.btn-cta:hover{ background:var(--ink); border-color:var(--ink); color:var(--cream); }
.arr{ display:inline-block; transition:transform .2s; }
.btn:hover .arr{ transform:translateX(4px); }

/* ---------- felső sáv: átvezetés a másik márkához (Gastro ↔ Atlas), a fejléc része, együtt ragad a menüvel ---------- */
.topbar{ display:block; background-color:var(--butter); background-image:var(--grain); color:var(--ink); text-decoration:none; border-bottom:1px solid var(--edge); }
.tb-inner{ display:flex; align-items:center; justify-content:center; gap:18px; min-height:var(--bar-h); font-family:var(--mono); font-size:.86rem; font-weight:500; }
.tb-short{ display:none; }
.tb-btn{ flex:none; display:inline-flex; align-items:center; gap:10px; padding:7px 14px; background:var(--ink); color:var(--cream); font-family:var(--sans); font-size:.84rem; font-weight:500; transition:background .2s, color .2s; }
.topbar:hover .tb-btn{ background:var(--orange); color:var(--ink); }
.topbar:hover .arr{ transform:translateX(4px); }
.topbar:focus-visible{ outline-offset:-3px; }
@media (max-width:640px){
  .tb-inner{ justify-content:space-between; gap:12px; font-size:.8rem; }
  .tb-long{ display:none; } .tb-short{ display:inline; }
  .tb-btn{ padding:7px 12px; font-size:.8rem; }
}

/* ---------- fejléc ---------- */
header.site{ position:sticky; top:0; z-index:50; background-color:var(--cream); background-image:var(--grain); border-bottom:1px solid var(--edge); }
.navbar{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; height:var(--header-h); }
/* vízszintes logó: a brandbook szerint képernyőn legalább 220 px széles */
.brand{ flex:none; display:block; }
.brand img{ width:220px; height:auto; }
.nav-right{ display:flex; align-items:center; gap:18px; }
nav.links{ display:flex; align-items:center; gap:30px; font-family:var(--mono); font-size:.8rem; }
nav.links a{ text-decoration:none; padding-block:6px; border-bottom:2px solid transparent; transition:border-color .2s; }
nav.links a:hover, nav.links a.active{ border-color:var(--orange); }
nav.links a.nav-cta{ padding:10px 16px; background:var(--ink); color:var(--cream); font-weight:600; border:0; transition:background .2s, color .2s; }
nav.links a.nav-cta:hover{ background:var(--orange); color:var(--ink); }
.lang{ display:flex; align-items:center; gap:2px; padding-left:16px; border-left:1px solid var(--edge); font-family:var(--mono); font-size:.76rem; font-weight:500; letter-spacing:.04em; }
.lang a, .lang .soon{ padding:6px 6px 5px; border-bottom:2px solid transparent; text-decoration:none; }
.lang a[aria-current="page"]{ font-weight:600; border-color:var(--orange); }
.lang .soon{ opacity:.3; cursor:not-allowed; }
.nav-toggle{ display:none; font-family:var(--mono); font-size:.78rem; background:var(--ink); color:var(--cream); border:0; padding:10px 14px; cursor:pointer; }
@media (max-width:1000px){
  .nav-toggle{ display:inline-block; }
  .nav-right{ gap:12px; }
  .lang{ padding-left:0; border-left:0; }
  nav.links{ display:none; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; gap:0; padding:8px var(--pad) 22px; background-color:var(--cream); background-image:var(--grain); border-bottom:1px solid var(--ink); }
  nav.links.open{ display:flex; }
  nav.links a{ padding-block:14px; border-bottom:1px solid var(--line); }
  nav.links a.nav-cta{ margin-top:16px; padding-block:14px; text-align:center; }
}
/* keskeny kijelzőn a 220 px-es logó és a MENÜ gomb mellett nincs hely a nyelvváltónak: ott a lenyíló menü alján jelenik meg */
.lang-menu{ display:none; }
@media (max-width:640px){
  .lang{ display:none; }
  .lang-menu{ display:flex; gap:8px; margin-top:18px; }
  nav.links .lang-menu a{ flex:1; padding:11px 0; border:1px solid var(--ink); text-align:center; font-weight:600; }
  nav.links .lang-menu a[aria-current="page"]{ background:var(--ink); color:var(--cream); }
}

/* ---------- hero: tipó-első, egyetlen kivágott kollázs-elemmel ---------- */
.hero{ padding-block:clamp(56px,7vw,104px) clamp(72px,8vw,120px); overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.1fr) minmax(0,1fr); align-items:center; gap:40px; }
.hero-grid > *{ min-width:0; }
.hero-art{ justify-self:start; width:100%; max-width:290px; transform:rotate(-2.5deg); }
/* tépett papírszél: a kép egy kivágott lapként ül a krém alapon */
.hero-art img{ width:100%; clip-path:polygon(1.5% 1.2%,14% 0,31% .9%,49% 0,66% 1%,83% .2%,99% 1.1%,100% 19%,98.9% 38%,100% 57%,99% 77%,100% 98.8%,84% 100%,65% 99.1%,46% 100%,28% 99.2%,10% 100%,.4% 98.6%,1.3% 79%,0 60%,1.1% 41%,0 22%); }
.hero-center{ grid-column:2; display:flex; flex-direction:column; align-items:center; text-align:center; }
.hero-h1{ display:flex; flex-direction:column; align-items:center; }
.hero-logo{ width:min(430px,100%); }
.tagline{ margin-top:20px; font-family:var(--sans); font-weight:500; font-size:clamp(.78rem,1.05vw,.98rem); line-height:1.3; letter-spacing:.27em; padding-left:.27em; text-transform:uppercase; }
.hero-sub{ margin-top:22px; font-family:var(--mono); font-size:.95rem; line-height:1.5; }
/* Atlas: a fő üzenet a hero címe (h1), a logó fölötte áll */
.atlas .hero-logo{ width:min(400px,100%); }
.hero-msg{ margin-top:28px; max-width:30ch; font-size:clamp(1.45rem,2.3vw,2rem); line-height:1.2; letter-spacing:-.01em; text-wrap:balance; }
.hero-msg em{ font-style:italic; }

.search{ display:flex; width:min(560px,100%); margin-top:30px; background:var(--card); border:1px solid var(--ink); text-align:left; }
.search .q{ flex:1; min-width:0; display:flex; align-items:center; gap:12px; padding:16px 18px; font-size:1rem; }
.search .q svg{ flex:none; width:22px; height:22px; }
.search .typed-wrap{ display:flex; align-items:center; min-width:0; }
.search .typed{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.js .typed[data-demo]:not(.ready), .js .answer:not(.ready) .answer-text{ visibility:hidden; animation:showLate 0s 3s forwards; }
@keyframes showLate{ to{ visibility:visible; } }
.caret{ flex:none; width:2px; height:1.15em; margin-left:2px; background:var(--ink); animation:blink 1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }
.search .go{ flex:none; display:flex; align-items:center; justify-content:center; padding-inline:28px; background:var(--ink); color:var(--cream); font-size:.95rem; text-decoration:none; transition:background .2s, color .2s; }
.search .go:hover{ background:var(--orange); color:var(--ink); }
.answer{ display:flex; align-items:baseline; gap:12px; width:min(560px,100%); padding:12px 18px; background:var(--cream); border:1px solid var(--ink); border-top:1px dashed rgba(18,36,29,.45); text-align:left; font-family:var(--mono); font-size:.82rem; line-height:1.45; }
.answer-tag{ flex:none; display:inline-flex; align-items:center; gap:.5em; font-size:.78em; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.answer-tag::before{ content:""; width:.62em; height:.62em; border-radius:50%; background:var(--orange); }
.answer-text{ transition:opacity .35s, transform .35s; }
.answer.is-hidden .answer-text{ opacity:0; transform:translateY(4px); }
.answer.is-thinking .answer-text{ opacity:1; transform:none; letter-spacing:.3em; }
.hero-btn{ margin-top:34px; }

@media (max-width:1100px){
  .hero-grid{ grid-template-columns:minmax(0,.75fr) minmax(0,1.6fr); gap:48px; }
}
@media (max-width:760px){
  .hero{ padding-block:44px 64px; }
  .hero-grid{ grid-template-columns:minmax(0,1fr); gap:44px; }
  .hero-center{ grid-column:1; }
  .hero-art{ order:2; justify-self:center; width:62%; max-width:250px; }
  .hero-art img{ aspect-ratio:3 / 4; object-fit:cover; object-position:center top; }
}
@media (max-width:640px){
  .hero-logo{ width:min(300px,86%); }
  .tagline{ margin-top:14px; font-size:.72rem; letter-spacing:.24em; padding-left:.24em; }
  .hero-sub{ margin-top:16px; font-size:.86rem; }
  .atlas .hero-logo{ width:min(280px,80%); }
  .hero-msg{ margin-top:20px; font-size:1.32rem; }
  .search{ margin-top:24px; }
  .search .q{ align-items:flex-start; min-height:72px; padding:14px 12px; gap:10px; font-size:.95rem; line-height:1.35; }
  .search .q svg{ width:18px; height:18px; margin-top:2px; }
  .search .typed-wrap{ display:block; }
  .search .typed{ display:inline; white-space:normal; overflow:visible; }
  .caret{ display:inline-block; vertical-align:-3px; }
  .search .go{ padding-inline:14px; font-size:.82rem; }
  .answer{ flex-direction:column; align-items:flex-start; gap:4px; min-height:80px; padding:10px 14px; font-size:.78rem; }
  .hero-btn{ width:100%; justify-content:center; margin-top:22px; padding-block:16px; }
}

/* ---------- 01 · mit oldunk meg: két rendszer ---------- */
.solve{ padding-block:var(--sec); background-color:var(--sky); background-image:var(--grain); }
.sec-head{ max-width:780px; }
.systems{ display:grid; grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr); margin-top:60px; }
.system{ display:flex; flex-direction:column; padding:36px 38px 42px; background-color:var(--card); background-image:var(--grain); }
.system-top{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.system-top .sys-label{ font-family:var(--mono); font-weight:600; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; }
.px-icon{ flex:none; width:48px; height:48px; image-rendering:pixelated; }
.system h3{ margin-top:30px; font-size:clamp(1.65rem,2.3vw,2.15rem); }
.ticks, .gets{ list-style:none; padding:0; }
.ticks{ display:grid; gap:16px; margin-top:26px; font-family:var(--mono); font-size:.9rem; line-height:1.6; }
.ticks li, .gets li{ display:flex; gap:14px; }
.ticks li::before, .gets li::before{ content:""; flex:none; width:8px; height:8px; margin-top:.6em; background:var(--orange); }
.join{ display:flex; align-items:center; justify-content:center; }
.join span{ display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--ink); color:var(--cream); font-family:var(--sans); font-weight:400; font-size:1.9rem; line-height:1; padding-bottom:3px; }
.systems-note{ margin-top:44px; text-align:center; font-family:var(--serif); font-size:clamp(1.3rem,1.9vw,1.7rem); line-height:1.3; text-wrap:balance; }
.systems-note strong{ font-weight:400; font-style:italic; }
@media (max-width:900px){
  .systems{ grid-template-columns:minmax(0,1fr); grid-template-rows:auto 72px auto; margin-top:40px; }
  .system{ padding:28px 24px 32px; }
}
@media (max-width:640px){
  .lead{ font-size:.86rem; }
  .ticks{ font-size:.84rem; }
  .systems-note{ margin-top:32px; }
}

/* ---------- 02 · mit kapsz ---------- */
.value{ padding-block:var(--sec); }
.value-grid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(48px,7vw,112px); align-items:center; }
.value-text h2{ max-width:16ch; }
.list-label{ margin-top:40px; font-family:var(--mono); font-weight:600; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.gets{ margin-top:14px; border-top:1px solid var(--line); font-family:var(--mono); font-size:.92rem; line-height:1.5; }
.gets li{ padding:14px 0; border-bottom:1px solid var(--line); }
.gets li::before{ margin-top:.45em; }
.value-text .btn{ margin-top:38px; }
.value-media{ position:relative; justify-self:end; width:100%; max-width:470px; padding-bottom:48px; }
.value-media img{ width:100%; }
/* az egyetlen jóváhagyott szám: ink cetli a kép sarkán */
.stat{ position:absolute; left:-40px; bottom:0; width:min(290px,72%); padding:24px 26px 26px; background:var(--ink); color:var(--cream); }
.stat-num{ font-family:var(--serif); font-size:clamp(3.6rem,5.4vw,4.8rem); line-height:.9; letter-spacing:-.03em; white-space:nowrap; }
.stat-num .pre{ margin-right:.14em; font-style:italic; font-size:.36em; letter-spacing:0; color:var(--orange); }
.stat-text{ margin-top:14px; font-family:var(--mono); font-size:.8rem; line-height:1.55; }
@media (max-width:900px){
  .value-grid{ grid-template-columns:minmax(0,1fr); }
  .value-text h2{ max-width:none; }
  .value-media{ justify-self:center; max-width:420px; }
  .stat{ left:-12px; }
}
@media (max-width:640px){
  .body-l{ font-size:1rem; }
  .gets{ font-size:.86rem; }
  .value-text .btn{ width:100%; justify-content:center; padding-block:16px; }
  .value-media{ padding-bottom:40px; }
  .stat{ left:0; width:78%; padding:20px 20px 22px; }
}

/* ---------- 03 · referenciák: csak logók ---------- */
.refs{ padding-block:clamp(64px,7vw,104px); border-top:1px solid var(--line); }
.refs-title{ margin:0; text-align:center; font-size:.72rem; letter-spacing:.14em; }
.logos{ list-style:none; margin:48px 0 0; padding:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:center; justify-items:center; gap:40px 32px; }
.logos li{ display:flex; align-items:center; justify-content:center; }
.logos img{ width:auto; max-width:100%; }
/* optikailag azonos méret: a széles logó alacsonyabb, a magas keskenyebb */
.logo-sihaz{ max-height:62px; }
.logo-zsiraf-pest{ max-height:74px; }
.logo-zsiraf-buda{ max-height:54px; }
.logo-norma{ max-height:74px; }
.logo-otkert{ max-height:76px; }
.logo-mazel{ max-height:52px; }
@media (max-width:1000px){ .logos{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 28px; } }
@media (max-width:640px){
  .logos{ margin-top:36px; gap:40px 20px; }
  .logos img{ transform:scale(.8); }
}

/* ---------- 04 · rólunk (ink szekció) ---------- */
.about{ padding-block:var(--sec); background:var(--ink); color:var(--cream); }
.about ::selection{ background:var(--orange); color:var(--ink); }
/* fent a szöveg, alatta a csapat egy sorban (3 fő) */
.about-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(48px,6vw,88px); }
.about-text{ max-width:760px; }
.about-text h2{ max-width:14ch; }
.about-text .body-l + .body-l{ margin-top:16px; }
.founders{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,3vw,40px); }
/* portré-hely: a végleges fekete-fehér portrék érkezéséig */
.portrait{ display:flex; align-items:center; justify-content:center; aspect-ratio:4 / 5; padding:16px; border:1px dashed rgba(237,233,223,.45); background:rgba(237,233,223,.05); text-align:center; font-family:var(--mono); font-size:.76rem; line-height:1.6; letter-spacing:.08em; text-transform:uppercase; color:rgba(237,233,223,.78); }
.founder .name{ margin-top:22px; font-size:clamp(1.45rem,2vw,1.75rem); }
.founder .role{ margin-top:8px; font-weight:500; font-size:.95rem; line-height:1.45; }
.founder .org{ margin-top:10px; padding-top:10px; border-top:1px solid rgba(237,233,223,.2); font-family:var(--mono); font-size:.78rem; line-height:1.55; color:rgba(237,233,223,.78); }
@media (max-width:900px){ .about-text h2{ max-width:none; } }
/* mobilon egymás alatt: kép balra, szöveg mellette */
@media (max-width:640px){
  .founders{ grid-template-columns:minmax(0,1fr); gap:24px; }
  .founder{ display:grid; grid-template-columns:38% minmax(0,1fr); grid-template-rows:auto auto auto 1fr; column-gap:16px; }
  .founder .portrait{ grid-row:1 / span 4; align-self:start; }
  .portrait{ font-size:.66rem; padding:10px; }
  .founder .name{ margin-top:0; font-size:1.3rem; }
  .founder .role{ font-size:.86rem; }
  .founder .org{ font-size:.72rem; }
}

/* ---------- ajánlatkérő (a v4 blokkja változatlanul) + lábléc ---------- */
.bottom{ padding-top:clamp(40px,5vw,72px); background-color:var(--page); }
.sheet{ background-color:var(--cream); background-image:var(--grain); border:1px solid var(--edge); }
.leadform{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:var(--gut); }
.leadform > *{ min-width:0; }
/* Kapcsolat: a sárga cetli a jobb alsó sarokba simuló, kivágott városkép-kollázsra fed rá */
.contact{ display:grid; grid-template-areas:"stack"; overflow:hidden; }
.contact > *{ grid-area:stack; }
.contact-card{ position:relative; z-index:1; align-self:start; justify-self:start; width:min(80%,400px); margin:40px 0 0 var(--pad); padding:40px 32px 36px; background-color:var(--butter); background-image:var(--grain); clip-path:polygon(0 2%,9% 0,22% 1.5%,37% 0,52% 1.8%,68% 0,83% 1.2%,100% 0,99% 34%,100% 67%,98.6% 100%,81% 98.4%,62% 100%,44% 98.6%,25% 100%,8% 98.2%,0 100%,1.2% 64%,0 31%); }
.contact-card h2{ margin-top:12px; font-size:clamp(2rem,3.3vw,3rem); letter-spacing:-.015em; }
.contact-card p{ margin-top:16px; font-family:var(--mono); font-size:.9rem; line-height:1.6; max-width:30ch; }
.contact-card .mail{ margin-top:14px; font-size:.74rem; }
.contact-coast{ align-self:end; justify-self:end; width:100%; height:auto; }
.lf-form{ padding:48px var(--pad) 52px; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; border:0; min-width:0; }
.chips legend{ width:100%; margin-bottom:14px; padding:0; font-family:var(--serif); font-size:1.35rem; }
.chips legend span{ margin-left:8px; font-family:var(--mono); font-size:.74rem; opacity:.75; }
.chip{ position:relative; }
.chip input{ position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.chip span{ display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border:1px solid var(--ink); border-radius:999px; background:var(--card); font-family:var(--mono); font-size:.8rem; cursor:pointer; transition:background .2s, color .2s, transform .2s; }
.chip span::before{ content:"+"; font-weight:600; }
.chip input:checked + span{ background:var(--ink); color:var(--cream); }
.chip input:checked + span::before{ content:"✓"; color:var(--orange); }
.chip input:focus-visible + span{ outline:3px solid var(--orange); outline-offset:2px; }
.chip:hover span{ transform:translateY(-2px); }
.fields{ display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; margin-top:28px; }
.field{ display:grid; gap:6px; font-family:var(--mono); font-size:.76rem; font-weight:500; }
.field em{ font-style:normal; opacity:.65; }
.field.wide{ grid-column:1 / -1; }
.field input, .field textarea{ width:100%; padding:12px 14px; border:1px solid var(--ink); border-radius:0; background:var(--card); color:var(--ink); font:400 .95rem/1.4 var(--sans); }
.field input:focus, .field textarea:focus{ outline:3px solid var(--orange); outline-offset:0; }
.field textarea{ resize:vertical; min-height:88px; }
.lf-actions{ display:flex; align-items:center; flex-wrap:wrap; gap:14px 24px; margin-top:26px; }
.lf-note{ font-family:var(--mono); font-size:.74rem; opacity:.8; max-width:44ch; }
.lf-note.ok{ opacity:1; font-weight:600; }
@media (max-width:1100px){ .contact-coast{ width:min(100%,780px); } }
@media (max-width:1000px){ .leadform{ grid-template-columns:minmax(0,1fr); } .contact{ min-height:460px; } }
@media (max-width:640px){
  .contact{ grid-template-areas:"card" "coast"; min-height:0; }
  .contact-card{ grid-area:card; justify-self:stretch; width:auto; margin:20px var(--pad) 0; padding:28px 22px 26px; }
  .contact-card h2{ font-size:2rem; }
  .contact-card p{ font-size:.84rem; }
  .contact-coast{ grid-area:coast; margin-top:-40px; }
  .lf-form{ padding:36px var(--pad) 40px; }
  .chips{ gap:8px; }
  .chips legend{ font-size:1.2rem; }
  .chips legend span{ display:block; margin:4px 0 0; }
  .chip span{ padding:8px 11px; font-size:.74rem; }
  .fields{ grid-template-columns:1fr; gap:12px; margin-top:22px; }
  .field input, .field textarea{ font-size:16px; } /* 16 px alatt az iOS ráközelít a mezőre */
  .lf-actions .btn{ width:100%; justify-content:center; padding-block:15px; }
}

footer{ padding-top:clamp(48px,5vw,72px); background-color:var(--page); }
.footer-grid{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:24px 40px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.footer-grid nav{ display:flex; justify-content:center; flex-wrap:wrap; gap:10px 28px; font-family:var(--mono); font-size:.8rem; }
.footer-grid nav a{ text-decoration:none; }
.footer-grid nav a:hover{ text-decoration:underline; text-underline-offset:4px; }
/* közösségi ikonok: a brandbook 16×16-os pixeles ikonrácsán, 32 px-en (a 16 többszöröse) */
.social{ display:flex; gap:8px; }
.social a{ display:grid; place-items:center; width:48px; height:48px; color:var(--ink); transition:background .2s, color .2s; }
.social a:hover{ background:var(--ink); color:var(--cream); }
.social svg{ display:block; width:32px; height:32px; }
.copy{ padding-block:20px 28px; font-family:var(--mono); font-size:.7rem; opacity:.7; }
@media (max-width:900px){
  .footer-grid{ grid-template-columns:minmax(0,1fr); justify-items:start; }
  .footer-grid nav{ justify-content:flex-start; }
}

/* ---------- köszönőoldal (mérési pont) ---------- */
.thanks-page{ background-color:var(--page); }
.back-link{ font-family:var(--mono); font-size:.8rem; text-decoration:none; border-bottom:2px solid transparent; padding-block:6px; }
.back-link:hover{ border-color:var(--orange); }
.thanks{ padding-block:clamp(32px,5vw,72px); }
.thanks .contact{ max-width:1000px; min-height:600px; margin-inline:auto; }
.thanks .contact-card{ width:min(86%,460px); }
.thanks .contact-card h1{ margin-top:12px; font-size:clamp(2rem,3.4vw,3rem); letter-spacing:-.015em; }
.thanks .contact-card .btn{ margin-top:26px; }
.pending-only{ display:none; }
.mail-pending .pending-only{ display:revert; }
.mail-pending p.pending-only{ display:block; }
.mail-pending .done-only{ display:none; }
.thanks-page footer{ padding-top:0; }
@media (max-width:640px){
  .back-link{ display:none; }
  .thanks .contact{ min-height:0; }
  .thanks .contact-card .btn{ width:100%; justify-content:center; }
}

/* ---------- mobil sticky CTA ---------- */
.mobile-cta{ display:none; }
@media (max-width:760px){
  .mobile-cta{ display:flex; justify-content:center; position:fixed; left:12px; right:12px; bottom:12px; z-index:60; box-shadow:0 6px 0 var(--ink); transform:translateY(160%); transition:transform .35s var(--ease); }
  .mobile-cta.show{ transform:none; }
  .copy{ padding-bottom:88px; }
}

/* ---------- mozgás: visszafogott (csak ha a látogató nem kért csökkentett mozgást) ---------- */
@media (prefers-reduced-motion:no-preference){
  .navbar{ animation:fadeDown .7s var(--ease) both; }
  .hero-art{ animation:artIn 1.2s var(--ease) .1s both; }
  .hero-h1{ animation:rise .9s var(--ease) .1s both; }
  .hero-sub, .hero-msg{ animation:rise .9s var(--ease) .2s both; }
  .search{ animation:rise .9s var(--ease) .3s both; }
  .answer{ animation:rise .9s var(--ease) .4s both; }
  .hero-btn{ animation:rise .9s var(--ease) .5s both; }
  /* görgetésre előúszó elemek (a JS adja hozzá az .in osztályt) */
  .js [data-reveal]{ opacity:0; translate:0 24px; transition:opacity .8s var(--ease) var(--d,0s), translate .8s var(--ease) var(--d,0s); }
  .js [data-reveal].in{ opacity:1; translate:none; }
  .chip input:checked + span{ animation:pop .3s cubic-bezier(.3,1.6,.5,1); }
}
@keyframes rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@keyframes artIn{ from{ opacity:0; transform:translateY(20px) rotate(-6deg); } to{ opacity:1; transform:rotate(-2.5deg); } }
@keyframes fadeDown{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:none; } }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }
@keyframes pop{ 50%{ transform:scale(1.08); } }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation:none !important; transition:none !important; }
  .navbar, .hero-art, .hero-h1, .hero-sub, .hero-msg, .search, .answer, .hero-btn{ animation:fadeIn .9s ease both !important; }
  .js .typed[data-demo]:not(.ready), .js .answer:not(.ready) .answer-text{ animation:showLate 0s 3s forwards !important; }
  .answer-text{ transition:opacity .3s !important; }
}
