/* ========== Alapok, tipográfia, színek ========== */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700;800&family=Source+Serif+Pro:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{
  --site-width: 1400px;
  --c-primary:#d4af37;        /* gombok színe */
  --c-primary-link:#2C5C58;   /* linkek színe */
  --c-white:#fff;             /* fehér szín */
  --c-black:#111;             /* fekete szín */
  --c-primary-600:#1b47bf;
  --c-primary-700:#153a9e;
  --c-nav-link:#191970;       /* navigacios menu */
  --c-nav-link-light:#9ec5ff; /* navigacios menu vilagos*/
  --c-hover-link: rgba(36,87,224,.08);
  --c-nav-active: #2457e0;    /* aktiv menuelem */

  --c-bg:#faf8f2;             /* oldal háttér */
  --c-surface:#ffffff;        /* dobozok háttér */
  --c-light:#334155;          /* világosabb szöveg */
  --c-muted:#6b7280;          /* szürkés szöveg */
  --c-text:#2e2e2e;           /* szöveg - majdnem fekete */
  --c-border:#ede6da;         /* dobozok és elválasztók - világos szegély */
  --c-shadow:0 10px 30px rgba(2,6,23,.08);
  --radius:14px;

  --c-warning: #cc0000;

  /* Font families */
  --font-logo: "Playfair Display ExtraBold", Georgia, "Times New Roman", serif;
  --font-h1: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-h2: "Source Serif Pro", Georgia, "Times New Roman", serif;
  --font-h3: "Source Serif Pro", Georgia, "Times New Roman", serif;
  --font-h4: "Source Serif Pro", Georgia, "Times New Roman", serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-btn: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* Font sizes (responsive where it matters) */
  --h1-size: clamp(2.25rem, 2.5vw + 1.5rem, 3.25rem);
  --h2-size: clamp(1.5rem, 1.6vw + 1rem, 2.25rem);
  --h3-size: clamp(1.25rem, 1.1vw + 0.9rem, 1.5rem);
  --h4-size: clamp(1.25rem, 1.1vw + 0.9rem, 1.5rem);
  --body-size: 1rem;
  --btn-size: 0.95rem;

  /* Font color */
  --h1-color: #191970;        /* heading1 színe MidnightBlue*/
  --h2-color: #191970;        /* heading2 színe */
  --h3-color: #191970;        /* heading3 színe */
  --h4-color: #191970;        /* heading3 színe */

  /* Line-height */
  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-normal: 1.6;
  --margin-top: 1.75em;

  /* Optional letter-spacing for headings */
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
}

*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size: 100%; }
body {font-family: var(--font-body);font-size: var(--body-size);color:var(--c-text);background:var(--c-bg);line-height: var(--leading-normal);-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-rendering: optimizeLegibility;}
html,body{margin:0;padding:0}

img{max-width:100%;display:block}
a{color:var(--c-nav-link);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{outline:3px solid rgba(36,87,224,.35);outline-offset:2px;border-radius:10px;}

.container{max-width:var(--site-width);margin:0 auto;padding:0 20px}
.cnt {text-align: center;}

/* ========== Header ========== */
.site-header{position:sticky; top:0; z-index:50;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--c-border);}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.logo{font-family: var(--font-logo);font-weight:900;font-size: var(--h3-size);letter-spacing:.2px;color:var(--h1-color)}
.logo:hover{text-decoration:none;opacity:.9}
.logo2{color:var(--c-primary-link)}

.nav { position: relative; }
.nav > ul { display: flex; gap: 1.25rem; }
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:20px;align-items:center;font-weight:700; }
.nav a{display:block;padding:10px 6px;border-radius:10px;transition:background .2s ease}
.nav a:hover{background:var(--c-hover-link);text-decoration:none}

.nav li.has-sub{position:relative}
.nav li.has-sub > a::after{content:"▾"; margin-left:.35rem; font-size:.8em; opacity:.8}
.nav li .sub{display:none; position:absolute; top:100%; left:0; min-width:280px;background:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--c-shadow);border-radius:12px; padding:8px; margin-top:0px;}
.nav li .sub li a{padding:10px 12px; border-radius:8px; width:100%}
.nav li.has-sub:hover .sub{display:block}

.nav-toggle{display:none; background:none; border:0; font-size:28px; line-height:1;padding:6px 8px; border-radius:10px; cursor:pointer;}
.nav-toggle:hover{background:rgba(36,87,224,.08)}

