/*
Theme Name: VitalGlow Elementor
Theme URI: https://example.com/
Author: OpenAI
Author URI: https://openai.com/
Description: Elegáns, Elementor Free-barát WordPress téma egészség, wellness és konzultáció fókuszú oldalakhoz.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: vitalglow
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --vf-bg:#f6fbfa;
  --vf-surface:#ffffff;
  --vf-surface-2:#eef8f6;
  --vf-ink:#102126;
  --vf-muted:#5d6d73;
  --vf-line:rgba(13,76,80,.10);
  --vf-primary:#0f766e;
  --vf-primary-2:#14b8a6;
  --vf-accent:#67e8f9;
  --vf-dark:#0d1f23;
  --vf-shadow:0 18px 45px rgba(15, 118, 110, .10);
  --vf-radius:28px;
  --vf-radius-sm:18px;
  --vf-max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--vf-ink);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:
    radial-gradient(circle at top left, rgba(103,232,249,.18), transparent 30%),
    radial-gradient(circle at 95% 15%, rgba(20,184,166,.12), transparent 26%),
    linear-gradient(180deg, #fbfefd 0%, #f4fbfa 50%, #f8fcfb 100%);
  line-height:1.6;
}

img{max-width:100%;height:auto;display:block}
a{color:var(--vf-primary);text-decoration:none}
a:hover{color:#0a5e58}
h1,h2,h3,h4,h5,h6{
  font-family:'Cormorant Garamond', Georgia, serif;
  color:#0a1f24;
  margin:0 0 .35em;
  line-height:1.03;
  letter-spacing:-0.02em;
}
h1{font-size:clamp(2.6rem, 6vw, 5.5rem)}
h2{font-size:clamp(2rem, 4vw, 3.4rem)}
h3{font-size:clamp(1.3rem, 2vw, 1.8rem)}
p{margin:.35em 0 1em}
ul{padding-left:1.2rem}

.site{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.vf-shell{
  width:min(var(--vf-max), calc(100% - 32px));
  margin-inline:auto;
}

.site-header{
  position:sticky;
  top:0;
  z-index:40;
  backdrop-filter:saturate(180%) blur(20px);
  background:rgba(250,254,253,.78);
  border-bottom:1px solid rgba(13,76,80,.08);
}
.site-header__inner{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.site-branding{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.site-branding img{
  width:54px;
  height:54px;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(15,118,110,.12));
}
.site-branding__text{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.site-title{
  font-family:'Cormorant Garamond', serif;
  font-size:2rem;
  font-weight:700;
  color:#0b2125;
}
.site-description{
  color:var(--vf-muted);
  font-size:.92rem;
  margin-top:-2px;
}

.main-navigation{
  margin-left:auto;
}
.main-navigation ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.main-navigation li{position:relative}
.main-navigation a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 14px;
  border-radius:999px;
  color:#17333a;
  font-weight:600;
  font-size:.96rem;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a{
  background:#ecf9f7;
  color:var(--vf-primary);
}
.main-navigation ul ul{
  position:absolute;
  left:0;
  top:100%;
  min-width:260px;
  display:none;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  background:rgba(255,255,255,.96);
  padding:14px;
  border:1px solid rgba(13,76,80,.08);
  border-radius:20px;
  box-shadow:var(--vf-shadow);
}
.main-navigation li:hover > ul{display:flex}
.header-cta .button,
.vf-shell .button,
button,
input[type=submit],
.wp-element-button,
.elementor-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:54px;
  padding:0 22px;
  border:none;
  border-radius:999px;
  background:linear-gradient(135deg, var(--vf-primary) 0%, var(--vf-primary-2) 100%);
  color:#fff !important;
  font-weight:700;
  box-shadow:0 12px 26px rgba(15,118,110,.22);
  transition:transform .24s ease, box-shadow .24s ease, opacity .24s ease;
}
button:hover,
input[type=submit]:hover,
.wp-element-button:hover,
.elementor-button:hover,
.header-cta .button:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(15,118,110,.28);
}
.mobile-toggle{
  display:none;
  width:46px;
  height:46px;
  border-radius:16px;
  border:1px solid rgba(13,76,80,.10);
  background:#fff;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.mobile-toggle span,
.mobile-toggle span::before,
.mobile-toggle span::after{
  display:block;
  width:20px;height:2px;
  background:#133136;
  position:relative;
  border-radius:999px;
}
.mobile-toggle span::before,
.mobile-toggle span::after{
  content:'';
  position:absolute;
  left:0;
}
.mobile-toggle span::before{top:-6px}
.mobile-toggle span::after{top:6px}

.site-main{
  flex:1 0 auto;
}

.entry-wrap,
.archive-wrap,
.search-wrap,
.not-found{
  width:min(920px, calc(100% - 32px));
  margin:56px auto 80px;
  background:rgba(255,255,255,.75);
  border:1px solid rgba(13,76,80,.08);
  box-shadow:var(--vf-shadow);
  border-radius:32px;
  padding:36px;
}
.entry-title{font-size:clamp(2rem, 4vw, 3.2rem)}
.entry-meta{color:var(--vf-muted);font-size:.95rem;margin-bottom:14px}
.entry-content > *:first-child{margin-top:0}

/* Elementor global polish */
.elementor .e-con{
  width:min(var(--vf-max), calc(100% - 32px));
  margin-inline:auto;
  padding:72px 0;
}
.elementor .e-con.e-flex{display:flex}
.elementor .elementor-heading-title{max-width:13ch}
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-heading,
.elementor .elementor-widget-button,
.elementor .elementor-widget-html{position:relative;z-index:2}
.elementor .elementor-widget-text-editor p,
.elementor .elementor-widget-text-editor li{color:var(--vf-muted);font-size:1rem}
.elementor a.elementor-button-link,
.elementor .elementor-button-link{width:auto}
.elementor .elementor-widget-button .elementor-button{
  min-width:unset;
  line-height:1;
}
.elementor .elementor-widget-button + .elementor-widget-button{margin-left:10px}
.elementor .elementor-widget-divider{
  opacity:.16;
}

