/* ============================================================
   TumaGarden — design tokens
   ============================================================ */
:root{
  --paper: #f4f2e9;
  --paper-alt: #fbfaf4;
  --card: #f4f2e9;
  --ink: #26302a;
  --heading-ink: #1c2b21;
  --heading-ink-2: #20302a;
  --body-soft: #4a544d;
  --body-soft-2: #5c665e;
  --muted: #6a746c;
  --muted-2: #8a9187;
  --accent: #2f9245;
  --green-deep: #1f5c31;
  --green-darkest: #163d22;
  --footer-bg: #0f2a18;
  --soil-brown: #7a5636;
  --soil-brown-2: #855a2f;
  --icon-chip-bg: #e7efe5;
  --border: #e6e3d5;
  --border-2: #ece9dc;
  --input-border: #cfd3c6;
  --error: #b23b2e;

  --header-h: 70px;
  --container-w: 1120px;
  --section-pad: clamp(56px, 8vw, 100px);
  --radius-card: 14px;
  --radius-btn: 9px;
  --shadow-card: 0 10px 26px rgba(28,43,33,.1);
  --shadow-img: 0 16px 36px rgba(28,43,33,.14);
  --shadow-cta: 0 8px 22px rgba(31,92,49,.22);
}

/* ============================================================
   Reset & base
   ============================================================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Spectral',Georgia,serif;font-weight:500;margin:0}
p{margin:0}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--green-deep);text-decoration:underline}
button{font-family:inherit}
input,select,textarea{font-family:inherit}
:focus-visible{outline:3px solid var(--green-deep);outline-offset:2px;border-radius:4px}

.tg-container{width:100%;max-width:var(--container-w);margin:0 auto;padding:0 24px}

.tg-skip{
  position:absolute;left:-9999px;top:8px;
  background:var(--green-darkest);color:#fff;
  padding:10px 16px;border-radius:8px;z-index:200;
}
.tg-skip:focus{left:16px;color:#fff}

.tg-eyebrow{
  display:inline-block;font-size:.78rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
}
.tg-eyebrow--light{color:#8fd39c}

/* ============================================================
   Buttons
   ============================================================ */