@media (max-width:900px){
  .nav-toggle{display:block}
  .navx{position:fixed; inset:68px 0 0 0; background:var(--c-surface);transform:translateX(100%); transition:transform .25s ease;box-shadow:-12px 0 30px rgba(2,6,23,.10);}
  .nav{position:fixed;inset:68px 0 0 0;background: var(--c-surface);transform: translateX(-100%);transition: transform .25s ease;box-shadow: -12px 0 30px rgba(2,6,23,.10);z-index: 1200;height: calc(100vh - 68px);overflow: auto;}
  .nav.open{display: block;transform: translateX(0);}
  .nav ul{flex-direction:column; align-items:stretch; padding:16px 14px; gap:6px}
  .nav li .sub{position:static; display:block; border:0; box-shadow:none; padding:0; margin:0;background: transparent;}
  .nav li .sub li a{padding-left:20px; }
  .nav li.has-sub > a{font-weight:700; margin-top:6px}
}

/* ========== Heading ========== */
.heroX{padding:64px 0 28px}
.prose p{margin:.4rem 0 1rem}
.mt {margin-top:var(--margin-top)!important}
h1, .h1 {font-family: var(--font-h1);font-size: var(--h1-size);color: var(--h1-color);line-height: var(--leading-tight);letter-spacing: var(--tracking-tight);font-weight: 700;margin: 0.5em 0 0.4em;}
h2, .h2 {font-family: var(--font-h2);font-size: var(--h2-size);color: var(--h2-color);line-height: var(--leading-snug);letter-spacing: var(--tracking-normal);font-weight: 700;margin: 0.75em 0 0.5em;}
h3, .h3 {font-family: var(--font-h3);font-size: var(--h3-size);color: var(--h3-color);line-height: var(--leading-snug);letter-spacing: var(--tracking-normal);font-weight: 600;margin: 1em 0 0.6em;}
h4, .h4 {color: var(--h4-color);line-height: var(--leading-snug);letter-spacing: var(--tracking-normal);margin:0;}

/* ========== Button ========== */
.btn{background:var(--c-primary); color:var(--c-surface); border:0;border-radius:12px; padding:10px 16px; display:inline-flex; align-items:center; gap:8px;font-weight:600; box-shadow:0 6px 18px rgba(36,87,224,.25);transition:transform .08s ease, box-shadow .2s ease, background .2s ease;}
.btn:hover{box-shadow:0 10px 26px rgba(36,87,224,.28); text-decoration:none}
.btn:active{transform:translateY(0); box-shadow:0 6px 18px rgba(36,87,224,.20)}
.btn:focus-visible{ outline: none; box-shadow: 0 0 0 3px rgba(44,123,229,0.35); }
.btn-link{background:none;color:var(--c-primary-link);padding:0;box-shadow:none}
.btn[disabled]{opacity:.6;cursor:not-allowed}

.btn-outline-danger{background:var(--c-surface);color:var(--c-warning);border-color:var(--c-warning);}
.btn-muted{background:var(--c-surface);color:var(--c-black);border: 0;}
.btn-primary{background: #2c7be5;color:var(--c-white);border: 0;}

/* ========== Grid ========== */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:1100px){ .grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:820px){ .grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .grid{grid-template-columns:1fr} }

.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media (max-width:1100px){ .grid2{grid-template-columns:repeat(2,1fr)} }
@media (max-width:820px){ .grid2{grid-template-columns:repeat(1,1fr)} }
@media (max-width:560px){ .grid2{grid-template-columns:1fr} }

article ul {list-style-type: none;margin: 0;padding: 0;}

.card{border:1px solid var(--c-border);border-radius:var(--radius);padding:18px 16px;background:var(--c-surface);box-shadow:var(--c-shadow);transition:transform .12s ease, box-shadow .2s ease, border-color .2s ease;}
.card{display: flex;flex-direction: column;justify-content: space-between;padding: 1.5rem;height: 100%;}
.btn-card:hover{text-decoration:none}
.btn-card .card:hover{transform:translateY(-8px); box-shadow:0 14px 34px rgba(2,6,23,.75); border-color:var(--c-border)}
.card h3{text-align: center;margin-top:2px}

/* ========== Breadcrumb ========== */
.breadcrumb {margin: 10px 0 8px;}
.breadcrumb .container {max-width: var(--site-width);margin: 0 auto;padding: 0 20px;}
.breadcrumb ol {list-style: none;display: flex;gap: 8px;flex-wrap: wrap;padding: 8px 0;margin: 0;}
.breadcrumb li {color: var(--c-muted);font-size: .95rem;}
.breadcrumb li a {color: var(--c-nav-link)}
.breadcrumb li::after {content: "/";margin: 0 4px;color:var(--c-muted);}
.breadcrumb li:last-child::after {content: "";}
.breadcrumb li:last-child span {color: var(--c-text);font-weight: 600;}