/* Shared building blocks */
.vf-eyebrow,
.vf-section-label,
.vf-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(20,184,166,.10);
  color:var(--vf-primary);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.vf-note{
  padding:16px 18px;
  border:1px solid rgba(15,118,110,.14);
  background:rgba(255,255,255,.75);
  border-radius:18px;
  color:#35535a;
  font-size:.92rem;
}
.vf-hero-pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:20px 0 26px;
}
.vf-hero-pills span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(13,76,80,.08);
  color:#244147;
  font-weight:600;
  box-shadow:0 10px 25px rgba(15,118,110,.06);
}
.vf-card-icon svg{width:58px;height:58px}
.vf-step-no{
  font-family:'Cormorant Garamond', serif;
  font-size:2.3rem;
  line-height:1;
  color:var(--vf-primary);
}
.vf-quote-mark{
  font-family:'Cormorant Garamond', serif;
  font-size:6rem;
  line-height:.7;
  color:rgba(20,184,166,.26);
}
.vf-sign{
  font-size:.92rem;
  color:#44626b;
  font-weight:700;
}

/* Hero */
#vf-hero{
  display:grid !important;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:center;
  padding-top:56px;
}
#vf-hero-text .elementor-widget-heading .elementor-heading-title{max-width:10ch}
#vf-hero-actions{
  display:flex !important;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
  padding:6px 0 0;
}
#vf-hero-art{display:flex !important;justify-content:center;align-items:center}
.vf-hero-visual{
  position:relative;
  width:min(520px, 100%);
  aspect-ratio:1/1;
}
.vf-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(10px);
}
.vf-orb-a{
  inset:4% 18% auto auto;
  width:170px;height:170px;
  background:radial-gradient(circle at 30% 30%, rgba(103,232,249,.75), rgba(14,165,164,.18) 68%, transparent 72%);
}
.vf-orb-b{
  inset:auto auto 8% 6%;
  width:190px;height:190px;
  background:radial-gradient(circle at 30% 30%, rgba(167,243,208,.75), rgba(15,118,110,.18) 68%, transparent 72%);
}
.vf-phone-card{
  position:absolute;
  inset:10% 12%;
  padding:24px;
  border-radius:36px;
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(244,252,250,.9));
  border:1px solid rgba(13,76,80,.10);
  box-shadow:0 30px 60px rgba(15,118,110,.16);
  overflow:hidden;
}
.vf-phone-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top right, rgba(103,232,249,.28), transparent 32%),
    radial-gradient(circle at bottom left, rgba(20,184,166,.16), transparent 30%);
}
.vf-logo-wrap{
  width:140px;
  margin:8px auto 18px;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 16px 36px rgba(15,118,110,.16));
}
.vf-visual-lines{
  position:relative;
  z-index:2;
  display:grid;
  gap:12px;
  margin:8px 0 20px;
}
.vf-visual-lines span{
  height:12px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(20,184,166,.14), rgba(20,184,166,.08));
  border:1px solid rgba(20,184,166,.10);
}
.vf-visual-lines span:nth-child(2){width:84%}
.vf-visual-lines span:nth-child(3){width:68%}
.vf-visual-stat{
  position:relative;
  z-index:2;
  padding:16px 18px;
  border-radius:22px;
  background:rgba(255,255,255,.8);
  border:1px solid rgba(13,76,80,.08);
}
.vf-visual-stat strong{display:block;color:#17323a}
.vf-visual-stat small{color:#4e676e}
.vf-floating-card{
  position:absolute;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:200px;
  padding:12px 14px;
  border-radius:20px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(13,76,80,.10);
  box-shadow:0 16px 36px rgba(15,118,110,.12);
  backdrop-filter:blur(8px);
}
.vf-floating-top{top:16%;right:-2%}
.vf-floating-bottom{left:-4%;bottom:16%}
.vf-floating-card strong{display:block;font-size:.96rem;color:#16333a}
.vf-floating-card small{display:block;font-size:.82rem;color:#51686d}
.vf-floating-icon{width:46px;flex:0 0 46px}

/* Trust */
#vf-trust{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}
#vf-trust > .e-con{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(13,76,80,.08);
  border-radius:24px;
  padding:26px;
  box-shadow:var(--vf-shadow);
}
#vf-trust h3{font-size:1.5rem}

/* Services and solutions */
#vf-services, #vf-solutions, #vf-prices-teaser, #vf-contact, #vf-inner-cta,
#vf-prices-page-hero, #vf-contact-page-hero, #vf-about-page-hero, #vf-inner-hero, #vf-detail-hero{
  position:relative;
}
#vf-services::before,
#vf-solutions::before,
#vf-prices-teaser::before,
#vf-contact::before,
#vf-inner-hero::before,
#vf-detail-hero::before{
  content:'';
  position:absolute;
  inset:26px 0 0;
  border-radius:36px;
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.46));
  border:1px solid rgba(13,76,80,.07);
  box-shadow:var(--vf-shadow);
}
#vf-services > *,
#vf-solutions > *,
#vf-prices-teaser > *,
#vf-contact > *,
#vf-inner-hero > *,
#vf-detail-hero > *{position:relative;z-index:2}
#vf-service-grid,
#vf-solution-grid,
#vf-service-index-grid,
#vf-pricing-grid{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  padding-top:18px;
}
#vf-solution-grid{grid-template-columns:repeat(5,1fr)}
#vf-service-grid > .e-con,
#vf-solution-grid > .e-con,
#vf-service-index-grid > .e-con,
#vf-pricing-grid > .e-con,
#vf-detail-side > .e-con,
#vf-about-page-side > .e-con,
#vf-contact-page-side > .e-con{
  padding:24px;
  border-radius:24px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(13,76,80,.08);
  box-shadow:0 18px 40px rgba(15,118,110,.08);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
