:root{
  --yellow:#FFD200;
  --black:#000000;
  --white:#ffffff;
  --blue:#2F83BD;
  --radius:26px;
  --shadow:0 18px 40px rgba(0,0,0,.22);
  --max:1120px;
  --text:#111;
  --muted:#333;
  --pad:clamp(16px, 3vw, 28px);
  font-synthesis-weight:none;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: 'Montserrat', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color:var(--text);
  background:var(--white);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.container{width:min(var(--max), calc(100% - 32px)); margin:0 auto}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{left:16px;top:16px;width:auto;height:auto;padding:10px 12px;background:#fff;border-radius:12px;z-index:9999}

.wordmark{
  font-weight:900;
  letter-spacing:.2px;
  line-height:1;
}
.wordmark .clean{color:var(--yellow)}
.wordmark.big{font-size:clamp(46px, 6vw, 86px)}
.wordmark.mid{font-size:clamp(34px, 4vw, 54px)}

.menu-btn{
  border:0;
  background:transparent;
  color:inherit;
  font-weight:800;
  cursor:pointer;
  padding:10px 12px;
  border-radius:999px;
}
.menu-btn:hover{background:rgba(255,255,255,.12)}
.menu-panel{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.62);
  opacity:0;
  pointer-events:none;
  transition: opacity .2s ease;
  z-index:9999;
}
.menu-panel.open{opacity:1; pointer-events:auto}
.menu-sheet{
  position:absolute;
  top:0;
  right:0;
  height:100%;
  width:min(420px, calc(100% - 56px));
  background:#0b0b0b;
  color:#fff;
  border-radius:26px 0 0 26px;
  padding:18px 16px;
  padding-top:calc(18px + env(safe-area-inset-top));
  padding-bottom:calc(18px + env(safe-area-inset-bottom));
  padding-right:calc(16px + env(safe-area-inset-right));
  box-shadow:var(--shadow);
  overflow:auto;
  -webkit-overflow-scrolling: touch;
  transform:translateX(110%);
  transition: transform .25s ease;
}
.menu-panel.open .menu-sheet{transform:translateX(0)}
.menu-sheet header{
  position:sticky;
  top:0;
  z-index:1;
  background:#0b0b0b;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 10px 14px 10px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.menu-sheet header .wordmark{
  flex:1 1 auto;
  min-width:0; /* allow shrinking inside flex so the close button never gets pushed off-screen */
}
.menu-sheet header .menu-close{
  flex:0 0 auto;
}

@media (max-width: 420px){
  .menu-sheet .wordmark.mid{font-size:clamp(28px, 8vw, 42px)}
  .menu-sheet header{gap:10px}
  .menu-close{padding:9px 10px}
}
.menu-sheet nav{display:grid;gap:8px;padding:12px 6px}
.menu-link{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  font-weight:800;
}
.menu-link:hover{background:rgba(255,255,255,.10)}
.menu-close{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff;
  padding:10px 12px;
  border-radius:999px;
  cursor:pointer;
  font-weight:800;
}

/* Prevent background scroll while the drawer menu is open */
html.menu-open, body.menu-open{overflow:hidden}

.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 18px;
  border-radius:999px;
  font-weight:900;
}
.pill.yellow{background:var(--yellow); color:#000; box-shadow:var(--shadow)}
.pill.blue{background:var(--blue); color:#fff}

.social{
  display:flex;gap:10px;justify-content:center;align-items:center;margin-top:14px
}
.icon-btn{
  width:38px;height:38px;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  display:grid;place-items:center;
}
.icon-btn:hover{background:rgba(255,255,255,.16)}
.icon-btn:focus-visible{outline:2px solid var(--yellow); outline-offset:2px}
.icon-btn.is-disabled, .icon-btn[disabled]{opacity:.45; cursor:not-allowed}
.icon-btn[disabled]:hover{background:rgba(255,255,255,.10)}
.icon{width:18px;height:18px;fill:#fff}

.footer-bar{
  background:#0b0b0b;
  color:#fff;
  padding:14px 0;
}
.footer-bar .bar-inner{
  display:flex;flex-wrap:wrap;gap:10px 16px;
  justify-content:center;
  font-weight:800;
}
.footer-bar a{opacity:.92}
.footer-bar a:hover{opacity:1;text-decoration:underline}
.footer-bar .sep{opacity:.55}

.section{padding:clamp(28px, 5vw, 56px) 0}
.section.black{background:var(--black); color:#fff}
.section.yellow{background:var(--yellow); color:#000}
.section.white{background:var(--white); color:#000}

.h1{
  margin:0;
  font-weight:900;
  line-height:1.1;
  letter-spacing:.2px;
  font-size:clamp(28px, 3.2vw, 44px);
}
.h2{
  margin:0;
  font-weight:900;
  line-height:1.1;
  letter-spacing:.2px;
  font-size:clamp(26px, 3vw, 40px);
}
.h2.yellow{color:var(--yellow)}
.lead{
  margin:12px 0 0 0;
  font-size:clamp(14px, 1.4vw, 18px);
  line-height:1.6;
  opacity:.92;
}
.grid-2{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:clamp(14px, 2.4vw, 28px);
  align-items:center;
}
.grid-2.flip{grid-template-columns: .95fr 1.05fr}
@media (max-width: 900px){
  .grid-2, .grid-2.flip{grid-template-columns:1fr}
}

.photo{
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.photo img{width:100%;height:auto;display:block}

.home-service{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:clamp(14px, 2.4vw, 28px);
  align-items:start;
}
@media (max-width: 900px){
  .home-service{grid-template-columns:1fr}
}
.home-service h2{
  color:var(--yellow);
  font-size:clamp(30px, 3.2vw, 46px);
  margin:0 0 12px 0;
  font-weight:1000;
}
.home-service .text{
  color:#111;
  font-weight:800;
  font-size:clamp(14px, 1.5vw, 18px);
}
.home-service .stack{
  display:grid;
  gap:18px;
}
.home-service .row{display:grid;gap:12px}

/* Főoldal szolgáltatás csempék (kattintható képek) */
.home-tiles{align-items:start}
.home-tiles .home-tile{display:grid;gap:16px}
.home-tiles .home-tile h2{margin:0 0 6px 0; text-align:center; font-size:clamp(34px, 4vw, 60px)}

.home-photo-link{
  position:relative;
  display:block;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  transform:translateY(0);
  transition:transform .18s ease, filter .18s ease;
  aspect-ratio: 16 / 9;
}
.home-photo-link img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.home-photo-link::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.72) 100%);
  z-index:1;
}
.home-photo-cta{
  position:absolute;
  left:18px;
  bottom:16px;
  z-index:2;
  color:#fff;
  font-weight:1000;
  font-size:clamp(16px, 1.8vw, 24px);
  text-shadow:0 2px 16px rgba(0,0,0,.6);
}
.home-photo-link:hover{transform:translateY(-2px); filter:saturate(1.05)}
.home-photo-link:focus-visible{outline:3px solid var(--yellow); outline-offset:4px}

.cards-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:clamp(12px, 2vw, 20px);
}
@media (max-width: 980px){ .cards-3{grid-template-columns:1fr} }

.card{
  background:var(--yellow);
  color:#000;
  border-radius:var(--radius);
  padding:18px 18px 16px 18px;
  box-shadow:var(--shadow);
}
.card h3{margin:0;font-size:22px;font-weight:1000}
.card .price{
  margin:12px 0 12px 0;
  display:inline-flex;
  padding:10px 14px;
  border-radius:999px;
  background:var(--blue);
  color:#fff;
  font-weight:1000;
}
.card ul{margin:10px 0 0 18px; padding:0; font-weight:800; line-height:1.55}
.card .btn{
  margin-top:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  border-radius:999px;
  background:var(--blue);
  color:#fff;
  font-weight:1000;
}

.prices-hero{
  min-height: 62vh;
  background:
    linear-gradient(180deg, rgba(0,0,0,.62), rgba(0,0,0,.86)),
    url('/assets/img/prices_bg.jpg') center/cover no-repeat;
  color:#fff;
  padding: clamp(28px, 5vw, 56px) 0;
}
.prices-hero h1{margin:0;font-size:clamp(34px, 4vw, 58px);font-weight:1000}
.prices-hero p{margin:12px 0 0 0;opacity:.92;font-weight:750}

.price-block{padding:34px 0}
.block-title{
  font-size:clamp(22px, 2.6vw, 36px);
  margin:0 0 16px 0;
  font-weight:1000;
  color:#fff;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.price-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:clamp(12px, 2vw, 20px);
}
@media(max-width:980px){ .price-grid{grid-template-columns:1fr} }

/* Otthoni kárpitok rács: 4 → 2 → 1 oszlop, hogy mobilon ne legyenek tűhegyes kártyák */
.price-grid--home{grid-template-columns:repeat(4, minmax(0,1fr));}
@media(max-width:980px){ .price-grid--home{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media(max-width:520px){
  .price-grid--home{grid-template-columns:1fr;}
  .price-grid--home .price-card h3{font-size:18px;}
  .price-grid--home .price-card .pill{padding:12px 14px;}
}

.price-card{
  background:var(--yellow);
  color:#000;
  border-radius:var(--radius);
  padding:16px 16px 14px 16px;
  box-shadow:var(--shadow);

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.price-card h3{margin:0;font-weight:1000;font-size:20px}
.price-card .pill.blue{margin-top:10px}
.price-card p{margin:10px 0 0 0; font-weight:800; opacity:.92}

.faq-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:clamp(12px, 2vw, 20px);
}
@media(max-width:980px){ .faq-grid{grid-template-columns:1fr} }
.faq-card{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  min-height: 220px;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,210,0,.28);
}
.faq-card::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.72));
}
.faq-card .bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter: saturate(1.05) contrast(1.05);
}
.faq-card .txt{
  position:relative;
  padding:18px;
  color:var(--yellow);
  font-weight:1000;
  font-size:22px;
  line-height:1.2;
}
.faq-card .sub{
  position:relative;
  padding:0 18px 18px 18px;
  color:#fff;
  opacity:.9;
  font-weight:800;
}
details.faq-item{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
}
details.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:14px 16px;
  font-weight:1000;
  color:#fff;
}
details.faq-item summary::-webkit-details-marker{display:none}
details.faq-item .ans{padding:0 16px 16px 16px; color:#fff; opacity:.92; font-weight:750}


/* Screen-reader only */
.sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* FAQ tiles (original SVG concept preserved via exact tile images) */
.faq-tiles{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:clamp(12px, 1.6vw, 18px);
  margin-top:18px;
}
@media (max-width: 980px){
  .faq-tiles{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px){
  .faq-tiles{ grid-template-columns: 1fr; }
}
.faq-tile{
  border:0;
  padding:0;
  background:transparent;
  display:block;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:none;
  cursor:pointer;
  position:relative;
  aspect-ratio: 3 / 2;
  background:#000;
  outline:none;
}
.faq-tile img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.faq-tile:focus-visible{
  outline:3px solid rgba(255,210,0,.85);
  outline-offset:4px;
}

/* FAQ tile caption overlay */
.faq-tile::before{
  content:"";
  position:absolute;
  inset:0;
  /* Centered title readability */
  background: linear-gradient(to bottom, rgba(0,0,0,.42), rgba(0,0,0,.58));
  pointer-events:none;
}
.faq-tile-caption{
  position:absolute;
  inset:0;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  max-width:100%;
  color:#fff;
  font-weight:1000;
  letter-spacing:.1px;
  font-size: clamp(14px, 1.25vw, 16px);
  line-height:1.2;
  text-shadow: 0 2px 14px rgba(0,0,0,.65);
  pointer-events:none;
}

/* FAQ modal */
.faq-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.72);
  display:none;
  z-index:10000;
  padding:18px;
}
.faq-modal.open{ display:grid; place-items:center; }
.faq-modal-card{
  width:min(720px, 100%);
  background:#0b0b0b;
  color:#fff;
  border-radius:24px;
  padding:18px 18px 20px 18px;
  box-shadow:0 24px 60px rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.14);
  position:relative;
}
.faq-modal-close{
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff;
  cursor:pointer;
  font-size:22px;
  line-height:1;
}
.faq-modal-close:hover{ background:rgba(255,255,255,.12); }
.faq-modal-body{
  margin-top:12px;
  white-space:pre-line;
  font-weight:700;
  line-height:1.6;
  opacity:.95;
}

/* Justified text (long paragraphs) */
.text-justify{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}