/* ========== Form ========== */
form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:760px){ form .row{grid-template-columns:1fr} }
label{display:block;margin:10px 0 6px 4px;color:var(--c-light);font-size:.96rem;font-weight:600}
input,textarea,select{width:100%; padding:11px 12px; border:1px solid var(--c-border); border-radius:12px; background:var(--c-surface);transition:border-color .15s ease, box-shadow .15s ease;}
input:hover,textarea:hover,select:hover{border-color:var(--c-hover-link)}
input:focus,textarea:focus,select:focus{border-color:var(--c-primary);box-shadow:0 0 0 4px rgba(36,87,224,.15);outline:0;}
.form-card{border:1px solid var(--c-border);border-radius:var(--radius);padding:18px;background:var(--c-surface);box-shadow:var(--c-shadow);}
.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px}
.form-check {margin: 0.75rem 0;}
.form-check label{display: flex;align-items: center;gap: .5rem;cursor: pointer;font-size: .95rem;}
.form-check input[type="checkbox"] {flex: 0 0 24px;max-width: 100px;margin: 0;}
.form-check span {flex: 1}

/* ========== FAQ ========== */
details{border:1px solid var(--c-border);border-radius:14px;padding:0;background:var(--c-surface);box-shadow:0 8px 20px rgba(2,6,23,.04);margin:10px 0;overflow:hidden;transition:box-shadow .2s ease, border-color .2s ease;}
details[open]{box-shadow:0 14px 34px rgba(2,6,23,.08); border-color:var(--c-border)}
summary{cursor:pointer; list-style:none; position:relative;padding:14px 48px 14px 16px; font-weight:700; color:var(--c-text);user-select:none;}
summary::-webkit-details-marker{display:none}
summary::after{content:""; position:absolute; right:16px; top:50%; width:10px; height:10px;border-right:2px solid var(--c-primary-link); border-bottom:2px solid var(--c-primary-link); transform:translateY(-60%) rotate(-45deg);transition:transform .2s ease, opacity .2s ease;opacity:.9;}
details[open] summary::after{transform:translateY(-40%) rotate(45deg)}
details > div{padding:0 16px 16px 16px; color:var(--c-light)}
details p{margin:.4rem 0 0}

/* ========== Footer ========== */
.site-footer{margin-top:40px;border-top:1px solid var(--c-border);padding:20px 0;background:var(--c-surface)}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-links a{color:var(--c-light)}
.footer-links a:hover{text-decoration:underline}
.footer-partners{display:flex;align-items:center;gap:12px}
.footer-copy{padding-top:8px;color:var(--c-muted)}

/* ========== Cookie ========== */
#cookie-fab{position:fixed; right:18px; bottom:18px; width:54px; height:54px;border-radius:50%; border:0; background:var(--c-primary); color:var(--c-surface);box-shadow:0 14px 34px rgba(2,6,23,.24); cursor:pointer; z-index:9999;display:inline-grid; place-items:center;transition:transform .12s ease, box-shadow .2s ease, background .2s ease;}
#cookie-fab:hover{transform:translateY(-2px); box-shadow:0 18px 40px rgba(2,6,23,.28); background:var(--c-primary-600)}
#cookie-fab:active{transform:translateY(0); box-shadow:0 12px 26px rgba(2,6,23,.22); background:var(--c-primary-700)}
#cookie-fab svg{width:26px;height:26px}

#cookie-banner{position: fixed;inset: auto 0 0 0;background:var(--c-black);color:var(--c-white);padding: 16px;z-index: 9998;display: flex;gap: 12px;flex-wrap: wrap;align-items: center;}
#cookie-banner a{color:var(--c-nav-link-light);text-decoration: underline;}
#cookie-banner .banner-text{flex: 1;min-width: 240px;}
#cookie-banner .banner-actions{display: flex;gap: 8px;margin-left: auto;}

.cookie-settings-overlay {position:fixed;inset:0;background:rgba(0,0,0,.6);z-index: 10000;display: flex;align-items: center;justify-content: center;}
.cookie-settings-modal {background:var(--c-surface);max-width:560px;width:90%;border-radius:12px;padding:20px;box-shadow:0 10px 40px rgba(0,0,0,.2);}
.cookie-settings-modal h2{ margin-top: 0; }

.cookie-settings-actions {display: flex;gap: 8px;justify-content: space-between;align-items: center;margin-top: 16px;flex-wrap: wrap;}
.cookie-settings-actions .right {display: flex;gap: 8px;margin-left: auto;}