#vf-service-grid > .e-con:hover,
#vf-solution-grid > .e-con:hover,
#vf-service-index-grid > .e-con:hover,
#vf-pricing-grid > .e-con:hover,
#vf-detail-side > .e-con:hover,
#vf-about-page-side > .e-con:hover,
#vf-contact-page-side > .e-con:hover{
  transform:translateY(-4px);
  border-color:rgba(15,118,110,.16);
  box-shadow:0 26px 52px rgba(15,118,110,.12);
}
#vf-solution-grid > .e-con h3{font-size:1.35rem}
#vf-solution-grid > .e-con{padding:20px}

/* Method */
#vf-method{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
#vf-method-content,
#vf-method-steps{
  padding:32px;
  border-radius:30px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(13,76,80,.08);
  box-shadow:var(--vf-shadow);
}
#vf-method-steps{
  display:grid !important;
  gap:14px;
}
#vf-method-steps > .e-con{
  padding:20px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(238,248,246,.9), rgba(255,255,255,.95));
  border:1px solid rgba(13,76,80,.07);
}

/* About */
#vf-about{
  display:grid !important;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
}
#vf-about-panel,
#vf-about-card{
  padding:34px;
  border-radius:30px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(13,76,80,.08);
  box-shadow:var(--vf-shadow);
}
#vf-about-card{
  background:linear-gradient(180deg, rgba(13,31,35,.96), rgba(15,60,63,.96));
}
#vf-about-card blockquote{
  color:#effcfb;
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(1.6rem, 3vw, 2.6rem);
  line-height:1.18;
  margin:0 0 18px;
}
#vf-about-card .vf-sign{color:rgba(255,255,255,.78)}

/* Prices teaser */
#vf-prices-teaser{
  display:grid !important;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
}
#vf-prices-copy,
#vf-price-card{
  padding:30px;
  border-radius:28px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(13,76,80,.08);
  box-shadow:var(--vf-shadow);
}