.tg-btn{
  display:inline-flex;align-items:center;gap:9px;
  border-radius:var(--radius-btn);font-weight:600;
  border:1.5px solid transparent;cursor:pointer;
  white-space:nowrap;
}
.tg-btn--primary{
  background:var(--accent);color:#fff;
  padding:14px 26px;font-size:1rem;
  box-shadow:var(--shadow-cta);
}
.tg-btn--primary:hover{background:var(--green-deep);color:#fff;text-decoration:none}
.tg-btn--outline{
  background:transparent;color:var(--ink);
  padding:14px 24px;font-size:1rem;
  border-color:#cbd0c3;
}
.tg-btn--outline:hover{border-color:var(--green-deep);color:var(--green-deep);text-decoration:none}
.tg-btn--lg{padding:15px 28px;font-size:1.02rem}

/* ============================================================
   Header / nav
   ============================================================ */
.tg-header{
  position:sticky;top:0;z-index:100;
  background:rgba(244,242,233,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid #e3e2d5;
}
.tg-header-inner{
  width:100%;max-width:var(--container-w);margin:0 auto;
  padding:12px 24px;
  display:flex;align-items:center;gap:16px;
  position:relative;
}
.tg-logo{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.tg-logo img{width:46px;height:auto}

.tg-nav{
  margin-left:auto;
  display:flex;align-items:center;gap:26px;
}
.tg-navlinks{display:flex;gap:26px;align-items:center}
.tg-navlinks a{color:#3c4640;font-weight:500;font-size:.95rem}
.tg-navlinks a:hover{color:var(--green-deep)}

.tg-nav-toggle{
  display:none;
  margin-left:auto;
  width:40px;height:40px;
  background:transparent;border:1.5px solid var(--border);
  border-radius:8px;
  align-items:center;justify-content:center;
  flex-direction:column;gap:5px;
}
.tg-nav-toggle span{
  display:block;width:18px;height:2px;background:var(--heading-ink);border-radius:2px;
}

@media (max-width: 940px){
  .tg-nav-toggle{display:inline-flex}
  .tg-nav{
    position:absolute;top:100%;left:0;right:0;
    background:var(--paper);
    border-bottom:1px solid var(--border-2);
    box-shadow:0 12px 20px rgba(28,43,33,.08);
    flex-direction:column;align-items:stretch;gap:0;
    padding:10px 24px 20px;
    display:none;
  }
  .tg-nav.is-open{display:flex}
  .tg-navlinks{flex-direction:column;align-items:flex-start;gap:2px;width:100%}
  .tg-navlinks a{padding:12px 0;width:100%;border-bottom:1px solid var(--border-2)}
  .tg-nav .tg-btn{margin-top:14px;width:100%;justify-content:center}
}

/* ============================================================
   Hero
   ============================================================ */
.tg-hero{
  width:100%;
  background:radial-gradient(120% 90% at 85% 10%, #fbfaf1 0%, var(--paper) 55%);
}
.tg-hero__inner{
  padding:clamp(40px,7vw,84px) 24px;
  display:flex;flex-wrap:wrap;align-items:center;gap:40px;
}
.tg-hero__content{flex:1 1 380px;min-width:300px}
.tg-hero__title{
  margin-top:18px;
  font-size:clamp(2.5rem,6vw,4.3rem);line-height:1.04;
  letter-spacing:-.01em;color:var(--heading-ink);
  text-wrap:balance;
}
.tg-hero__subhead{
  margin-top:22px;max-width:30em;
  font-size:clamp(1.05rem,1.6vw,1.22rem);line-height:1.65;
  color:var(--body-soft);
}
.tg-hero__ctas{margin-top:34px;display:flex;flex-wrap:wrap;gap:14px}
.tg-hero__phone{margin-top:26px;font-size:.95rem;color:var(--muted)}
.tg-hero__phone a{font-weight:600;white-space:nowrap}
.tg-hero__art{flex:1 1 300px;min-width:260px;display:flex;justify-content:center}
.tg-hero__svg{
  width:100%;max-width:340px;height:auto;
  filter:drop-shadow(0 12px 20px rgba(28,43,33,.08));
}

/* ============================================================
   Keresztmetszet (signature scroll moment)
   ============================================================ */
.tg-xs{
  position:relative;
  background:linear-gradient(180deg,var(--paper) 0%,#efeee2 100%);
}
.tg-xs__stage{
  position:static;height:auto;min-height:min(760px,100vh);
  overflow:visible;
  display:flex;align-items:center;justify-content:center;
  padding-block:56px;
}
.tg-xs__inner{
  position:relative;width:100%;max-width:1080px;height:100%;
  margin:0 auto;padding:0 24px;
  display:flex;align-items:center;justify-content:center;
}
.tg-xs__heading{
  position:absolute;top:clamp(14px,3vh,30px);left:0;right:0;
  text-align:center;padding:0 24px;
}
.tg-xs__heading h2{
  margin-top:6px;font-family:'Spectral',serif;
  font-size:clamp(1.15rem,2.4vw,1.7rem);font-weight:500;
  color:#2a352b;
}
.tg-xs__plantwrap{
  height:clamp(300px,70vh,600px);
  transform-style:preserve-3d;will-change:transform;
  transform:none;
}
.tg-xs__svg{height:100%;width:auto;overflow:visible}

.xs-fact{
  position:absolute;max-width:min(78vw,262px);margin:0;
  opacity:1;transform:translateY(0);pointer-events:auto;
}
.xs-fact__card{
  background:rgba(251,250,244,0.94);
  border:1px solid #e2e0d1;border-left:3px solid;
  border-radius:10px;padding:16px 18px;
  box-shadow:var(--shadow-card);
}
.xs-fact__eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
}
.xs-fact__card p{
  margin-top:7px;font-family:'Spectral',serif;
  font-size:1.06rem;line-height:1.45;color:#2a352b;
}

.tg-xs__hint{
  display:none;
  position:absolute;bottom:16px;left:0;right:0;text-align:center;
  color:var(--muted-2);font-size:.82rem;
}
.tg-xs__hint-arrow{margin-top:4px;animation:tgbob 1.8s ease-in-out infinite}
@keyframes tgbob{0%,100%{transform:translateY(0);opacity:.9}50%{transform:translateY(7px);opacity:.5}}

/* Enhanced (JS-driven scroll pin) state — added by script.js when motion is allowed */
.tg-xs.is-animated{height:300vh}
.tg-xs.is-animated .tg-xs__stage{
  position:sticky;top:var(--header-h);
  height:calc(100vh - var(--header-h));
  min-height:0;overflow:hidden;padding-block:0;
}
.tg-xs.is-animated .tg-xs__hint{display:block}
.tg-xs.is-animated .xs-fact{transition:opacity .2s ease, transform .2s ease}
.tg-xs.is-animated #xs-soil{transition:opacity .2s ease, transform .2s ease}

/* ============================================================
   Generic section
   ============================================================ */
.tg-section{width:100%;background:var(--paper)}
.tg-section > .tg-container{padding-top:var(--section-pad);padding-bottom:var(--section-pad)}
.tg-section--alt{background:var(--paper-alt)}
.tg-section--bordered{border-top:1px solid var(--border-2);border-bottom:1px solid var(--border-2)}
.tg-section--bordered-top{border-top:1px solid var(--border-2)}
.tg-section h2{
  margin-top:14px;font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.1;
  color:var(--heading-ink);
}
.tg-section__intro{
  margin-top:16px;max-width:40em;font-size:1.08rem;line-height:1.65;color:var(--body-soft);
}
.tg-section__footnote{margin-top:22px;font-size:.9rem;color:var(--muted-2);font-style:italic}

/* ============================================================
   Bemutatkozás
   ============================================================ */
.tg-about__inner{
  display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px);align-items:center;
  padding-top:var(--section-pad);padding-bottom:var(--section-pad);
}
.tg-about__text{flex:1 1 360px;min-width:300px}
.tg-about__text h2{text-wrap:balance}
.tg-about__lead{margin-top:22px;font-size:1.12rem;line-height:1.7;color:#414b44;max-width:34em}
.tg-stats{margin-top:30px;display:flex;flex-wrap:wrap;gap:14px 40px}
.tg-stats__label{font-family:'Spectral',serif;font-size:1.5rem;color:var(--green-deep)}
.tg-stats__desc{font-size:.92rem;color:var(--muted)}
.tg-about__media{flex:1 1 320px;min-width:280px}
.tg-about__media img{
  width:100%;height:clamp(280px,42vh,440px);object-fit:cover;
  border-radius:var(--radius-card);box-shadow:var(--shadow-img);
}

/* ============================================================
   Szolgáltatások
   ============================================================ */
.tg-services{
  margin-top:38px;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;
}
.tg-service-card{
  background:var(--card);border:1px solid var(--border);border-radius:12px;
  padding:26px 24px;display:flex;gap:16px;align-items:flex-start;
}
.tg-service-card__icon{
  flex:0 0 auto;width:42px;height:42px;border-radius:10px;
  background:var(--icon-chip-bg);
  display:flex;align-items:center;justify-content:center;
}
.tg-service-card h3{font-size:1.16rem;line-height:1.25;color:var(--heading-ink-2)}
.tg-service-card p{margin-top:7px;font-size:.98rem;line-height:1.55;color:var(--body-soft-2)}

/* ============================================================
   Terület
   ============================================================ */
.tg-terulet{width:100%;background:var(--green-darkest);color:#eaf1e6}
.tg-terulet__inner{
  display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,60px);align-items:center;
  padding-top:var(--section-pad);padding-bottom:var(--section-pad);
}
.tg-terulet__text{flex:1 1 360px;min-width:300px}
.tg-terulet__text h2{margin-top:14px;font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.1;color:#fff}
.tg-terulet__text p{margin-top:20px;font-size:1.1rem;line-height:1.7;color:#c9d8c6;max-width:32em}
.tg-pills{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px}
.tg-pill{
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.16);
  border-radius:999px;padding:8px 16px;font-size:.95rem;color:#eaf1e6;
}
.tg-pill--dashed{
  background:rgba(255,255,255,0.05);border:1px dashed rgba(255,255,255,0.22);color:#9fb59c;
}
.tg-terulet__map{flex:1 1 320px;min-width:280px}
.tg-map{
  display:block;border-radius:var(--radius-card);overflow:hidden;
  border:1px solid rgba(255,255,255,0.14);box-shadow:var(--shadow-img);
}
.tg-map img{width:100%;height:auto}
.tg-map:hover{border-color:rgba(255,255,255,0.3)}

/* ============================================================
   Galéria
   ============================================================ */
.tg-gallery{
  margin-top:34px;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;
}
.tg-gallery__item{
  margin:0;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-card);
}
.tg-gallery__item img{width:100%;height:260px;object-fit:cover}

/* ============================================================
   Kapcsolat
   ============================================================ */
.tg-contact__inner{
  display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,56px);
  padding-top:var(--section-pad);padding-bottom:var(--section-pad);
}
.tg-contact__info{flex:1 1 320px;min-width:290px}
.tg-contact__lead{margin-top:18px;font-size:1.08rem;line-height:1.65;color:var(--body-soft);max-width:32em}
.tg-contact__list{margin:30px 0 0;display:grid;gap:18px}
.tg-contact__row{display:flex;gap:14px;align-items:flex-start}
.tg-contact__icon{
  flex:0 0 auto;width:40px;height:40px;border-radius:10px;background:var(--icon-chip-bg);
  display:flex;align-items:center;justify-content:center;
}
.tg-contact__row dt{font-size:.82rem;color:var(--muted-2);text-transform:uppercase;letter-spacing:.08em}
.tg-contact__row dd{margin:2px 0 0;font-size:1.08rem;color:#2a352b}
.tg-contact__value{font-size:1.16rem;font-weight:600}
.tg-contact__info > .tg-btn{margin-top:28px}

.tg-contact__form-wrap{flex:1 1 340px;min-width:300px}
.tg-form{
  background:var(--card);border:1px solid var(--border);border-radius:16px;
  padding:clamp(24px,3vw,34px);
}
.tg-form h3{font-size:1.3rem;color:var(--heading-ink)}
.tg-form__success{
  margin-top:16px;background:var(--icon-chip-bg);border:1px solid #bcd7bd;border-radius:10px;
  padding:16px 18px;color:var(--green-deep);font-size:1rem;line-height:1.5;
}
.tg-form__field{margin-top:18px}
.tg-form__field label{display:block;font-size:.9rem;font-weight:600;color:#3c4640;margin-bottom:6px}
.tg-form__field input,
.tg-form__field select,
.tg-form__field textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--input-border);border-radius:9px;
  background:#fff;font-size:1rem;color:var(--ink);
}
.tg-form__field textarea{resize:vertical;min-height:96px}
.tg-form__error{margin-top:6px;font-size:.86rem;color:var(--error)}
.tg-form__error:not([hidden]){display:block}
.tg-form__submit{margin-top:22px;width:100%;justify-content:center;padding:15px;font-size:1.05rem;border:none}
.tg-form__note{margin-top:12px;font-size:.82rem;color:var(--muted-2);text-align:center}

/* ============================================================
   Footer
   ============================================================ */
.tg-footer{width:100%;background:var(--footer-bg);color:#c3d2be}
.tg-footer__inner{
  padding:clamp(40px,6vw,64px) 24px 32px;
  display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start;
}
.tg-footer__brand{flex:1 1 280px;min-width:240px}
.tg-footer__logo{width:72px;height:auto;filter:brightness(1.05)}
.tg-footer__brand p{margin-top:14px;font-size:.98rem;line-height:1.6;color:#a9bda3;max-width:26em}
.tg-footer__col{flex:1 1 200px;min-width:180px;display:flex;flex-direction:column}
.tg-footer__heading{
  font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#7f9679;margin-bottom:12px;
}
.tg-footer__col a{color:#c3d2be;padding:4px 0}
.tg-footer__fb{display:inline-flex;align-items:center;gap:8px}
.tg-footer__legal-wrap{border-top:1px solid rgba(255,255,255,0.08)}
.tg-footer__legal{
  padding:20px 24px;
  display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;align-items:center;
  font-size:.86rem;color:#8fa389;
}
.tg-footer__legal-links{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}
.tg-footer__legal-links a{color:#8fa389}