/* Kis képernyőn a modal kicsit több paddinget kaphat */
@media (max-width: 480px){
  .cookie-settings-modal{ padding: 16px; }
}

/* ========== Kisegítő beállítások ========== */
@media (prefers-reduced-motion:reduce){
  *{transition:none !important; animation:none !important}
}

/* ========== Apró finomítások ========== */
ul{padding-left:1.2rem}
ul li{margin:.2rem 0}
.mb-0{margin-bottom:0}
.hero p{max-width:70ch}
.services .card p{margin:.5rem 0 0}

button,
input[type="button"],
input[type="submit"],
a.btn,
.button,
.btn {font-family: var(--font-btn);font-size: var(--btn-size);font-weight: 800;line-height: 1;display: inline-flex;align-items: center;justify-content: center;gap: 0.5rem; padding: 0.75rem 1rem;border-radius: 0.6rem;border: 1px solid transparent;cursor: pointer;text-decoration: none;transition: transform 0.08s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}


button:focus-visible,
input[type="button"]:focus-visible,
input[type="submit"]:focus-visible,
a.btn:focus-visible,
.button:focus-visible,
.btn:focus-visible {
  outline: none;box-shadow: 0 0 0 3px rgba(0, 120, 255, 0.35);
}

button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
a.btn:hover,
.button:hover,
.btn:hover {
  transform: translateY(-1px);
}

button:active,
input[type="button"]:active,
input[type="submit"]:active,
a.btn:active,
.button:active,
.btn:active {
  transform: translateY(0);
}

.btn-large{font-size: 1.45rem!important;padding:1rem 2rem!important;}

/* Utility classes to opt-in per element if needed */
.font-body { font-family: var(--font-body) !important; }
.font-h1   { font-family: var(--font-h1) !important; }
.font-h2   { font-family: var(--font-h2) !important; }
.font-h3   { font-family: var(--font-h3) !important; }
.font-btn  { font-family: var(--font-btn) !important; }

.hero h1, .hero .h1 { line-height: var(--leading-tight); }
.hero h2, .hero .h2 { line-height: var(--leading-snug); }

section > h1:first-child,
section > h2:first-child,
section > h3:first-child {
  margin-top: 1.25em;
}

/* ========== TOC - desktop ========== */
.toc-flyout{display:none;}
@media (min-width: 992px){
  .toc-flyout{display: block;position: fixed;top: 96px;right: clamp(12px, 2vw, 24px);width: 260px;max-height: calc(100vh - 120px);overflow: auto;background: var(--c-surface);border: 1px solid var(--c-border);border-radius: 12px;box-shadow: 0 6px 24px rgba(0,0,0,0.08);padding: 14px 16px;z-index: 1000;}
  .toc-flyout h2{font-size: 1rem;margin: 0 0 0.5rem 0;font-weight: 700;}
  .toc-flyout ul{list-style:none;margin:0;padding:0;}
  .toc-flyout li+li{margin-top:8px;}
  .toc-flyout a{display:block;text-decoration:none;color:var(--c-nav-link);font-weight:600;line-height:1.35;padding:6px 8px;border-radius:8px;transition:background-color .2s ease,color .2s ease;}
  .toc-flyout a:hover{background:var(--c-hover-link);text-decoration:none}
  .toc-flyout a.active {color: var(--c-nav-active);font-weight: 600;};
}

/* ========== TOC - desktop ========== */
.toc-aside {float: right;max-width: 300px;margin: 0 0 1em 2em;padding: 1em 1.2em;background: var(--c-surface);border: 1px solid rgba(0,0,0,0.08);border-radius: 8px;box-shadow: 0 2px 8px rgba(0,0,0,0.05);font-size: 0.95rem;}
.toc-aside h3 {font-size: 1.1rem;margin-top: 0;margin-bottom: 0.5em;}
.toc-aside ul {list-style: none;margin: 0 0 2em 0.25em;padding: 0;}
.toc-aside li {margin: 0.25em 0;padding-left: 1.2em;position: relative;}
.toc-aside ul.check li::before {content: "✔";position: absolute;left: 0;color: var(--c-nav-link);}
.toc-aside ul.link li::before {content: "➔";position: absolute;left: 0;color: var(--c-nav-link);}
.toc-aside a {display: block;padding: 2px 10px;border-radius: 10px;transition: background .2s ease;color: var(--c-nav-link, #14213d);}
.toc-aside a:hover {background: var(--c-hover-link);text-decoration: none;}
.toc-aside a.active {color: var(--c-nav-active);font-weight: 800;
}

/* ========== TOC - phone ========== */
@media (max-width: 768px) {
  .toc-aside {float: none;max-width: 100%;margin: 1em 0;}
}