/* Contact */
#vf-contact{
  display:grid !important;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
}
#vf-contact-copy,
#vf-contact-cta,
#vf-inner-cta-card{
  padding:30px;
  border-radius:28px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(13,76,80,.08);
  box-shadow:var(--vf-shadow);
}
.vf-contact-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}
.vf-contact-list > div{
  padding:16px 18px;
  border-radius:20px;
  background:#f7fcfb;
  border:1px solid rgba(13,76,80,.08);
}
.vf-contact-list strong{display:block;color:#18363c}
.vf-contact-list span{display:block;color:#567177}

/* Inner pages */
#vf-inner-hero,
#vf-prices-page-hero,
#vf-contact-page-hero,
#vf-about-page-hero,
#vf-detail-hero,
#vf-about-page-grid,
#vf-contact-page-grid,
#vf-detail-grid{
  position:relative;
}
#vf-inner-hero-copy,
#vf-about-page-hero,
#vf-prices-page-hero,
#vf-contact-page-hero,
#vf-detail-hero-copy,
#vf-detail-hero-art,
#vf-about-page-main,
#vf-about-page-side,
#vf-contact-page-main,
#vf-contact-page-side,
#vf-detail-main,
#vf-detail-side{
  padding:30px;
  border-radius:28px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(13,76,80,.08);
  box-shadow:var(--vf-shadow);
}
#vf-detail-hero{
  display:grid !important;
  grid-template-columns:1fr .75fr;
  gap:18px;
}
#vf-detail-hero-actions{
  display:flex !important;
  gap:12px;
  flex-wrap:wrap;
}
#vf-detail-visual{
  width:220px;
  margin-inline:auto;
}
#vf-about-page-grid,
#vf-contact-page-grid,
#vf-detail-grid{
  display:grid !important;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
}
#vf-detail-side{display:grid !important;gap:14px}
#vf-pricing-grid{padding-top:14px}
#vf-prices-note, #vf-detail-note{padding-top:8px}

/* Footer */
.site-footer{
  margin-top:40px;
  padding:64px 0 28px;
  color:rgba(244,252,250,.86);
  background:
    radial-gradient(circle at top right, rgba(103,232,249,.14), transparent 20%),
    linear-gradient(180deg, #10272c 0%, #0d1f23 100%);
}
.site-footer a{color:#dffaf6}
.site-footer a:hover{color:#fff}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr;
  gap:26px;
}
.footer-card{
  padding:24px;
  border-radius:24px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}
.footer-card h3{
  color:#fff;
  font-size:1.5rem;
  margin-bottom:10px;
}
.footer-bottom{
  margin-top:28px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  color:rgba(244,252,250,.68);
  font-size:.92rem;
}

/* Forms */
input[type=text],input[type=email],input[type=tel],textarea,select{
  width:100%;
  border:1px solid rgba(13,76,80,.12);
  background:#fff;
  border-radius:18px;
  padding:14px 16px;
  font:inherit;
  color:var(--vf-ink);
}
textarea{min-height:150px}

/* Utilities */
.screen-reader-text{
  position:absolute !important;
  clip:rect(1px,1px,1px,1px);
  padding:0 !important;
  border:0 !important;
  height:1px !important;
  width:1px !important;
  overflow:hidden;
}

@media (max-width: 1180px){
  #vf-solution-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width: 980px){
  .mobile-toggle{display:inline-flex}
  .site-header__inner{min-height:76px}
  .main-navigation{
    position:absolute;
    left:16px;right:16px;top:calc(100% + 10px);
    margin-left:0;
    opacity:0;pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .24s ease, transform .24s ease;
  }
  .main-navigation.is-open{
    opacity:1;pointer-events:auto;transform:translateY(0);
  }
  .main-navigation > div, .main-navigation .menu-fomenü-container, .main-navigation ul.menu{
    background:rgba(255,255,255,.98);
    border:1px solid rgba(13,76,80,.08);
    border-radius:24px;
    box-shadow:var(--vf-shadow);
    padding:14px;
  }
  .main-navigation ul{flex-direction:column;align-items:stretch}
  .main-navigation ul ul{
    position:static;display:flex;background:#f7fcfb;box-shadow:none;margin-top:6px
  }
  .header-cta{display:none}
  #vf-hero, #vf-method, #vf-about, #vf-prices-teaser, #vf-contact,
  #vf-about-page-grid, #vf-contact-page-grid, #vf-detail-grid, #vf-detail-hero{
    grid-template-columns:1fr !important;
  }
  #vf-trust,
  #vf-service-grid,
  #vf-service-index-grid,
  #vf-solution-grid,
  #vf-pricing-grid{grid-template-columns:repeat(2,1fr) !important}
  .footer-grid{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .vf-shell{width:min(var(--vf-max), calc(100% - 20px))}
  .entry-wrap,.archive-wrap,.search-wrap,.not-found{padding:24px;border-radius:24px}
  .elementor .e-con{width:min(var(--vf-max), calc(100% - 20px));padding:48px 0}
  #vf-trust,
  #vf-service-grid,
  #vf-service-index-grid,
  #vf-solution-grid,
  #vf-pricing-grid,
  .vf-contact-list{grid-template-columns:1fr !important}
  .vf-phone-card{inset:8% 4%}
  .vf-floating-top{right:0}
  .vf-floating-bottom{left:0}
  #vf-hero-actions, #vf-detail-hero-actions{display:grid !important}
}