/*
Theme Name: GP-Soft
Theme URI: https://gp-soft.hu
Author: GP-Soft Kft.
Description: Egyedi WordPress téma a GP-Soft Kft. vendéglátóipari szoftvereihez (GP-SmART, GP-Kioszk, GP Kassza, GP Office).
Version: 1.0.0
Text Domain: gpsoft
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root{
  --teal:#13474D;
  --teal-deep:#13474D;
  --teal-panel:#13474D;
  --teal-panel-2:rgba(0,0,0,0.16);
  --orange:#FCAB36;
  --orange-dim:#FCAB36;
  --blue:#2BB3E3;
  --cream:#FFFFFF;
  --muted:rgba(255,255,255,0.72);
  --line:rgba(255,255,255,0.18);
  --max: 1180px;
  --content: 820px;
  --shadow:0 18px 45px rgba(0,0,0,0.3);
  --ease:180ms ease;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0;
  background:var(--teal-deep);
  color:var(--cream);
  font-family:'Source Sans 3', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
p{ margin:0 0 1.25em; }

/* A hosszabb webes szövegek minden tartalmi blokkban balra zártak. */
.hero-panel p,
.hero-plain p,
.split .text p,
.accordion-panel,
.package-panel,
.smart-intro p,
.smart-section-heading p,
.smart-benefit p,
.team-card-content p,
.contact-copy p,
.legal-content p,
.home-product-card p,
.home-smart-copy p,
.home-audience-grid p,
.home-proof blockquote,
.home-closing-grid p{
  text-align:left !important;
  hyphens:none;
}

a, button, input, select, textarea{ transition:color var(--ease), background-color var(--ease), border-color var(--ease), opacity var(--ease), transform var(--ease); }
:focus-visible{ outline:2px solid var(--orange); outline-offset:4px; }
::selection{ background:var(--orange); color:#000000; }

.wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }

h1,h2,h3,h4{
  font-family:'Playfair Display', serif;
  font-weight:600;
  margin:0 0 0.5em;
  letter-spacing:-0.02em;
}
h1{ font-size:clamp(36px, 4vw, 54px); line-height:1.02; }
h2{ font-size:clamp(28px, 3vw, 38px); line-height:1.08; }
h3{ font-size:clamp(20px, 2vw, 24px); line-height:1.15; }

.eyebrow{
  font-size:13px; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--orange); margin-bottom:18px; font-weight:600;
}

