
/* === SOURCE: style.css === */
/* NORBERTBANHALMI.COM — quiet Apple-like editorial
   Palette: snow white, black, champagne gold */

:root{
  --bg:#fff;             /* snow white */
  --bg-alt:#f5f5f7;      /* soft white band */
  --navy:#202530;        /* near-black text/ink */
  --navy-soft:#2D3444;
  --title-accent:#2F6F78; /* WCAG AA on #fff and #f5f5f7; reserved for sparse display emphasis */
  --graphite:#202530;
  --ink:#202530;         /* black text */
  --muted:#6e6e73;       /* secondary text */
  --line:rgba(0,0,0,.11); /* hairline */
  --gold:#B79C44;        /* BANHALMI brand gold: decorative accents and filled UI */
  --gold-deep:#8A681F;   /* WCAG AA text gold on white */
  --gold-soft:#f6f1e7;
  --gold-line:rgba(138,104,31,.25);
  --white:#fff;
  --maxw:1120px;
  --textw:680px;
  --wide-textw:820px;
  --radius:22px;
  --header-h:56px;
  /* SF stack — Display for headings, Text for body, as apple.com splits them */
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  
  *{animation:none;transition:none;}
}

body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  font-size:17px;
  line-height:1.55;
  letter-spacing:-0.012em;          /* apple.com body tracking */
  font-weight:400;
-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;display:block;}
a{color:var(--navy);text-decoration:none;}
a:hover{color:var(--gold-deep);}

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

/* Typography audit fix — paragraphs/headings rendered directly inside <section>,
   outside .wrap, lost the page's horizontal rhythm (full-bleed, misaligned). */
section > p,
section > h2{
  max-width:var(--maxw);
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  box-sizing:border-box;
}
@media (max-width:480px){
  section > p,
  section > h2{padding-left:20px;padding-right:20px;}
}

/* Apple type system: tighter tracking the larger the size, looser the smaller.
   Display face, weight 600, line-height near 1.05–1.1 on large headings. */
h1,h2,h3{
  font-family:var(--font-display);
  color:var(--navy);
  font-weight:600;
  line-height:1.07;
  margin:0 0 0.5em;
  text-wrap:balance;
}
h1{font-size:clamp(2.4rem,5.6vw,4rem);letter-spacing:-0.028em;line-height:1.04;}
h2{font-size:clamp(1.65rem,3.4vw,2.55rem);letter-spacing:-0.021em;line-height:1.08;}
h3{font-size:1.2rem;font-weight:600;letter-spacing:-0.014em;line-height:1.2;}
p{margin:0 0 1.05em;}
.lead{
  font-family:var(--font-display);
  font-size:clamp(1.2rem,1.9vw,1.55rem);
  color:var(--graphite);
  line-height:1.4;
  letter-spacing:-0.018em;
  font-weight:400;
}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,0.88);

  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px;}
.brand{font-family:var(--font-display);font-size:1.06rem;font-weight:600;color:var(--navy);letter-spacing:0.08em;text-transform:uppercase;}
.brand span{color:var(--gold-deep);}
.nav-links{display:flex;align-items:center;gap:clamp(14px,1.9vw,28px);list-style:none;margin:0;padding:0;}
.nav-links a{font-size:0.875rem;color:var(--graphite);letter-spacing:-0.006em;font-weight:400;}
.nav-links a:hover{color:var(--navy);}
.nav-cta{
  border:1px solid var(--navy);border-radius:980px;          /* apple pill */
  padding:7px 16px;color:var(--navy);font-weight:500;font-size:0.85rem;
  transition:background .2s,color .2s;
}
.nav-cta:hover{background:var(--navy);color:var(--white);}
.lang-switch{display:flex;gap:9px;align-items:center;font-size:0.78rem;letter-spacing:0.02em;}
.lang-switch a{color:var(--muted);text-transform:uppercase;}
.lang-switch a.active{color:var(--navy);font-weight:600;}
.lang-switch .sep{color:var(--line);}

.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.menu-btn span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:.25s;}
.nav.open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg);}

.nav.open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:1040px){
  .menu-btn{display:block;order:3;}
  .nav-links{
    position:absolute;top:64px;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:0;
    background:var(--bg);border-bottom:1px solid var(--line);
    padding:0 28px;max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  .nav.open .nav-links{max-height:520px;padding:14px 28px 22px;}
  .nav-links li{width:100%;}
  .nav-links a{display:block;padding:11px 0;border-bottom:1px solid var(--line);width:100%;}
  .nav-cta{display:inline-block;margin-top:10px;}
}

/* ---------- Hero ---------- */
.hero{padding:96px 0 72px;}
.hero .eyebrow{color:var(--muted);font-size:0.8rem;font-weight:500;letter-spacing:0.04em;margin-bottom:22px;}
.hero h1{max-width:17ch;}
.hero .lead{max-width:52ch;margin-top:26px;color:var(--graphite);}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:36px;align-items:center;}

.hero-figure{
  margin-top:54px;border-radius:18px;overflow:hidden;
  background:linear-gradient(135deg,#eceadf,#f6f4ee);
  border:1px solid var(--line);
  aspect-ratio:16/8;display:flex;align-items:center;justify-content:center;
}
.hero-figure .ph{color:var(--muted);font-size:0.8rem;letter-spacing:0.16em;text-transform:uppercase;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;border-radius:980px;font-size:0.95rem;font-weight:400;
  padding:11px 24px;letter-spacing:-0.006em;transition:.22s ease;cursor:pointer;border:1px solid transparent;
  line-height:1.3;
}
.btn-primary{background:var(--navy);color:var(--white);}
.btn-primary:hover{background:var(--navy-soft);color:var(--white);}
.btn-ghost{border-color:rgba(22,32,58,.28);color:var(--navy);background:transparent;}
.btn-ghost:hover{border-color:var(--navy);background:transparent;color:var(--navy);}
/* apple often pairs a filled button with a plain text link + chevron */
.btn-link{display:inline-flex;align-items:center;gap:4px;color:var(--navy);font-size:0.95rem;letter-spacing:-0.006em;}
.btn-link::after{content:"›";font-size:1.15em;line-height:1;opacity:.65;transition:transform .2s;}

.btn-link:hover::after{transform:translateX(2px);}

/* ---------- Sections ---------- */
section{padding:72px 0;}
.section-band{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.section-head{max-width:58ch;margin-bottom:44px;}
.section-head .eyebrow{color:var(--muted);font-size:0.8rem;font-weight:500;letter-spacing:0.01em;margin-bottom:12px;display:block;}

.prose{max-width:60ch;}
.prose p{color:var(--ink);}

/* ---------- Cards ---------- */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media (max-width:720px){.cards{grid-template-columns:1fr;}}
.card{
  background:var(--white);border:1px solid var(--line);border-radius:14px;
  padding:30px 30px;transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(22,32,58,.07);}
.card h3{margin-bottom:9px;}
.card p{color:var(--muted);font-size:0.96rem;margin:0;line-height:1.5;}
.card .more{display:inline-flex;align-items:center;gap:3px;margin-top:18px;color:var(--navy);font-size:0.9rem;letter-spacing:-0.006em;}

/* ---------- Lists ---------- */
.ticks{list-style:none;padding:0;margin:0;columns:2;column-gap:44px;}
@media (max-width:560px){.ticks{columns:1;}}
.ticks li{padding:8px 0 8px 20px;position:relative;color:var(--graphite);break-inside:avoid;}
.ticks li::before{content:"";position:absolute;left:0;top:17px;width:5px;height:5px;background:var(--gold);border-radius:50%;}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;counter-reset:s;}
@media (max-width:720px){.steps{grid-template-columns:1fr;}}
.step{padding-top:20px;border-top:1px solid var(--line);}
.step .n{font-size:0.78rem;font-weight:500;letter-spacing:0;color:var(--muted);}
.step h3{margin-top:6px;}
.step p{color:var(--muted);font-size:0.96rem;margin:8px 0 0;line-height:1.5;}

/* ---------- Image slot ---------- */
.img-slot{
  background:linear-gradient(135deg,#ece9df,#f6f4ee);
  border:1px solid var(--line);border-radius:14px;
  aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;
}
.img-slot .ph{color:var(--muted);font-size:0.78rem;letter-spacing:-0.004em;padding:0 22px;text-align:center;line-height:1.45;}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:720px){.gallery{grid-template-columns:repeat(2,1fr);}}
@media (max-width:460px){.gallery{grid-template-columns:1fr;}}

.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
@media (max-width:820px){.split{grid-template-columns:1fr;gap:30px;}}

/* ---------- FAQ ---------- */

.faq details{border-bottom:1px solid var(--line);padding:6px 0;}
.faq summary{
  cursor:pointer;list-style:none;position:relative;padding:18px 44px 18px 0;font-weight:500;color:var(--navy);
  font-size:1.08rem;letter-spacing:-0.014em;line-height:1.4;
  font-family:var(--font-display);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--muted);font-weight:300;font-size:1.5rem;line-height:1;position:absolute;right:0;top:17px;}
.faq details[open] summary::after{content:"–";}
.faq details p{color:var(--muted);margin:0 0 18px;font-size:1rem;line-height:1.55;max-width:62ch;}

/* ---------- CTA band ---------- */
.cta-band{background:var(--navy);color:#C7CCD8;text-align:center;}
.cta-band h2{color:#fff;max-width:22ch;margin:0 auto 28px;}
.cta-band .btn-primary{background:#fff;color:var(--navy);}
.cta-band .btn-primary:hover{background:#eef0f4;color:var(--navy);}

/* ---------- Form ---------- */
.form{max-width:660px;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:0.85rem;color:var(--graphite);margin-bottom:8px;font-weight:500;letter-spacing:-0.006em;}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:10px;
  font-family:inherit;font-size:1rem;background:var(--white);color:var(--ink);letter-spacing:-0.01em;
  transition:border-color .15s, box-shadow .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(22,32,58,.1);}
.field textarea{min-height:130px;resize:vertical;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:560px){.grid-2{grid-template-columns:1fr;}}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:0.92rem;color:var(--muted);}
.consent input{width:auto;margin-top:4px;}

/* ---------- Legal ---------- */

.legal h2{font-size:1.3rem;margin:34px 0 12px;}
.legal p,.legal li{color:var(--graphite);font-size:1rem;}
.note-panel{background:var(--bg-alt);border-left:3px solid var(--gold);padding:14px 18px;font-size:0.92rem;color:var(--muted);border-radius:0 4px 4px 0;margin:18px 0;}

/* ---------- Footer ---------- */
.site-footer{background:#202530;color:#AEB4C2;padding:58px 0 30px;font-size:0.92rem;}
.footer-grid{display:grid;grid-template-columns:minmax(240px,2fr) repeat(5,minmax(135px,1fr));gap:30px;align-items:start;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;gap:28px;}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr;}}
.site-footer .brand{color:#fff;display:block;margin-bottom:14px;}
.site-footer h3{color:#fff;font-size:0.8rem;letter-spacing:-0.004em;margin:0 0 14px;font-weight:500;opacity:.92;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:10px;}
.site-footer a{color:#9AA1B2;}
.site-footer a:hover{color:#fff;}
.footer-bottom{border-top:1px solid #243049;margin-top:46px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#6E7689;font-size:0.82rem;}
.footer-bottom a{color:#6E7689;}
.footer-bottom a:hover{color:#9AA1B2;}
.footer-entity{color:#6E7689;font-size:0.84rem;max-width:46ch;line-height:1.55;}

/* ---------- Breadcrumb ---------- */
.crumb{font-size:0.82rem;color:var(--muted);padding-top:30px;letter-spacing:-0.006em;}
.crumb a{color:var(--muted);}
.crumb a:hover{color:var(--navy);}

/* ---------- Cookie ---------- */
.cookie{
  position:fixed;bottom:18px;left:18px;right:18px;max-width:460px;margin:0 auto;
  background:var(--white);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 12px 40px rgba(22,32,58,0.16);padding:20px 22px;z-index:90;display:none;
}
.cookie.show{display:block;}
.cookie p{font-size:0.9rem;color:var(--graphite);margin:0 0 14px;}
.cookie-actions{display:flex;gap:10px;}
.cookie .btn{padding:9px 18px;font-size:0.9rem;}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;}}

/* RTL not required; HU/DE/EN all LTR */

/* ---------- Portfolio / Gallery ---------- */
.pf-intro{padding:84px 0 28px;}
.pf-filters{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 4px;}
.pf-filter{
  border:1px solid rgba(22,32,58,.22);background:transparent;color:var(--navy);
  border-radius:980px;padding:8px 18px;font-size:0.9rem;letter-spacing:-0.006em;
  cursor:pointer;transition:.18s ease;font-family:var(--font);
}
.pf-filter:hover{border-color:var(--navy);}
.pf-filter[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy);}

.pf-section{padding:30px 0 12px;}
.pf-section h2{margin-bottom:22px;}
.pf-grid{
  columns:3;column-gap:16px;
}
@media (max-width:900px){.pf-grid{columns:2;}}
@media (max-width:560px){.pf-grid{columns:1;}}
.pf-item{
  break-inside:avoid;margin:0 0 16px;display:block;width:100%;
  border-radius:12px;overflow:hidden;background:var(--bg-alt);
  border:1px solid var(--line);cursor:zoom-in;position:relative;
}
.pf-item img{
  width:100%;height:auto;display:block;
  transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s ease;
  opacity:0;
}
.pf-item img.loaded{opacity:1;}
.pf-item:hover img{transform:scale(1.03);}
.pf-item:focus-visible{outline:2px solid var(--navy);outline-offset:2px;}
.pf-hidden{display:none;}

.pf-ph{aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;}
.pf-ph span{color:var(--muted);font-size:0.78rem;letter-spacing:-0.004em;padding:0 18px;text-align:center;}

.pf-ig{display:flex;align-items:center;gap:10px;margin-top:8px;}
.pf-ig a{display:inline-flex;align-items:center;gap:8px;color:var(--navy);font-size:0.95rem;}
.pf-ig svg{width:18px;height:18px;}

/* ---------- Lightbox ---------- */
.lb{
  position:fixed;inset:0;z-index:200;display:none;
  background:rgba(17,20,28,.94);
  align-items:center;justify-content:center;
}
.lb.open{display:flex;}
.lb img{max-width:92vw;max-height:86vh;border-radius:6px;box-shadow:0 24px 80px rgba(0,0,0,.5);}
.lb-cap{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:#C7CCD8;font-size:0.85rem;letter-spacing:-0.006em;padding:0 20px;}
.lb-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
  color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.4rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:.18s;
}
.lb-btn:hover{background:rgba(255,255,255,.18);}
.lb-prev{left:18px;} .lb-next{right:18px;}
.lb-close{top:18px;right:18px;transform:none;width:44px;height:44px;font-size:1.2rem;}
@media (max-width:560px){.lb-prev{left:6px;}.lb-next{right:6px;}.lb-btn{width:42px;height:42px;}}


/* ---------- Accessibility / production helpers ---------- */
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.location-cards .card p{color:var(--graphite);}
@media (max-width:1040px){
  .lang-switch{margin-left:auto;margin-right:10px;}
}
@media (max-width:480px){
  .wrap{padding:0 20px;}
  .hero{padding:72px 0 52px;}
  section{padding:56px 0;}
  .cookie{left:10px;right:10px;bottom:10px;}
  .cookie-actions{flex-direction:column;}
  .cookie .btn{width:100%;text-align:center;}
}

/* Pricing & Brief Builder */
.price-card { position: relative; }
.price-card .price,
.price-line {
  display: inline-block;
  color: var(--gold-deep);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
}
.price-card .price { font-size: clamp(1.15rem, 2vw, 1.55rem); }
.mini-list {
  margin: 18px 0 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.7;
}
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.chip {
  border: 1px solid rgba(179,139,74,.34);
  background: rgba(179,139,74,.06);
  color: var(--ink);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: .88rem;
}
.pricing-cards .card { min-height: 100%; }


/* Production 3.0 Phase 2 — image integration and quote builder polish */
.editorial-hero,
.editorial-image{
  margin:0;
  background:#f7f7f5;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}
.editorial-hero picture,
.editorial-image picture{display:block;}
.editorial-hero img,
.editorial-image img{
  width:100%;
  height:auto;
  object-fit:contain;
  background:#f7f7f5;
}
.editorial-hero{margin-top:54px;aspect-ratio:auto;display:block;}
.editorial-hero img{max-height:760px;object-fit:contain;}
.editorial-image figcaption,
.pf-item figcaption{
  color:var(--muted);
  font-size:.82rem;
  line-height:1.45;
  padding:12px 14px 14px;
}
.gallery .editorial-image{align-self:start;}
.pf-item{margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;cursor:pointer;}
.pf-item img{width:100%;height:auto;object-fit:contain;background:#f7f7f5;opacity:1;transition:opacity .25s ease, transform .25s ease;}
.pf-item:hover img{transform:translateY(-1px);}
.pf-ph{display:none;}
.quote-builder{border:1px solid var(--line);border-radius:18px;padding:28px;background:#fff;margin-bottom:28px;}
.quote-builder h3{margin-bottom:10px;}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:12px 0 18px;}
.check-grid label{font-size:.93rem;color:var(--graphite);display:flex;gap:9px;align-items:flex-start;line-height:1.35;}
.budget-result{background:var(--bg-alt);border:1px solid var(--line);border-radius:14px;padding:18px;margin:8px 0 20px;color:var(--graphite);font-size:.96rem;}
.budget-result strong{color:var(--navy);}
@media (max-width:720px){.check-grid{grid-template-columns:1fr}.editorial-hero{margin-top:32px}.hero{padding:72px 0 48px}h1{font-size:clamp(2.1rem,10vw,3rem)}}

/* Production 3.0 Phase 5 — BANHALMI brand mark + since 1999 refinement */
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;}
.brand-logo{width:26px;height:26px;display:inline-block;object-fit:contain;}
.brand-word{letter-spacing:.12em;}
.site-footer .brand-logo{filter:invert(1);opacity:.92;}
.site-footer .brand-word{color:#fff;}
.hero-figure,.editorial-hero{background:#eee;border-color:rgba(22,32,58,.08);}
.editorial-hero img{width:100%;height:auto;max-height:none;object-fit:contain;background:#eee;}
.footer-since{display:block;margin-top:10px;color:#fff;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;}

.footer-brand-col{max-width:360px;}
.footer-contact-list strong,.footer-legal-list strong{color:#fff;font-weight:500;}
.footer-legal-list span{display:inline-block;min-width:74px;color:#7C8495;}
.footer-contact-list li{line-height:1.55;}
@media (max-width:1080px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr;}}


/* Phase 8 — guided quote builder */
.smart-quote-layout{align-items:flex-start;gap:clamp(32px,5vw,72px)}
.quote-intro{position:sticky;top:104px;align-self:flex-start}.quote-summary-card{margin-top:32px;border:1px solid var(--line);border-radius:22px;padding:26px;background:linear-gradient(180deg,#fff,#faf9f6);box-shadow:0 12px 40px rgba(22,32,58,.05)}
.quote-total{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.7rem);line-height:1;color:var(--navy);letter-spacing:-.04em;margin:8px 0 14px}.quote-summary-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}.quote-summary-card dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.quote-summary-card dd{margin:2px 0 0;color:var(--graphite);font-weight:600}.quote-summary-card p{font-size:.92rem;color:var(--muted);margin:0}.quote-summary-card.reverse{border-color:#8A681F;background:#fffdf7}.quote-step{border:1px solid var(--line);border-radius:22px;padding:clamp(20px,3vw,30px);background:#fff;margin-bottom:22px}.quote-step h3{font-size:1.08rem;margin-bottom:18px}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-card,.option-row{display:block;border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.category-card:hover,.option-row:hover{transform:translateY(-1px);border-color:rgba(183,156,68,.72)}.category-card input,.option-row input{margin-right:9px}.category-card strong{display:block;color:var(--navy);font-size:.98rem}.category-card em{display:block;font-style:normal;color:var(--muted);font-size:.9rem;margin-top:4px}.category-card:has(input:checked),.option-row:has(input:checked){background:#faf7ef;border-color:#8a681f}.option-stack{display:grid;gap:10px;margin-bottom:16px}.conditional-panel[hidden]{display:none}.microcopy,.custom-brief p{font-size:.92rem;color:var(--muted)}.production-grid{margin-top:6px}.custom-brief{border-left:2px solid var(--gold);padding-left:16px;margin:16px 0 22px}.custom-brief h4{margin-bottom:6px;color:var(--navy)}
@media (max-width:900px){.quote-intro{position:static}.category-grid{grid-template-columns:1fr}.quote-summary-card{margin-top:22px}.quote-step{border-radius:18px}}


/* Phase 10 — systematic BANHALMI gold language
   Gold is used as a quiet editorial accent, never as decoration. */
:root{
  --gold:#B79C44;
  --gold-deep:#8A681F; /* WCAG AA text gold on white */
  --gold-soft:#F5F0E7;
  --gold-line:rgba(183,156,68,.38);
}
.brand-word{
  color:var(--gold-deep);
  letter-spacing:.105em;
}
.site-header{
  border-bottom:1px solid var(--gold-line);
}
.nav-links a{
  position:relative;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-3px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .24s ease;
}
.nav-links a:hover::after,
.nav-links a:focus-visible::after{
  transform:scaleX(1);
}
.nav-cta{
  border-color:var(--gold-deep);
  color:var(--gold-deep);
  background:rgba(138,104,31,.04);
}
.nav-cta:hover{
  background:var(--gold-deep);
  color:#fff;
}
.eyebrow,
.section-head .eyebrow,
.hero .eyebrow{
  color:var(--gold-deep);
  letter-spacing:.065em;
  text-transform:uppercase;
}
.card,
.step,
.quote-card,
.location-card,
.price-card{
  border-color:var(--gold-line);
}
.card:hover{
  box-shadow:0 16px 42px rgba(143,115,55,.08);
}
.ticks li::before,
.check-list li::before{
  background:var(--gold-deep);
}
.footer-brand-col .brand-word,
.site-footer h3,
.footer-since{
  color:var(--gold-deep);
}
.site-footer{
  border-top:1px solid var(--gold-line);
}
.footer-bottom{
  border-top:1px solid var(--gold-line);
}
.btn-link{
  color:var(--gold-deep);
}
.btn-link:hover{
  color:var(--navy);
}
::selection{
  background:var(--gold-soft);
  color:var(--ink);
}


/* Phase 11 — footer link clarity / Apple-style interaction */
.site-footer a,
.site-footer a:visited,
.footer-bottom a,
.footer-bottom a:visited{
  color:#FFFFFF;
  text-decoration:none;
  transition:color .24s ease, transform .24s ease, opacity .24s ease;
}
.site-footer a:hover,
.site-footer a:focus-visible,
.footer-bottom a:hover,
.footer-bottom a:focus-visible{
  color:var(--gold-deep);
  opacity:1;
}
.site-footer a:focus-visible,
.footer-bottom a:focus-visible{
  outline:1px solid var(--gold-deep);
  outline-offset:3px;
  border-radius:4px;
}
.site-footer li a{
  display:inline-block;
}
.site-footer li a:hover{
  transform:translateX(2px);
}
.site-footer span,
.footer-entity,
.footer-contact-list li,
.footer-legal-list li{
  color:#AEB4C2;
}
.footer-contact-list strong,
.footer-legal-list strong{
  color:#FFFFFF;
}


/* Production 3.0 Phase 12 — centered black SVG mark on the two-face hero */
.editorial-hero{position:relative;}
.editorial-hero .hero-center-logo{
  position:absolute;
  left:50%;
  top:50%;
  width:clamp(72px,9vw,142px);
  height:auto;
  transform:translate(-50%,-50%);
  opacity:.26;
  filter:none;
  pointer-events:none;
  user-select:none;
  z-index:2;
}
@media (max-width:720px){
  .editorial-hero .hero-center-logo{width:clamp(48px,15vw,86px);opacity:.22;}
}


/* Production 3.0 Phase 14 — footer spacing and brand-logo breathing room */
.site-footer .wrap{
  max-width:1440px;
}
.site-footer{
  padding-top:76px;
}
.footer-grid{
  grid-template-columns:
    minmax(280px,1.45fr)
    minmax(185px,.95fr)
    minmax(175px,.9fr)
    minmax(205px,1fr)
    minmax(205px,1fr)
    minmax(160px,.8fr)
    minmax(230px,1fr);
  column-gap:clamp(44px,4.4vw,82px);
  row-gap:54px;
}
.site-footer .brand{
  display:inline-flex;
  align-items:center;
  gap:18px;
  margin-bottom:26px;
}
.site-footer .brand-logo{
  flex:0 0 auto;
}
.site-footer .brand-word{
  padding-left:2px;
  letter-spacing:.14em;
}
.footer-brand-col{
  max-width:390px;
}
.site-footer h3{
  margin-bottom:18px;
}
.site-footer li{
  margin-bottom:13px;
}
@media (max-width:1280px){
  .site-footer .wrap{max-width:1120px;}
  .footer-grid{
    grid-template-columns:minmax(260px,1.35fr) repeat(3,minmax(180px,1fr));
    column-gap:56px;
    row-gap:48px;
  }
}
@media (max-width:860px){
  .footer-grid{
    grid-template-columns:1fr 1fr;
    column-gap:42px;
    row-gap:40px;
  }
}
@media (max-width:560px){
  .site-footer{padding-top:56px;}
  .footer-grid{grid-template-columns:1fr;row-gap:34px;}
}

/* Production 3.0 Phase 15 — responsive footer grid + editorial bullets
   Goal: the footer must breathe on desktop and collapse cleanly on tablet/mobile. */
.site-footer .wrap{
  max-width:min(1480px, calc(100vw - 56px));
}
.site-footer{
  padding-top:clamp(58px,7vw,88px);
}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(225px,100%),1fr));
  column-gap:clamp(52px,5.6vw,96px);
  row-gap:clamp(36px,4.2vw,62px);
  align-items:start;
}
@media (min-width:1180px){
  
}









/* Footer link accordions — collapsible columns so the many footer links
   stay tidy instead of competing for attention all at once. */








@media (prefers-reduced-motion: reduce){
  
}

@media (max-width:920px){
  
  
  
}
@media (max-width:620px){
  
  
  
  
  
}

/* Phase 16 — Apple-like hero image placement
   The signature hero image appears first, immediately below the header,
   with the copy following underneath. This keeps the page visual, quiet and premium. */



@media (max-width:720px){
  
  
}

/* Phase 17 — homepage-only full-bleed hero image under the header.
   Subpages keep the editorial text hero without the signature image. */






@media (prefers-reduced-motion: reduce){
  
}

/* Interaction-loaded hero video. The still image remains visible and is the
   LCP element; main.js attaches video sources only on hover or tap. This layer
   owns the desktop-hover and touch-tap crossfade without affecting layout. */

@media (hover:hover) and (prefers-reduced-motion: no-preference){
  
  
}
@media (hover:none) and (prefers-reduced-motion: no-preference){
  
  
}
@media (max-width:720px){
  
  
}

/* Phase 18 — curated portrait references */






@media (min-width:960px){}
@media (max-width:720px){}

/* Phase 21 service exhibitions */
@media (max-width:760px){}

/* Accessible skip link — no inline handlers */



/* Production v2 editorial collage update */








@media (max-width:1100px){}
@media (max-width:680px){}

/* Production v2.1 — Apple-like micro motion and clean hero mark
   The motion layer is intentionally quiet: small lift, gentle fade, no gimmicks. */


@media (max-width:720px){
  
}
@media (prefers-reduced-motion: no-preference){
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}
@media (prefers-reduced-motion: reduce){
  
  
}


/* Production v3 — editorial SEO/GEO and Platon-inspired language sections */
.editorial-about-expanded{background:#fff;}
.platon-editorial-copy{color:var(--graphite);}
.service-context-platon{padding-top:54px;padding-bottom:34px;background:#fff;}
.service-context-platon .section-head{margin-bottom:20px;}
.service-context-lead{max-width:860px;color:var(--graphite);}
@media (max-width:720px){.service-context-platon{padding-top:42px}.service-context-lead{font-size:1.08rem;line-height:1.55}.about-longform{font-size:1rem;line-height:1.7}}

/* BANHALMI Production v3 Editorial Edition */
.banhalmi-platon-service-intro{padding-top:clamp(56px,7vw,112px);padding-bottom:clamp(36px,5vw,80px)}
.banhalmi-platon-service-intro .about-longform{max-width:920px}
.banhalmi-platon-service-intro p{font-size:clamp(1.05rem,1.1vw,1.28rem);line-height:1.72;color:var(--ink, #111)}

/* Heritage / legal final polish */
.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.legal-grid .card a,.location-cards .card h3 a{color:var(--ink);text-decoration:none;}
.legal-grid .card a:hover,.location-cards .card h3 a:hover{color:var(--gold-deep);}
.location-card-linkable{position:relative;}
.location-card-linkable .map-card-link{display:inline-flex;margin-top:14px;color:var(--gold-deep);font-size:.92rem;text-decoration:none;}
.curatorial-note{margin-top:8px;color:var(--graphite);line-height:1.58;}
.archive-bridges .more + .more,.heritage-cards .more + .more{margin-left:18px;}
.timeline-item h3 a{color:inherit;text-decoration:none;}
.timeline-item h3 a:hover{color:var(--gold-deep);}
@media (max-width:860px){.legal-grid{grid-template-columns:1fr}.archive-bridges .more + .more,.heritage-cards .more + .more{margin-left:0;display:flex;}}


/* Professional creative network */
.professional-network .prose{max-width:78ch;}
.professional-network .prose p{color:var(--graphite);line-height:1.68;}
.professional-network .cards{margin-top:32px;}


/* Final client-journey refinements */
.project-team-select, .amcham-benefit-box, .project-goals, .project-summary { margin-top: 22px; }
.amcham-benefit-box, .project-summary { border: 1px solid rgba(32,37,48,.14); border-radius: 22px; padding: 22px; background: rgba(255,255,255,.72); }
.amcham-copy { margin: 12px 0 16px; color: var(--muted); line-height: 1.65; }
.project-summary ul { margin: 12px 0 0; padding-left: 18px; color: var(--muted); line-height: 1.8; }
.refined-network .prose, .project-team .prose { max-width: 860px; }
.contact-custom-quote .cards { align-items: stretch; }
@media (max-width: 760px){ .amcham-benefit-box, .project-summary { border-radius: 18px; padding: 18px; } }

/* Production 2.0 structural polish */
.nav-links{min-width:min(430px,calc(100vw - 40px));}
.service-info-cards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;}
.service-info-cards .card{min-height:0;}
.service-actions{margin-top:28px;flex-wrap:wrap;}
.smart-quote-layout,.quote-layout,.contact-custom-quote .cards{align-items:start;}
.field, .quote-step, .card{box-sizing:border-box;overflow:visible;}
.field input,.field select,.field textarea{box-sizing:border-box;width:100%;min-height:52px;padding:14px 16px;line-height:1.35;position:relative;z-index:1;}
.field textarea{min-height:150px;}
.form-card,.quote-card,.contact-card{overflow:visible;}
.project-summary{position:relative;z-index:2;}
@media (max-width:820px){.service-info-cards{grid-template-columns:1fr}.nav-links{min-width:0}.field input,.field select,.field textarea{font-size:16px}}

/* Production 2.3 — Apple-style universal navigation
   Goal: logo + language selector + hamburger in every viewport.
   The menu opens as a calm, full-width drop-down panel so long German labels
   never compete with the hero or break the header rhythm. */
.site-header{
  background:rgba(255,255,255,.86);
border-bottom:1px solid rgba(180,144,72,.18);
  z-index:999;
}

.nav{
  position:relative;
  display:flex;
  align-items:center;
  min-height:64px;
  gap:clamp(14px,2vw,28px);
}
.brand{
  flex:0 0 auto;
  min-width:0;
}
.brand-word{
  letter-spacing:.16em;
  white-space:nowrap;
}
.lang-switch{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  font-size:.78rem;
  letter-spacing:.08em;
  color:rgba(32,37,48,.58);
}
.lang-switch a{
  color:rgba(32,37,48,.58);
  text-decoration:none;
  padding:8px 2px;
  transition:color .22s ease;
}
.lang-switch a.active,
.lang-switch a:hover,
.lang-switch a:focus-visible{color:#202530;}
.lang-switch .sep{color:rgba(32,37,48,.26);}
.menu-btn{
  display:inline-flex;
  flex:0 0 auto;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  background:transparent;
  padding:0;
  cursor:pointer;
  position:relative;
  z-index:1001;
  transition:background-color .22s ease, transform .22s cubic-bezier(.16,1,.3,1);
}
.menu-btn:hover,.menu-btn:focus-visible{background:rgba(180,144,72,.10);transform:translateY(-1px);}
.menu-btn span{
  position:absolute;
  width:20px;
  height:1.5px;
  margin:0;
  border-radius:999px;
  background:#202530;
  transition:transform .28s cubic-bezier(.16,1,.3,1), opacity .2s ease;
}
.menu-btn span:nth-child(1){transform:translateY(-6px);}
.menu-btn span:nth-child(2){transform:translateY(0);}
.menu-btn span:nth-child(3){transform:translateY(6px);}
.nav.open .menu-btn span:nth-child(1){transform:rotate(45deg);}
.nav.open .menu-btn span:nth-child(2){opacity:0;}
.nav.open .menu-btn span:nth-child(3){transform:rotate(-45deg);}
.nav-links{
  position:fixed;
  top:64px;
  left:0;
  right:0;
  width:100vw;
  min-width:0;
  max-width:none;
  display:grid;
  grid-template-columns:minmax(24px,1fr) minmax(260px,960px) minmax(24px,1fr);
  gap:0;
  list-style:none;
  margin:0;
  padding:clamp(22px,4vw,42px) 0;
  background:rgba(255,255,255,.94);
  border:0;
  border-top:1px solid rgba(180,144,72,.16);
  border-bottom:1px solid rgba(180,144,72,.16);
  border-radius:0;
  box-shadow:0 28px 80px rgba(32,37,48,.10);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-12px);
  transition:opacity .34s cubic-bezier(.16,1,.3,1), transform .34s cubic-bezier(.16,1,.3,1), visibility .34s;
  z-index:1000;
}
.nav.open .nav-links{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.nav-links li{
  grid-column:2;
  width:100%;
  list-style:none;
}
.nav-submenu{
  width:100%;
}
.nav-submenu summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:clamp(12px,1.6vw,18px) 0;
  border-radius:0;
  border-bottom:1px solid rgba(32,37,48,.08);
  background:transparent;
  color:#202530;
  font-size:clamp(1.22rem,2.1vw,2rem);
  line-height:1.12;
  letter-spacing:-.03em;
  font-weight:500;
  text-decoration:none;
  cursor:pointer;
  list-style:none;
  transition:color .22s ease, transform .22s cubic-bezier(.16,1,.3,1);
}
.nav-submenu summary::-webkit-details-marker{display:none;}
.nav-submenu summary::marker{content:'';}
.nav-submenu summary::after{
  content:'↓';
  color:#8A681F;
  font-size:.9em;
  transition:transform .22s cubic-bezier(.16,1,.3,1);
}
.nav-submenu[open] summary::after{
  transform:none;
}
.nav-submenu summary:hover,
.nav-submenu summary:focus-visible{
  color:#8A681F;
  transform:translateX(4px);
}
.nav-submenu summary:focus-visible,
.nav-links a:focus-visible{
  outline:2px solid rgba(138,104,31,.38);
  outline-offset:6px;
  border-radius:10px;
}
.nav-submenu-list{
  margin:0 0 0 2rem;
  padding:6px 0 10px;
  list-style:none;
}
.nav-submenu-list li{
  grid-column:auto;
}
.nav-submenu-list a{
  display:block;
  width:calc(100% - 2rem);
  margin-left:2rem;
  padding:10px 0;
  font-size:clamp(.92rem,1.15vw,.98rem);
  font-weight:400;
  letter-spacing:-.01em;
  color:#8A681F !important;
}
.nav-submenu-list a:hover,
.nav-submenu-list a:focus-visible{
  color:#8A681F !important;
}
.nav-submenu-list li:last-child a{
  border-bottom:1px solid rgba(32,37,48,.08);
}
.nav-links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:clamp(12px,1.6vw,18px) 0;
  border-radius:0;
  border-bottom:1px solid rgba(32,37,48,.08);
  background:transparent;
  color:#202530;
  font-size:clamp(1.22rem,2.1vw,2rem);
  line-height:1.12;
  letter-spacing:-.03em;
  font-weight:500;
  text-decoration:none;
  transition:color .22s ease, transform .22s cubic-bezier(.16,1,.3,1);
}
.nav-links li:last-child a{border-bottom:0;}
.nav-links a::after{display:none;content:none;}
.nav-links a:hover,.nav-links a:focus-visible{
  color:#8A681F;
  background:transparent;
  transform:translateX(4px);
}
.nav-cta{
  margin-top:0;
  border:0;
  text-align:left;
}
.nav-cta::before{
  content:'→';
  order:2;
  font-size:.9em;
  color:#8A681F;
}
@media (min-width:1180px){
  .footer-brand-col{
    grid-column:span 2;
    max-width:430px;
  }
}
.site-footer .brand{
  gap:24px;
  margin-bottom:30px;
}
.site-footer .brand-logo{
  width:30px;
  height:30px;
}
.site-footer .brand-word{
  letter-spacing:.15em;
  line-height:1;
}
.site-footer h3{
  margin-bottom:20px;
}
.site-footer li{
  margin-bottom:14px;
}
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a,
.site-footer .footer-grid > details.footer-accordion ul li > a{
  display:inline-flex;
  align-items:baseline;
  gap:.56em;
}
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a::before,
.site-footer .footer-grid > details.footer-accordion ul li > a::before{
  content:"•";
  color:#8A681F;
  font-weight:400;
  line-height:1;
  transform:translateY(-1px);
}
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a:hover::before,
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a:focus-visible::before,
.site-footer .footer-grid > details.footer-accordion ul li > a:hover::before,
.site-footer .footer-grid > details.footer-accordion ul li > a:focus-visible::before{
  color:#fff;
}

/* Footer link accordions — collapsible columns so the many footer links
   stay tidy instead of competing for attention all at once. */
.footer-accordion{
  border-top:1px solid rgba(255,255,255,.08);
}
.footer-accordion summary{
  cursor:pointer;
  list-style:none;
  position:relative;
  padding:14px 28px 14px 0;
  margin-bottom:0;
  color:#fff;
  font-size:0.8rem;
  letter-spacing:-0.004em;
  font-weight:500;
  opacity:.92;
  transition:opacity .2s ease, color .2s ease;
}
.footer-accordion summary::-webkit-details-marker{display:none;}
.footer-accordion summary::after{
  content:"";
  position:absolute;
  right:4px;
  top:18px;
  width:8px;
  height:8px;
  border-right:1.5px solid rgba(255,255,255,.55);
  border-bottom:1.5px solid rgba(255,255,255,.55);
  transform:rotate(45deg);
  transition:transform .28s cubic-bezier(.16,1,.3,1), top .28s cubic-bezier(.16,1,.3,1);
}
.footer-accordion[open] summary::after{
  transform:rotate(-135deg);
  top:21px;
}
.footer-accordion summary:hover,
.footer-accordion summary:focus-visible{
  color:var(--gold-deep);
  opacity:1;
}
.footer-accordion ul{
  padding-bottom:6px;
}
.footer-accordion[open] summary{
  margin-bottom:2px;
}
@media (prefers-reduced-motion: reduce){
  .footer-accordion summary::after{transition:none;}
}
.footer-contact-list li,
.footer-legal-list li{
  margin-bottom:16px;
}
@media (max-width:920px){
  .site-footer .wrap{max-width:min(100%, calc(100vw - 44px));}
  .footer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:clamp(30px,7vw,56px);
    row-gap:42px;
  }
  .footer-brand-col{grid-column:1 / -1;max-width:620px;}
}
@media (max-width:620px){
  .site-footer .wrap{max-width:min(100%, calc(100vw - 36px));}
  .footer-grid{grid-template-columns:1fr;row-gap:34px;}
  .site-footer .brand{gap:18px;margin-bottom:24px;}
  .site-footer .brand-logo{width:28px;height:28px;}
  .footer-bottom{gap:14px;}
}

/* Phase 16 — Apple-like hero image placement
   The signature hero image appears first, immediately below the header,
   with the copy following underneath. This keeps the page visual, quiet and premium. */
.hero.hero-image-first{padding-top:32px;}
.hero.hero-image-first .hero-figure{
  margin:0 auto 56px;
  width:100%;
  box-shadow:none;
}
.hero.hero-image-first .eyebrow{margin-top:0;}
@media (max-width:720px){
  .hero.hero-image-first{padding-top:20px;}
  .hero.hero-image-first .hero-figure{margin-bottom:34px;border-radius:14px;}
}

/* Phase 17 — homepage-only full-bleed hero image under the header.
   Subpages keep the editorial text hero without the signature image. */
.hero.hero-image-first{padding-top:0;}
.hero.hero-image-first .hero-figure{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:0;
  margin-bottom:clamp(48px,7vw,104px);
  border-radius:0;
  overflow:hidden;
  border:0;
  background:#f2f2f2;
  box-shadow:none;
}
.hero.hero-image-first .hero-figure picture,
.hero.hero-image-first .hero-figure img:not(.hero-center-logo){
  display:block;
  width:100%;
  height:auto;
}
.hero.hero-image-first .hero-figure{
  position:relative;
}
.hero.hero-image-first .hero-figure picture{
  display:block;
  width:100%;
  height:auto;
}
.hero.hero-image-first .hero-figure picture img:not(.hero-center-logo){
  width:100%;
  height:auto;
  object-fit:contain;
}
@media (prefers-reduced-motion: reduce){
  .hero.hero-image-first .hero-center-logo{transform:translate(-50%,-50%) ;}
}
.hero.hero-image-first .hero-center-logo{
  width:clamp(72px,10vw,150px);
  opacity:.24;
}
/* Interaction-loaded hero video. The still image remains visible and is the
   LCP element; main.js attaches video sources only on hover or tap. This layer
   owns the desktop-hover and touch-tap crossfade without affecting layout. */
.hero.hero-image-first .hero-figure .hero-video{
  position:absolute;
  left:0;
  top:-15%;
  width:100%;
  height:130%;
  object-fit:cover;
  object-position:center 0%;
  opacity:0;
  pointer-events:none;
  z-index:1;
}
@media (hover:hover) and (prefers-reduced-motion: no-preference){
  .hero.hero-image-first .hero-figure .hero-video{transition:opacity .5s ease;}
  .hero.hero-image-first .hero-figure:hover .hero-video{opacity:1;}
}
@media (hover:none) and (prefers-reduced-motion: no-preference){
  .hero.hero-image-first .hero-figure .hero-video{transition:opacity .5s ease;}
  .hero.hero-image-first .hero-figure.is-tapped .hero-video{opacity:1;}
}
@media (max-width:720px){
  .hero.hero-image-first .hero-figure{margin-bottom:40px;}
  .hero.hero-image-first .hero-center-logo{width:clamp(52px,18vw,92px);opacity:.22;}
}

/* Phase 18 — curated portrait references */
.portrait-curation-overview .section-head,
.portrait-curation-gallery .section-head{max-width:820px;}
.portrait-service-gallery{margin-top:28px;}
.portrait-reference-gallery{margin-top:30px;}
.portrait-curated-item figcaption{min-height:4.4em;}
.archive-cta{margin-top:28px;}
.best-of-archive-link .wrap{max-width:920px;}
@media (min-width:960px){.portrait-reference-gallery{grid-template-columns:repeat(5,1fr);gap:16px}.portrait-reference-gallery .editorial-image figcaption{font-size:.76rem}.portrait-service-gallery{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.portrait-reference-gallery{grid-template-columns:1fr}.portrait-curated-item figcaption{min-height:auto}}

/* Phase 21 service exhibitions */
.service-hero-image{margin-top:42px;max-width:1080px}.service-hero-image img{width:100%;height:auto;border-radius:24px;display:block}.hero-actions .btn{margin-right:12px;margin-top:10px}@media (max-width:760px){.service-hero-image{margin-top:28px}.hero-actions .btn{display:block;margin-right:0}}

/* Accessible skip link — no inline handlers */
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;color:#111;padding:8px 14px;z-index:10000;text-decoration:none;border-radius:0 0 8px 0;box-shadow:0 8px 24px rgba(0,0,0,.16)}
.skip-link:focus{left:8px;top:8px;outline:2px solid var(--gold-deep,#8A681F);outline-offset:2px}

/* Production v2 editorial collage update */
.hero.hero-image-first .hero-figure img:not(.hero-center-logo){object-position:center 25%;}
.service-hero-image img{width:100%;height:auto;display:block;border-radius:28px;object-fit:cover;max-height:72vh;}
.collage-gallery{column-count:3;column-gap:22px;width:100%;margin-top:34px;}
.collage-gallery .editorial-image{break-inside:avoid;margin:0 0 22px;border-radius:24px;overflow:hidden;background:#111;box-shadow:none;}
.collage-gallery .editorial-image picture,.collage-gallery .editorial-image img{display:block;width:100%;height:auto;}
.collage-gallery figcaption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.about-longform{max-width:980px;margin:0 auto;color:var(--muted);font-size:clamp(1.03rem,1.1vw,1.18rem);line-height:1.78;}
.about-longform p{margin:0 0 1.1em;}
@media (max-width:1100px){.collage-gallery{column-count:2;column-gap:18px}.collage-gallery .editorial-image{margin-bottom:18px}}
@media (max-width:680px){.collage-gallery{column-count:1;column-gap:0}.service-hero-image img{border-radius:18px;max-height:none}.hero.hero-image-first .hero-figure img:not(.hero-center-logo){object-position:center 25%}}

/* Production v2.1 — Apple-like micro motion and clean hero mark
   The motion layer is intentionally quiet: small lift, gentle fade, no gimmicks. */
.hero-center-logo{
  background:transparent;
  border:0;
  box-shadow:none;
  outline:0;
  filter:none;
}
.editorial-hero .hero-center-logo,
.hero.hero-image-first .hero-center-logo{
  opacity:.94;
}
@media (max-width:720px){
  .editorial-hero .hero-center-logo,
  .hero.hero-image-first .hero-center-logo{opacity:.94;}
}
@media (prefers-reduced-motion: no-preference){
  html{scroll-behavior:smooth;}
  .site-header{transition:background-color .32s ease, border-color .32s ease;}
  .nav-links a,
  .lang-switch a,
  .site-footer a,
  .btn,
  .btn-link{
    transition:color .28s cubic-bezier(.16,1,.3,1), opacity .28s cubic-bezier(.16,1,.3,1), transform .28s cubic-bezier(.16,1,.3,1), border-color .28s cubic-bezier(.16,1,.3,1), background-color .28s cubic-bezier(.16,1,.3,1);
  }
  .btn:hover,
  .btn:focus-visible,
  .btn-link:hover,
  .btn-link:focus-visible{
    transform:translateY(-1px);
  }
  .card,
  .service-card,
  .quote-step,
  .category-card,
  .option-row,
  .editorial-image,
  .pf-item,
  .collage-gallery figure{
    transition:transform .42s cubic-bezier(.16,1,.3,1), box-shadow .42s cubic-bezier(.16,1,.3,1), border-color .42s cubic-bezier(.16,1,.3,1), opacity .42s ease;
    will-change:transform;
  }
  .card:hover,
  .service-card:hover,
  .editorial-image:hover,
  .pf-item:hover,
  .collage-gallery figure:hover{
    transform:translateY(-3px);
  }
  .editorial-image img,
  .pf-item img,
  .collage-gallery img,
  .service-hero-image img,
  .hero-figure img:not(.hero-center-logo){
    transition:transform .8s cubic-bezier(.16,1,.3,1), opacity .6s ease, filter .6s ease;
    will-change:transform;
  }
  .editorial-image:hover img,
  .pf-item:hover img,
  .collage-gallery figure:hover img{
    transform:scale(1.018);
  }
  .hero.hero-image-first .hero-figure img:not(.hero-center-logo){
    transform-origin:center top;
  }
  .hero.hero-image-first .hero-figure:hover img:not(.hero-center-logo){
    transform:scale(1.006);
  }
  .reveal{
    opacity:0;
    transform:translateY(16px);
    transition:opacity .82s cubic-bezier(.16,1,.3,1), transform .82s cubic-bezier(.16,1,.3,1);
  }
  .reveal.in{
    opacity:1;
    transform:none;
  }
  .reveal:nth-child(2){transition-delay:.04s;}
  .reveal:nth-child(3){transition-delay:.08s;}
  .reveal:nth-child(4){transition-delay:.12s;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms;
    animation-iteration-count:1;
    transition-duration:.001ms;
    scroll-behavior:auto;
  }
}



@media (min-width:1180px){
  .menu-btn{display:inline-flex;}
  .nav-links{position:fixed;display:grid;align-items:initial;gap:0;min-width:0;background:rgba(255,255,255,.94);border-top:1px solid rgba(180,144,72,.16);border-bottom:1px solid rgba(180,144,72,.16);border-radius:0;box-shadow:0 28px 80px rgba(32,37,48,.10);padding:clamp(22px,4vw,42px) 0;opacity:0;visibility:hidden;transform:translateY(-12px);}
  .nav.open .nav-links{opacity:1;visibility:visible;transform:translateY(0);}
  .nav-links a{padding:clamp(12px,1.6vw,18px) 0;font-size:clamp(1.22rem,2.1vw,2rem);border-radius:0;background:transparent;}
  .nav-links a:hover,.nav-links a:focus-visible{background:transparent;color:#8A681F;}
  .nav-cta{border:0;margin-top:0;}
}
@media (max-width:720px){
  .nav{min-height:58px;gap:10px;}
  .brand-word{font-size:.9rem;letter-spacing:.13em;}
  .brand-logo{width:24px;height:auto;}
  .lang-switch{font-size:.7rem;gap:5px;}
  .menu-btn{width:40px;height:40px;}
  .nav-links{top:58px;padding:22px 0;}
  .nav-links a{font-size:clamp(1.08rem,6vw,1.5rem);padding:14px 0;}
  .nav-submenu summary{font-size:clamp(1.08rem,6vw,1.5rem);padding:14px 0;}
  .nav-submenu-list{margin-left:1.25rem;}
  .nav-submenu-list a{display:block;width:calc(100% - 1.25rem);margin-left:1.25rem;font-size:clamp(.88rem,4.2vw,.96rem);padding:11px 0;color:#8A681F !important;}
}
@media (prefers-reduced-motion:reduce){
  .menu-btn,.menu-btn span,.nav-links,.nav-links a{transition:none;transform:none;}
}



/* Production 3.1 — Jony Ive typography, keyword emphasis and gentle scroll motion */
.key-term{
  font-weight:680;
  color:#202530;
  letter-spacing:-0.01em;
}
.text-reveal{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .72s cubic-bezier(.16,1,.3,1), transform .72s cubic-bezier(.16,1,.3,1);
  will-change:opacity, transform;
}
.text-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .text-reveal{opacity:1;transform:none;transition:none;will-change:auto;}
}
/* Non-clickable content blocks should not jump on hover. They enter gently on scroll only. */
.card:not(a):not(button):not([role="button"]):hover,
.editorial-card:not(a):not(button):not([role="button"]):hover,
.service-card:not(a):not(button):not([role="button"]):hover,
.quote-step:hover,
.contact-card:hover,
.info-card:hover,
.value-card:hover{
  transform:none;
  box-shadow:inherit;
}
.category-card:hover,
.option-row:hover{
  transform:none;
}
/* Keep interactive elements subtle and intentional. */
a.card:hover,
button.card:hover,
.btn:hover,
.btn-link:hover,
.pf-item:hover img{
  will-change:transform;
}

/* Production 3.2 — structural prose created by audit pass */
.structural-prose{max-width:78ch;margin-top:clamp(18px,2.5vw,30px);}
.structural-prose p{color:var(--graphite);line-height:1.68;}

/* BANHALMI final production polish: accessible language switcher tap targets */
.lang-switch{align-items:center;}
.lang-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 10px;border-radius:999px;line-height:1;text-decoration:none;}
.lang-switch a:focus-visible{outline:2px solid rgba(32,37,48,.72);outline-offset:3px;}
@media (max-width:480px){
  .lang-switch{gap:2px;margin-right:6px;}
  .lang-switch .sep{display:none;}
  .lang-switch a{min-width:44px;min-height:44px;padding:0 8px;font-size:.72rem;}
}


/* Final privacy/quote hardening */
.footer-cookie-settings{
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
  padding:0;
}
.footer-cookie-settings:focus-visible{
  outline:2px solid var(--gold-deep);
  outline-offset:4px;
  border-radius:6px;
}
.quote-disclaimer{
  margin-top:14px;
  font-size:.92rem;
  line-height:1.55;
  color:var(--muted);
}


/* BANHALMI quote PDF download */
.quote-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;align-items:center}
.quote-pdf-button{appearance:none;border:1px solid rgba(0,0,0,.14);background:#fff;color:#111;border-radius:999px;padding:11px 18px;font:600 14px/1.2 var(--font-sans,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.05);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.quote-pdf-button:hover{transform:translateY(-1px);border-color:rgba(0,0,0,.28);box-shadow:0 12px 28px rgba(0,0,0,.08)}
.quote-pdf-button:focus-visible{outline:3px solid rgba(180,141,74,.35);outline-offset:3px}
@media (max-width:640px){.quote-actions{width:100%}.quote-pdf-button{width:100%;min-height:44px}}

/* Jony Ive design refinement — homepage as the design standard
   Goal: fewer loud cues, more white space, quieter hierarchy, consistent image/button rhythm. */
:root{
  --jony-air:clamp(68px,8vw,128px);
  --jony-air-tight:clamp(44px,5.4vw,86px);
  --jony-gap:clamp(20px,2.8vw,38px);
  --jony-radius:clamp(18px,2vw,28px);
}
section{padding:var(--jony-air) 0;}
.section-band{background:#FAFAF8;border-top:1px solid rgba(32,37,48,.07);border-bottom:1px solid rgba(32,37,48,.07);}
.hero:not(.hero-image-first){padding:clamp(78px,8.2vw,132px) 0 var(--jony-air-tight);}
.hero .lead,.section-head,.prose{max-width:760px;}
.eyebrow,.section-head .eyebrow,.hero .eyebrow{
  text-transform:none;
  letter-spacing:-.006em;
  font-size:.94rem;
  color:rgba(32,37,48,.58);
  font-weight:500;
}
.quote-summary-card dt,.footer-since{ text-transform:none; letter-spacing:.01em; }
h1{max-width:18ch;}
h2{max-width:20ch;}
.section-head{margin-bottom:clamp(32px,4.4vw,58px);}
.hero-actions,.service-actions,.quote-actions{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(10px,1.2vw,16px);margin-top:clamp(24px,3vw,36px);}
.hero-actions .btn,.service-actions .btn,.hero-actions .btn-link,.service-actions .btn-link{margin:0;}
.btn{padding:11px 22px;font-weight:500;letter-spacing:-.012em;}
.btn + .btn,.btn + .btn-link,.btn-link + .btn{margin-left:0;}
.service-hero-image{margin-top:clamp(38px,5.6vw,76px);}
.service-hero-image img{border-radius:var(--jony-radius);max-height:72vh;object-fit:cover;}
.editorial-hero,.editorial-image,.pf-item,.collage-gallery .editorial-image{border-radius:var(--jony-radius);border-color:rgba(32,37,48,.08);}
.gallery,.cards,.steps{gap:var(--jony-gap);}
.collage-gallery{margin-top:clamp(36px,5vw,70px);column-gap:var(--jony-gap);}
.collage-gallery .editorial-image{margin-bottom:var(--jony-gap);}
.card,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary{border-radius:22px;border-color:rgba(32,37,48,.10);box-shadow:none;}
.card:hover{box-shadow:none;transform:none;}
.nav-links a{font-size:clamp(1.08rem,1.75vw,1.62rem);letter-spacing:-.026em;}
.nav-cta::before{content:'→';}
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a::before,
.site-footer .footer-grid > details.footer-accordion ul li > a::before{content:'·';color:#8A681F;}
.jony-gallery-hero{padding-bottom:clamp(34px,5vw,74px);}
.jony-gallery-intro{padding-top:0;}
.jony-gallery-grid{column-count:3;column-gap:clamp(18px,2.4vw,34px);margin-top:clamp(28px,4vw,56px);}
.jony-gallery-grid figure{break-inside:avoid;margin:0 0 clamp(18px,2.4vw,34px);border-radius:var(--jony-radius);overflow:hidden;background:#f6f6f4;border:1px solid rgba(32,37,48,.08);}
.jony-gallery-grid img{width:100%;height:auto;display:block;background:#f6f6f4;}
.jony-gallery-grid figcaption{font-size:.82rem;line-height:1.45;color:rgba(32,37,48,.55);padding:12px 14px 14px;}
.jony-gallery-section{padding-top:var(--jony-air-tight);}
.jony-gallery-section .section-head{margin-bottom:0;}
.jony-gallery-section .lead{font-size:clamp(1.05rem,1.4vw,1.34rem);}
@media (max-width:920px){.jony-gallery-grid{column-count:2}.nav-links a{font-size:clamp(1.06rem,4vw,1.42rem)}}
@media (max-width:620px){section{padding:56px 0}.hero:not(.hero-image-first){padding:64px 0 44px}.jony-gallery-grid{column-count:1}.service-hero-image{margin-top:30px}.hero-actions,.service-actions{width:100%;}.hero-actions .btn,.service-actions .btn{width:100%;text-align:center;}.btn-link{min-height:44px;align-items:center;}}

/* Jony Ive portrait archive expansion — quiet large-image rhythm */
.portrait-archive-item{background:#f6f2eb;}
.collage-gallery .portrait-archive-item img{transform:translateZ(0);}
@media (min-width:1200px){.collage-gallery{column-count:4;}.service-hero + .section .collage-gallery{column-count:3;}}
@media (max-width:480px){.collage-gallery .portrait-archive-item{border-radius:18px;}}


/* Premium refinement 2026-07-01 — Jony Ive pass after portrait archive expansion
   Principle: curated silence, not volume. Homepage rhythm is the standard. */
h1,h2{max-width:none;}
.hero h1{max-width:19ch;}
.section-head h2{max-width:23ch;}
.lead:empty{display:none;margin:0;padding:0;}
.section-head .lead{margin-top:clamp(14px,1.8vw,24px);}
.service-hero-image{margin-top:clamp(46px,6.2vw,84px);}
.service-hero-image + .service-actions,.editorial-image + .service-actions{margin-top:clamp(22px,2.8vw,34px);}
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
.nav-links a{font-size:clamp(1.02rem,1.28vw,1.34rem);line-height:1.18;letter-spacing:-.021em;}
@media (max-width:920px){.nav-links a{font-size:clamp(1.08rem,4.8vw,1.5rem);}}
@media (min-width:1180px){.nav-links a{font-size:clamp(1.02rem,1.28vw,1.34rem);padding:clamp(13px,1.28vw,18px) 0;}}
.jony-gallery-grid{column-gap:clamp(22px,2.8vw,40px);margin-top:clamp(34px,4.6vw,64px);}
.jony-gallery-grid figure{margin-bottom:clamp(22px,2.8vw,40px);background:#f8f7f4;}
.jony-gallery-grid figcaption{font-size:.84rem;line-height:1.55;color:rgba(32,37,48,.62);padding:14px 16px 16px;}
.premium-curated-item img{filter:saturate(.96) contrast(1.01);}
.portrait-archive-item{background:#f8f6f1;}
@media (min-width:1200px){.collage-gallery{column-count:3;}.jony-gallery-grid{column-count:3;}}
@media (min-width:1480px){.jony-gallery-grid{column-count:3;}}
@media (max-width:640px){.hero h1,.section-head h2{max-width:100%;}.jony-gallery-grid{margin-top:30px;}.jony-gallery-grid figcaption{font-size:.82rem;}}


/* Premium layout correction 2026-07-01 — desktop form, about portrait, visible portrait studies */
@media (min-width:1081px){
  .smart-quote-layout{
    grid-template-columns:minmax(360px,.95fr) minmax(560px,1.25fr);
    gap:clamp(48px,6vw,88px);
    align-items:start;
  }
}
.smart-quote-layout .form{max-width:none;width:100%;min-width:0;}
.smart-quote-layout .field.consent{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:14px;
  align-items:start;
  width:100%;
  max-width:100%;
  padding:2px 0;
  overflow:visible;
}

.smart-quote-layout .field.consent label{
  display:block;
  width:auto;
  max-width:68ch;
  min-width:0;
  margin:0;
  line-height:1.58;
  font-size:.95rem;
  color:var(--graphite);
  overflow-wrap:normal;
  hyphens:auto;
}
@media (max-width:1080px){
  
  
}
.about-portrait-split{
  display:grid;
  grid-template-columns:minmax(280px,.82fr) minmax(420px,1.18fr);
  gap:clamp(42px,6.5vw,92px);
  align-items:center;
}
.about-portrait-split .editorial-image{margin:0;}
.about-portrait-split .editorial-image img{width:100%;height:auto;border-radius:28px;}
.about-portrait-copy{max-width:66ch;}
.about-portrait-copy h1{margin-bottom:clamp(22px,3vw,34px);max-width:14ch;}
.about-portrait-copy p{font-size:clamp(1.02rem,1.15vw,1.18rem);line-height:1.68;color:var(--graphite);}
@media (max-width:900px){
  .about-portrait-split{grid-template-columns:1fr;gap:32px;}
  .about-portrait-copy h1{max-width:100%;}
}
.portrait-feature-strip{padding-top:clamp(28px,4vw,54px);}
.portrait-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.6vw,34px);margin-top:clamp(28px,4vw,52px);}
.portrait-feature-grid figure{margin:0;border-radius:26px;overflow:hidden;background:#f8f6f1;border:1px solid rgba(32,37,48,.08);}
.portrait-feature-grid img{width:100%;height:100%;display:block;object-fit:cover;aspect-ratio:4/5;}
@media (max-width:780px){.portrait-feature-grid{grid-template-columns:1fr;}.portrait-feature-grid img{aspect-ratio:4/3;}}
.collage-gallery > figure{
  break-inside:avoid;
  margin:0 0 var(--jony-gap,22px);
  border-radius:24px;
  overflow:hidden;
  background:#f8f6f1;
  border:1px solid rgba(32,37,48,.08);
}
.collage-gallery > figure img{display:block;width:100%;height:auto;}
.gallery-archive-redirect{padding:96px 0;}
.gallery-archive-redirect .prose{max-width:64ch;}



/* BANHALMI drastic portrait gallery cleanup */
.banhalmi-gallery-page .gallery-hero{min-height:auto;padding-top:clamp(7rem,11vw,12rem);padding-bottom:clamp(3.5rem,7vw,7rem)}
.banhalmi-gallery-page .hero-copy{max-width:860px}
.banhalmi-gallery-page .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:clamp(1.4rem,2.5vw,2.4rem)}
.banhalmi-portrait-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,1.6vw,1.6rem);align-items:start}
.banhalmi-gallery-item{margin:0;border:1px solid rgba(29,32,40,.08);border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 24px 70px rgba(10,12,18,.045)}
.banhalmi-gallery-item img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:#f6f4f0}
.banhalmi-gallery-item:nth-child(5n+2) img,.banhalmi-gallery-item:nth-child(5n+4) img{aspect-ratio:1/1}
.banhalmi-gallery-item:nth-child(7n+3) img{aspect-ratio:5/4}
.banhalmi-gallery-item figcaption{font-size:.84rem;line-height:1.45;color:rgba(29,32,40,.62);padding:1rem 1.05rem 1.1rem;letter-spacing:-.01em}
@media (max-width:900px){.banhalmi-portrait-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.banhalmi-gallery-page .gallery-hero{padding-top:7rem}}
@media (max-width:560px){.banhalmi-portrait-gallery-grid{grid-template-columns:1fr}.banhalmi-gallery-item{border-radius:22px}.banhalmi-gallery-page .hero-actions{flex-direction:column}.banhalmi-gallery-page .hero-actions .btn{width:100%;justify-content:center}}

/* BANHALMI fine art gallery cleanup */
.fine-art-gallery-text-cta .section-head{max-width:820px;margin-inline:auto;text-align:center}
.fine-art-gallery-text-cta .service-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:clamp(1.2rem,2vw,2rem)}
.banhalmi-fine-art-gallery-section .section-head{max-width:860px}
.banhalmi-fine-art-gallery-item:nth-child(3n+1) img{aspect-ratio:3/4}
.banhalmi-fine-art-gallery-item:nth-child(3n+2) img{aspect-ratio:4/5}
.banhalmi-fine-art-gallery-item:nth-child(5n+3) img{aspect-ratio:1/1}
.banhalmi-fine-art-gallery-item:nth-child(7n+4) img{aspect-ratio:16/10}
@media (max-width:640px){.fine-art-gallery-text-cta .service-actions{flex-direction:column}.fine-art-gallery-text-cta .btn{width:100%;justify-content:center}}

/* Service lower galleries — curated on-page archives */
.service-lower-gallery-section{padding-top:clamp(56px,7vw,110px);padding-bottom:clamp(64px,8vw,122px);}
.service-lower-gallery-section .section-head{max-width:760px;margin-bottom:clamp(28px,4vw,52px);}
.service-lower-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.8vw,26px);align-items:start;}
.service-lower-gallery-item{margin:0;border-radius:24px;overflow:hidden;background:#f7f5f0;border:1px solid rgba(32,37,48,.075);box-shadow:0 18px 52px rgba(18,22,33,.038);}
.service-lower-gallery-item img{display:block;width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .7s ease,filter .7s ease;}
.service-lower-gallery-item:hover img{transform:scale(1.018);filter:saturate(.98) contrast(1.02);}
.service-lower-gallery-item figcaption{padding:14px 16px 16px;font-size:.82rem;line-height:1.45;color:rgba(31,36,48,.66);background:rgba(255,255,255,.74);}
.service-lower-gallery-section .service-gallery-actions{margin-top:clamp(30px,4vw,56px);}
@media (max-width:1100px){.service-lower-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:760px){.service-lower-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}.service-lower-gallery-item{border-radius:18px;}.service-lower-gallery-item figcaption{font-size:.76rem;padding:12px 13px 14px;}}
@media (max-width:480px){.service-lower-gallery-grid{grid-template-columns:1fr;}.service-lower-gallery-item img{aspect-ratio:4/4.8;}}

/* BANHALMI final engineering pass — componentized gallery performance and clean button rhythm */
.smart-quote-layout .field.consent{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:2px 0;
  overflow:visible;
}
.smart-quote-layout .field.consent input[type="checkbox"]{
  width:22px;
  height:22px;
  min-width:22px;
  min-height:22px;
  max-width:22px;
  margin:2px 0 0;
  padding:0;
  flex:0 0 22px;
  justify-self:start;
  appearance:auto;
-webkit-appearance:checkbox;
}
.smart-quote-layout .field.consent label{
  display:block;
  width:auto;
  max-width:68ch;
  min-width:0;
  margin:0;
  line-height:1.58;
  font-size:.95rem;
  color:var(--graphite);
  hyphens:auto;
}
.contact-quote-entry .card .btn,
.contact-custom-quote .card .btn,
.smart-quote-layout .btn[type="submit"]{
  margin-top:clamp(24px,2.6vw,42px);
}
.smart-quote-layout .location-cards{
  display:grid;
  grid-template-columns:minmax(240px,320px);
  gap:clamp(20px,2.2vw,28px);
  align-items:start;
  justify-content:start;
  max-width:340px;
}
.smart-quote-layout .location-card-linkable{
  aspect-ratio:1/1;
  min-height:280px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:clamp(24px,2.2vw,32px);
  border-radius:28px;
}
.smart-quote-layout .location-card-linkable h3{
  margin-bottom:clamp(16px,1.8vw,22px);
  line-height:1.08;
}
.smart-quote-layout .location-card-linkable p{
  margin:0;
  line-height:1.48;
  max-width:14.5em;
}
.smart-quote-layout .location-card-linkable .map-card-link{
  margin-top:auto;
  padding-top:clamp(18px,2vw,28px);
  line-height:1.45;
}
.service-lower-gallery-section{
  content-visibility:auto;
  contain-intrinsic-size:1200px;
}
.service-lower-gallery-grid{
  content-visibility:auto;
  contain-intrinsic-size:900px;
}
.service-lower-gallery-grid.is-gallery-collapsed .service-lower-gallery-item:nth-child(n+17){
  display:none;
}
.service-gallery-toggle{
  margin-top:clamp(26px,3.6vw,48px);
  display:flex;
  justify-content:center;
}
.service-gallery-toggle .btn{
  min-width:190px;
  justify-content:center;
}
@media (max-width:1080px){
  .smart-quote-layout{grid-template-columns:1fr;gap:clamp(30px,6vw,56px);}
  .smart-quote-layout .field.consent label{max-width:100%;}
}
@media (max-width:900px){
  .smart-quote-layout .location-cards{grid-template-columns:minmax(0,1fr);max-width:100%;}
  .smart-quote-layout .location-card-linkable{aspect-ratio:auto;min-height:220px;}
}


/* 2026-07-07 semantic emphasis + transparent hero monogram */
.editorial-hero .hero-center-logo,
.hero.hero-image-first .hero-center-logo{
  background:transparent !important;
  background-color:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
main strong.semantic-emphasis{
  font-weight:650;
  color:inherit;
}
main a.editorial-inline-link{
  color:inherit;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
  text-decoration-color:rgba(32,37,48,.38);
}
main a.editorial-inline-link:hover{
  color:var(--gold-deep);
  text-decoration-color:currentColor;
}

/* BANHALMI one-domain trilingual oeuvre edition — 2026-07-07 */
.service-editorial-hero .lead,.oeuvre-hero .lead{max-width:780px;font-size:clamp(1.18rem,1.7vw,1.5rem);line-height:1.52;color:var(--text);}
.service-editorial-hero .service-hero-image,.oeuvre-hero .service-hero-image{max-width:none;width:100%;}
.service-editorial-hero .service-hero-image img,.oeuvre-hero .service-hero-image img{width:100%;height:auto;max-height:none;object-fit:contain;background:#f4f4f4;}
.service-process-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.step-number{display:block;font-size:.76rem;letter-spacing:.08em;color:var(--gold-deep);margin-bottom:18px;}
.service-uses{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,7vw,110px);align-items:start;}
.editorial-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line);}
.editorial-list li{padding:18px 0;border-bottom:1px solid var(--line);font-size:clamp(1.05rem,1.25vw,1.22rem);}
.service-gallery-section{padding-top:clamp(76px,10vw,150px);}
.collage-gallery{column-count:3;column-gap:clamp(14px,2vw,24px);}
.collage-gallery .editorial-image{background:transparent;border-radius:22px;overflow:hidden;margin-bottom:clamp(14px,2vw,24px);box-shadow:none;}
.collage-gallery .editorial-image img{width:100%;height:auto!important;max-height:none!important;object-fit:contain!important;transform:none!important;}
.image-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:inherit;}
.image-open:focus-visible{outline:3px solid var(--gold);outline-offset:4px;}
.universal-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(8,9,12,.94);display:none;align-items:center;justify-content:center;padding:clamp(18px,4vw,60px);}
.universal-lightbox.open{display:flex;}
.universal-lightbox figure{margin:0;max-width:min(92vw,1600px);max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:12px;}
.universal-lightbox img{display:block;max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain;}
.universal-lightbox figcaption{color:#fff;font-size:.86rem;text-align:center;}
.universal-lightbox-close,.universal-lightbox-prev,.universal-lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.1);color:#fff;width:48px;height:48px;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer;}
.universal-lightbox-close{top:20px;right:20px}.universal-lightbox-prev{left:20px;top:50%;transform:translateY(-50%)}.universal-lightbox-next{right:20px;top:50%;transform:translateY(-50%)}
.oeuvre-teaser{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:clamp(40px,8vw,120px);align-items:center;}
.oeuvre-teaser .editorial-image img{width:100%;height:auto;}
.archive-cards{grid-template-columns:repeat(3,minmax(0,1fr));}.archive-card .more{margin-top:auto;}
.oeuvre-jump{position:sticky;top:72px;z-index:30;background:rgba(255,255,255,.94);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.oeuvre-jump .wrap{display:flex;gap:26px;overflow:auto;padding-top:15px;padding-bottom:15px;scrollbar-width:none}.oeuvre-jump a{white-space:nowrap;font-size:.9rem;color:var(--muted);}.oeuvre-jump a:hover{color:var(--text)}
.timeline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 54px;border-top:1px solid var(--line);}
.timeline-entry{display:grid;grid-template-columns:110px 1fr;gap:22px;padding:28px 0;border-bottom:1px solid var(--line);}.timeline-year{font-weight:650;color:var(--gold-deep)}.timeline-entry p{margin:0;}
.exhibition-list{border-top:1px solid var(--line);}.exhibition-entry{display:grid;grid-template-columns:210px minmax(260px,.9fr) minmax(300px,1.4fr) auto;gap:28px;align-items:start;padding:34px 0;border-bottom:1px solid var(--line);}.exhibition-meta{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:.86rem}.exhibition-entry h3{margin:0;font-size:clamp(1.2rem,1.6vw,1.55rem)}.exhibition-entry p{margin:0;line-height:1.65}.exhibition-entry .btn-link{white-space:nowrap;}
.books-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.book-authors{font-size:.92rem;color:var(--muted);}
.media-index{list-style:none;padding:0;margin:0 0 30px;border-top:1px solid var(--line);}.media-index li{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:17px 0;border-bottom:1px solid var(--line);}.media-index span{color:var(--gold-deep);font-weight:600}.media-index a{text-decoration:none}.media-index a:hover{text-decoration:underline}.two-reading-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.archive-actions{margin-top:42px;}
.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.archive-grid .card{min-height:260px;display:flex;flex-direction:column}.archive-return{margin-top:40px}.about-portrait-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(40px,8vw,120px);align-items:center;}
@media (max-width:1050px){.service-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exhibition-entry{grid-template-columns:150px 1fr 1.5fr}.exhibition-entry .btn-link{grid-column:2/-1}.books-grid{grid-template-columns:1fr}.collage-gallery{column-count:2}}
@media (max-width:760px){.service-uses,.oeuvre-teaser,.about-portrait-split{grid-template-columns:1fr}.timeline-grid{grid-template-columns:1fr}.exhibition-entry{grid-template-columns:1fr;gap:12px}.exhibition-entry .btn-link{grid-column:auto}.archive-cards,.archive-grid,.two-reading-grid{grid-template-columns:1fr}.oeuvre-jump{top:62px}.universal-lightbox-prev{left:8px}.universal-lightbox-next{right:8px}.universal-lightbox-close{top:10px;right:10px}.collage-gallery{column-count:1}}
@media (max-width:560px){.service-process-grid{grid-template-columns:1fr}.timeline-entry{grid-template-columns:82px 1fr;gap:14px}.service-editorial-hero .lead,.oeuvre-hero .lead{font-size:1.1rem}.universal-lightbox{padding:64px 12px 20px}.universal-lightbox-prev,.universal-lightbox-next{top:auto;bottom:12px;transform:none}.universal-lightbox-prev{left:calc(50% - 62px)}.universal-lightbox-next{right:calc(50% - 62px)}}

/* 2026-07-07 SEO/GDPR/schema hardening */
.cookie-actions .btn{flex:1;justify-content:center;background:#fff;color:#111;border:1px solid #111;}
.cookie-actions .btn:hover,.cookie-actions .btn:focus-visible{background:#111;color:#fff;}
.entity-facts{display:grid;grid-template-columns:minmax(180px,.34fr) 1fr;gap:0;border-top:1px solid var(--line,#ddd);margin:32px 0 0;}
.entity-facts dt,.entity-facts dd{margin:0;padding:16px 0;border-bottom:1px solid var(--line,#ddd);}
.entity-facts dt{font-weight:650;padding-right:24px;}
.form-data-note,.field-help{font-size:.88rem;line-height:1.5;color:var(--muted,#666);}
.sensitive-data-warning{margin-top:8px;}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:24px 0 40px;}
.privacy-table{width:100%;border-collapse:collapse;min-width:780px;}
.privacy-table th,.privacy-table td{text-align:left;vertical-align:top;padding:14px;border-bottom:1px solid var(--line,#ddd);font-size:.92rem;line-height:1.45;}
.privacy-table th{font-weight:650;}
@media (max-width:720px){.entity-facts{grid-template-columns:1fr}.entity-facts dt{padding-bottom:4px;border-bottom:0}.entity-facts dd{padding-top:0}.cookie-actions{gap:8px}}

/* Social profile footer — text links only; no third-party embeds or tracking. */
[data-social-footer] a[target="_blank"]::after{content:" ↗";font-size:.72em;opacity:.55;}
[data-social-footer] a:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px;}

/* Official positioning line and location context */
.hero.hero-image-first .eyebrow{max-width:1100px;line-height:1.35}.hero-location-line{margin:.55rem 0 1.4rem;color:var(--muted);font-size:clamp(.82rem,1.15vw,.98rem);letter-spacing:.08em;text-transform:uppercase}.pricing-logic-card{margin-top:2rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line);border-radius:24px;background:var(--surface)}.pricing-logic-card ul{margin:.75rem 0 0;padding-left:1.2rem}.pricing-logic-card li{margin:.45rem 0}.machine-data-links{font-size:.92rem;color:var(--muted)}


/* BANHALMI age-restricted fine-art gallery — 2026-07-08 */
.age-gallery-notice{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin:0 0 30px;padding:20px 22px;border:1px solid var(--line,#ddd);border-radius:18px;background:#f7f7f5;color:var(--text,#202530)}
.age-gallery-notice strong{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#171a20;color:#fff;font-size:.92rem;letter-spacing:.04em}
.age-gallery-notice p{margin:2px 0 0;line-height:1.6;color:var(--muted,#62666f)}
.age-restricted-item{position:relative}
.age-restricted-item .image-open{position:relative;overflow:hidden;border-radius:inherit;background:#111}
.age-restricted-preview{transform:scale(1.035)!important;opacity:.92}
.age-restricted-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:168px;padding:12px 18px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(8,9,12,.78);color:#fff;font-size:.82rem;font-weight:700;letter-spacing:.035em;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.28);}
.age-restricted-item .image-open:hover .age-restricted-badge,.age-restricted-item .image-open:focus-visible .age-restricted-badge{background:#111}
.age-verification-dialog{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(8,9,12,.78);}
.age-verification-dialog.open{display:flex}
.age-verification-panel{width:min(100%,560px);padding:clamp(28px,5vw,48px);border-radius:28px;background:#fff;color:#202530;box-shadow:0 32px 100px rgba(0,0,0,.38)}
.age-verification-kicker{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;margin-bottom:22px;border-radius:50%;background:#171a20;color:#fff;font-weight:750}
.age-verification-panel h2{margin:0 0 14px;font-size:clamp(1.7rem,4vw,2.45rem);line-height:1.12}
.age-verification-panel p{margin:0;color:#62666f;line-height:1.65}
.age-verification-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.age-verification-actions button{flex:1;min-width:190px}
@media (max-width:560px){.age-gallery-notice{grid-template-columns:1fr}.age-gallery-notice strong{width:46px;height:46px}.age-verification-actions{flex-direction:column}.age-verification-actions button{width:100%}}

/* Official WKO Vienna company profile in the global footer */
.footer-wko-profile{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  margin-top:22px;
  padding:8px 10px;
  border:1px solid rgba(203,169,104,.34);
  border-radius:8px;
  background:#111;
  opacity:.92;
  transition:opacity .2s ease, border-color .2s ease, transform .2s ease;
}
.footer-wko-profile img{
  display:block;
  width:min(206px,100%);
  height:auto;
}
.footer-wko-profile:hover,
.footer-wko-profile:focus-visible{
  opacity:1;
  border-color:var(--gold-deep);
  transform:translateY(-1px);
}
@media (max-width:620px){
  .footer-wko-profile{margin-top:18px;}
  .footer-wko-profile img{width:184px;}
}



/* ==========================================================================
   JONY IVE / APPLE-INSPIRED DESIGN AUDIT — 2026-07-08
   A quieter, more disciplined typographic scale, optical spacing, responsive
   hierarchy and performance-conscious rendering. Uses the platform system font;
   no Apple font files are embedded or distributed.
   ========================================================================== */
/* Tokens consolidated into the single :root block at the top of this file
   (previously redefined here with different values; that duplicate silently
   overrode the original design tokens through cascade order). */
html{
  font-size:100%;
  scroll-padding-top:calc(var(--header-h) + 20px);
}
body{
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  font-size:17px;
  line-height:1.47059;
  letter-spacing:-.022em;
  font-weight:400;
  font-synthesis:none;
  text-rendering:auto;
-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-inline-size:100%;block-size:auto;}
p,li{overflow-wrap:break-word;}
p{text-wrap:pretty;}
.wrap{max-width:var(--maxw);padding-inline:clamp(22px,4vw,40px);}

h1,h2,h3{
  font-family:var(--font-display);
  color:var(--ink);
  font-weight:600;
  text-wrap:balance;
  margin-block-start:0;
}
h1{
  font-size:clamp(2.5rem,3.8vw,3.125rem);
  line-height:1.07143;
  letter-spacing:-.045em;
  margin-block-end:.48em;
}
h2{
  font-size:clamp(1.875rem,2.8vw,2.5rem);
  line-height:1.09091;
  letter-spacing:-.035em;
  margin-block-end:.55em;
}
h3{
  font-size:clamp(1.25rem,1.65vw,1.5rem);
  line-height:1.16667;
  letter-spacing:-.025em;
  margin-block-end:.5em;
}
.lead{
  max-width:var(--wide-textw);
  font-family:var(--font-display);
  font-size:clamp(1.25rem,1.9vw,1.55rem);
  line-height:1.42;
  letter-spacing:-.027em;
  color:var(--graphite);
}
.key-term,.semantic-emphasis{font-weight:600;letter-spacing:inherit;}

/* Header: close to Apple's compact navigation rhythm without copying assets. */
.site-header{background:rgba(255,255,255,.82);border-bottom:1px solid rgba(0,0,0,.08);}
.site-header .wrap{max-width:1200px;}
.nav{min-height:var(--header-h);height:var(--header-h);gap:14px;}
.brand{gap:9px;font-size:.9rem;line-height:1;}
.brand-logo{width:23px;height:23px;}
.brand-word{letter-spacing:.12em;font-weight:600;}
.lang-switch{font-size:.68rem;letter-spacing:.035em;gap:2px;}
.lang-switch a{min-width:42px;min-height:42px;padding:0 7px;}
.menu-btn{width:40px;height:40px;}
.nav-links{top:var(--header-h);padding:clamp(22px,3.5vw,36px) 0;}
.nav-links a{
  padding:clamp(11px,1.25vw,15px) 0;
  font-size:clamp(1.15rem,1.7vw,1.55rem);
  line-height:1.18;
  letter-spacing:-.028em;
  font-weight:500;
}
.nav-submenu summary{
  padding:clamp(11px,1.25vw,15px) 0;
  font-size:clamp(1.15rem,1.7vw,1.55rem);
  line-height:1.18;
  letter-spacing:-.028em;
  font-weight:500;
}
.nav-submenu-list{
  margin-left:1.85rem;
}
.nav-submenu-list a{
  display:block;
  width:calc(100% - 1.85rem);
  margin-left:1.85rem;
  padding:9px 0;
  font-size:clamp(1rem,1.18vw,1.08rem);
  line-height:1.34;
  color:#8A681F !important;
}
.nav-submenu-list a::before{
  content:"•";
  display:inline-block;
  margin-right:.55rem;
  color:inherit;
}
html.nav-open,html.nav-open body{overflow:hidden;}

/* Hero and editorial hierarchy. */
.hero{padding:clamp(58px,7vw,96px) 0 clamp(54px,6.5vw,88px);}
.hero h1{max-width:22ch;}
.hero .lead{margin-top:clamp(18px,2.4vw,26px);}
.hero > .wrap > p:not(.eyebrow):not(.lead):not(.hero-location-line){
  max-width:68ch;
  font-size:1.03rem;
  line-height:1.62;
}
.hero .eyebrow,.section-head .eyebrow,.eyebrow{
  color:var(--gold-deep);
  font-size:.78rem;
  line-height:1.35;
  letter-spacing:.025em;
  text-transform:none;
  font-weight:600;
  margin-bottom:clamp(14px,2vw,20px);
}
.hero-location-line{font-size:.84rem!important;letter-spacing:.01em;color:var(--muted);margin-bottom:18px;}
.hero-actions{gap:14px;margin-top:30px;}
.btn{padding:10px 20px;font-size:.92rem;font-weight:500;}
.btn-link{font-size:.92rem;font-weight:500;}
.hero.hero-image-first .hero-figure{margin-bottom:clamp(42px,6vw,78px);}
.hero.hero-image-first h1{font-size:clamp(2.75rem,4.15vw,3.5rem);max-width:18ch;}
.hero.hero-image-first .hero-figure img:not(.hero-center-logo){max-height:min(68vh,680px);object-fit:cover;object-position:center 25%;}
.hero.hero-image-first .hero-center-logo{width:clamp(58px,8vw,118px);}

/* Service pages: strong image, but not oversized. */
.service-hero-image,
.service-editorial-hero .service-hero-image{
  width:100%;
  max-width:960px;
  margin:clamp(30px,4.5vw,48px) auto 0;
  border-radius:var(--radius);
}
.service-hero-image img{border-radius:var(--radius);max-height:none;object-fit:cover;}
/* The biography portrait was visually dominating desktop. */
.oeuvre-hero .service-hero-image{
  width:100%;
  max-width:420px;
  margin-top:clamp(30px,4vw,46px);
  border-radius:24px;
}
.oeuvre-hero .service-hero-image img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:24px;
}
.oeuvre-hero h1{max-width:24ch;font-size:clamp(2.5rem,3.65vw,3rem);}
.oeuvre-hero .lead{max-width:760px;}
@media (min-width:960px){
  .oeuvre-hero .wrap{
    display:grid;
    grid-template-columns:minmax(0,1.28fr) minmax(340px,420px);
    column-gap:clamp(48px,6vw,88px);
    align-items:center;
  }
  .oeuvre-hero .eyebrow{grid-column:1;grid-row:1;align-self:end;}
  .oeuvre-hero h1{grid-column:1;grid-row:2;}
  .oeuvre-hero .lead{grid-column:1;grid-row:3;align-self:start;}
  .oeuvre-hero .service-hero-image{
    grid-column:2;
    grid-row:1 / span 3;
    margin:0;
    align-self:center;
  }
}

/* Whitespace and readable measure. */
section{padding:clamp(64px,7.5vw,104px) 0;}
.section-head{max-width:var(--wide-textw);margin-bottom:clamp(30px,4vw,46px);}
.prose{max-width:var(--textw);}
.prose p,.about-longform p,.structural-prose p{line-height:1.65;}
.about-longform{max-width:820px;font-size:clamp(1rem,1.05vw,1.12rem);line-height:1.68;}
.structural-prose{max-width:760px;}
.section-band{background:var(--bg-alt);border-color:rgba(0,0,0,.07);}

/* Cards: less decoration, stronger rhythm. */
.cards{gap:clamp(18px,2.4vw,26px);}
.card,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary{
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:none;
}
.card{padding:clamp(24px,3vw,34px);}
.card p,.step p{font-size:.96rem;line-height:1.55;}
.card:hover{box-shadow:none;}
.steps{gap:clamp(22px,3vw,34px);}
.step{padding-top:18px;}

/* Galleries: keep images primary, remove oversized visual chrome. */
.editorial-hero,.editorial-image,.pf-item,.collage-gallery .editorial-image{border-radius:var(--radius);}
.gallery{gap:clamp(14px,2vw,22px);}
.collage-gallery{column-gap:clamp(14px,2vw,20px);margin-top:28px;}
.collage-gallery .editorial-image{margin-bottom:clamp(14px,2vw,20px);border-radius:20px;}
.pf-grid{column-gap:14px;}
.pf-item{margin-bottom:14px;border-radius:16px;}

/* Forms and quote builder. */
.field{margin-bottom:18px;}
.field label{font-size:.82rem;margin-bottom:7px;}
.field input,.field select,.field textarea{
  min-height:48px;
  padding:12px 14px;
  border-radius:12px;
  font-size:1rem;
  line-height:1.35;
}
.quote-step{padding:clamp(20px,2.7vw,28px);margin-bottom:18px;}
.quote-summary-card{padding:clamp(22px,2.7vw,28px);}
.quote-total{font-size:clamp(2rem,3.6vw,3rem);}
.category-card,.option-row{border-radius:14px;padding:14px;}

/* FAQ and legal pages. */
.faq{max-width:760px;}
.faq summary{font-size:1.03rem;line-height:1.42;padding:17px 40px 17px 0;}
.legal{max-width:760px;}
.legal h2{font-size:clamp(1.35rem,2vw,1.65rem);line-height:1.2;letter-spacing:-.025em;}

/* Footer: Apple-like information density; expanded on desktop, accordion on mobile. */
.site-footer{
  background:#1d1d1f;
  color:#a1a1a6;
  padding:clamp(52px,6vw,72px) 0 24px;
  font-size:13px;
  line-height:1.45;
}
.site-footer .wrap{max-width:1280px;}
.footer-grid{
  grid-template-columns:minmax(250px,1.6fr) repeat(3,minmax(155px,1fr));
  column-gap:clamp(30px,4vw,58px);
  row-gap:38px;
}
.footer-brand-col{grid-column:span 1;max-width:340px;}
.site-footer .brand{gap:12px;margin-bottom:20px;}
.site-footer .brand-logo{width:24px;height:24px;}
.site-footer .brand-word{letter-spacing:.12em;}
.footer-entity{font-size:13px;line-height:1.55;max-width:34ch;}
.footer-wko-profile{display:inline-block;margin-top:18px;}
.footer-wko-profile img{width:118px;height:auto;opacity:.9;}
.site-footer h3,.footer-accordion summary{font-size:12px;line-height:1.35;letter-spacing:.01em;font-weight:600;}
.site-footer h3{margin-bottom:13px;}
.footer-accordion{border-top:0;}
.footer-accordion summary{padding:0 24px 13px 0;}
.footer-accordion ul{padding-bottom:0;}
.site-footer li{margin-bottom:8px;}
.site-footer a,.site-footer a:visited{color:#d2d2d7;}
.site-footer a:hover,.site-footer a:focus-visible{color:#fff;}
.site-footer .footer-grid > details.footer-accordion ul li > a::before,
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a::before{display:none;content:none;}
.footer-contact-list li,.footer-legal-list li{margin-bottom:11px;}
.footer-legal-list span{min-width:64px;}
.footer-bottom{margin-top:38px;padding-top:18px;font-size:12px;line-height:1.5;border-color:rgba(255,255,255,.14);}

/* Rendering and interaction performance. */
@media screen{
  main > section:not(.hero){content-visibility:auto;contain-intrinsic-size:auto 780px;}
}
.card,.service-card,.quote-step,.category-card,.option-row,.editorial-image,.pf-item,.collage-gallery figure,
.editorial-image img,.pf-item img,.collage-gallery img,.service-hero-image img,.hero-figure img{
  will-change:auto!important;
}
@media (prefers-reduced-motion:no-preference){
  .reveal{transform:translateY(10px);transition-duration:.62s;}
  .card,.editorial-image,.pf-item,.collage-gallery figure{transition-duration:.28s;}
  .editorial-image:hover img,.pf-item:hover img,.collage-gallery figure:hover img{transform:scale(1.008);}
  .hero.hero-image-first .hero-figure:hover img:not(.hero-center-logo){transform:none;}
}

/* Responsive audit: 1440 / 1280 / 1024 / 834 / 768 / 430 / 390 / 360. */
@media (max-width:1100px){
  .footer-grid{grid-template-columns:minmax(240px,1.5fr) repeat(2,minmax(160px,1fr));}
  .footer-brand-col{grid-column:1 / -1;max-width:600px;}
}
@media (max-width:900px){
  :root{--header-h:54px;}
  body{font-size:16.5px;}
  .wrap{padding-inline:28px;}
  h1{font-size:clamp(2.3rem,5.5vw,2.875rem);}
  h2{font-size:clamp(1.8rem,4.4vw,2.25rem);}
  .hero.hero-image-first h1{font-size:clamp(2.45rem,5.9vw,3.05rem);}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:38px;}
  .footer-brand-col{grid-column:1 / -1;}
}
@media (max-width:680px){
  :root{--header-h:52px;}
  body{font-size:16px;line-height:1.5;letter-spacing:-.018em;}
  .wrap{padding-inline:22px;}
  .nav{height:var(--header-h);min-height:var(--header-h);}
  .brand-word{font-size:.84rem;letter-spacing:.1em;}
  .brand-logo{width:22px;height:22px;}
  .lang-switch a{min-width:40px;min-height:40px;padding:0 6px;}
  .menu-btn{width:38px;height:38px;}
  .nav-links{top:var(--header-h);padding:18px 0;}
  .nav-links a{font-size:1.16rem;padding:12px 0;}
  .hero{padding:48px 0 58px;}
  .hero.hero-image-first{padding-bottom:58px;}
  .hero.hero-image-first .hero-figure{margin-bottom:34px;}
  .hero.hero-image-first .hero-figure img:not(.hero-center-logo){max-height:none;object-fit:contain;}
  h1,.hero.hero-image-first h1{font-size:clamp(2.2rem,9.8vw,2.5rem);line-height:1.09;letter-spacing:-.04em;}
  h2{font-size:clamp(1.7rem,7.4vw,2rem);line-height:1.13;}
  h3{font-size:1.25rem;}
  .lead{font-size:1.2rem;line-height:1.43;}
  .hero > .wrap > p:not(.eyebrow):not(.lead):not(.hero-location-line){font-size:1rem;line-height:1.58;}
  section{padding:56px 0;}
  .section-head{margin-bottom:28px;}
  .service-hero-image{margin-top:28px;border-radius:18px;}
  .service-hero-image img{border-radius:18px;}
  .oeuvre-hero .service-hero-image{width:100%;max-width:420px;border-radius:18px;}
  .oeuvre-hero .service-hero-image img{border-radius:18px;}
  .cards,.service-info-cards{grid-template-columns:1fr;}
  .card{padding:23px;}
  .hero-actions{align-items:stretch;gap:11px;}
  .hero-actions .btn{margin:0;}
  .footer-grid{grid-template-columns:1fr;row-gap:0;}
  .footer-brand-col{margin-bottom:26px;}
  .footer-accordion{border-top:1px solid rgba(255,255,255,.14);}
  .footer-accordion summary{padding:14px 28px 14px 0;font-size:12px;}

  .nav-submenu summary{
    font-size:1.16rem;
    padding:12px 0;
    line-height:1.18;
    letter-spacing:-.028em;
    font-weight:500;
  }

  .nav-submenu-list{
    margin-left:1.35rem;
  }

  .nav-submenu-list a{
    display:block;
    width:calc(100% - 1.35rem);
    margin-left:1.35rem;
    padding:10px 0;
    font-size:clamp(1rem,4.5vw,1.08rem);
    line-height:1.35;
    color:#8A681F !important;
  }
  .footer-accordion summary::after{display:block;}
  .footer-accordion ul{padding-bottom:12px;}
  .site-footer > .wrap > .footer-grid > div:not(.footer-brand-col){margin-top:28px;}
  .footer-bottom{flex-direction:column;gap:10px;}
  .grid-2{grid-template-columns:1fr;}
}
@media (max-width:400px){
  .wrap{padding-inline:19px;}
  .brand-word{font-size:.8rem;}
  .lang-switch a{min-width:36px;padding:0 4px;font-size:.66rem;}
  h1,.hero.hero-image-first h1{font-size:2.12rem;}
  .btn{width:100%;text-align:center;}
  .btn-link{justify-content:center;min-height:44px;}
  .cookie-actions{flex-direction:column;}
}
@media print{
  main > section{content-visibility:visible!important;contain:none!important;}
  .site-header,.site-footer,.cookie{display:none!important;}
}

/* 2026-07-08b — WKO asset reliability + persistent quote estimate */
.footer-wko-profile{
  width:min(206px,100%);
  min-height:66px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.footer-wko-profile img{
  display:block;
  width:206px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}

/* Keep the estimate visible while the user configures the request. */
.smart-quote-layout .quote-intro{position:static;}
.smart-quote-layout .quote-summary-card{
  position:sticky;
  top:72px;
  z-index:20;
  background:rgba(255,255,255,.96);
box-shadow:0 18px 48px rgba(0,0,0,.10);
}

@media (max-width:900px){
  body:has([data-smart-quote]){padding-bottom:112px;}
  .smart-quote-layout .quote-summary-card{
    position:fixed;
    left:12px;
    right:12px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    top:auto;
    margin:0;
    padding:13px 18px;
    border-radius:20px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "label total"
      "details details";
    gap:3px 14px;
    align-items:center;
    z-index:90;
    box-shadow:0 14px 48px rgba(0,0,0,.18);
  }
  .smart-quote-layout .quote-summary-card .eyebrow{
    grid-area:label;
    margin:0;
    font-size:12px;
    line-height:1.2;
  }
  .smart-quote-layout .quote-summary-card .quote-total{
    grid-area:total;
    margin:0;
    font-size:30px;
    line-height:1;
    text-align:right;
  }
  .smart-quote-layout .quote-summary-card dl{
    grid-area:details;
    display:flex;
    gap:18px;
    margin:3px 0 0;
  }
  .smart-quote-layout .quote-summary-card dl>div{display:flex;gap:5px;align-items:baseline;}
  .smart-quote-layout .quote-summary-card dt,
  .smart-quote-layout .quote-summary-card dd{font-size:12px;line-height:1.2;margin:0;}
  .smart-quote-layout .quote-summary-card [data-vat-note]{display:none;}
}

@media (max-width:420px){
  .smart-quote-layout .quote-summary-card{left:8px;right:8px;padding:12px 14px;}
  .smart-quote-layout .quote-summary-card .quote-total{font-size:27px;}
}


/* 2026-07-08c — iOS scroll stability, fixed navigation and contact clarity */
:root{scroll-padding-top:calc(var(--header-h) + 16px);}
html{scroll-behavior:auto;}
body{padding-top:var(--header-h);}
.site-header{
  position:fixed!important;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:9999;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
}

/* Safari can temporarily drop composited reveal/content-visibility layers while
   reversing scroll. Keep editorial text permanently painted and readable. */
.reveal,
.reveal.in,
.text-reveal,
.text-reveal.is-visible{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  will-change:auto!important;
}
main > section,
main > section:not(.hero){
  content-visibility:visible!important;
  contain:none!important;
  contain-intrinsic-size:none!important;
}

.location-card-linkable p a{
  display:inline-block;
  margin-top:5px;
  color:var(--graphite);
  text-decoration:none;
  overflow-wrap:anywhere;
}
.location-card-linkable p a:hover,
.location-card-linkable p a:focus-visible{color:var(--gold-deep);}

@media (max-width:820px){
  body{padding-top:var(--header-h);}
  .site-header{


    background:rgba(255,255,255,.98);
  }
}

/* 2026-07-08d — full-bleed homepage hero/header + persistent desktop estimate */
@media (min-width:901px){
  /* The global header background and navigation content span the viewport. */
  .site-header > .wrap{
    width:100%;
    max-width:none;
    padding-left:clamp(24px,3vw,52px);
    padding-right:clamp(24px,3vw,52px);
  }

  /* Homepage hero image breaks out of the content column without cropping. */
  body.home .hero.hero-image-first .hero-figure,
  .home-page .hero.hero-image-first .hero-figure,
  .hero.hero-image-first:first-child .hero-figure{
    width:100vw;
    max-width:none;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    border-radius:0;
    overflow:hidden;
  }
  body.home .hero.hero-image-first .hero-figure picture,
  .home-page .hero.hero-image-first .hero-figure picture,
  .hero.hero-image-first:first-child .hero-figure picture{
    display:block;
    width:100%;
  }
  body.home .hero.hero-image-first .hero-figure img:not(.hero-center-logo),
  .home-page .hero.hero-image-first .hero-figure img:not(.hero-center-logo),
  .hero.hero-image-first:first-child .hero-figure img:not(.hero-center-logo){
    display:block;
    width:100%;
    max-width:none;
    height:auto;
    max-height:none;
    object-fit:contain;
    object-position:center;
    border-radius:0;
  }

  /* Keep the complete estimate visible beside the quote form on desktop. */
  body:has([data-smart-quote]) .smart-quote-layout .quote-intro{
    position:sticky;
    top:calc(var(--header-h) + 20px);
    align-self:start;
    max-height:calc(100vh - var(--header-h) - 32px);
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
  }
  body:has([data-smart-quote]) .smart-quote-layout .quote-summary-card{
    position:static;
    top:auto;
    margin-top:26px;
  }
}


/* Contact pathways: direct enquiry vs guided estimate */
.contact-pathways-intro{max-width:820px;margin-bottom:32px}
.contact-pathway-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.contact-pathway-card{display:flex;flex-direction:column;min-height:300px;padding:36px}
.contact-pathway-card h3{margin-bottom:14px}
.contact-pathway-card p{margin:0 0 28px;color:var(--muted);line-height:1.6}
.contact-pathway-card .btn{margin-top:auto;align-self:flex-start}
.contact-pathway-card-primary{border-color:rgba(157,119,45,.42);background:linear-gradient(180deg,#fff 0%,#fbf8f1 100%)}
.contact-form-section{scroll-margin-top:88px}
@media (max-width:1100px){
  .contact-pathway-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .contact-pathway-grid{grid-template-columns:1fr;gap:18px}
  .contact-pathway-card{min-height:0;padding:28px}
  .contact-pathway-card .btn{width:100%;justify-content:center;text-align:center}
  .contact-form-section{scroll-margin-top:72px}
}


/* Hero signature statement — 2026-07-08 */
.hero.hero-image-first .hero-figure{position:relative}
.hero-signature-line{
  position:absolute;
  left:50%;
  top:61%;
  z-index:3;
  width:min(76%,760px);
  margin:0;
  transform:translate(-50%,-50%);
  color:#8A681F;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(18px,1.65vw,30px);
  font-style:italic;
  font-weight:400;
  line-height:1.25;
  letter-spacing:-.015em;
  text-align:center;
  text-wrap:balance;
  text-shadow:0 1px 12px rgba(255,255,255,.5);
  pointer-events:none;
}
@media (max-width:680px){
  .hero-signature-line{
    top:64%;
    width:78%;
    font-size:clamp(14px,4vw,18px);
    line-height:1.2;
  }
}

/* Final quote actions: send request and download PDF side by side */
.quote-submit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}
.quote-submit-actions .btn{margin:0;min-height:48px}
.quote-submit-actions .quote-pdf-button-final{padding:13px 20px}
@media (max-width:640px){.quote-submit-actions{display:grid;grid-template-columns:1fr;gap:10px}.quote-submit-actions .btn{width:100%}}

/* Hero monogram + tagline alignment fix — 2026-07-08 */
.hero.hero-image-first .hero-figure .hero-center-logo{
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
}
.hero.hero-image-first .hero-figure .hero-signature-line{
  left:50% !important;
  top:calc(50% + clamp(76px,7.4vw,116px)) !important;
  width:min(82%,820px) !important;
  transform:translateX(-50%) !important;
  margin:0 !important;
  text-align:center !important;
}
@media (max-width:680px){
  .hero.hero-image-first .hero-figure .hero-signature-line{
    top:calc(50% + clamp(58px,18vw,82px)) !important;
    width:84% !important;
  }
}

/* Mobile hero tagline refinement — 2026-07-08 */
@media (max-width:680px){
  .hero.hero-image-first .hero-figure .hero-signature-line{
    top:64% !important;
    width:70% !important;
    max-width:280px !important;
    font-size:clamp(11px,3.1vw,13px) !important;
    line-height:1.18 !important;
    letter-spacing:-.01em !important;
    text-shadow:0 1px 8px rgba(255,255,255,.42) !important;
  }
}


/* Hero tagline spacing + compact WKO mark — 2026-07-08 */
@media (max-width:680px){
  .hero.hero-image-first .hero-figure .hero-signature-line{
    top:67% !important;
  }
}
.footer-wko-profile{
  width:auto !important;
  min-height:0 !important;
  padding:5px 7px !important;
}
.footer-wko-profile img{
  width:92px !important;
  max-width:92px !important;
  height:auto !important;
}
@media (max-width:620px){
  .footer-wko-profile img{
    width:82px !important;
    max-width:82px !important;
  }
}

/* FAQ topics and transparent WKO profile badge */
.faq-topic{margin:0 0 clamp(28px,4vw,48px)}
.faq-topic:last-child{margin-bottom:0}
.faq-topic>h2{margin:0 0 16px;font-size:clamp(22px,2.2vw,30px);line-height:1.16;letter-spacing:-.025em}
.faq-topic .faq{display:grid;gap:10px}
.footer-wko-profile,.footer-wko-profile img{background:transparent!important}

/* Featured historical portrait lightbox references */
.universal-lightbox-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin:8px auto 0;max-width:min(92vw,900px);font-size:13px;line-height:1.4}.universal-lightbox-links[hidden]{display:none}.universal-lightbox-links a{color:#8A681F;text-decoration:none;border-bottom:1px solid rgba(183,156,68,.55)}.universal-lightbox-links a:hover,.universal-lightbox-links a:focus-visible{border-bottom-color:currentColor}.featured-historic-portrait{position:relative}.featured-historic-portrait:after{content:'Featured work';position:absolute;left:12px;bottom:12px;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.68);color:#fff;font-size:10px;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}@media (max-width:680px){.universal-lightbox-links{font-size:12px;gap:7px 12px}.featured-historic-portrait:after{font-size:9px}}

/* Hero image lower signature sweep — responsive white band with gold edge */
.editorial-hero,
.hero.hero-image-first .hero-figure,
.service-hero-image{
  position:relative;
  overflow:hidden;
}

.editorial-hero::after,
.hero.hero-image-first .hero-figure::after,
.service-hero-image::after{
  content:"";
  position:absolute;
  z-index:6;
  left:-6%;
  bottom:clamp(-44px,-3.1vw,-24px);
  width:112%;
  height:clamp(58px,7.5vw,112px);
  background:#fff;
  border-top:clamp(4px,.42vw,8px) solid #B79C44;
  border-radius:50% 50% 0 0 / 30% 30% 0 0;
  pointer-events:none;
  transform:translateZ(0);
}

@media (max-width:720px){
  .editorial-hero::after,
  .hero.hero-image-first .hero-figure::after,
  .service-hero-image::after{
    left:-14%;
    bottom:-28px;
    width:128%;
    height:64px;
    border-top-width:4px;
    border-radius:50% 50% 0 0 / 34% 34% 0 0;
  }
}

@media (prefers-reduced-motion:reduce){
  .editorial-hero::after,
  .hero.hero-image-first .hero-figure::after,
  .service-hero-image::after{transform:none}
}


/* Human-reviewed gallery descriptions and external proof cards — 2026-07-12 */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.external-proof-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.external-proof-card{display:flex;min-height:150px;flex-direction:column;justify-content:space-between}
.case-study-evidence{display:grid;gap:12px;margin:24px 0;padding:0;list-style:none}
.case-study-evidence li{padding:16px 0;border-top:1px solid rgba(0,0,0,.12)}
.case-study-evidence strong{display:block;margin-bottom:4px}
.case-study-hero-image img{width:100%;height:auto;display:block}
.case-study-facts{display:grid;grid-template-columns:minmax(140px,.35fr) 1fr;gap:10px 22px;margin:24px 0}
.case-study-facts dt{font-weight:650}.case-study-facts dd{margin:0}
@media (max-width:680px){.case-study-facts{grid-template-columns:1fr}.case-study-facts dd{margin-bottom:10px}}

/* BANHALMI lightbox reference panel readability fix — 2026-07-12 */
.universal-lightbox{
  overflow-y:auto;
  overscroll-behavior:contain;
-webkit-overflow-scrolling:touch;
  align-items:flex-start;
  padding:clamp(22px,3.2vw,52px) clamp(72px,6vw,112px) clamp(30px,4vw,64px);
}
.universal-lightbox figure{
  width:100%;
  max-width:min(92vw,1600px);
  max-height:none;
  min-height:calc(100dvh - clamp(52px,7vw,116px));
  margin:auto;
  justify-content:center;
  gap:14px;
  padding:0 0 18px;
}
.universal-lightbox img{
  max-height:82vh;
  max-height:82dvh;
}
.universal-lightbox figure:has(.universal-lightbox-links:not([hidden])) img{
  max-height:56vh;
  max-height:56dvh;
}
.universal-lightbox figcaption{
  width:min(100%,1180px);
  margin:0 auto;
  padding:0 16px;
  color:rgba(255,255,255,.94);
  font-size:clamp(.82rem,.72rem + .18vw,.94rem);
  line-height:1.55;
  text-align:center;
  text-wrap:pretty;
}
.universal-lightbox-links{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:min(100%,1180px);
  max-width:1180px;
  max-height:min(25dvh,250px);
  overflow-y:auto;
  overscroll-behavior:contain;
  margin:2px auto 0;
  padding:12px;
  gap:9px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:rgba(20,21,25,.84);
  box-shadow:0 18px 54px rgba(0,0,0,.34);
scrollbar-width:thin;
  scrollbar-color:rgba(138,104,31,.72) rgba(255,255,255,.08);
}
.universal-lightbox-links::-webkit-scrollbar{width:8px;height:8px}
.universal-lightbox-links::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:999px}
.universal-lightbox-links::-webkit-scrollbar-thumb{background:rgba(138,104,31,.72);border-radius:999px}
.universal-lightbox-links a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:44px;
  padding:9px 11px;
  border:1px solid rgba(183,156,68,.38);
  border-radius:11px;
  background:rgba(255,255,255,.045);
  color:#e2c776;
  font-size:12.5px;
  font-weight:520;
  line-height:1.35;
  text-align:center;
  text-decoration:none;
  overflow-wrap:anywhere;
  word-break:normal;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.universal-lightbox-links a:first-child{
  grid-column:1/-1;
  min-height:48px;
  background:rgba(138,104,31,.14);
  border-color:rgba(226,199,118,.72);
  color:#f0d88f;
  font-weight:650;
}
.universal-lightbox-links a:hover,
.universal-lightbox-links a:focus-visible{
  color:#fff2c8;
  background:rgba(138,104,31,.18);
  border-color:rgba(240,216,143,.92);
  transform:translateY(-1px);
  outline:none;
}
.universal-lightbox-close,
.universal-lightbox-prev,
.universal-lightbox-next{z-index:3}

@media (max-width:1180px){
  .universal-lightbox{padding-left:64px;padding-right:64px}
  .universal-lightbox-links{grid-template-columns:repeat(3,minmax(0,1fr))}
  .universal-lightbox figure:has(.universal-lightbox-links:not([hidden])) img{max-height:54vh;max-height:54dvh}
}
@media (max-width:820px){
  .universal-lightbox{padding:62px 16px 34px}
  .universal-lightbox figure{min-height:calc(100dvh - 96px);padding-bottom:76px}
  .universal-lightbox figure:has(.universal-lightbox-links:not([hidden])) img{max-height:50vh;max-height:50dvh}
  .universal-lightbox-links{grid-template-columns:repeat(2,minmax(0,1fr));max-height:min(30dvh,270px);padding:10px;border-radius:15px}
  .universal-lightbox-links a{font-size:12px;min-height:43px;padding:8px 9px}
}
@media (max-width:560px){
  .universal-lightbox{padding:58px 10px 20px}
  .universal-lightbox figure{min-height:auto;justify-content:flex-start;gap:11px;padding-bottom:82px}
  .universal-lightbox figure:has(.universal-lightbox-links:not([hidden])) img{max-height:46vh;max-height:46dvh}
  .universal-lightbox figcaption{padding:0 6px;font-size:.78rem;line-height:1.48}
  .universal-lightbox-links{grid-template-columns:1fr;width:100%;max-height:34dvh;margin-top:0;padding:9px;gap:7px;border-radius:14px}
  .universal-lightbox-links a:first-child{grid-column:auto}
  .universal-lightbox-links a{justify-content:flex-start;min-height:42px;text-align:left;padding:9px 11px}
}
@media (max-height:720px) and (min-width:561px){
  .universal-lightbox{padding-top:20px;padding-bottom:20px}
  .universal-lightbox figure:has(.universal-lightbox-links:not([hidden])) img{max-height:44vh;max-height:44dvh}
  .universal-lightbox-links{max-height:30dvh}
}
/* Form submission wait notice */
.form-submit-wait-note{
  margin:18px 0 10px;
  padding:12px 14px;
  border-left:3px solid var(--gold-deep);
  background:rgba(176,136,58,.08);
  color:var(--graphite);
  font-size:.9rem;
  line-height:1.5;
}
.quote-submit-actions + [data-form-note]{margin-top:16px;}
@media (max-width:640px){
  .form-submit-wait-note{margin-top:16px;font-size:.88rem;}
}

/* BANHALMI Apple-inspired motion system — 2026-07-12
   Subtle scroll reveals and image hover depth, using only opacity and transforms. */
:root{
  --motion-ease:cubic-bezier(.16,1,.3,1);
  --motion-duration:760ms;
  --image-motion-duration:900ms;
}

/* Content remains visible before JS adds .motion-ready. */
.reveal,
.text-reveal,
.media-reveal{
  opacity:1;
  visibility:visible;
  transform:none;
  filter:none;
}

@media (prefers-reduced-motion:no-preference){
  .motion-ready .reveal{
    opacity:0;
    transform:translate3d(0,14px,0) scale(.997);
    transition:opacity var(--motion-duration) var(--motion-ease),
               transform var(--motion-duration) var(--motion-ease);
  }
  .motion-ready .reveal.in,
  .motion-ready .reveal.is-visible{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
  }

  /* Text opacity never drops below 1: a stalled IntersectionObserver callback
     must never leave body copy unreadable. Only position animates. */
  .motion-ready .text-reveal{
    opacity:1;
    transform:translate3d(0,13px,0);
    transition:transform 720ms var(--motion-ease) var(--motion-delay,0ms);
  }
  .motion-ready h1.text-reveal,
  .motion-ready h2.text-reveal,
  .motion-ready h3.text-reveal{
    transform:translate3d(0,17px,0);
  }
  .motion-ready .text-reveal.is-visible{
    opacity:1;
    transform:translate3d(0,0,0);
  }

  .motion-ready .media-reveal{
    opacity:.01;
    transform:translate3d(0,15px,0) scale(.994);
    transition:opacity 780ms var(--motion-ease) var(--motion-delay,0ms),
               transform 860ms var(--motion-ease) var(--motion-delay,0ms);
  }
  .motion-ready .media-reveal.is-motion-visible{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
    opacity:1;
  }

  .apple-media{
    transform-origin:center center;
  }
  .apple-media img:not(.hero-center-logo){
    transform:translate3d(0,var(--hero-scroll-y,0px),0) scale(1);
    transform-origin:center center;
    transition:transform var(--image-motion-duration) var(--motion-ease),
               filter 650ms ease;
    backface-visibility:hidden;
  }

  @media (hover:hover) and (pointer:fine){
    .apple-media:hover img:not(.hero-center-logo),
    .apple-media:focus-within img:not(.hero-center-logo){
      transform:translate3d(0,var(--hero-scroll-y,0px),0) scale(1.027);
      filter:saturate(1.015) contrast(1.01);
    }
    .service-hero-image.apple-media:hover img:not(.hero-center-logo),
    .hero-figure.apple-media:hover img:not(.hero-center-logo),
    .editorial-hero.apple-media:hover img:not(.hero-center-logo){
      transform:translate3d(0,var(--hero-scroll-y,0px),0) scale(1.012);
    }
  }
}

@media (prefers-reduced-motion:reduce){
  .reveal,
  .reveal.in,
  .text-reveal,
  .text-reveal.is-visible,
  .media-reveal,
  .media-reveal.is-motion-visible,
  .apple-media,
  .apple-media img{
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    filter:none!important;
    transition:none!important;
    animation:none!important;
  }
}

/* Touch devices keep the scroll entrance, but do not simulate hover zoom. */
@media (hover:none), (pointer:coarse){
  .apple-media img:not(.hero-center-logo){
    transform:none;
  }
}



/* BANHALMI single case-study link treatment — 2026-07-12 */
.universal-lightbox figure:has(.universal-lightbox-links > a:only-child) img{max-height:72vh;max-height:72dvh}
.universal-lightbox-links:has(> a:only-child){display:flex;width:auto;max-width:max-content;max-height:none;overflow:visible;margin:2px auto 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;}
.universal-lightbox-links:has(> a:only-child) a:only-child{min-height:auto;padding:8px 18px;border:1px solid rgba(226,199,118,.58);border-radius:999px;background:rgba(138,104,31,.11);color:#efd98f;font-size:12px;font-weight:620;letter-spacing:.035em;text-transform:uppercase}
@media (max-width:560px){.universal-lightbox figure:has(.universal-lightbox-links > a:only-child) img{max-height:64vh;max-height:64dvh}.universal-lightbox-links:has(> a:only-child){width:auto;margin-top:1px;padding:0}.universal-lightbox-links:has(> a:only-child) a:only-child{justify-content:center;min-height:auto;padding:8px 16px;text-align:center}}
html[lang="hu-HU"] .featured-historic-portrait:after{content:'Kiemelt mű'}
html[lang="de-AT"] .featured-historic-portrait:after{content:'Ausgewähltes Werk'}

/* BANHALMI refined video, mobile typography and spacing */
.biography-source-note{margin-top:clamp(42px,6vw,82px);max-width:860px;line-height:1.55}
.youtube-poster{position:relative;margin:0;aspect-ratio:16/9;overflow:hidden;border-radius:28px;background:#111 center/cover no-repeat;border:1px solid rgba(32,37,48,.08)}
.youtube-poster[data-youtube-id="npJ6YeYxQ64"]{background-image:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.08)),url("https://i.ytimg.com/vi/npJ6YeYxQ64/maxresdefault.jpg")}
.youtube-poster[data-youtube-id="WtcqlkGnmmY"]{background-image:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.08)),url("https://i.ytimg.com/vi/WtcqlkGnmmY/maxresdefault.jpg")}
.youtube-poster-button{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;cursor:pointer;background:transparent;display:grid;place-items:center}
.youtube-play{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 12px 35px rgba(0,0,0,.2);position:relative;transition:transform .35s ease,background .35s ease}
.youtube-play:after{content:"";position:absolute;left:31px;top:23px;border-left:24px solid #111;border-top:15px solid transparent;border-bottom:15px solid transparent}
.youtube-poster-button:hover .youtube-play,.youtube-poster-button:focus-visible .youtube-play{transform:scale(1.06);background:#fff}
.youtube-poster iframe{width:100%;height:100%;border:0;display:block}
.event-video-section .youtube-poster-wide{margin:clamp(24px,4vw,48px) 0}
.external-proof-cards-single{grid-template-columns:minmax(0,760px);justify-content:center}
.external-proof-cards-single .external-proof-card{min-height:auto;gap:26px;padding:clamp(26px,4vw,42px)}
.external-proof-card h3,.external-proof-card .more{overflow-wrap:normal;word-break:normal;hyphens:none}
.media-index li{grid-template-columns:minmax(132px,auto) minmax(0,1fr)}
.media-index span{overflow-wrap:normal;word-break:normal;hyphens:none}
@media (max-width:760px){
  .biography-source-note{margin-top:52px;padding-top:0}
  .youtube-poster{border-radius:22px}
  .youtube-play{width:62px;height:62px}
  .youtube-play:after{left:26px;top:19px;border-left-width:20px;border-top-width:12px;border-bottom-width:12px}
  .media-index li{grid-template-columns:1fr;gap:8px;padding:18px 0}
  .media-index span{display:block;max-width:100%;white-space:normal}
  .external-proof-cards-single .external-proof-card{padding:26px;gap:22px}
  .external-proof-card h3{font-size:clamp(1.18rem,6vw,1.55rem);line-height:1.16}
}
@media (prefers-reduced-motion:reduce){.youtube-play{transition:none}}

/* Speier Viko executive profile and AmCham card — consolidated 2026-07-14 */
.amcham-profile-cards{grid-template-columns:minmax(0,1fr)}
.amcham-profile-card{display:grid;grid-template-columns:minmax(390px,.92fr) minmax(0,1.08fr);gap:clamp(34px,4.5vw,58px);align-items:stretch;padding:clamp(28px,3.5vw,44px)}
.amcham-profile-media{overflow:hidden;border-radius:20px;background:#ece9e2;min-height:440px}
.amcham-profile-media picture,.amcham-profile-media img{display:block;width:100%;height:100%}.amcham-profile-media img{object-fit:cover;object-position:50% 40%}
.amcham-profile-copy{align-self:center}.amcham-profile-copy h3{margin-bottom:14px}.amcham-profile-role{margin:.25rem 0 1.1rem;color:var(--graphite);font-size:.95rem;line-height:1.5;letter-spacing:.015em}
.amcham-profile-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;align-items:center}.amcham-profile-actions .btn{min-height:46px;padding:12px 18px}
.person-profile-hero{padding-top:clamp(52px,7vw,96px);padding-bottom:clamp(44px,6vw,82px)}
.person-profile-hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);gap:clamp(42px,6vw,90px);align-items:center}
.person-profile-hero-copy{max-width:780px}.person-profile-hero h1{max-width:880px;text-wrap:balance}.person-profile-hero .lead{max-width:760px}
.person-profile-hero-media{position:relative;margin:0;overflow:hidden;border-radius:clamp(20px,3vw,34px);background:#e9e5de;box-shadow:0 24px 70px rgba(20,20,20,.12);aspect-ratio:4/5}
.person-profile-hero-media picture,.person-profile-hero-media img{display:block;width:100%;height:100%}.person-profile-hero-media img{object-fit:cover;object-position:50% 42%}
.person-profile-hero-media figcaption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.person-profile-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.person-profile-facts{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);gap:clamp(34px,5vw,70px);align-items:start}.person-profile-facts .entity-facts{margin:0}
.compact-lead{font-size:clamp(1.05rem,1.5vw,1.22rem);line-height:1.65}
.executive-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(44px,6vw,86px)}
.executive-profile-block{padding:clamp(34px,4.5vw,58px) 0;border-top:1px solid rgba(27,27,27,.14)}.executive-profile-block h2{font-size:clamp(1.5rem,2.5vw,2.2rem);line-height:1.14;margin:0 0 18px;text-wrap:balance}.executive-profile-block p{margin:0;color:var(--graphite);font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.75}
.person-profile-network{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:clamp(34px,5vw,68px);align-items:start}.person-profile-network-card{padding:clamp(24px,4vw,38px);border:1px solid rgba(27,27,27,.12);border-radius:22px;background:#fff}
.amcham-contact-grid{display:grid;grid-template-columns:1fr;gap:10px}.amcham-contact-item{display:flex;min-width:0;flex-direction:column;gap:5px;padding:15px 17px;border:1px solid rgba(27,27,27,.12);border-radius:14px;background:rgba(255,255,255,.72);color:var(--ink);text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}.amcham-contact-item:hover{transform:translateY(-2px);border-color:rgba(27,27,27,.28);background:#fff}.amcham-contact-item span{font-size:.82rem;line-height:1.25;letter-spacing:.075em;text-transform:uppercase;color:var(--graphite)}.amcham-contact-item strong{min-width:0;overflow-wrap:anywhere;font-size:1rem;line-height:1.4}
.profile-source-note{margin-top:28px;font-size:.9rem;line-height:1.65;color:var(--graphite)}
.contact-form-section{scroll-margin-top:110px}.contact-form-section .form-data-note,.field-help,.form-submit-wait-note{font-size:max(.875rem,14px);line-height:1.55}
.site-footer h3,.footer-accordion summary{font-size:max(.8125rem,13px);line-height:1.4}.footer-bottom{font-size:max(.8125rem,13px);line-height:1.55}
@media (max-width:900px){.person-profile-hero .wrap,.person-profile-facts,.person-profile-network{grid-template-columns:1fr}.person-profile-hero-copy{order:1}.person-profile-hero-media{order:0;max-width:620px;width:100%;justify-self:center;aspect-ratio:4/5}.executive-profile-grid{grid-template-columns:1fr}.amcham-profile-card{grid-template-columns:1fr}.amcham-profile-media{min-height:0;aspect-ratio:5/4}}
@media (max-width:620px){.person-profile-hero{padding-top:38px}.person-profile-hero-media{border-radius:22px}.person-profile-actions,.amcham-profile-actions{align-items:stretch;flex-direction:column}.person-profile-actions .btn,.amcham-profile-actions .btn{width:100%;justify-content:center}.executive-profile-block{padding:32px 0}.amcham-profile-card{padding:22px}.amcham-profile-media{aspect-ratio:4/5}.amcham-profile-media img{object-position:50% 36%}}
@media (prefers-reduced-motion:reduce){.amcham-contact-item{transition:none}}

/* Speier Viko profile facts — balanced card grid 2026-07-14 */
.person-profile-facts .entity-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  border-top:0;
  align-items:stretch;
}
.person-profile-facts .entity-facts>div{
  min-width:0;
  height:100%;
  padding:20px 22px 22px;
  border:1px solid rgba(27,27,27,.12);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}
.person-profile-facts .entity-facts dt,
.person-profile-facts .entity-facts dd{
  margin:0;
  padding:0;
  border:0;
}
.person-profile-facts .entity-facts dt{
  margin-bottom:10px;
  padding-right:0;
  font-weight:700;
  line-height:1.35;
}
.person-profile-facts .entity-facts dd{
  color:var(--graphite);
  line-height:1.55;
  overflow-wrap:anywhere;
}
@media (max-width:720px){
  .person-profile-facts .entity-facts{grid-template-columns:1fr;gap:10px}
  .person-profile-facts .entity-facts>div{padding:18px 18px 20px;border-radius:14px}
}


/* Reviews consent and lazy-loader feedback */
.reviews-consent-note{margin:22px 0 8px;padding:18px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03)}
.reviews-consent-note p{margin:0 0 12px;color:var(--muted);max-width:66ch}
.review-drawer.reviews-loading [class*="elfsight-app-"]{min-height:120px;position:relative}
.review-drawer.reviews-loading [class*="elfsight-app-"]::before{content:attr(data-loading-label);display:block;padding:24px 0;color:var(--muted);font-size:.95rem}


/* 2026-07-15 — global H1 refinement: slightly smaller, calmer hierarchy */
h1{font-size:clamp(2.35rem,3.45vw,2.95rem);}
.hero.hero-image-first h1{font-size:clamp(2.55rem,3.8vw,3.25rem);}
.oeuvre-hero h1{font-size:clamp(2.35rem,3.35vw,2.85rem);}
@media (max-width:900px){
  h1{font-size:clamp(2.18rem,5.05vw,2.7rem);}
  .hero.hero-image-first h1{font-size:clamp(2.3rem,5.45vw,2.85rem);}
}
@media (max-width:680px){
  h1,.hero.hero-image-first h1{font-size:clamp(2.02rem,8.9vw,2.32rem);line-height:1.1;}
}
@media (max-width:400px){
  h1,.hero.hero-image-first h1{font-size:2rem;}
}

/* 2026-07 production audit: stable controls and readable cards. */
.strategy-process-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));}
.strategy-process-card,.card,.service-card,.option-row,.category-card{word-break:normal;overflow-wrap:normal;hyphens:manual;}
.option-row,.category-card{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:flex-start;gap:.75rem;min-height:56px;padding-right:58px;padding-bottom:52px;}
.option-row input,.category-card input{position:static!important;margin:.18rem 0 0 0!important;transform:none!important;inline-size:1.05rem;block-size:1.05rem;}
.option-row span,.category-card span{min-width:0;line-height:1.42;}
.info-tip{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:1px solid rgba(22,24,29,.22);border-radius:50%;background:#fff;color:var(--ink);font-family:Georgia,serif;font-size:1rem;font-style:italic;line-height:1;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease;}
.info-tip:hover{border-color:var(--gold-deep);background:#f7f3e9;transform:translateY(-1px);}
.info-tip:focus-visible{outline:3px solid rgba(177,135,45,.35);outline-offset:2px;}
.info-modal[hidden]{display:none;}
.info-modal{position:fixed;inset:0;z-index:10040;display:flex;align-items:center;justify-content:center;padding:clamp(18px,4vw,48px);background:rgba(10,11,14,.72);opacity:0;transition:opacity .18s ease;}
.info-modal.is-open{opacity:1;}
.info-modal-panel{width:min(100%,560px);max-height:min(78vh,680px);overflow:auto;border:1px solid rgba(177,135,45,.34);border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 28px 80px rgba(0,0,0,.28);transform:translateY(10px);transition:transform .18s ease;}
.info-modal.is-open .info-modal-panel{transform:translateY(0) scale(1);}
.info-modal-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:22px 24px 18px;border-bottom:1px solid rgba(22,24,29,.1);}
.info-modal-symbol{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--gold-deep);color:#fff;font-family:Georgia,serif;font-size:1.05rem;font-style:italic;}
.info-modal-header h2{margin:0;font-size:clamp(1.18rem,2.8vw,1.42rem);line-height:1.2;}
.info-modal-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(22,24,29,.14);border-radius:50%;background:#fff;color:var(--ink);font-size:1.55rem;line-height:1;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease;}
.info-modal-close:hover{border-color:var(--gold-deep);background:#f7f3e9;transform:scale(1.04);}
.info-modal-close:focus-visible{outline:3px solid rgba(177,135,45,.35);outline-offset:3px;}
.info-modal-content{padding:22px 24px 26px;color:var(--muted);font-size:1rem;line-height:1.7;}
body.info-modal-open{overflow:hidden;}
@media (max-width:560px){.info-modal{align-items:flex-end;padding:14px}.info-modal-panel{width:100%;max-height:82vh;border-radius:10px}.info-modal-header{padding:18px 18px 15px}.info-modal-content{padding:18px 18px 22px}}
@media (prefers-reduced-motion:reduce){.info-modal,.info-modal-panel{transition:none;}}
.field.consent{display:flex;align-items:flex-start;gap:.75rem;}
.field.consent input{position:static!important;margin:.2rem 0 0!important;}

/* 2026-07 Apple-inspired responsive UX baseline. */
body{font-size:17px;line-height:1.55;}
h1,.hero.hero-image-first h1{letter-spacing:-.02em;}
input,select,textarea,button{font-size:max(16px,1rem);}
.menu-toggle,.lang-switch a{min-width:44px;min-height:44px;}
@media (max-width:760px){
  .site-footer a{display:inline-flex;align-items:center;min-height:44px;}
  .footer-accordion summary{min-height:44px;display:flex;align-items:center;}
  .category-grid{grid-template-columns:1fr;}
}
/* Partners: locally hosted historical client marks and verified memberships. */
.partner-hero .lead{max-width:760px}
.partner-intro{max-width:780px;margin-bottom:2rem}
.partner-intro p{color:var(--muted);line-height:1.7}
.partner-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.partner-card{display:flex;min-width:0;min-height:190px;margin:0;padding:1.2rem;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border:1px solid #292929;background:#121212;color:#f3f3f0;text-align:center;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.partner-card:hover,.partner-card:focus-visible{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 14px 34px rgba(0,0,0,.08)}
.partner-logo{display:flex;width:100%;height:112px;align-items:center;justify-content:center}
.partner-logo img{display:block;max-width:82%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1) brightness(1.35);opacity:.88}
.partner-logo img[src$="/red-bull.png"],
.partner-logo img[src$="/ferrari.png"],
.partner-logo img[src$="/gumball-3000.png"],
.partner-logo img[src$="/oreo.png"],
.partner-logo img[src$="/hell-energy.png"],
.partner-logo img[src$="/the-voice.png"]{filter:none;opacity:1}
.partner-name{font-size:.78rem;font-weight:650;line-height:1.35;letter-spacing:.04em;text-transform:uppercase}
.partner-memberships{padding:clamp(4rem,8vw,7rem) 0;background:#f4f3ef}
.partner-grid-memberships{grid-template-columns:repeat(5,minmax(0,1fr))}
.partner-cta{margin:2.5rem 0 0;text-align:center}
@media (max-width:900px){.partner-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.partner-grid-memberships{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:620px){.partner-grid,.partner-grid-memberships{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.partner-card{min-height:150px;padding:.8rem}.partner-logo{height:84px}.partner-name{font-size:.7rem}}
@media (max-width:380px){.partner-grid,.partner-grid-memberships{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.partner-card{transition:none}.partner-card:hover,.partner-card:focus-visible{transform:none}}

/* BANHALMI_OFFICIAL_ECOSYSTEM */
.banhalmi-ecosystem{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem 1.25rem;margin:1.6rem auto 0;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.16);font-size:.78rem;line-height:1.5}.banhalmi-ecosystem a{color:inherit;text-decoration:none;opacity:.76}.banhalmi-ecosystem a:hover,.banhalmi-ecosystem a:focus-visible{opacity:1;text-decoration:underline;text-underline-offset:.2em}.banhalmi-ecosystem a[aria-current="page"]{opacity:1;font-weight:600}@media(max-width:640px){.banhalmi-ecosystem{align-items:center;flex-direction:column;gap:.55rem}}

/* Trust Center and legacy layout normalization — 2026-08-03.
   Some audited pages use the newer container/card-grid names. Keep both
   naming conventions on the same responsive design-system primitives. */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:28px}
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.4vw,26px);align-items:stretch}
.card-grid>.card{min-width:0;height:100%}
.pricing-licensing-clarity .section-head{max-width:var(--wide-textw)}
.pricing-licensing-clarity .button-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:clamp(26px,3.5vw,42px)}
.trust-hero{padding:clamp(64px,9vw,108px) 0 clamp(48px,7vw,78px)}
.trust-hero .lead{max-width:66ch}
.trust-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.trust-card{display:flex;flex-direction:column;gap:12px}
.trust-card p{flex:1}
.trust-card .more{margin-top:auto}
.trust-note{max-width:var(--wide-textw);padding:24px;border:1px solid var(--gold-line);border-radius:14px;background:var(--gold-soft)}
@media(max-width:900px){.trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.card-grid,.trust-grid{grid-template-columns:1fr}.pricing-licensing-clarity .button-row{align-items:stretch;flex-direction:column}.pricing-licensing-clarity .button-row .button,.pricing-licensing-clarity .button-row .btn{width:100%;justify-content:center;text-align:center}}
@media(max-width:480px){.container{padding-inline:20px}}

/* HUF quote total guard */
html[lang^="hu"] .quote-total{font-variant-numeric:tabular-nums;font-size:clamp(2rem,7vw,3.5rem);overflow-wrap:anywhere}


/* PROJECT-FRAMEWORK-DRAWER:START */
.project-framework-drawer{
  margin:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.project-framework-drawer > summary{
  list-style:none;
  cursor:pointer;
  max-width:var(--maxw);
  margin:0 auto;
  padding:30px 28px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:18px;
}
.project-framework-drawer > summary::-webkit-details-marker{display:none;}
.project-framework-summary-copy{display:grid;gap:4px;min-width:0;}
.project-framework-summary-copy small{
  color:var(--gold-deep);
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.project-framework-summary-copy strong{
  color:var(--navy);
  font-family:var(--font-display);
  font-size:clamp(1.1rem,2vw,1.35rem);
  line-height:1.22;
  letter-spacing:-.014em;
}
.project-framework-action{color:var(--muted);font-size:.9rem;white-space:nowrap;}
.project-framework-toggle{
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--navy);
  font-size:1.35rem;
  line-height:1;
  transition:transform .2s ease,border-color .2s ease;
}
.project-framework-drawer > summary:hover .project-framework-toggle{border-color:var(--gold-deep);}
.project-framework-drawer[open] > summary{border-bottom:1px solid var(--line);}
.project-framework-drawer[open] .project-framework-toggle{transform:rotate(45deg);}
.project-framework-content > .section-band{border-top:0;}
.project-framework-content > .section-band:nth-child(even){background:var(--bg);}
@media (max-width:720px){
  .project-framework-drawer > summary{grid-template-columns:minmax(0,1fr) auto;padding:24px 28px;}
  .project-framework-action{display:none;}
}
@media (max-width:480px){
  .project-framework-drawer > summary{padding-left:20px;padding-right:20px;gap:12px;}
  .project-framework-summary-copy strong{font-size:1.05rem;}
}
/* PROJECT-FRAMEWORK-DRAWER:END */

/* SERVICE-CONVERSION-PATH:START */
.service-hero-actions{margin:28px 0 32px;}
#selected-work,#next-step{scroll-margin-top:92px;}
@media (max-width:640px){.service-hero-actions{align-items:flex-start;margin-top:24px;margin-bottom:28px;}}
/* SERVICE-CONVERSION-PATH:END */

/* FINE-ART-PRIVATE-JOURNEY:START */
.fine-art-private-actions{margin:28px 0 32px;}
#fine-art-selected-work,#private-conversation{scroll-margin-top:92px;}
.fine-art-archive-drawer{margin:42px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.fine-art-archive-drawer > summary{list-style:none;cursor:pointer;padding:25px 0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;}
.fine-art-archive-drawer > summary::-webkit-details-marker{display:none;}
.fine-art-archive-summary-copy{display:grid;gap:4px;min-width:0;}
.fine-art-archive-summary-copy small{color:var(--gold-deep);font-size:.76rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;}
.fine-art-archive-summary-copy strong{color:var(--navy);font-family:var(--font-display);font-size:clamp(1.08rem,2vw,1.34rem);line-height:1.22;letter-spacing:-.014em;}
.fine-art-archive-action{color:var(--muted);font-size:.9rem;white-space:nowrap;}
.fine-art-archive-toggle{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--navy);font-size:1.35rem;line-height:1;transition:transform .2s ease,border-color .2s ease;}
.fine-art-archive-drawer > summary:hover .fine-art-archive-toggle{border-color:var(--gold-deep);}
.fine-art-archive-drawer[open] > summary{border-bottom:1px solid var(--line);}
.fine-art-archive-drawer[open] .fine-art-archive-toggle{transform:rotate(45deg);}
.fine-art-archive-content{padding:34px 0 8px;}
.fine-art-extended-grid{margin-top:0;}
#archive-references .fine-art-resource-actions{margin-top:30px;}
@media (max-width:720px){.fine-art-archive-drawer > summary{grid-template-columns:minmax(0,1fr) auto;}.fine-art-archive-action{display:none;}}
@media (max-width:640px){.fine-art-private-actions{align-items:flex-start;margin-top:24px;margin-bottom:28px;}}
/* FINE-ART-PRIVATE-JOURNEY:END */
/* PAGESPEED-STAGE32:START */
/* Footer-only accessible gold: #CBB45F on #202530 is ~7.5:1 (WCAG AAA). */
.site-footer{--footer-gold:#CBB45F;}
.site-footer h3,
.site-footer .footer-accordion summary{
  color:var(--footer-gold)!important;
  opacity:1!important;
  font-weight:650!important;
}
.site-footer .footer-accordion summary:hover,
.site-footer .footer-accordion summary:focus-visible{color:#fff!important;}
.site-footer .footer-bottom{color:#AEB4C2!important;}
.site-footer .footer-bottom a,
.site-footer .footer-bottom button{color:#D2D2D7!important;}
.site-footer .footer-bottom a:hover,
.site-footer .footer-bottom a:focus-visible,
.site-footer .footer-bottom button:hover,
.site-footer .footer-bottom button:focus-visible{color:#fff!important;}
/* PAGESPEED-STAGE32:END */


/* STAGE43-INLINE-PRESENTATION:START */
/* Reusable form/contact presentation belongs to the design system, never HTML attributes. */
.smart-quote-layout .location-cards{margin-top:28px;}
.smart-quote-layout .field.consent label{font-weight:400;}
.form [data-form-note]{margin-top:16px;color:var(--gold-deep);}
/* STAGE43-INLINE-PRESENTATION:END */


/* STAGE46-FOOTER-VIEWPORT-AND-NAV-CLARITY */
/* Short pages must end on the footer, not expose the white document canvas. */



/* Footer brand uses the high-contrast dark-surface gold; the global brand span uses the light-surface text gold. */



/* STAGE47-UI-DESIGN-CONTRACT:START */
/* Final visual contract shared conceptually with BANHALMI ART: one spacing
   scale, deterministic image treatment, restrained panels and stable gallery
   gutters. */
:root{
  --ui-space-1:8px;
  --ui-space-2:12px;
  --ui-space-3:16px;
  --ui-space-4:24px;
  --ui-space-5:32px;
  --ui-space-6:48px;
  --ui-space-7:64px;
  --ui-space-8:96px;
  --ui-image-radius:4px;
  --ui-panel-radius:12px;
  --ui-gallery-gap:16px;
  --ui-content-max:1200px;
  --ui-reading-max:68ch;
}

/* Footer viewport contract. */
html,body{min-height:100%}

body>main{flex:1 0 auto;width:100%;min-width:0}
body>.site-footer{margin-top:auto;width:100%}
.site-footer .brand,.site-footer .brand span,.site-footer .brand-word{color:#CBB45F}

/* Photographic surfaces: subtle 4px corner, never large app-card rounding. */
.editorial-hero,.editorial-image,.pf-item,.lb img{border-radius:var(--ui-image-radius)}
.editorial-hero img,.editorial-image img,.pf-item img{border-radius:inherit}

/* Portfolio masonry: exactly the same horizontal and vertical rhythm. */
.pf-grid{columns:3;column-gap:var(--ui-gallery-gap)}
.pf-item{break-inside:avoid;margin:0 0 var(--ui-gallery-gap);width:100%}
@media(max-width:900px){.pf-grid{columns:2}}
@media(max-width:560px){.pf-grid{columns:1}}

/* Information cards stay restrained and consistent. */
.location-cards,.contact-grid{gap:var(--ui-space-4)}
.location-cards .card,.contact-grid .card{border-radius:var(--ui-panel-radius)}

/* Editorial width: long-form copy should not become a wall of text. */
.prose,.legal,.structural-prose{max-width:var(--ui-reading-max)}
/* STAGE47-UI-DESIGN-CONTRACT:END */


/* STAGE48-LAYOUT-CACHE-CONTRACT:START */
/* Safari-safe document floor + verified trust-card rhythm. */
html{min-height:100%;background:#202530!important}
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body>main,#main{flex:1 0 auto;width:100%;min-width:0}
body>.site-footer,.site-footer{flex:0 0 auto;width:100%}
.trust-proof .grid-3{gap:24px!important;row-gap:24px!important}
.trust-proof .grid-3>.card{margin:0!important;border-radius:12px}
@media(max-width:760px){.trust-proof .grid-3{gap:16px!important;row-gap:16px!important}}
/* STAGE48-LAYOUT-CACHE-CONTRACT:END */


/* STAGE52-TYPE-ACCENT:START — sparse Apple-like semantic emphasis */
.title-accent{color:var(--title-accent)}
.title-accent--block{display:block}
/* STAGE52-TYPE-ACCENT:END */

/* STAGE68-EDITORIAL-MICROCOPY:START
   Keep supporting information attached to the action it qualifies. The small
   type is intentionally quiet, but remains above the 14 px reading floor. */
.hero-booking-option{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  min-width:0;
}
.hero-booking-option .btn-link{margin:0}
.hero-booking-note{
  margin:0;
  max-width:32ch;
  color:var(--muted);
  font-size:max(.82rem,14px);
  line-height:1.4;
  letter-spacing:-.006em;
}
@media(max-width:620px){
  .hero-booking-option{width:100%}
  .hero-booking-note{max-width:none}
}
/* STAGE68-EDITORIAL-MICROCOPY:END */


/* STAGE-FOOTER-ECOSYSTEM-POLISH-20260813 */
/* Keep the three official BANHALMI destinations compact, balanced and visible
   as one intentional footer navigation row at every viewport. */
.site-footer .banhalmi-ecosystem{
  width:min(100%,760px);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
  justify-content:center;
  gap:0;
  margin:1.35rem auto 0;
  padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.16);
  text-align:center;
}
.site-footer .banhalmi-ecosystem a{
  min-width:0;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:.65rem .8rem;
  border-right:1px solid rgba(255,255,255,.12);
  color:#AEB4C2;
  opacity:.9;
  font-size:.86rem;
  line-height:1.3;
  text-align:center;
  text-wrap:balance;
}
.site-footer .banhalmi-ecosystem a:last-child{border-right:0}
.site-footer .banhalmi-ecosystem a[aria-current="page"]{color:#fff;opacity:1;font-weight:600}
.site-footer .banhalmi-ecosystem a:hover,
.site-footer .banhalmi-ecosystem a:focus-visible{color:#fff;opacity:1}
@media(max-width:640px){
  .site-footer .banhalmi-ecosystem{
    width:100%;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    gap:0;
    margin-top:1.2rem;
    padding-top:.8rem;
  }
  .site-footer .banhalmi-ecosystem a{
    min-height:56px;
    padding:.55rem .38rem;
    font-size:clamp(.76rem,3.25vw,.84rem);
    line-height:1.25;
    overflow-wrap:anywhere;
  }
}


/* STAGE68-FIRST-PRINCIPLES-APPLE:START */
/* Apple-inspired discipline, BANHALMI identity: one idea per block, restrained surfaces,
   readable measures, balanced display type and an obvious next action. */
main h1,main h2,main h3{text-wrap:balance;}
main p,main li{overflow-wrap:anywhere;}
main p{max-width:68ch;}
main .btn,main a.btn,.next-step-selector a,.fp-decision-system .fp-primary-action{border-radius:999px;}
main .card,.next-step-selector .card,main details{box-shadow:none;}
.next-step-selector{max-width:1180px;margin-inline:auto;}
.next-step-selector .card{border-radius:28px;padding:clamp(1.4rem,2.7vw,2.25rem);border:1px solid rgba(32,37,48,.10);}
.next-step-selector .card h2,.next-step-selector .card h3{letter-spacing:-.025em;line-height:1.08;}
.fp-decision-system{background:#f5f5f7;color:#1d1d1f;padding:clamp(4.75rem,8vw,8.5rem) clamp(1.25rem,5vw,4rem);}
.fp-decision-inner{width:min(1180px,100%);margin:0 auto;}
.fp-decision-eyebrow{margin:0 0 .75rem;color:#8A681F;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.fp-decision-system h2{margin:0;max-width:15ch;font-size:clamp(2.45rem,5.5vw,5.25rem);line-height:.96;letter-spacing:-.055em;font-weight:700;}
.fp-decision-lead{margin:clamp(1.2rem,2.3vw,1.8rem) 0 0;max-width:58ch!important;color:#5b616c;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.5;}
.fp-decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,1.5vw,1.15rem);margin-top:clamp(2.2rem,4vw,3.75rem);}
.fp-choice{display:flex;flex-direction:column;justify-content:space-between;min-height:190px;padding:clamp(1.4rem,2.4vw,2rem);border:1px solid rgba(32,37,48,.09);border-radius:28px;background:#fff;color:#1d1d1f;text-decoration:none;transition:transform .22s ease,border-color .22s ease;}
.fp-choice:hover{transform:translateY(-2px);border-color:rgba(138,104,31,.35);}
.fp-choice:focus-visible{outline:3px solid #8A681F;outline-offset:3px;}
.fp-choice strong{display:block;max-width:17ch;font-size:clamp(1.18rem,1.8vw,1.5rem);line-height:1.08;letter-spacing:-.03em;}
.fp-choice span{display:block;margin-top:1rem;max-width:31ch;color:#6e7480;font-size:.96rem;line-height:1.45;}
.fp-choice em{display:block;margin-top:1.35rem;color:#8A681F;font-style:normal;font-weight:650;font-size:.92rem;}
.fp-decision-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.1rem;margin-top:clamp(1.7rem,3vw,2.4rem);}
.fp-decision-actions .btn{margin:0;}
.fp-decision-actions .fp-text-action{color:#1d1d1f;font-weight:600;text-underline-offset:.2em;}
@media(max-width:900px){.fp-decision-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.fp-choice{min-height:172px;}}
@media(max-width:620px){.fp-decision-system{padding:4rem 1.15rem;}.fp-decision-system h2{font-size:clamp(2.35rem,12vw,3.7rem);}.fp-decision-grid{grid-template-columns:1fr;gap:.72rem;margin-top:2rem;}.fp-choice{min-height:0;padding:1.35rem 1.25rem;border-radius:22px;}.fp-choice strong{max-width:none;font-size:1.2rem;}.fp-choice span{margin-top:.55rem;}.fp-choice em{margin-top:.9rem;}.fp-decision-actions{align-items:stretch;flex-direction:column;}.fp-decision-actions .btn,.fp-decision-actions .fp-text-action{width:100%;justify-content:center;text-align:center;min-height:48px;display:inline-flex;align-items:center;}}
@media(prefers-reduced-motion:reduce){.fp-choice{transition:none;}.fp-choice:hover{transform:none;}}
/* STAGE68-FIRST-PRINCIPLES-APPLE:END */


/* STAGE69-FINE-ART-PATH:START */
.fp-art-path{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;margin-top:1.35rem;color:#6e7480;font-size:.95rem;line-height:1.45;}
.fp-art-path a{color:#1d1d1f;font-weight:650;text-decoration:none;text-underline-offset:.2em;}
.fp-art-path a:hover{text-decoration:underline;}
.fp-art-path a:focus-visible{outline:3px solid #8A681F;outline-offset:3px;border-radius:6px;}
@media(max-width:620px){.fp-art-path{display:block;margin-top:1.15rem;}.fp-art-path span{display:block;margin-bottom:.35rem;}.fp-art-path a{display:inline-block;min-height:44px;padding-block:.65rem;}}
/* STAGE69-FINE-ART-PATH:END */

main :is(h1,h2) .bn-heading-accent{color:#8b6f18!important;-webkit-text-fill-color:currentColor!important;background:none!important} main [data-surface="dark"] :is(h1,h2) .bn-heading-accent,main .trust-proof :is(h1,h2) .bn-heading-accent,main .cta-band :is(h1,h2) .bn-heading-accent{color:#ead67f!important} main>section[data-surface="white"]{background:#fff!important;color:#1d1d1f!important} main>section[data-surface="soft"]{background:#f5f5f7!important;color:#1d1d1f!important} main>section[data-surface="dark"]{background:#0d1b2e!important;color:#f7f9fc!important} .service-deep-dive{margin:0;border:0;border-top:1px solid rgba(13,27,46,.12);border-bottom:1px solid rgba(13,27,46,.12);border-radius:0;background:#fff;color:#1d1d1f} .service-deep-dive>summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;width:min(1180px,calc(100% - 40px));margin-inline:auto;padding:18px 0;cursor:pointer;list-style:none;font-weight:600} .service-deep-dive>summary::-webkit-details-marker{display:none}.service-deep-dive>summary::after{content:'+';font-size:1.45rem;font-weight:400;color:#596270}.service-deep-dive[open]>summary::after{content:'−'} .service-deep-dive>.service-deep-dive-content{border-top:1px solid rgba(13,27,46,.12)} @media(max-width:760px){.service-deep-dive>summary{width:min(100% - 32px,1180px);min-height:68px;gap:16px}}

/* STAGE79-FINAL-POLISH */
.smart-quote-layout .quote-summary-card{box-shadow:none!important}
.fine-art-archive-continuation,.fine-art-archive-continuation .fine-art-archive-content{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.fine-art-archive-continuation .fine-art-extended-grid{margin-top:var(--jony-gap)!important}

/* === SOURCE: mega-menu.css === */
/* BANHALMI full-screen descriptive navigation */
:root{--bn-menu-bg:#202530;--bn-menu-ink:#f5f5f7;--bn-menu-soft:#a7a7ad;--bn-menu-gold:#b79c44;--bn-menu-line:rgba(183,156,68,.25)}
.site-header .nav-links{display:none!important}
.site-header .menu-btn{display:flex!important;position:relative;z-index:1002}
.site-header .lang-switch{margin-left:auto}
.bn-mega-menu[hidden]{display:none!important}
.bn-mega-menu{position:fixed;inset:0;z-index:1000;background:var(--bn-menu-bg);backdrop-filter:none;-webkit-backdrop-filter:none;overflow-y:auto;overscroll-behavior:contain;color:var(--bn-menu-ink);opacity:0;animation:bnMenuIn .28s ease forwards}
.bn-mega-panel{width:min(1180px,100%);min-height:100%;margin:0 auto;padding:clamp(7.2rem,12vw,9rem) clamp(1.25rem,6vw,5.5rem) clamp(3rem,7vw,5rem)}
.bn-mega-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--bn-menu-line)}
.bn-mega-eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--bn-menu-gold)}
.bn-mega-intro p{margin:0;color:var(--bn-menu-soft);font-size:.9rem;letter-spacing:.02em}
.bn-mega-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,4vw,4.5rem);padding:clamp(2.3rem,5vw,4rem) 0}
.bn-mega-column{min-width:0}
.bn-mega-item{padding:.45rem 0 1.05rem}
.bn-mega-link{display:inline-block;color:var(--bn-menu-ink)!important;font-size:clamp(1.55rem,3.2vw,2.75rem);font-weight:620;line-height:1.06;letter-spacing:-.035em;text-decoration:none;transition:color .2s ease,transform .2s ease}
.bn-mega-link:hover,.bn-mega-link:focus-visible,.bn-mega-link.active,.bn-mega-link[aria-current="page"]{color:var(--bn-menu-gold)!important;opacity:1;transform:translateX(.16rem)}
.bn-mega-link.active,.bn-mega-link[aria-current="page"]{text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:currentColor}
.bn-mega-desc{max-width:43ch;margin:.36rem 0 0;color:var(--bn-menu-soft);font-size:clamp(.92rem,1.1vw,1.02rem);line-height:1.48;letter-spacing:-.01em}
.bn-mega-section-head{margin-bottom:1.2rem;padding-bottom:.9rem;border-bottom:1px solid var(--bn-menu-line)}
.bn-mega-section-head>span{display:block;color:var(--bn-menu-gold);font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.bn-mega-section-head p{margin:.35rem 0 0;color:var(--bn-menu-soft);font-size:.96rem}
.bn-mega-service{padding:.2rem 0 1.05rem}
.bn-mega-service .bn-mega-link{font-size:clamp(1.28rem,2.25vw,2rem)}
.bn-mega-footer{display:block;min-width:0}
.bn-mega-footer .bn-mega-item{margin:0;padding:.2rem 0 1.05rem;background:transparent}
.bn-mega-footer .bn-mega-link{font-size:clamp(1.12rem,1.8vw,1.45rem)}
.bn-mega-footer .bn-mega-desc{font-size:.9rem}
.bn-mega-cta,.bn-mega-art{margin-top:.75rem!important;padding:1rem!important;border:1px solid var(--bn-menu-line);border-radius:14px;background:linear-gradient(135deg,rgba(183,156,68,.14),rgba(255,255,255,.025))!important}
body.bn-mega-open{overflow:hidden}
body.bn-mega-open .site-header{z-index:1001;background:var(--bn-menu-bg)!important;box-shadow:none!important}
body.bn-mega-open .site-header .nav{background:transparent!important}
body.bn-mega-open .site-header .brand-word{color:var(--bn-menu-ink)!important}
body.bn-mega-open .site-header .brand-logo{filter:brightness(0) invert(1)}
body.bn-mega-open .menu-btn span{background:var(--bn-menu-ink)!important}
body.bn-mega-open .menu-btn span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.bn-mega-open .menu-btn span:nth-child(2){opacity:0}
body.bn-mega-open .menu-btn span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
body.bn-mega-open .lang-switch{position:relative;z-index:1002}
body.bn-mega-open .lang-switch a,body.bn-mega-open .lang-switch .sep{color:var(--bn-menu-soft)!important}
body.bn-mega-open .lang-switch a.active{color:var(--bn-menu-gold)!important}
@keyframes bnMenuIn{to{opacity:1}}
@media(min-width:861px){
  .bn-mega-menu{overflow:hidden}
  .bn-mega-panel{height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:clamp(5.2rem,8.5vh,6.4rem) clamp(2rem,5vw,5rem) clamp(1rem,2.2vh,1.5rem)}
  .bn-mega-intro{padding-bottom:clamp(.55rem,1.2vh,.85rem)}
  .bn-mega-grid{min-height:0;align-content:center;gap:clamp(2rem,5vw,5rem);padding:clamp(.75rem,2vh,1.35rem) 0}
  .bn-mega-item{padding:.1rem 0 clamp(.38rem,.9vh,.7rem)}
  .bn-mega-link{font-size:clamp(1.25rem,2.2vh,1.9rem);line-height:1.02}
  .bn-mega-desc{margin-top:.2rem;font-size:clamp(.72rem,1.25vh,.88rem);line-height:1.3}
  .bn-mega-section-head{margin-bottom:clamp(.45rem,1vh,.75rem);padding-bottom:clamp(.4rem,.8vh,.65rem)}
  .bn-mega-section-head>span{font-size:clamp(.66rem,1.15vh,.78rem)}
  .bn-mega-section-head p{margin-top:.2rem;font-size:clamp(.72rem,1.2vh,.86rem)}
  .bn-mega-service{padding:.05rem 0 clamp(.35rem,.8vh,.62rem)}
  .bn-mega-service .bn-mega-link{font-size:clamp(1.08rem,1.8vh,1.55rem)}
  .bn-mega-footer .bn-mega-item{padding:.05rem 0 clamp(.35rem,.8vh,.62rem)}
  .bn-mega-footer .bn-mega-link{font-size:clamp(.95rem,1.45vh,1.2rem)}
  .bn-mega-footer .bn-mega-desc{font-size:clamp(.68rem,1.12vh,.8rem)}
}
@media(max-width:860px){
  .bn-mega-panel{padding-top:6.6rem}
  .bn-mega-intro{align-items:flex-start;flex-direction:column;gap:.4rem}
  .bn-mega-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.15rem;padding:2rem 0 2.4rem}
  .bn-mega-primary{display:block}
  .bn-mega-footer{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem;border-top:1px solid var(--bn-menu-line);padding-top:1.8rem}
  .bn-mega-footer .bn-mega-section-head{grid-column:1/-1}
  .bn-mega-service .bn-mega-link{font-size:1.45rem}
}
@media(max-width:620px){
  .site-header .lang-switch{gap:.25rem}
  .bn-mega-panel{padding:5.9rem 1.15rem 2.5rem}
  .bn-mega-intro p{font-size:.82rem}
  .bn-mega-primary{grid-template-columns:1fr}
  .bn-mega-grid{grid-template-columns:1fr}
  .bn-mega-footer{grid-column:auto;display:block}
  .bn-mega-item{padding:.2rem 0 .92rem}
  .bn-mega-link{font-size:clamp(1.55rem,8vw,2.15rem)}
  .bn-mega-desc{font-size:.91rem;line-height:1.42}
  .bn-mega-footer .bn-mega-item{padding:1.15rem 1rem 1.25rem}
}
/* Touch Safari can retain :focus-visible after tapping a mega-menu link. Keep a
   visible accessibility cue without restoring the old rounded/pill frame. */
@media (hover:none) and (pointer:coarse){
  .bn-mega-link:focus-visible{
    outline:0!important;
    outline-offset:0!important;
    border-radius:0!important;
    text-decoration-line:underline;
    text-decoration-thickness:2px;
    text-underline-offset:.22em;
    text-decoration-color:currentColor;
  }
}
@media(prefers-reduced-motion:reduce){.bn-mega-menu{animation:none;opacity:1}.bn-mega-link{transition:none}}

/* Stage 53 — Apple-like editorial colour emphasis across the business site.
   The business palette stays lighter and more restrained than ART: cool teal/navy
   resolves into BANHALMI gold on light surfaces; dark CTA areas use a soft white/
   blue/gold version. Existing semantic spans keep their meaning and readable
   solid-colour fallback when text clipping is unavailable. */
:root{--bn-text-accent:#2F6F78;--bn-text-accent-soft:#6F93A2;--bn-text-accent-gold:#8A681F}
html body :is(.title-accent,.semantic-emphasis){color:var(--bn-text-accent)!important;font-weight:inherit}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  html body :is(h1,h2,h3) :is(.title-accent,.semantic-emphasis),
  html body .hero :is(h1,h2) .title-accent{
    background:linear-gradient(90deg,#202530 0%,#2F6F78 58%,#8A681F 100%)!important;
    -webkit-background-clip:text!important;background-clip:text!important;
    -webkit-text-fill-color:transparent!important;color:transparent!important;
  }
  html body :is(.cta-band,.dark-band,.section-dark) :is(h1,h2,h3) :is(.title-accent,.semantic-emphasis){
    background:linear-gradient(90deg,#F5F5F7 0%,#AFC4D9 62%,#B79C44 100%)!important;
    -webkit-background-clip:text!important;background-clip:text!important;
    -webkit-text-fill-color:transparent!important;color:transparent!important;
  }
}

/* When a page has no author-marked span in its hero, the hero title itself gets
   the same restrained three-stop treatment. This keeps all language versions
   visually coherent without rewriting heading text or changing SEO semantics. */
html body .hero h1:not(:has(.title-accent,.semantic-emphasis)){color:#202530!important}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  html body .hero h1:not(:has(.title-accent,.semantic-emphasis)){
    background:linear-gradient(90deg,#202530 0%,#2F6F78 72%,#8A681F 100%)!important;
    -webkit-background-clip:text!important;background-clip:text!important;
    -webkit-text-fill-color:transparent!important;color:transparent!important;
  }
}

/* Pricing/package vocabulary authority. The site now presents the quote builder
   consistently as a pricing-and-packages destination in HU / EN / DE. */
html[lang^="hu"] .bn-mega-cta .bn-mega-link,
html[lang^="hu"] .next-step-selector .card:first-child h3,
html[lang^="hu"] a.nav-cta{font-size:0!important}
html[lang^="hu"] .bn-mega-cta .bn-mega-link::after,
html[lang^="hu"] .next-step-selector .card:first-child h3::after,
html[lang^="hu"] a.nav-cta::after{content:"Árak és csomagajánlatok";font-size:initial}
html[lang^="en"] .bn-mega-cta .bn-mega-link,
html[lang^="en"] .next-step-selector .card:first-child h3,
html[lang^="en"] a.nav-cta{font-size:0!important}
html[lang^="en"] .bn-mega-cta .bn-mega-link::after,
html[lang^="en"] .next-step-selector .card:first-child h3::after,
html[lang^="en"] a.nav-cta::after{content:"Pricing & packages";font-size:initial}
html[lang^="de"] .bn-mega-cta .bn-mega-link,
html[lang^="de"] .next-step-selector .card:first-child h3,
html[lang^="de"] a.nav-cta{font-size:0!important}
html[lang^="de"] .bn-mega-cta .bn-mega-link::after,
html[lang^="de"] .next-step-selector .card:first-child h3::after,
html[lang^="de"] a.nav-cta::after{content:"Preise & Pakete";font-size:initial}
html body .bn-mega-cta .bn-mega-link::after{font-size:clamp(.95rem,1.45vh,1.2rem)!important;line-height:1.08;letter-spacing:-.02em}
html body .next-step-selector .card:first-child h3::after{font-size:1.2rem!important;font-weight:600;line-height:1.2;letter-spacing:-.014em}
html body a.nav-cta::after{font-size:.85rem!important;font-weight:500;line-height:1.3;letter-spacing:-.006em}


/* STAGE63-DESKTOP-MENU-FOOTER:START
   Desktop navigation is a single-screen editorial overview. The third column
   is internally split so support, journal, pricing and ART stay visible without
   viewport scrolling. Mobile keeps the existing scrollable stacked pattern. */
.site-footer{
  background:
    radial-gradient(circle at 72% 0%,rgba(183,156,68,.11) 0,rgba(183,156,68,0) 32%),
    linear-gradient(145deg,#2D3444 0%,#29303F 46%,#202530 100%)!important;
}
@media(min-width:861px){
  .bn-mega-menu{overflow:hidden!important}
  .bn-mega-panel{
    width:min(1440px,100%);height:100dvh;min-height:0;overflow:hidden;
    display:grid;grid-template-rows:auto minmax(0,1fr);
    padding:clamp(4.65rem,8vh,5.6rem) clamp(1.75rem,4vw,4.5rem) clamp(.7rem,1.6vh,1.1rem);
  }
  .bn-mega-intro{align-items:center;padding-bottom:clamp(.45rem,.8vh,.7rem)}
  .bn-mega-grid{
    min-height:0;overflow:hidden;align-content:start;align-items:start;
    grid-template-columns:minmax(180px,.78fr) minmax(240px,1fr) minmax(440px,1.72fr);
    gap:clamp(1.5rem,3vw,3.5rem);padding:clamp(.65rem,1.4vh,1rem) 0 0;
  }
  .bn-mega-item{padding:.05rem 0 clamp(.26rem,.58vh,.44rem)}
  .bn-mega-link{font-size:clamp(1.02rem,1.65vh,1.38rem);line-height:1.03;letter-spacing:-.025em}
  .bn-mega-desc{margin-top:.12rem;font-size:clamp(.65rem,1.02vh,.76rem);line-height:1.24}
  .bn-mega-section-head{margin-bottom:clamp(.28rem,.55vh,.46rem);padding-bottom:clamp(.28rem,.55vh,.44rem)}
  .bn-mega-section-head>span{font-size:clamp(.62rem,.95vh,.72rem)}
  .bn-mega-section-head p{margin-top:.12rem;font-size:clamp(.64rem,1vh,.74rem);line-height:1.22}
  .bn-mega-service{padding:.03rem 0 clamp(.23rem,.5vh,.38rem)}
  .bn-mega-service .bn-mega-link{font-size:clamp(.98rem,1.5vh,1.26rem)}
  .bn-mega-footer{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:clamp(1rem,2vw,2rem);row-gap:0;align-content:start;min-height:0;
  }
  .bn-mega-footer .bn-mega-section-head{grid-column:1/-1}
  .bn-mega-footer .bn-mega-item{min-width:0;padding:.03rem 0 clamp(.22rem,.48vh,.36rem)}
  .bn-mega-footer .bn-mega-link{font-size:clamp(.88rem,1.28vh,1.08rem)}
  .bn-mega-footer .bn-mega-desc{font-size:clamp(.61rem,.9vh,.7rem);line-height:1.2}
  .bn-mega-footer .bn-mega-journal .bn-mega-desc,
  .bn-mega-footer .bn-mega-cta .bn-mega-desc,
  .bn-mega-footer .bn-mega-art .bn-mega-desc{display:none}
  .bn-mega-cta,.bn-mega-art{margin-top:.12rem!important;padding:.45rem .6rem!important;border-radius:10px}
}
@media(min-width:861px) and (max-height:760px){
  .bn-mega-panel{padding-top:4.25rem;padding-bottom:.45rem}
  .bn-mega-intro p{display:none}
  .bn-mega-grid{padding-top:.42rem}
  .bn-mega-desc{display:none}
  .bn-mega-section-head p{display:none}
  .bn-mega-item,.bn-mega-service,.bn-mega-footer .bn-mega-item{padding-bottom:.24rem}
  .bn-mega-link{font-size:clamp(.92rem,1.55vh,1.12rem)}
  .bn-mega-service .bn-mega-link,.bn-mega-footer .bn-mega-link{font-size:clamp(.86rem,1.35vh,1rem)}
}
/* STAGE63-DESKTOP-MENU-FOOTER:END */


/* STAGE64-ART-LIKE-FULLSCREEN-MENU:START */
@media(min-width:861px){
.bn-mega-panel{width:min(1320px,100%);padding:clamp(6rem,10vh,7.6rem) clamp(2.5rem,6vw,6rem) clamp(2rem,4vh,3rem)!important;grid-template-rows:auto minmax(0,1fr)!important}
.bn-mega-intro{padding-bottom:clamp(1rem,2vh,1.5rem)!important}
.bn-mega-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(2.75rem,5vw,6rem)!important;align-content:center!important;padding:clamp(1.75rem,4vh,3rem) 0 0!important}
.bn-mega-item,.bn-mega-service,.bn-mega-footer .bn-mega-item{padding:.18rem 0 clamp(.72rem,1.35vh,1rem)!important}
.bn-mega-link{font-size:clamp(1.45rem,2.45vh,2.15rem)!important;line-height:1.04!important}
.bn-mega-service .bn-mega-link{font-size:clamp(1.25rem,2vh,1.72rem)!important}
.bn-mega-footer{display:block!important}
.bn-mega-footer .bn-mega-link{font-size:clamp(1.15rem,1.8vh,1.5rem)!important}
.bn-mega-desc,.bn-mega-footer .bn-mega-desc{display:block!important;font-size:clamp(.78rem,1.15vh,.92rem)!important;line-height:1.42!important}
.bn-mega-section-head{margin-bottom:1rem!important;padding-bottom:.8rem!important}
.bn-mega-section-head>span{font-size:.75rem!important}
.bn-mega-cta,.bn-mega-art{margin-top:.65rem!important;padding:.85rem 1rem!important;border-radius:12px!important}
.bn-mega-journal-head,.bn-mega-journal{display:none!important}
}
@media(max-width:860px){.bn-mega-journal-head,.bn-mega-journal{display:none!important}}
/* STAGE64-ART-LIKE-FULLSCREEN-MENU:END */


/* STAGE65-MENU-POLISH:START
   Desktop menu refinement: active state has no pill/frame, typography is easier
   to read, CTA labels have breathing room, and BANHALMI ART belongs with the
   oeuvre/archive group instead of the support column. */
:root{--bn-menu-gold:#D3B85A;--bn-menu-soft:#C4CFDA;--bn-menu-line:rgba(211,184,90,.28)}
.bn-mega-link.active,.bn-mega-link[aria-current="page"]{
  border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;
  border-radius:0!important;padding-left:0!important;padding-right:0!important;
  text-decoration-line:underline!important;text-decoration-thickness:1px!important;text-underline-offset:.22em!important;
}
.bn-mega-cta,.bn-mega-art{box-sizing:border-box!important;padding:1rem 1.15rem!important}
.bn-mega-primary .bn-mega-art{margin-top:.55rem!important}
@media(min-width:861px){
  .bn-mega-grid{grid-template-columns:minmax(210px,.9fr) minmax(270px,1.08fr) minmax(420px,1.58fr)!important;gap:clamp(1.8rem,3.4vw,4rem)!important}
  .bn-mega-link{font-size:clamp(1.16rem,1.95vh,1.58rem)!important;line-height:1.07!important}
  .bn-mega-desc{font-size:clamp(.79rem,1.34vh,.95rem)!important;line-height:1.38!important;margin-top:.28rem!important}
  .bn-mega-service .bn-mega-link{font-size:clamp(1.14rem,1.82vh,1.48rem)!important}
  .bn-mega-footer .bn-mega-link{font-size:clamp(1.05rem,1.64vh,1.34rem)!important}
  .bn-mega-footer .bn-mega-desc{font-size:clamp(.77rem,1.28vh,.91rem)!important}
  .bn-mega-section-head>span{font-size:clamp(.72rem,1.22vh,.84rem)!important}
  .bn-mega-section-head p{font-size:clamp(.78rem,1.28vh,.92rem)!important}
  .bn-mega-cta,.bn-mega-primary .bn-mega-art{padding:clamp(.82rem,1.4vh,1.05rem) clamp(1rem,1.7vw,1.3rem)!important}
}
/* STAGE65-MENU-POLISH:END */

/* === SOURCE: accessibility-stage14.css === */
/* Stage 14 — accessibility and usability hardening */
:focus-visible{outline:3px solid #8A681F;outline-offset:3px;}
a:focus-visible,.btn:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{border-radius:6px;}
button,.btn,[role="button"],summary,input[type="checkbox"],input[type="radio"]{min-height:44px;}
input[type="checkbox"],input[type="radio"]{min-width:24px;min-height:24px;}
.field input[aria-invalid="true"],.field select[aria-invalid="true"],.field textarea[aria-invalid="true"],:user-invalid{border-color:#9B1C1C;box-shadow:0 0 0 3px rgba(155,28,28,.14);}
.field-error,[role="alert"],.form-error{color:#7A1010;font-weight:600;line-height:1.45;}
[aria-disabled="true"],button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62;}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
@media (max-width:680px){body{font-size:17px;line-height:1.6}.btn,button,input,select,textarea{font-size:16px}.nav-links a,.footer-accordion summary{min-height:44px;display:flex;align-items:center}}
@media (max-width:680px) and (hover:none) and (pointer:coarse){
  .nav-links a[aria-current="page"],
  .nav-links a.active,
  .nav-links .active>a{
    color:#8A681F!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    outline:0!important;
    outline-offset:0!important;
    border-radius:0!important;
  }
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media (forced-colors:active){:focus-visible{outline:3px solid Highlight}.btn,.card,input,select,textarea{forced-color-adjust:auto}}

/* PAGESPEED-STAGE32-TARGETS:START */
/* Interactive targets must remain usable at every viewport. Lighthouse also
   evaluates desktop/coarse-emulation combinations, so the footer and language
   targets cannot be limited to the mobile media query. */
.lang-switch a,
.site-footer .footer-accordion summary,
.site-footer .footer-accordion li>a,
.banhalmi-ecosystem a{
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.lang-switch a{min-width:44px;justify-content:center;padding-inline:8px;color:#5B616C;}
.site-footer .footer-accordion li>a{padding-block:7px;}
.site-footer .footer-accordion summary{cursor:pointer;}
.banhalmi-ecosystem a{padding-block:8px;}
/* Footer small text previously used #6E7689 on #202530 (about 3.37:1).
   Keep the same cool-grey hierarchy while clearing WCAG AA for normal text. */
.site-footer,
.site-footer a,
.footer-bottom,
.footer-bottom a,
.footer-entity{color:#AEB4C2;}
.site-footer a:hover,.footer-bottom a:hover{color:#fff;}
@media (max-width:680px), (pointer:coarse){
  .site-footer a,
  .site-footer button{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
}
/* PAGESPEED-STAGE32-TARGETS:END */

/* PAGESPEED-STAGE56-PAINT:START */
/* The LCP hero must never wait for the deferred IntersectionObserver reveal.
   Its image is already preloaded/high-priority; painting it immediately removes
   the JS dependency from above-the-fold visual completeness. */
.hero .reveal,
.hero-figure.reveal,
.editorial-hero.reveal{opacity:1!important;transform:none!important;}
/* Skip layout/paint work for genuinely below-fold sections until they approach
   the viewport while reserving stable intrinsic space for scrolling/anchors. */
@supports (content-visibility:auto){
  main>section:nth-of-type(n+3){content-visibility:auto;contain-intrinsic-size:auto 760px;}
}
/* PAGESPEED-STAGE56-PAINT:END */

/* STAGE42-STATIC-VALIDATION:START */
.quote-validation-summary{margin:0 0 28px;padding:20px 22px;border:2px solid #a32020;border-radius:14px;background:#fff4f3;color:#541010;box-shadow:0 10px 30px rgba(112,16,16,.12)}
.quote-validation-summary[hidden]{display:none!important}
.quote-validation-summary h2{margin:0 0 8px;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.25;color:#7b1111}
.quote-validation-summary p{margin:0 0 12px;color:#541010}
.quote-validation-summary ul{margin:0 0 14px;padding-left:1.25rem}
.quote-validation-summary a{color:#7b1111;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.quote-validation-summary button{min-height:44px}
[data-smart-quote] .is-invalid-field{border-color:#a32020!important;outline:3px solid rgba(163,32,32,.18)!important;outline-offset:2px;background-color:#fff8f7!important}
[data-smart-quote] .is-invalid-group{border:2px solid #a32020!important;border-radius:14px!important;box-shadow:0 0 0 4px rgba(163,32,32,.10)!important}
[data-smart-quote] .field-error-message{display:block;margin-top:8px;color:#7b1111;font-size:.95rem;font-weight:700;line-height:1.4}
[data-smart-quote] [aria-invalid="true"]+label,[data-smart-quote] .is-invalid-group legend{color:#7b1111!important}
@media(max-width:680px){.quote-validation-summary{padding:18px 16px;margin-bottom:22px}.quote-validation-summary button{width:100%}}
/* STAGE42-STATIC-VALIDATION:END */

/* STAGE52-PAGESPEED-RUNTIME:START */
/* Avoid layout animations in the mobile navigation; transform/opacity remain available elsewhere. */
@media (max-width:1040px){
  .nav-links{transition:none!important;}
}
/* Text use of the brand gold must meet AA on the light navigation surface. */
@media (max-width:680px), (pointer:coarse){
  .lang-switch a.active,
  .nav-links a[aria-current="page"],
  .nav-links a.active,
  .nav-links .active>a{color:#8A681F!important;}
}
/* STAGE52-PAGESPEED-RUNTIME:END */

/* PAGESPEED-STAGE57-MOBILE-HERO-VIDEO:START */
/* Mobile/touch visitors get the optimized still hero only. The video remains
   lazy for desktop hover, but cannot be painted or activated on touch devices,
   so its data-src sources are never promoted to network requests on mobile. */
@media (hover:none), (pointer:coarse), (max-width:680px){
  .hero.hero-image-first .hero-video{display:none!important;}
  .hero.hero-image-first .hero-figure{pointer-events:none;}
}
/* PAGESPEED-STAGE57-MOBILE-HERO-VIDEO:END */

/* === INLINE SOURCE index.html / 1a784e6c529c === */
/* Stage 14 — accessibility and usability hardening */:focus-visible{outline:3px solid #8A681F;outline-offset:3px;}a:focus-visible,.btn:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{border-radius:6px;}button,.btn,[role="button"],summary,input[type="checkbox"],input[type="radio"]{min-height:44px;}input[type="checkbox"],input[type="radio"]{min-width:24px;min-height:24px;}.field input[aria-invalid="true"],.field select[aria-invalid="true"],.field textarea[aria-invalid="true"],:user-invalid{border-color:#9B1C1C;box-shadow:0 0 0 3px rgba(155,28,28,.14);}.field-error,[role="alert"],.form-error{color:#7A1010;font-weight:600;line-height:1.45;}[aria-disabled="true"],button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62;}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}@media (max-width:680px){body{font-size:17px;line-height:1.6}.btn,button,input,select,textarea{font-size:16px}.nav-links a,.footer-accordion summary{min-height:44px;display:flex;align-items:center}}@media (max-width:680px) and (hover:none) and (pointer:coarse){.nav-links a[aria-current="page"],.nav-links a.active,.nav-links .active>a{color:#8A681F!important;background:transparent!important;border:0!important;box-shadow:none!important;outline:0!important;outline-offset:0!important;border-radius:0!important;}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (forced-colors:active){:focus-visible{outline:3px solid Highlight}.btn,.card,input,select,textarea{forced-color-adjust:auto}}/* PAGESPEED-STAGE32-TARGETS:START */ /* Interactive targets must remain usable at every viewport. Lighthouse also evaluates desktop/coarse-emulation combinations,so the footer and language targets cannot be limited to the mobile media query. */ .lang-switch a,.site-footer .footer-accordion summary,.site-footer .footer-accordion li>a,.banhalmi-ecosystem a{min-height:44px;display:inline-flex;align-items:center;}.lang-switch a{min-width:44px;justify-content:center;padding-inline:8px;color:#5B616C;}.site-footer .footer-accordion li>a{padding-block:7px;}.site-footer .footer-accordion summary{cursor:pointer;}.banhalmi-ecosystem a{padding-block:8px;}/* Footer small text previously used #6E7689 on #202530 (about 3.37:1). Keep the same cool-grey hierarchy while clearing WCAG AA for normal text. */ .site-footer,.site-footer a,.footer-bottom,.footer-bottom a,.footer-entity{color:#AEB4C2;}.site-footer a:hover,.footer-bottom a:hover{color:#fff;}@media (max-width:680px),(pointer:coarse){.site-footer a,.site-footer button{min-height:44px;display:inline-flex;align-items:center;}}/* PAGESPEED-STAGE32-TARGETS:END */ /* PAGESPEED-STAGE56-PAINT:START */ /* The LCP hero must never wait for the deferred IntersectionObserver reveal. Its image is already preloaded/high-priority;painting it immediately removes the JS dependency from above-the-fold visual completeness. */ .hero .reveal,.hero-figure.reveal,.editorial-hero.reveal{opacity:1!important;transform:none!important;}/* Skip layout/paint work for genuinely below-fold sections until they approach the viewport while reserving stable intrinsic space for scrolling/anchors. */ @supports (content-visibility:auto){main>section:nth-of-type(n+3){content-visibility:auto;contain-intrinsic-size:auto 760px;}}/* PAGESPEED-STAGE56-PAINT:END */ /* STAGE52-PAGESPEED-RUNTIME:START */ /* Avoid layout animations in the mobile navigation;transform/opacity remain available elsewhere. */ @media (max-width:1040px){.nav-links{transition:none!important;}}/* Text use of the brand gold must meet AA on the light navigation surface. */ @media (max-width:680px),(pointer:coarse){.lang-switch a.active,.nav-links a[aria-current="page"],.nav-links a.active,.nav-links .active>a{color:#8A681F!important;}}/* STAGE52-PAGESPEED-RUNTIME:END */ /* PAGESPEED-STAGE57-MOBILE-HERO-VIDEO:START */ /* Mobile/touch visitors get the optimized still hero only. The video remains lazy for desktop hover,but cannot be painted or activated on touch devices,so its data-src sources are never promoted to network requests on mobile. */ @media (hover:none),(pointer:coarse),(max-width:680px){.hero.hero-image-first .hero-video{display:none!important;}.hero.hero-image-first .hero-figure{pointer-events:none;}}/* PAGESPEED-STAGE57-MOBILE-HERO-VIDEO:END */

/* === INLINE SOURCE requestaquote/index.html / bd71492e6e27 === */
/* Quote flow simplification — keep pricing logic intact, reduce visible decision noise. */
@media (min-width: 900px){
  .smart-quote-layout{grid-template-columns:minmax(260px,.72fr) minmax(0,1.48fr);gap:clamp(30px,5vw,72px);align-items:start}
  .quote-intro{position:sticky;top:96px;align-self:start}
}
.quote-flow-line{margin-top:18px;font-size:.95rem;color:var(--muted,#5f6672);letter-spacing:.01em}
.quote-flow-line strong{color:inherit}
.quote-intro>h2{margin-bottom:10px}
.quote-intro>p:first-of-type{font-size:1.05rem;line-height:1.55}
.pricing-logic-card{margin-top:18px;border:1px solid rgba(16,34,63,.14);border-radius:16px;background:rgba(255,255,255,.62);overflow:hidden}
.pricing-logic-card>summary,.quote-deep-details>summary{cursor:pointer;list-style:none;font-weight:650;padding:16px 18px;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.pricing-logic-card>summary::-webkit-details-marker,.quote-deep-details>summary::-webkit-details-marker{display:none}
.pricing-logic-card>summary::after,.quote-deep-details>summary::after{content:'+';font-size:1.25rem;font-weight:400;line-height:1}
.pricing-logic-card[open]>summary::after,.quote-deep-details[open]>summary::after{content:'–'}
.pricing-logic-details{padding:0 18px 18px}
.machine-data-links{font-size:.86rem;opacity:.78}
.quote-deep-details{max-width:1180px;margin:34px auto 0;border-top:1px solid rgba(16,34,63,.14);border-bottom:1px solid rgba(16,34,63,.14)}
.quote-deep-details>summary{padding:18px clamp(20px,4vw,42px)}
.quote-deep-details>section{margin:0}

.quote-decision-guide{margin:0 0 22px;padding:16px 18px;border:1px solid rgba(16,34,63,.13);border-radius:16px;background:rgba(255,255,255,.72);font-size:.94rem;line-height:1.5}
.quote-decision-guide>strong{display:block;margin-bottom:8px}
.quote-decision-guide ul{margin:0;padding-left:1.15rem}
.quote-decision-guide li+li{margin-top:6px}
.quote-decision-guide p{margin:10px 0 0;color:var(--muted,#5f6672)}
@media (max-width:899px){
  .quote-flow-line{font-size:.9rem}
  .quote-intro{margin-bottom:10px}
  .quote-summary-card{position:fixed!important;z-index:38;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));margin:0!important;padding:10px 14px!important;min-height:58px;border-radius:16px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;background:rgba(255,255,255,.96)!important;box-shadow:none;backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px)}
  .quote-summary-card .eyebrow{margin:0!important;font-size:.72rem;line-height:1.15;white-space:normal}
  .quote-summary-card .quote-total{margin:0!important;font-size:clamp(1.05rem,5vw,1.38rem)!important;line-height:1.1;white-space:nowrap;text-align:right}
  .quote-summary-card dl,.quote-summary-card>p{display:none!important}
  .site-footer{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .quote-decision-guide{padding:14px 15px;font-size:.9rem}
}
@media (max-width:360px){
  .quote-summary-card{left:8px;right:8px;padding:9px 11px!important;gap:7px}
  .quote-summary-card .eyebrow{font-size:.66rem}
  .quote-summary-card .quote-total{font-size:1rem!important}
}

/* === INLINE ATTRIBUTE UTILITIES === */
.u-inline-29e36099c0{margin-top:28px;}
.u-inline-8bde36d0d6{font-weight:400;}

/* === CLEAN FINAL AUTHORITY === */
.smart-quote-layout .quote-summary-card{box-shadow:none!important;text-shadow:none!important;filter:none!important}
.fine-art-archive-continuation,.fine-art-archive-continuation .fine-art-archive-content{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}


/* APPLE-RESPONSIVE-CONTRACT-V1:START */
/* Final visual authority: Apple-like optical rhythm, explicit alignment semantics,
   WCAG-safe contrast, and one predictable desktop/tablet/mobile geometry. */
:root{
  --apple-page-max:1200px;
  --apple-reading-max:760px;
  --apple-wide-reading-max:900px;
  --apple-gutter:clamp(20px,4.2vw,56px);
  --apple-section-space:clamp(64px,7.2vw,104px);
  --apple-block-gap:clamp(24px,3vw,40px);
  --apple-card-gap:clamp(16px,2vw,24px);
  --apple-radius:22px;
  --apple-radius-small:16px;
  --apple-text:#202530;
  --apple-muted:#6E6E73;
  --apple-surface:#FFFFFF;
  --apple-surface-soft:#F5F5F7;
  --apple-gold-text:#8A681F;
}
html,body{overflow-x:clip;}
body{background:var(--apple-surface);color:var(--apple-text);}
.wrap{
  width:min(100%,var(--apple-page-max))!important;
  max-width:var(--apple-page-max)!important;
  margin-inline:auto!important;
  padding-inline:var(--apple-gutter)!important;
}
main>section,body>main>section{padding-block:var(--apple-section-space)!important;}
section>p,section>h2{
  width:min(100%,var(--apple-page-max));
  max-width:var(--apple-page-max)!important;
  margin-inline:auto!important;
  padding-inline:var(--apple-gutter)!important;
}
h1{font-size:clamp(2.55rem,5.4vw,4.7rem)!important;line-height:1.02!important;letter-spacing:-.035em!important;}
h2{font-size:clamp(1.85rem,3.3vw,3rem)!important;line-height:1.08!important;letter-spacing:-.028em!important;}
h3{font-size:clamp(1.12rem,1.55vw,1.35rem)!important;line-height:1.2!important;letter-spacing:-.018em!important;}
p,li{line-height:1.58;}
.lead{font-size:clamp(1.18rem,1.8vw,1.52rem)!important;line-height:1.42!important;}

/* Reading blocks are left aligned unless the component is semantically declarative. */
:is(.section-head,.prose,.legal,.form,.quote-intro,.quote-builder,.quote-step,.card,.step,
.timeline,.timeline-item,.project-summary,.amcham-benefit-box,.service-context-lead,
.about-longform,.professional-network,.contact-custom-quote,.budget-result,.custom-brief){
  text-align:left!important;
}
:is(.section-head,.prose,.legal,.form,.quote-intro,.service-context-lead,.about-longform){
  margin-left:0!important;
  margin-right:auto!important;
}
.section-head{width:min(100%,var(--apple-reading-max));max-width:var(--apple-reading-max)!important;margin-bottom:var(--apple-block-gap)!important;}
.prose,.legal,.form,.quote-intro,.about-longform{width:min(100%,var(--apple-reading-max));max-width:var(--apple-reading-max)!important;}
.service-context-lead,.professional-network .prose{width:min(100%,var(--apple-wide-reading-max));max-width:var(--apple-wide-reading-max)!important;}
:is(.card,.step,.quote-step,.project-summary,.amcham-benefit-box) :is(h2,h3,h4,p,li,dt,dd){text-align:left!important;}

/* Hero: editorial text uses the left reading axis, never accidental centering. */
.hero .wrap,.pf-intro .wrap{text-align:left!important;}
.hero :is(h1,.lead,.eyebrow){margin-left:0!important;margin-right:auto!important;text-align:left!important;}
.hero h1{max-width:16ch!important;}
.hero .lead{max-width:50ch!important;}
.hero-actions,.service-actions{justify-content:flex-start!important;}

/* Intentional centred components only. */
:is(.cta-band,.statement,.editorial-statement,.text-center){text-align:center!important;}
:is(.cta-band,.statement,.editorial-statement,.text-center) :is(h1,h2,h3,p,.lead,.section-head,.prose){
  margin-left:auto!important;margin-right:auto!important;text-align:center!important;
}
.cta-band .wrap{display:flex;flex-direction:column;align-items:center;}

/* Layout families. */
:is(.cards,.steps,.gallery,.split,.service-info-cards,.smart-quote-layout,.quote-layout,.grid-2,
.category-grid,.legal-grid){gap:var(--apple-card-gap)!important;}
:is(.cards,.steps,.service-info-cards,.legal-grid){align-items:stretch!important;}
.card,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary{
  border-radius:var(--apple-radius)!important;
  box-shadow:none!important;
}
.card{padding:clamp(22px,2.7vw,32px)!important;}
.card:hover{transform:none!important;box-shadow:none!important;}
.split{column-gap:clamp(32px,5vw,72px)!important;}
.timeline,.timeline-item,.steps,.ticks,.faq{width:100%;}
.timeline-item,.step{min-width:0;}
.faq summary{min-height:52px;display:flex;align-items:center;}

/* Contrast contract: #B79C44 is decorative on light surfaces; readable gold text is #8A681F. */
:is(.section-head .eyebrow,.price-card .price,.price-line,.card .more,.map-card-link,.brand-word,
.location-card-linkable .map-card-link){color:var(--apple-gold-text)!important;}
.section-band{background:var(--apple-surface-soft)!important;}
:is(.card,.quote-builder,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary){background:var(--apple-surface)!important;}
.card p,.step p,.microcopy,.custom-brief p,.amcham-copy{color:var(--apple-muted)!important;}

/* Form and interactive geometry. */
:is(.btn,.nav-cta,.pf-filter,.menu-btn,button,input,select,textarea,summary){min-height:44px;}
.field input,.field select,.field textarea{font-size:16px;}
.form,.quote-builder{min-width:0;}
.check-grid,.category-grid,.option-stack{min-width:0;}

/* Executive footer: information is left aligned; brand block may breathe but does not float. */
.site-footer{background:#202530!important;color:#AEB4C2!important;}
.site-footer .wrap{width:min(100%,var(--apple-page-max))!important;max-width:var(--apple-page-max)!important;}
.footer-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;
  gap:clamp(32px,4vw,56px)!important;
  align-items:start!important;
  text-align:left!important;
}
.footer-brand-col{grid-column:span 2;max-width:360px!important;text-align:left!important;}
.site-footer :is(h3,li,p,a){text-align:left;}
.footer-bottom{justify-content:flex-start!important;gap:12px 24px!important;text-align:left!important;}

@media (max-width:1024px){
  :root{--apple-section-space:clamp(60px,7vw,84px);--apple-gutter:clamp(22px,4.5vw,44px);}
  .footer-brand-col{grid-column:span 1;}
  .smart-quote-layout,.quote-layout{grid-template-columns:1fr!important;}
  .quote-intro{position:static!important;}
}
@media (max-width:768px){
  :root{--apple-section-space:60px;--apple-gutter:24px;--apple-card-gap:18px;}
  h1{font-size:clamp(2.35rem,9vw,3.4rem)!important;}
  h2{font-size:clamp(1.75rem,7vw,2.35rem)!important;}
  .hero{padding:68px 0 52px!important;}
  :is(.cards,.steps,.split,.service-info-cards,.smart-quote-layout,.quote-layout,.grid-2,
  .category-grid,.legal-grid){grid-template-columns:1fr!important;}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ticks{columns:1!important;}
  .section-head,.prose,.legal,.form,.quote-intro,.about-longform,.service-context-lead{max-width:100%!important;}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:560px){
  :root{--apple-section-space:52px;--apple-gutter:20px;--apple-card-gap:16px;}
  body{font-size:16px;line-height:1.55;}
  h1{font-size:clamp(2.15rem,11vw,3rem)!important;}
  h2{font-size:clamp(1.65rem,8vw,2.1rem)!important;}
  .hero{padding:60px 0 44px!important;}
  .hero-actions,.service-actions{display:grid!important;grid-template-columns:1fr!important;width:100%;}
  .hero-actions .btn,.service-actions .btn{width:100%;text-align:center;}
  .gallery{grid-template-columns:1fr!important;}
  .card,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary{border-radius:var(--apple-radius-small)!important;}
  .footer-grid{grid-template-columns:1fr!important;}
  .footer-brand-col{grid-column:auto;}
  .footer-bottom{display:grid!important;grid-template-columns:1fr!important;}
}
@media (prefers-reduced-motion:reduce){
  .card,.btn,.menu-btn,.nav-links{transition:none!important;transform:none!important;}
}
/* APPLE-RESPONSIVE-CONTRACT-V1:END */