.btn{
  display:inline-block; background:var(--orange); color:#000000;
  border:none; border-radius:3px; padding:13px 26px;
  font-size:14px; font-weight:600; letter-spacing:0.02em;
}
.btn:hover{ background:#000000; color:#FFFFFF; transform:translateY(-2px); }
.btn-ghost{
  background:transparent; border:1px solid var(--orange); color:var(--orange);
}

/* ==========================================================================
   Header / nav
   ========================================================================== */
.site-header{ position:relative; z-index:30; background:var(--teal-panel); border-bottom:1px solid var(--line); }
.site-header .wrap{
  position:relative; display:flex; align-items:center; justify-content:space-between; gap:36px;
  min-height:82px; padding:10px 24px;
}
.site-logo{
  position:relative; z-index:2; display:block; width:170px; flex:0 0 auto;
}
.site-logo img{ width:100%; height:auto; display:block; }
.site-logo:hover{ opacity:.82; }
.primary-menu{ display:flex; gap:34px; align-items:center; }
.primary-menu > li{ position:relative; }
.primary-menu a{
  font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted);
  padding-bottom:4px; border-bottom:2px solid transparent;
}
.primary-menu a:hover,
.primary-menu .current-menu-item > a,
.primary-menu .current-menu-ancestor > a{ color:var(--orange); border-color:var(--orange); }
.primary-menu .menu-item-has-children > a{ padding-right:18px; }
.primary-menu .menu-item-has-children > a::after{
  content:""; position:absolute; top:6px; right:1px; width:6px; height:6px;
  border-right:1px solid currentColor; border-bottom:1px solid currentColor;
  transform:rotate(45deg); transition:transform .2s ease;
}
.primary-menu .sub-menu{
  position:absolute; top:calc(100% + 18px); left:-18px; z-index:40;
  min-width:210px; padding:10px 0; background:var(--teal-panel);
  border-top:3px solid var(--orange); box-shadow:0 14px 28px rgba(0,0,0,.34);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.primary-menu .sub-menu::before{
  content:""; position:absolute; left:0; right:0; bottom:100%; height:18px;
}
.primary-menu .sub-menu a{
  display:block; padding:11px 18px; border:0; white-space:nowrap;
}
.primary-menu .sub-menu a:hover,
.primary-menu .sub-menu .current-menu-item > a{ background:var(--teal-panel-2); color:var(--orange); }
.primary-menu .menu-item-has-children:hover > .sub-menu,
.primary-menu .menu-item-has-children:focus-within > .sub-menu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.submenu-toggle{ display:none; }
.menu-toggle{ display:none; width:44px; height:44px; background:none; border:1px solid transparent; color:var(--cream); font-size:24px; }

@media (max-width:860px){
  .site-header .wrap{ min-height:70px; padding:10px 24px; }
  .site-logo{ width:135px; }
  .primary-menu{ display:none; }
  .menu-toggle{ display:block; }
  .site-header.nav-open .primary-menu{
    display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0;
    align-items:stretch; background:var(--teal-panel); padding:20px 24px; gap:16px; z-index:20;
  }
  .primary-menu .menu-item-has-children > a{ display:inline-block; padding-right:0; }
  .primary-menu .menu-item-has-children > a::after{ display:none; }
  .primary-menu .sub-menu{
    position:static; display:none; min-width:0; margin:10px 0 0 12px; padding:4px 0 4px 14px;
    background:transparent; border-top:0; border-left:1px solid var(--line); box-shadow:none;
    opacity:1; visibility:visible; transform:none; transition:none;
  }
  .primary-menu .submenu-open > .sub-menu{ display:block; }
  .primary-menu .sub-menu::before{ display:none; }
  .primary-menu .sub-menu a{ padding:8px 0; white-space:normal; }
  .submenu-toggle{
    display:block; position:absolute; top:-8px; right:0; width:40px; height:36px;
    background:transparent; border:0; color:var(--cream); font-size:20px;
    transition:transform .2s ease;
  }
  .submenu-open > .submenu-toggle{ transform:rotate(180deg); }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{ position:relative; min-height:clamp(520px, 65vh, 720px); display:flex; align-items:flex-end; overflow:hidden; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(19,71,77,.08), transparent 55%); pointer-events:none; }
.hero-home{ min-height:clamp(680px, 80vh, 860px); }
.hero-home .hero-media img{ object-position:44% 38%; }
.hero-panel{
  position:relative; z-index:1; background:var(--teal-panel); max-width:520px;
  padding:44px 48px; margin:0 max(24px, calc((100vw - var(--max)) / 2 + 24px)) 60px auto;
  border-left:3px solid var(--orange); box-shadow:var(--shadow);
}
.hero .hero-media img{ animation:hero-image-in 1.1s cubic-bezier(.2,.75,.25,1) both; }
.hero .hero-panel{ animation:hero-panel-in .75s .18s cubic-bezier(.2,.75,.25,1) both; }
.hero-panel .highlight{ color:var(--orange); }
.hero-panel p{ border-left:2px solid var(--orange); padding-left:16px; color:var(--cream); margin-top:20px; }
.hero:not(.hero-home) .hero-panel h1{ font-size:clamp(31px,3.1vw,44px); }
.products-hero .hero-panel{
  margin-right:auto;
  margin-left:max(24px, calc((100vw - var(--max)) / 2 + 24px));
}

.hero-plain{ padding-top:76px; padding-bottom:56px; }
.hero-plain p{ margin-top:18px; font-size:16px; color:var(--muted); max-width:520px; }
.contact-hero p{ max-width:none; white-space:nowrap; }

/* ==========================================================================
   Stats strip
   ========================================================================== */
.stats{ background:var(--teal-panel); padding:64px 0; border-block:1px solid var(--line); }
.stats .wrap{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; text-align:center; }
.stats .wrap > div + div{ border-left:1px solid var(--line); }
.stat-num{ font-family:'Source Sans 3', sans-serif; font-size:clamp(34px, 4vw, 48px); font-weight:700; font-variant-numeric:tabular-nums; line-height:1; color:var(--orange); }
.stat-label{ font-size:14px; margin-top:8px; }
.stat-label b{ font-weight:600; }

/* ==========================================================================
   Two-col content w/ divider
   ========================================================================== */
.split{
  width:100%; max-width:var(--max); margin:0 auto; padding:80px 24px;
  display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:40px; align-items:center;
}
.split .divider{ width:2px; background:var(--orange); align-self:stretch; }
.split .media{ min-width:0; }
.split .media img{ width:100%; max-height:520px; object-fit:cover; filter:grayscale(1); opacity:0.72; border-radius:3px; }
.split .media{ overflow:hidden; border-radius:3px; }
.split .media img{ transition:transform .65s cubic-bezier(.2,.75,.25,1), filter .4s ease, opacity .4s ease; }
.split .media:hover img{ transform:scale(1.035); filter:grayscale(.35); opacity:.9; }
.split .text{ min-width:0; }
.split > .text:only-child{ grid-column:1 / -1; max-width:780px; }
.split .text > :last-child{ margin-bottom:0; }

.product-solution{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; padding:0;
  margin-top:88px; margin-bottom:88px; overflow:hidden;
  background:#FFFFFF; color:#000000; border:1px solid #d8e1e2; box-shadow:0 18px 45px rgba(19,71,77,.16);
}
.product-solution h2{ color:var(--teal) !important; }
.product-solution .eyebrow{ color:#9a6416; }
.product-solution .product-list .accordion-panel{ background:#edf3f3; color:#243e41; }
.product-solution .divider{ display:none; }
.product-solution .text{ align-self:stretch; display:flex; flex-direction:column; justify-content:center; padding:clamp(38px,5vw,68px); }
.product-solution .text .eyebrow{ margin-bottom:12px; }
.product-solution .media{ align-self:stretch; min-height:620px; border-radius:0; }
.product-solution .media img{
  width:100%; height:100%; max-height:none; min-height:620px; border-radius:0;
  object-fit:cover; filter:none; opacity:1;
}
.product-solution .media:hover img{ filter:none; opacity:1; transform:scale(1.025); }
.product-solution-front .media img{ object-position:38% center; }
.product-solution-back .media img{ object-position:68% center; }
.product-solution .product-list{ margin-top:18px; }
.product-solution .product-list .accordion-trigger{ border-left:3px solid transparent; }
.product-solution .product-list .accordion-trigger:hover,
.product-solution .product-list .accordion-trigger[aria-expanded="true"]{ border-left-color:var(--blue); }

/* ==========================================================================
   Logos rows
   ========================================================================== */
.logos-section{ background:#FFFFFF; color:#000000; padding:60px 0; text-align:center; }
.logos-section h2{ color:var(--teal); margin-bottom:36px; }
.logos-row{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:48px; }
.logos-row img{ height:36px; max-width:160px; width:auto; object-fit:contain; filter:brightness(0) saturate(100%) invert(22%) sepia(25%) saturate(1162%) hue-rotate(137deg) brightness(91%); opacity:0.9; }
.logos-row img:hover{ transform:translateY(-5px) scale(1.04); opacity:1; }
.logos-users .logos-row{ flex-wrap:nowrap; gap:16px; }
.logos-users .logos-row img{ width:clamp(90px,9vw,130px); height:90px; max-width:none; object-fit:contain; }
.logos-suppliers .logos-row{ gap:28px; }
.logos-suppliers .logos-row img{ height:44px; max-width:175px; }

/* ==========================================================================
   Package / accordion cards (Szolgáltatások, Termékek)
   ========================================================================== */
.packages{ counter-reset:package; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:72px 0; }
.package-card{
  counter-increment:package; position:relative; min-width:0; overflow:hidden;
  background:rgba(19,71,77,.88); border:1px solid rgba(255,255,255,.24);
  border-top:4px solid var(--orange); padding:72px 32px 34px; backdrop-filter:blur(8px);
}
.package-card::before{
  content:"0" counter(package); position:absolute; top:13px; right:22px;
  color:rgba(255,255,255,.13); font-family:'Source Sans 3',sans-serif;
  font-size:58px; font-weight:700; line-height:1;
}
.package-card::after{
  content:""; position:absolute; top:25px; left:30px; width:34px; height:2px; background:var(--blue);
}
.package-card:hover{ transform:translateY(-6px); border-color:rgba(252,171,54,.55); box-shadow:var(--shadow); }
.package-card:nth-child(2){ margin-top:38px; margin-bottom:-38px; background:rgba(10,48,53,.91); }
.package-card:nth-child(odd){ background:rgba(19,71,77,.88); }
.package-card h3{ position:relative; color:var(--orange); font-size:26px; }
.accordion-item{ border-top:1px dashed var(--line); }
.accordion-item:first-child{ border-top:none; }
.accordion-trigger{
  width:100%; background:none; border:none; color:var(--cream); text-align:left;
  display:flex; align-items:center; gap:10px; padding:16px 0; font-size:15px; font-weight:500;
}
.accordion-trigger:hover{ background:#000000; color:#FFFFFF; }
.accordion-trigger:hover::before{ color:#FFFFFF; }
.accordion-trigger::before{ content:"+"; color:var(--orange); font-size:18px; }
.accordion-trigger[aria-expanded="true"]::before{ content:"–"; }
.accordion-panel{
  max-height:0; overflow:hidden; opacity:0; visibility:hidden;
  padding:0 0 0 28px; color:var(--muted); font-size:14px;
  transform:translateY(-7px);
  transition:max-height .48s cubic-bezier(.2,.75,.25,1), opacity .28s ease,
             transform .38s ease, padding .38s ease, visibility 0s linear .48s;
}
.accordion-panel.open{
  max-height:900px; opacity:1; visibility:visible; padding-bottom:16px; transform:none;
  transition:max-height .55s cubic-bezier(.2,.75,.25,1), opacity .32s .08s ease,
             transform .42s ease, padding .42s ease, visibility 0s;
}
.accordion-panel ul{ display:grid; gap:8px; margin:2px 0 0; padding:0; }
.accordion-panel li{ position:relative; padding-left:16px; line-height:1.45; }
.accordion-panel li::before{
  content:""; position:absolute; top:.62em; left:0; width:5px; height:5px;
  border-radius:50%; background:var(--orange);
}

.product-list .accordion-trigger{ background:var(--orange); color:#000000; padding:16px 20px; margin-bottom:2px; }
.product-list .accordion-trigger::before{ color:#000000; }
.product-list .accordion-trigger:hover{ background:#000000; color:#FFFFFF; }
.product-list .accordion-trigger:hover::before{ color:#FFFFFF; }
.product-list .accordion-panel{ background:var(--teal-panel-2); padding:0 20px; }
.product-list .accordion-panel.open{ padding:16px 20px; }

@media (max-width:860px){
  .packages{ grid-template-columns:1fr; }
  .package-card:nth-child(2){ margin:0; }
}

.services-packages-section{
  position:relative; isolation:isolate; overflow:hidden;
  background:url('assets/img/szolgaltatasok-packages-bg.jpg') center/cover no-repeat;
  border-block:1px solid var(--line);
}
.services-packages-section::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, transparent 52%, rgba(43,179,227,.08));
}
.services-packages-heading{ max-width:700px; padding-top:82px; }
.services-packages-heading h2{ margin:0; color:#FFFFFF; }
.services-packages-heading .eyebrow{ margin-bottom:12px; }
.services-packages-cta{ margin:36px 0 0; padding-bottom:88px; text-align:center; }

/* ==========================================================================
   Info card + receipt-style contact form
   ========================================================================== */
.contact-grid{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:32px; padding-bottom:100px; align-items:start; }

.info-card{ background:var(--teal-panel); border:1px solid var(--line); padding:36px; position:relative; }
.info-card::before{ content:""; position:absolute; top:0; left:0; width:36px; height:36px; border-top:2px solid var(--orange); border-left:2px solid var(--orange); }
.info-card::after{ content:""; position:absolute; bottom:0; right:0; width:36px; height:36px; border-bottom:2px solid var(--orange); border-right:2px solid var(--orange); }
.info-block{ padding:16px 0; border-top:1px dashed var(--line); }
.info-block:first-of-type{ border-top:none; padding-top:0; }
.info-label{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--orange-dim); margin-bottom:6px; font-weight:600; }
.info-sub{ font-size:13px; color:var(--muted); margin-top:2px; }

.map-box{ width:100%; height:170px; margin-bottom:28px; border:1px solid var(--line); position:relative; overflow:hidden;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 22px),
             repeating-linear-gradient(90deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 22px),
             var(--teal-panel-2); }
.map-box iframe{ width:100%; height:100%; border:0; }

.receipt-wrap{ position:relative; margin-top:-32px; }
.zig-top, .zig-bottom{ height:14px; background:
    linear-gradient(135deg, var(--teal-panel) 25%, transparent 25%) 0 0,
    linear-gradient(-135deg, var(--teal-panel) 25%, transparent 25%) 0 0;
    background-size:16px 16px; background-repeat:repeat-x; }
.zig-bottom{ transform:rotate(180deg); }
.receipt{ background:var(--teal-panel); padding:22px 40px 32px; }
.receipt-head{ display:flex; justify-content:space-between; font-family:'Source Sans 3', sans-serif; font-size:11px;
  letter-spacing:0.06em; color:var(--muted); border-bottom:1px dashed var(--line); padding-bottom:16px; margin-bottom:24px; }
.receipt-head .id{ color:var(--orange-dim); }
.receipt .form-sub{ font-size:13px; color:var(--muted); margin-bottom:28px; }

/* Fluent Forms color overrides so the plugin form matches the receipt */
.receipt .fluentform label{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted) !important; }
.receipt .fluentform input,
.receipt .fluentform select,
.receipt .fluentform textarea{
  width:100%; background:var(--teal-panel-2) !important; border:1px solid var(--line) !important; color:var(--cream) !important;
}
.receipt .fluentform .ff-btn-submit{
  background:var(--orange) !important; color:#000000 !important; border:none !important; font-weight:600 !important;
}
.receipt .fluentform .ff-btn-submit:hover{ background:#000000 !important; color:#FFFFFF !important; }
.receipt .fluentform input:focus,
.receipt .fluentform select:focus,
.receipt .fluentform textarea:focus{ border-color:var(--orange) !important; box-shadow:0 0 0 2px rgba(252,171,54,.2) !important; }
.receipt .fluentform input[type="checkbox"]{ width:auto; accent-color:var(--orange); }
.receipt .fluentform .error.text-danger{ color:var(--orange) !important; font-size:12px; }

/* Saját kapcsolatfelvételi űrlap */
.gpsoft-contact-form{ display:grid; gap:18px; }
.contact-form-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
.gpsoft-contact-form label{ display:grid; grid-template-columns:max-content 1fr; column-gap:3px; row-gap:7px; color:var(--muted); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.gpsoft-contact-form label > span{ color:var(--orange); }
.gpsoft-contact-form label > input,.gpsoft-contact-form label > select,.gpsoft-contact-form label > textarea{ grid-column:1 / -1; }
.gpsoft-contact-form input,.gpsoft-contact-form select,.gpsoft-contact-form textarea{
  width:100%; min-width:0; box-sizing:border-box; padding:12px 13px; border:1px solid var(--line); border-radius:2px;
  background:var(--teal-panel-2); color:var(--cream); font:inherit; font-size:16px; letter-spacing:0; text-transform:none;
  transition:border-color var(--ease),box-shadow var(--ease),background var(--ease);
}
.gpsoft-contact-form input:not([type="checkbox"]),.gpsoft-contact-form select{ height:48px; }
.gpsoft-contact-form textarea{ resize:vertical; min-height:140px; }
.gpsoft-contact-form input:focus,.gpsoft-contact-form select:focus,.gpsoft-contact-form textarea:focus{
  outline:0; border-color:var(--orange); box-shadow:0 0 0 3px rgba(252,171,54,.16);
}
.gpsoft-contact-form .contact-consent{ display:flex; grid-template-columns:none; flex-direction:row; align-items:flex-start; gap:10px; font-size:13px; line-height:1.4; letter-spacing:0; text-transform:none; }
.gpsoft-contact-form .contact-consent input{ flex:0 0 auto; width:17px; height:17px; margin-top:2px; padding:0; accent-color:var(--orange); }
.gpsoft-contact-form .contact-consent span{ color:var(--cream); font-weight:400; }
.gpsoft-contact-form .contact-consent a{ color:var(--orange); text-decoration:underline; text-underline-offset:3px; }
.contact-submit{ border:0; cursor:pointer; justify-self:end; }
.contact-notice{ margin:0 0 22px; padding:14px 16px; border-left:4px solid; color:#fff; font-size:15px; }
.contact-notice.success{ border-color:#69d59b; background:rgba(105,213,155,.13); }
.contact-notice.error{ border-color:var(--orange); background:rgba(252,171,54,.12); }
.contact-honeypot{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ border-top:1px solid var(--line); background:var(--teal-panel); }
.site-footer .wrap{ padding-top:64px; padding-bottom:24px; color:var(--muted); }
.site-footer-main{ display:grid; grid-template-columns:1.25fr 1fr .7fr .8fr; gap:clamp(32px,5vw,72px); padding-bottom:52px; }
.site-footer-brand{ max-width:310px; }
.site-footer-logo{ display:block; width:178px; }
.site-footer-logo img{ width:100%; height:auto; }
.site-footer-logo:hover{ opacity:.78; }
.site-footer-brand p{ max-width:280px; margin:22px 0 0; font-size:15px; line-height:1.55; }
.site-footer-column{ display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.site-footer-column h2{
  margin:0 0 13px; color:var(--orange); font-family:'Source Sans 3',sans-serif;
  font-size:12px; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
}
.site-footer-column a, .site-footer-column p{ margin:0; color:var(--cream); font-size:15px; }
.site-footer-contact{ gap:14px; }
.site-footer-contact a, .site-footer-contact p{ display:grid; gap:1px; }
.site-footer-contact span{ color:var(--muted); font-size:11px; letter-spacing:.09em; text-transform:uppercase; }
.site-footer-links a{ position:relative; padding-bottom:2px; }
.site-footer-links a::after{
  content:""; position:absolute; right:0; bottom:0; left:0; height:1px;
  background:var(--orange); transform:scaleX(0); transform-origin:left; transition:transform var(--ease);
}
.site-footer-links a:hover::after{ transform:scaleX(1); }
.site-footer-bottom{
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding-top:22px; border-top:1px solid var(--line); font-size:12px;
}
.site-footer-bottom div{ display:flex; flex-wrap:wrap; gap:22px; }
.site-footer a:hover{ color:var(--orange); }

/* ==========================================================================
   Legal pages
   ========================================================================== */
.legal-content{ padding-top:60px; padding-bottom:100px; max-width:calc(var(--content) + 48px); }
.legal-content h2{ margin-top:2em; color:var(--orange); font-size:22px; }
.legal-content p, .legal-content li{ color:var(--cream); font-size:15px; }
.legal-content ul{ list-style:disc; padding-left:22px; margin:1em 0; }
.legal-content article + article{ margin-top:56px; padding-top:48px; border-top:1px solid var(--line); }
.legal-content a:not(.btn){ color:var(--orange); text-decoration:underline; text-underline-offset:3px; }

/* WordPress által generált tartalmak */
.entry-content > *:first-child{ margin-top:0; }
.entry-content > *:last-child{ margin-bottom:0; }
.alignwide{ max-width:var(--max); }
.aligncenter{ margin-right:auto; margin-left:auto; }
.wp-caption{ max-width:100%; }
.wp-caption-text{ margin-top:8px; color:var(--muted); font-size:13px; }
.posts-navigation{ margin-top:56px; padding-top:28px; border-top:1px solid var(--line); }
.posts-navigation .nav-links{ display:flex; justify-content:space-between; gap:24px; }
.posts-navigation a{ color:var(--orange); }
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.screen-reader-text:focus{
  top:8px; left:8px; z-index:100000; width:auto; height:auto; padding:12px 16px;
  clip:auto; background:#FFFFFF; color:#000000;
}

/* Főoldali, fotós tartalmi szekciók */
.home-photo-section{
  position:relative; isolation:isolate; background-position:center; background-size:cover;
  border-block:1px solid var(--line);
}
.home-photo-section::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(19,71,77,.94) 0%, rgba(19,71,77,.72) 48%, rgba(19,71,77,.24) 100%);
}
.home-gp-plus{ background-image:url('assets/img/home-section-gp-plus.jpg'); background-position:center 42%; }
.home-gp-plus::before{ background:transparent; }
.home-hatterunk{ background-image:url('assets/img/home-section-hatterunk.jpg'); background-position:center; }
.home-hatterunk::before{ background:transparent; }
.home-photo-section .split{ min-height:560px; }
.home-photo-section .split > .text:only-child{
  max-width:650px; padding:42px; background:rgba(19,71,77,.88);
  border-left:3px solid var(--orange); box-shadow:var(--shadow);
}

/* Új B2B főoldal */
.home-new-hero .hero-panel{ max-width:720px; margin-right:max(24px, calc((100vw - var(--max)) / 2 - 36px)); }
.home-new-hero .hero-panel h1{ font-size:clamp(30px,3.2vw,50px); }
.home-new-hero .hero-panel .eyebrow{ margin-bottom:14px; }
.home-hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:28px; }
.home-text-link{ color:#fff; font-weight:600; border-bottom:1px solid var(--orange); }
.home-text-link:hover{ color:var(--orange); }
.home-products-section,.home-audiences,.home-proof,.home-closing-cta{ padding:96px 0; }
.home-products-section{ background:#fff; color:#000; }
.home-section-heading{ max-width:820px; margin:0 auto 48px; text-align:center; }
.home-section-heading h2{ margin:0 0 14px; color:var(--teal); }
.home-section-heading p{ margin:0; color:#425b5e; font-size:18px; }
.home-product-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.home-product-card{ display:flex; flex-direction:column; min-height:330px; padding:30px 26px; border:1px solid #d8e1e2; background:#f4f7f7; color:#000; transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease; }
.home-product-card.featured{ background:var(--teal); color:#fff; border-color:var(--teal); }
.home-product-card:hover{ transform:translateY(-7px); border-color:var(--orange); box-shadow:0 20px 45px rgba(19,71,77,.14); }
.home-card-num{ color:var(--orange); font-weight:700; letter-spacing:.12em; }
.home-product-card h3{ margin:34px 0 15px; font-size:30px; color:var(--teal); }
.home-product-card.featured h3{ color:#fff; }
.home-product-card p{ margin:0 0 30px; color:#425b5e; }
.home-product-card.featured p{ color:rgba(255,255,255,.8); }
.home-product-card strong{ margin-top:auto; color:var(--teal); }
.home-product-card.featured strong{ color:var(--orange); }
.home-smart-feature{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(440px,.9fr); min-height:700px; background:var(--teal); }
.home-smart-media{ min-height:650px; overflow:hidden; }
.home-smart-media img{ width:100%; height:100%; object-fit:cover; object-position:48% center; }
.home-smart-copy{ align-self:center; padding:70px clamp(42px,6vw,100px); }
.home-smart-copy h2{ margin:0 0 24px; color:var(--orange); }
.home-smart-copy p,.home-smart-copy li{ color:#fff; }
.home-smart-lead{ font-size:22px; line-height:1.4; }
.home-smart-copy ul{ display:grid; gap:10px; margin:26px 0 34px; padding-left:20px; list-style:disc; }
.home-smart-copy li::marker{ color:var(--orange); }
.home-audiences{ background:#edf3f3; color:#000; }
.home-audience-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:1050px; margin:auto; }
.home-audience-grid article{ padding:42px; background:#fff; border-top:5px solid var(--orange); box-shadow:0 15px 38px rgba(19,71,77,.09); }
.home-audience-grid article > span{ color:var(--orange); font-weight:700; }
.home-audience-grid h3{ margin:22px 0 14px; color:var(--teal); font-size:29px; }
.home-audience-grid p{ color:#425b5e; }
.home-audience-grid a{ color:var(--teal); font-weight:700; }
.home-proof{ background:var(--teal); }
.home-proof .home-section-heading h2{ color:#fff; }
.home-proof-content{ display:grid; grid-template-columns:1fr; gap:60px; align-items:center; }
.home-proof-logos{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 24px; align-items:center; }
.home-proof-logos img{ width:100%; height:72px; object-fit:contain; }
.home-proof blockquote{ margin:0; padding:34px; border-left:4px solid var(--orange); background:rgba(255,255,255,.06); }
.home-proof blockquote p{ margin:0 0 18px; color:#fff; font-family:'Playfair Display',serif; font-size:23px; line-height:1.35; }
.home-proof blockquote footer{ color:var(--orange); font-size:14px; }
.home-closing-cta{ background:#fff; color:#000; border-top:5px solid var(--orange); }
.home-closing-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,8vw,120px); align-items:start; max-width:1120px; }
.home-closing-grid h2{ margin:0 0 18px; color:var(--teal); }
.home-closing-grid > div > p{ color:#425b5e; font-size:18px; }
.home-contact-direct{ display:grid; gap:3px; margin-top:34px; }
.home-contact-direct span{ color:#607477; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.home-contact-direct a{ color:var(--teal); font-size:20px; font-weight:700; }
.home-demo-form{ padding:36px; background:var(--teal); box-shadow:0 20px 50px rgba(19,71,77,.18); }

/* GP-Team */
.team-hero{ min-height:clamp(650px,75vh,800px); }
.team-hero .hero-media img{ object-position:center 42%; }
.team-section{ padding:92px 0 104px; border-top:1px solid var(--line); }
.team-section-leaders,.team-section-colleagues{ background:#FFFFFF; color:#000000; }
.team-section-managers{ background:#edf3f3; color:#000000; }
.team-section-heading{ max-width:760px; margin:0 auto 52px; text-align:center; }
.team-section-heading .eyebrow{ margin-bottom:10px; }
.team-section-heading h2{ margin:0; color:var(--teal); }
.team-grid{ display:grid; gap:30px; }
.team-grid-leaders{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:940px; margin:auto; gap:42px; }
.team-grid-managers{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.team-grid-colleagues{ grid-template-columns:repeat(5,minmax(0,1fr)); gap:34px 18px; }
.team-card{ min-width:0; }
.team-photo-placeholder{
  position:relative; display:grid; place-items:center; aspect-ratio:4/3; overflow:hidden;
  background:linear-gradient(145deg, rgba(43,179,227,.34), rgba(19,71,77,.76));
  border:1px solid var(--line);
}
.team-photo-placeholder::before{
  content:""; position:absolute; width:72%; aspect-ratio:1; border:1px solid rgba(255,255,255,.16);
  border-radius:50%; transform:translate(38%,-35%);
}
.team-photo-placeholder::after{
  content:""; position:absolute; right:-18%; bottom:-48%; width:92%; aspect-ratio:1;
  border-radius:50%; background:rgba(252,171,54,.11);
}
.team-photo-placeholder span{
  position:relative; z-index:1; color:#FFFFFF; font-family:'Playfair Display',serif;
  font-size:clamp(38px,5vw,68px); font-weight:600; letter-spacing:-.04em;
}
.team-card-content{ padding:22px 8px 0; text-align:center; }
.team-card-content h3{ margin:0 0 7px; color:var(--teal); font-size:22px; }
.team-card-content p{ margin:0; color:#425b5e; font-size:15px; line-height:1.35; }
.team-card:hover .team-photo-placeholder{ transform:translateY(-5px); border-color:rgba(252,171,54,.55); box-shadow:var(--shadow); }
.team-card:hover .team-photo-placeholder span{ transform:scale(1.06); }
.team-photo-placeholder, .team-photo-placeholder span{ transition:transform .45s cubic-bezier(.2,.75,.25,1), border-color var(--ease), box-shadow var(--ease); }

/* GP-SmART */
.smart-hero{ min-height:clamp(650px,75vh,820px); }
.smart-hero .hero-media img{ object-position:center 48%; }
.smart-photo-section{
  position:relative; isolation:isolate; background-image:var(--smart-bg); background-size:cover;
  background-position:center; background-attachment:scroll; overflow:hidden;
  border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(0,0,0,.3);
}
.smart-photo-section::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,rgba(5,24,28,.91) 0%,rgba(19,71,77,.74) 55%,rgba(5,24,28,.52) 100%);
}
.smart-intro{ min-height:700px; display:flex; align-items:center; border-top:5px solid var(--orange); }
.smart-intro-content{ padding-top:100px; padding-bottom:100px; }
.smart-intro-content > *{ max-width:780px; }
.smart-intro h2,.smart-steps h2,.smart-benefits h2{ color:var(--orange); margin:0 0 22px; }
.smart-intro p{ color:#fff; font-size:18px; }
.smart-intro .smart-lead{ font-size:clamp(21px,2vw,28px); line-height:1.35; border-left:4px solid var(--orange); padding-left:26px; }
.smart-intro .btn{ margin-top:20px; }
.smart-steps{ padding:96px 0 110px; background-position:center 42%; border-top:5px solid var(--orange); }
.smart-section-heading{ max-width:900px; margin-bottom:48px; }
.smart-section-heading p{ margin:0; max-width:880px; color:#fff; font-size:18px; }
.smart-step-scroller{
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(300px,calc((100% - 48px)/3)); gap:24px;
  overflow-x:auto; padding:8px 2px 24px; scroll-snap-type:x mandatory; scrollbar-color:var(--orange) rgba(255,255,255,.12);
}
.smart-step-card{ scroll-snap-align:start; min-width:0; }
.smart-step-card img{
  display:block; width:100%; aspect-ratio:892/1123; object-fit:cover; border-radius:24px;
  box-shadow:0 20px 45px rgba(0,0,0,.25); transition:transform .45s cubic-bezier(.2,.75,.25,1),box-shadow .45s ease;
}
.smart-step-card:hover img{ transform:translateY(-7px); box-shadow:0 28px 54px rgba(0,0,0,.34); }
.smart-step-caption{ display:flex; gap:14px; align-items:flex-start; padding:18px 6px 0; color:#fff; }
.smart-step-caption span{ flex:0 0 34px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--orange); color:#000; font-weight:800; }
.smart-step-caption p{ margin:2px 0 0; font-size:18px; line-height:1.3; }
.smart-users{ position:relative; z-index:1; background:#FFFFFF; color:#000000; border-block:5px solid var(--orange); }
.smart-users h2{ max-width:900px; margin-right:auto; margin-left:auto; color:var(--teal); }
.smart-benefits{ padding:100px 0 110px; background-position:center; border-top:0; border-bottom:5px solid var(--orange); }
.smart-benefits::before{ background:linear-gradient(90deg,rgba(19,71,77,.69),rgba(2,10,12,.87)); }
.smart-benefits-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 56px; }
.smart-benefit{ display:grid; grid-template-columns:78px 1fr; gap:20px; align-items:start; }
.smart-benefit-num{ color:#fff; font-family:'Playfair Display',serif; font-size:76px; font-weight:700; line-height:.9; }
.smart-benefit h3{ margin:0 0 12px; color:var(--orange); font-size:25px; line-height:1.12; }
.smart-benefit p{ margin:0; padding-left:18px; border-left:3px solid var(--orange); color:#fff; font-size:16px; }
.smart-benefits-cta{ margin:54px 0 0 auto; width:max-content; }

/* GP-Kioszk */
.kioszk-hero .hero-media img{ object-position:center 47%; }
.kioszk-hero-panel{ right:auto; left:clamp(36px,6vw,110px); }
.kioszk-intro::before{ background:linear-gradient(90deg,rgba(3,17,20,.25) 0 30%,rgba(6,29,34,.88) 48%,rgba(19,71,77,.82)); }
.kioszk-intro-content{ display:flex; flex-direction:column; align-items:flex-start; padding-left:min(38vw,650px); }
.kioszk-intro-content > *{ max-width:850px; }
.kioszk-step-card img{ object-fit:cover; }
.kioszk-benefits::before{ background:linear-gradient(90deg,rgba(2,18,22,.73),rgba(19,71,77,.61)); }
.kioszk-outro{ min-height:clamp(360px,46vw,720px); background-size:cover; background-position:center; border-bottom:5px solid var(--orange); }

/* GP-Kassza */
.stats-two .wrap{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:1050px; }
.kassza-hero .hero-media img{ object-position:center 48%; }
.kassza-intro::before{ background:linear-gradient(90deg,rgba(4,25,29,.88),rgba(19,71,77,.55),rgba(3,17,20,.2)); }
.kassza-intro-content > *{ max-width:900px; }
.kassza-benefits{ background-position:center 48%; }
.kassza-benefits::before{ background:linear-gradient(90deg,rgba(2,14,17,.83),rgba(19,71,77,.65)); }

/* Görgetéshez és belépéshez kötött mozgások */
.reveal, .reveal-item{
  opacity:0; transform:translateY(28px);
  transition:opacity .65s cubic-bezier(.2,.75,.25,1), transform .65s cubic-bezier(.2,.75,.25,1);
  transition-delay:var(--reveal-delay, 0ms);
}
.reveal-item{ transform:translateY(20px) scale(.985); }
.reveal.is-visible, .reveal-item.is-visible{ opacity:1; transform:none; }

@keyframes hero-image-in{
  from{ opacity:.45; transform:scale(1.045); }
  to{ opacity:1; transform:scale(1); }
}
@keyframes hero-panel-in{
  from{ opacity:0; transform:translateY(28px); }
  to{ opacity:1; transform:none; }
}

/* ==========================================================================
   Responsive layout
   ========================================================================== */
@media (max-width:860px){
  .wrap{ padding-right:24px; padding-left:24px; }
  .hero{ min-height:520px; }
  .hero-home{ min-height:620px; }
  .hero-home .hero-media img{ object-position:38% 34%; }
  .hero-panel{ width:calc(100% - 48px); max-width:560px; margin:0 24px 28px; padding:32px 28px; }
  .hero-media img{ object-position:38% center; }
  .hero-plain{ padding-top:58px; padding-bottom:42px; }
  .contact-hero p{ white-space:normal; }
  .split{ grid-template-columns:1fr; gap:28px; padding:60px 24px; }
  .split .divider{ display:none; }
  .split > .text:only-child{ grid-column:auto; }
  .split .media{ order:-1; }
  .product-solution{ margin-top:60px; margin-bottom:60px; }
  .product-solution .text{ padding:36px 28px 42px; }
  .product-solution .media, .product-solution .media img{ min-height:380px; }
  .packages{ grid-template-columns:1fr; padding:60px 0; }
  .contact-grid{ grid-template-columns:1fr; padding-bottom:72px; }
  .receipt-wrap{ margin-top:0; }
  .receipt{ padding:34px 28px 28px; }
  .logos-row{ gap:32px; }
  .logos-users .logos-row{ gap:8px; }
  .logos-users .logos-row img{ width:calc((100% - 48px) / 7); height:74px; }
  .site-footer .wrap{ padding-top:52px; padding-bottom:22px; }
  .site-footer-main{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px 30px; }
  .site-footer-brand{ grid-column:1 / -1; }
  .home-photo-section .split{ min-height:500px; }
  .home-photo-section .split > .text:only-child{ padding:32px 28px; }
  .home-products-section,.home-audiences,.home-proof,.home-closing-cta{ padding:72px 0; }
  .home-product-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-smart-feature{ grid-template-columns:1fr; }
  .home-smart-media{ min-height:520px; }
  .home-smart-copy{ padding:60px 24px 72px; }
  .home-proof-content,.home-closing-grid{ grid-template-columns:1fr; gap:44px; }
  .team-section{ padding:72px 0 80px; }
  .team-grid-managers{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .team-grid-colleagues{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .smart-photo-section{ background-attachment:scroll; }
  .smart-intro{ min-height:620px; }
  .smart-step-scroller{ grid-auto-columns:minmax(290px,72vw); }
  .smart-benefits-grid{ grid-template-columns:1fr; gap:38px; }
  .kioszk-intro::before{ background:rgba(5,26,31,.82); }
  .kioszk-intro-content{ padding-left:24px; }
  .stats-two .wrap{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:600px){
  .stats{ padding:48px 0; }
  .stats .wrap{ grid-template-columns:1fr; gap:28px; }
  .stats .wrap > div + div{ border-left:0; border-top:1px solid var(--line); padding-top:28px; }
  .logos-section{ padding:48px 0; }
  .logos-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .logos-row img{ max-width:120px; margin:auto; }
  .logos-users .logos-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  .logos-users .logos-row img{ width:110px; height:78px; }
  .package-card{ padding:26px 22px; }
  .receipt-head{ flex-direction:column; gap:5px; }
  .contact-form-grid{ grid-template-columns:1fr; }
  .home-new-hero .hero-panel h1{ font-size:29px; }
  .home-product-grid,.home-audience-grid{ grid-template-columns:1fr; }
  .home-product-card{ min-height:280px; }
  .home-smart-media{ min-height:390px; }
  .home-proof-logos{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-proof blockquote{ padding:26px 22px; }
  .home-demo-form{ padding:28px 22px; }
  .site-footer-main{ grid-template-columns:1fr; gap:36px; padding-bottom:38px; }
  .site-footer-brand{ grid-column:auto; }
  .site-footer-logo{ width:160px; }
  .site-footer-bottom{ flex-direction:column; align-items:flex-start; }
  .team-grid-leaders, .team-grid-managers, .team-grid-colleagues{ grid-template-columns:1fr; max-width:390px; margin-right:auto; margin-left:auto; }
  .team-section-heading{ margin-bottom:38px; }
  .smart-hero .hero-media img{ object-position:42% center; }
  .smart-intro,.smart-steps,.smart-benefits{ padding-top:68px; padding-bottom:72px; }
  .smart-intro{ min-height:auto; }
  .smart-intro .smart-lead{ padding-left:18px; }
  .smart-step-scroller{ grid-auto-columns:84vw; gap:16px; margin-right:-24px; }
  .smart-step-caption p{ font-size:16px; }
  .smart-benefit{ grid-template-columns:54px 1fr; gap:13px; }
  .smart-benefit-num{ font-size:54px; }
  .smart-benefit h3{ font-size:21px; }
  .kioszk-hero-panel{ left:auto; }
  .kioszk-hero .hero-media img{ object-position:62% center; }
  .kioszk-outro{ min-height:300px; background-position:42% center; }
  .stats-two .wrap{ grid-template-columns:1fr; }
  .stats-two .wrap > div + div{ border-left:0; border-top:1px solid var(--line); padding-top:28px; }
  .kassza-hero .hero-media img{ object-position:43% center; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
