
/* === SOURCE: style.css === */
/* BANHALMIPHOTOGRAPHY.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;
  /* Canonical design tokens: every block must use this rhythm before adding a
     page-specific exception. */
  --space-1:8px;
  --space-2:12px;
  --space-3:16px;
  --space-4:24px;
  --space-5:40px;
  --space-6:64px;
  --space-7:96px;
  --content-gutter:28px;
  --content-gutter-mobile:20px;
  --control-min:44px;
  --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);
  min-height:100dvh;
  overflow-x:clip;
  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 var(--content-gutter);}

/* 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:var(--content-gutter);
  padding-right:var(--content-gutter);
  box-sizing:border-box;
}
@media (max-width:480px){
  section > p,
  section > h2{padding-left:var(--content-gutter-mobile);padding-right:var(--content-gutter-mobile);}
}

/* 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;min-width:var(--control-min);min-height:var(--control-min);}
.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 var(--content-gutter);max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  .nav.open .nav-links{max-height:520px;padding:14px var(--content-gutter) 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);}
/* Plain text links remain quiet. External-link arrows are authored explicitly
   in the link label so internal navigation never receives a misleading icon. */
.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:none;}

/* ---------- Sections ---------- */
main>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-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;}
  main>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: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: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 (max-width:920px){
  
  
  
}


/* 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. */





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








/* 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){
  
  
}


/* Phase 18 — curated portrait references */






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


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

/* Accessible skip link — no inline handlers */



/* Production v2 editorial collage update */








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


/* 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){
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}



/* 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:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  position:relative;
  z-index:1001;
  transition:opacity .22s ease;
}
.menu-btn:hover,.menu-btn:focus-visible{background:transparent;opacity:.72;transform:none;}
.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;
}
.nav-submenu-list a:hover,
.nav-submenu-list a:focus-visible{
  color:#8A681F ;
}
.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::marker{content:"";}


.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;
}

.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 .editorial-image figcaption{font-size:.76rem}}
@media (max-width:720px){.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{width:100%;margin-top:34px;}
.collage-gallery .editorial-image{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:680px){.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 ;}
}
@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);
}
main>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(48px,5vw,72px) 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);}

.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{margin-top:clamp(28px,4vw,56px);}
.jony-gallery-grid figure{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){.nav-links a{font-size:clamp(1.06rem,4vw,1.42rem)}}
@media (max-width:620px){main>section{padding:56px 0}.hero:not(.hero-image-first){padding:48px 0 44px}.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 (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{margin-top:clamp(34px,4.6vw,64px);}
.jony-gallery-grid figure{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 (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-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-gallery-page .gallery-hero{padding-top:7rem}}
@media (max-width:560px){.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-item{margin:0;border-radius:20px;overflow:hidden;background:transparent;border:1px solid rgba(32,37,48,.08);box-shadow:none;}
.service-lower-gallery-item img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;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:760px){.service-lower-gallery-item figcaption{font-size:.76rem;padding:12px 13px 14px;}}


/* 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 ;
  background-color:transparent ;
  border:0 ;
  box-shadow:none ;
}
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 .editorial-image{background:transparent;border-radius:22px;overflow:hidden;box-shadow:none;}
.collage-gallery .editorial-image img{width:100%;height:auto;max-height:none;object-fit:contain;transform:none;}
.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}}
@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}}
@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);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 ;
}
.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;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. */
main>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);}
.collage-gallery{margin-top:28px;}
.collage-gallery .editorial-image{border-radius:20px;}
.pf-item{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;
}
@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;}
  main>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 ;
  }
  
  .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;contain:none;}
  .site-header,.site-footer,.cookie{display:none;}
}

/* 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;
  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;
  transform:none;
  transition:none;
  will-change:auto;
}
main > section,
main > section:not(.hero){
  content-visibility:visible;
  contain:none;
  contain-intrinsic-size:none;
}

.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:#fff;
  }
}

/* 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% ;
  top:50% ;
  transform:translate(-50%,-50%) ;
}
.hero.hero-image-first .hero-figure .hero-signature-line{
  left:50% ;
  top:calc(50% + clamp(76px,7.4vw,116px)) ;
  width:min(82%,820px) ;
  transform:translateX(-50%) ;
  margin:0 ;
  text-align:center ;
}
@media (max-width:680px){
  .hero.hero-image-first .hero-figure .hero-signature-line{
    top:calc(50% + clamp(58px,18vw,82px)) ;
    width:84% ;
  }
}

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


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

/* 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}

/* 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 soft-grey 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:#F5F5F7;
  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;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.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);
  }

  .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;
    visibility:visible;
    transform:none;
    filter:none;
    transition:none;
    animation:none;
  }
}

/* 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 minmax(0,1fr);align-items:flex-start;gap:.75rem;min-height:0;padding:12px 14px;}
.option-row input,.category-card input{position:static;margin:.18rem 0 0 0;transform:none;inline-size:1.05rem;block-size:1.05rem;}
.option-row span,.category-card span{min-width:0;line-height:1.42;}
.option-row>span,.category-card>span{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:start;}
.option-row>span>strong,.category-card>span>strong,.option-row>span>em,.category-card>span>em{grid-column:1;min-width:0;}
.option-row>span>.info-tip,.category-card>span>.info-tip{position:static;grid-column:2;grid-row:1 / span 2;align-self:center;justify-self:end;margin:0;}
.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;margin:.2rem 0 0;}

/* 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);
  opacity:1;
  font-weight:650;
}
.site-footer .footer-accordion summary:hover,
.site-footer .footer-accordion summary:focus-visible{color:#fff;}
.site-footer .footer-bottom{color:#AEB4C2;}
.site-footer .footer-bottom a,
.site-footer .footer-bottom button{color:#D2D2D7;}
.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;}
/* 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. */


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}


/* 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}

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{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;row-gap:24px}
.trust-proof .grid-3>.card{margin:0;border-radius:12px}
@media(max-width:760px){.trust-proof .grid-3{grid-template-columns:1fr;gap:16px;row-gap:16px}}
/* 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(3.75rem,6vw,6rem) 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;color:#5b616c;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.5;}
.fp-decision-grid{display:grid;grid-template-columns:repeat(2,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:#656b75;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:.65rem 1rem;margin-top:clamp(1.25rem,2vw,1.75rem);}
.fp-decision-actions .btn{margin:0;}
.fp-decision-actions .fp-primary-action{background:#202530;color:#fff;border-color:#202530;}
.fp-decision-actions .fp-primary-action:hover,.fp-decision-actions .fp-primary-action:focus-visible{background:#2F6F78;border-color:#2F6F78;color:#fff;}
.fp-decision-actions .fp-text-action{display:inline-flex;align-items:center;min-height:44px;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:#656b75;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;-webkit-text-fill-color:currentColor;background:none} 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} main>section[data-surface="white"]{background:#fff;color:#1d1d1f} main>section[data-surface="soft"]{background:#f5f5f7;color:#1d1d1f} main>section[data-surface="dark"]{background:#0d1b2e;color:#f7f9fc} .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>.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}}

.fine-art-archive-continuation .fine-art-extended-grid{margin-top:var(--jony-gap)}

/* === SOURCE: mega-menu.css === */
/* BANHALMI executive navigation — calm panel below the real header. */
:root{
  --bn-menu-bg:#1a1e27;
  --bn-menu-ink:#f4f1ea;
  --bn-menu-soft:rgba(244,241,234,.62);
  --bn-menu-muted:rgba(244,241,234,.48);
  --bn-menu-gold:#e3c552;
  --bn-menu-gold-soft:#c4a84a;
  --bn-menu-line:rgba(227,197,82,.22);
  --bn-menu-rule:rgba(244,241,234,.10);
}
.site-header .nav-links{display:none}
.site-header .menu-btn{display:flex;position:relative;z-index:1002}
.site-header .lang-switch{margin-left:auto}
.bn-mega-menu[hidden]{display:none}
.bn-mega-menu{
  position:fixed;inset:0;z-index:1000;
  background:linear-gradient(165deg,#222833 0%,#1a1e27 48%,#141820 100%);
  color:var(--bn-menu-ink);
  overflow-y:auto;overscroll-behavior:contain;
  opacity:0;animation:bnMenuIn .32s cubic-bezier(.22,1,.36,1) forwards;
}
.bn-mega-panel{
  width:min(1180px,100%);
  min-height:100%;
  margin:0 auto;
  padding:clamp(5.5rem,10vw,7rem) clamp(1.25rem,5vw,4rem) clamp(2.5rem,6vw,4rem);
}
.bn-mega-intro{display:none}
.bn-mega-eyebrow{font-size:.72rem;font-weight:650;letter-spacing:.18em;text-transform:uppercase;color:var(--bn-menu-gold)}
.bn-mega-intro p{margin:0;color:var(--bn-menu-soft);font-size:.88rem}
.bn-mega-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,4vw,4rem);padding:1.5rem 0}
.bn-mega-column{min-width:0}
.bn-mega-item{padding:.35rem 0 .85rem}
.bn-mega-link{
  display:inline-block;
  color:var(--bn-menu-ink);
  font-size:clamp(1.15rem,2vw,1.55rem);
  font-weight:560;
  line-height:1.12;
  letter-spacing:-.02em;
  text-decoration:none;
  transition:color .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);
}
.bn-mega-link.active,.bn-mega-link[aria-current="page"]{
  text-decoration-line:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.22em;
}
.bn-mega-desc{
  max-width:40ch;margin:.32rem 0 0;
  color:var(--bn-menu-soft);
  font-size:clamp(.86rem,1vw,.96rem);
  line-height:1.45;letter-spacing:-.005em;
}
.bn-mega-section-head{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--bn-menu-line)}
.bn-mega-section-head>span{display:block;color:var(--bn-menu-gold);font-size:.74rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase}
.bn-mega-section-head p{margin:.3rem 0 0;color:var(--bn-menu-soft);font-size:.9rem}
.bn-mega-service{padding:.15rem 0 .9rem}
.bn-mega-service .bn-mega-link{font-size:clamp(1.2rem,2.1vw,1.65rem);font-weight:600}
.bn-mega-pricing-section{margin-top:1.15rem;padding-top:1rem;border-top:1px solid var(--bn-menu-line)}
.bn-mega-pricing-section .bn-mega-section-head{margin-bottom:.55rem;padding-bottom:.5rem}
.bn-mega-pricing .bn-mega-link{color:var(--bn-menu-gold);font-weight:620}
.bn-mega-footer{display:block;min-width:0}
.bn-mega-footer .bn-mega-item{margin:0;padding:.15rem 0 .85rem;background:transparent}
.bn-mega-footer .bn-mega-link{font-size:clamp(1rem,1.5vw,1.25rem);font-weight:500}
.bn-mega-footer .bn-mega-desc{font-size:.86rem}
.bn-mega-cta,.bn-mega-art{margin-top:.75rem;padding:0;border:0;border-radius:0;background:transparent}
.bn-mega-tail{display:none}
body.bn-mega-open{overflow:hidden}
body.bn-mega-open .site-header{z-index:1001;background:var(--bn-menu-bg);box-shadow:none;border-bottom-color:var(--bn-menu-line)}
body.bn-mega-open .site-header .nav{background:transparent}
body.bn-mega-open .site-header .brand-word{color:var(--bn-menu-ink)}
body.bn-mega-open .site-header .brand-logo{filter:brightness(0) invert(1)}
body.bn-mega-open .menu-btn{background:transparent}
body.bn-mega-open .menu-btn span{background:var(--bn-menu-ink)}
body.bn-mega-open .menu-btn span:nth-child(1){transform:rotate(45deg)}
body.bn-mega-open .menu-btn span:nth-child(2){opacity:0;transform:scaleX(0)}
body.bn-mega-open .menu-btn span:nth-child(3){transform: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)}
body.bn-mega-open .lang-switch a.active{color:var(--bn-menu-gold)}
@keyframes bnMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:860px){
  .bn-mega-panel{padding-top:5.8rem}
  .bn-mega-grid{grid-template-columns:1fr;gap:0;padding:1rem 0 2rem}
  .bn-mega-column{padding:1.35rem 0 1.2rem;border-bottom:1px solid var(--bn-menu-line)}
  .bn-mega-column:last-child{border-bottom:0}
  .bn-mega-link,.bn-mega-service .bn-mega-link,.bn-mega-footer .bn-mega-link{
    font-size:clamp(1.2rem,5.2vw,1.45rem);line-height:1.15;min-height:44px;display:inline-flex;align-items:center;
  }
  .bn-mega-desc{display:none}
  .bn-mega-pricing-section{margin-top:.85rem;padding-top:.85rem}
}
@media(max-width:620px){
  .site-header .lang-switch{gap:.25rem}
  .bn-mega-panel{padding:5.4rem 1.15rem 2.25rem}
}
@media (hover:none) and (pointer:coarse){
  .bn-mega-link:focus-visible{
    outline:0;border-radius:0;
    text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:.22em;
  }
}
@media(prefers-reduced-motion:reduce){.bn-mega-menu{animation:none;opacity:1;transform:none}.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);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%);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
  }
  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%);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
  }
}

/* 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}
@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%);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
  }
}

/* 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}
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}
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}
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);line-height:1.08;letter-spacing:-.02em}
html body .next-step-selector .card:first-child h3::after{font-size:1.2rem;font-weight:600;line-height:1.2;letter-spacing:-.014em}
html body a.nav-cta::after{font-size:.85rem;font-weight:500;line-height:1.3;letter-spacing:-.006em}


/* Footer gradient authority retained; menu geometry is owned only by the canonical mega-menu block above. */
.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%);
}







/* === SOURCE: accessibility-stage14.css === */
/* Stage 14 — accessibility and usability hardening */









@media (max-width:680px) and (hover:none) and (pointer:coarse){
  
}
@media (prefers-reduced-motion:reduce){}
@media (forced-colors:active){}

/* 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. */





/* 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. */



/* 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. */

/* Skip layout/paint work for genuinely below-fold sections until they approach
   the viewport while reserving stable intrinsic space for scrolling/anchors. */
/* 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}
.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;outline:3px solid rgba(163,32,32,.18);outline-offset:2px;background-color:#fff8f7}
[data-smart-quote] .is-invalid-group{border:2px solid #a32020;border-radius:14px;box-shadow:0 0 0 4px rgba(163,32,32,.10)}
[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}
@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){
  
}
/* Text use of the brand gold must meet AA on the light navigation surface. */
@media (max-width:680px), (pointer:coarse){
  
}
/* 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){
  
  
}
/* 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;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}@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;background:transparent;border:0;box-shadow:none;outline:0;outline-offset:0;border-radius:0;}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}}@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;transform:none;}/* 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;}}/* 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;}}/* 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;}.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>summary{cursor:pointer;list-style:revert;padding:0 0 2px}
.quote-decision-guide>summary:focus-visible{outline:2px solid var(--accent,#a98740);outline-offset:4px;border-radius:3px}
.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;z-index:38;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));margin:0;padding:10px 14px;min-height:58px;border-radius:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;background:rgba(255,255,255,.96);box-shadow:none;backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px)}
  .quote-summary-card .eyebrow{margin:0;font-size:.72rem;line-height:1.15;white-space:normal}
  .quote-summary-card .quote-total{margin:0;font-size:clamp(1.05rem,5vw,1.38rem);line-height:1.1;white-space:nowrap;text-align:right}
  .quote-summary-card dl,.quote-summary-card>p{display:none}
  .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;gap:7px}
  .quote-summary-card .eyebrow{font-size:.66rem}
  .quote-summary-card .quote-total{font-size:1rem}
}

/* === 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;text-shadow:none;filter:none}
.fine-art-archive-continuation,.fine-art-archive-continuation .fine-art-archive-content{margin:0;padding:0;border:0;background:transparent;box-shadow:none}


/* 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));
  max-width:var(--apple-page-max);
  margin-inline:auto;
  padding-inline:var(--apple-gutter);
}
main>section:not(.service-pricing-section),body>main>section:not(.service-pricing-section),main .service-deep-dive-content>section{padding-block:var(--apple-section-space);}
section>p,section>h2{
  width:min(100%,var(--apple-page-max));
  max-width:var(--apple-page-max);
  margin-inline:auto;
  padding-inline:var(--apple-gutter);
}
h1{font-size:clamp(2.55rem,5.4vw,4.7rem);line-height:1.02;letter-spacing:-.035em;}
h2{font-size:clamp(1.85rem,3.3vw,3rem);line-height:1.08;letter-spacing:-.028em;}
h3{font-size:clamp(1.12rem,1.55vw,1.35rem);line-height:1.2;letter-spacing:-.018em;}
p,li{line-height:1.58;}
.lead{font-size:clamp(1.18rem,1.8vw,1.52rem);line-height:1.42;}

/* 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;
}
:is(.section-head,.prose,.legal,.form,.quote-intro,.service-context-lead,.about-longform){
  margin-left:0;
  margin-right:auto;
}
.section-head{width:min(100%,var(--apple-reading-max));max-width:var(--apple-reading-max);margin-bottom:var(--apple-block-gap);}
.prose,.legal,.form,.quote-intro,.about-longform{width:min(100%,var(--apple-reading-max));max-width:var(--apple-reading-max);}
.service-context-lead,.professional-network .prose{width:min(100%,var(--apple-wide-reading-max));max-width:var(--apple-wide-reading-max);}
:is(.card,.step,.quote-step,.project-summary,.amcham-benefit-box) :is(h2,h3,h4,p,li,dt,dd){text-align:left;}

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

/* Intentional centred components only. */
:is(.cta-band,.statement,.editorial-statement,.text-center){text-align:center;}
:is(.cta-band,.statement,.editorial-statement,.text-center) :is(h1,h2,h3,p,.lead,.section-head,.prose){
  margin-left:auto;margin-right:auto;text-align:center;
}
.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);}
:is(.cards,.steps,.service-info-cards,.legal-grid){align-items:stretch;}
.card,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary{
  border-radius:var(--apple-radius);
  box-shadow:none;
}
.card{padding:clamp(22px,2.7vw,32px);}
.card:hover{transform:none;box-shadow:none;}
.split{column-gap:clamp(32px,5vw,72px);}
.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);}
.section-band{background:var(--apple-surface-soft);}
:is(.card,.quote-builder,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary){background:var(--apple-surface);}
.card p,.step p,.microcopy,.custom-brief p,.amcham-copy{color:var(--apple-muted);}

/* 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;color:#AEB4C2;}
.site-footer .wrap{width:min(100%,var(--apple-page-max));max-width:var(--apple-page-max);}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:clamp(32px,4vw,56px);
  align-items:start;
  text-align:left;
}
.footer-brand-col{grid-column:span 2;max-width:360px;text-align:left;}
.site-footer :is(h3,li,p,a){text-align:left;}
.footer-bottom{justify-content:flex-start;gap:12px 24px;text-align:left;}

@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;}
  .quote-intro{position:static;}
}
@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);}
  h2{font-size:clamp(1.75rem,7vw,2.35rem);}
  .hero{padding:68px 0 52px;}
  :is(.cards,.steps,.split,.service-info-cards,.smart-quote-layout,.quote-layout,.grid-2,
  .category-grid,.legal-grid){grid-template-columns:1fr;}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ticks{columns:1;}
  .section-head,.prose,.legal,.form,.quote-intro,.about-longform,.service-context-lead{max-width:100%;}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@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);}
  h2{font-size:clamp(1.65rem,8vw,2.1rem);}
  .hero{padding:60px 0 44px;}
  .hero-actions,.service-actions{display:grid;grid-template-columns:1fr;width:100%;}
  .hero-actions .btn,.service-actions .btn{width:100%;text-align:center;}
  .gallery{grid-template-columns:1fr;}
  .card,.quote-step,.quote-summary-card,.amcham-benefit-box,.project-summary{border-radius:var(--apple-radius-small);}
  .footer-grid{grid-template-columns:1fr;}
  .footer-brand-col{grid-column:auto;}
  .footer-bottom{display:grid;grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .card,.btn,.menu-btn,.nav-links{transition:none;transform:none;}
}

/* QUOTE-DENSITY-REMEDIATION-20260814:START */
@media(min-width:1024px){
  html body .smart-quote-layout{
    grid-template-columns:minmax(250px,.58fr) minmax(0,1.42fr);
    gap:clamp(28px,3.6vw,48px);
    align-items:start;
  }
  html body .smart-quote-layout>.form{max-width:none;width:100%;min-width:0}
  html body .smart-quote-layout .quote-intro{max-width:34ch}
  html body .smart-quote-layout .quote-step{padding:18px 20px;margin-bottom:14px;border-radius:14px}
  html body .smart-quote-layout .quote-step h3{margin-bottom:13px;font-size:1.04rem}
  html body .smart-quote-layout .category-grid{gap:9px;align-items:start}
  html body .smart-quote-layout .option-stack{gap:8px;margin-bottom:12px}
  html body .smart-quote-layout :is(.category-card,.option-row){padding:12px 14px;border-radius:12px;align-self:start}
  html body .smart-quote-layout .quote-summary-card{padding:20px 22px;margin-top:22px;border-radius:16px}
  html body .smart-quote-layout .quote-decision-guide{margin-bottom:14px;padding:12px}
  html body .smart-quote-layout :is(.grid-2,.grid-3,.check-grid,.production-grid){row-gap:12px}
  html body .smart-quote-layout .custom-brief{margin:12px 0 16px}
}
@media(max-width:1023px){
  html body .smart-quote-layout .quote-step{padding:18px;border-radius:16px}
  html body .smart-quote-layout :is(.category-card,.option-row){padding:13px 14px;border-radius:13px;align-self:start}
}
/* QUOTE-DENSITY-REMEDIATION-20260814:END */



/* DESKTOP-A11Y-REMEDIATION-20260814:START */
/* Lighthouse/browser-confirmed contrast, touch-target, wrapping and link distinctions. */
html body [data-surface="dark"] .section-head :is(h1,h2,h3){color:#F5F5F7;}
html body [data-surface="dark"] .section-head :is(.eyebrow,.label,.kicker){color:var(--gold);}
html body .site-footer .brand .brand-word{color:var(--gold);}
html body main :is(.section,.section-band) p a:not(.btn):not(.btn-link){
  text-decoration:underline;
  text-underline-offset:.18em;
  text-decoration-thickness:max(1px,.07em);
}
/* Keep the visible hamburger glyph unchanged while ensuring the interactive
   control itself meets the mobile touch-target contract. */
html body .site-header .menu-btn{
  min-width:44px;
  min-height:44px;
  align-items:center;
  justify-content:center;
}
/* The homepage principle band is a dark surface. Generic heading/prose rules
   previously reintroduced dark ink on the navy background. */
html body .presence-thesis[data-surface="dark"]{
  background:#202530;
  color:#F5F5F7;
}
html body .presence-thesis[data-surface="dark"] :is(h1,h2,h3,p){color:#F5F5F7;}
html body .presence-thesis[data-surface="dark"] :is(.eyebrow,.title-accent){color:var(--gold);}
html body .presence-thesis[data-surface="dark"] .btn-link{color:#F5F5F7;}
html body .presence-thesis[data-surface="dark"] .btn-link:hover,
html body .presence-thesis[data-surface="dark"] .btn-link:focus-visible{color:var(--gold);}
/* Long legal URLs, Austrian identifiers and German compounds may wrap on narrow
   screens; ordinary prose remains unaffected because overflow-wrap only acts
   when a token cannot otherwise fit. */
@media (max-width:480px){
  html body main :is(h1,h2,h3,p,li,a,strong,span,code){overflow-wrap:anywhere;}
  html body main :is(.legal,.prose,.card,.split,.grid-2,.grid-3){min-width:0;}
}
/* FIRST-PRINCIPLES-DESKTOP-GUARD-20260814:START */
@media(min-width:769px){
  html body main h1,
  html body header h1{
    font-size:min(4.375rem,7vw);
  }
}
html body main .trust-hero p.lead{
  width:min(100%,52rem);
  max-width:52rem;
}
/* FIRST-PRINCIPLES-DESKTOP-GUARD-20260814:END */
/* DESKTOP-A11Y-REMEDIATION-20260814:END */

/* CANONICAL-DESIGN-SYSTEM-20260827:START
   Final Aug 16 visual baseline + current component support. This is the only rule
   layer after the audited responsive contract; restore/hardening must not
   append presentation rules. */
: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(44px,5.5vw,72px);
  --apple-card-gap:clamp(22px,2.4vw,32px);
}

/* One typographic scale: display type is restrained; body, descriptions and
   disclosure copy share a readable rhythm in every language. */
html body main h1{font-size:clamp(2.5rem,3.2vw,2.75rem);line-height:1.08;letter-spacing:-.024em;text-wrap:balance;}
html body main h2{font-size:var(--bn-context-h2-size,clamp(1.625rem,2.1vw,2.1rem));line-height:1.18;letter-spacing:-.022em;}
html body main h3{font-size:clamp(18px,1.45vw,1.3rem);line-height:1.24;letter-spacing:-.012em;}
html body main :is(p,li,dd){font-size:16px;line-height:1.68;}
html body main .lead{font-size:clamp(19px,1.6vw,1.4rem);line-height:1.42;}
html body main :is(.description,.desc,.microcopy,.field-help){line-height:1.5;}
html body main summary{line-height:1.5;}
/* Every section owns its real height. Deferred paint placeholders created
   artificial 760 px gaps on Safari when a section approached the viewport. */
html body main>section{content-visibility:visible;contain-intrinsic-size:auto;}
html body main>section.hero.hero-image-first.hero-visual-only,
html body main>section.hero.hero-image-first.hero-visual-only>.wrap{padding-top:0;padding-bottom:0;margin-top:0;}
html body main>section.hero.hero-image-first.hero-visual-only .hero-figure{margin-bottom:0;}
html body .site-header{background:#fff;}
html body .fp-decision-system.surface-soft .fp-art-path>span{color:#3f4147;}
html body .presence-thesis[data-surface="dark"] :is(h1,h2,h3) :is(.title-accent,.semantic-emphasis){background:none;-webkit-text-fill-color:var(--gold);color:var(--gold);}

/* One editorial axis. Only explicit statement/CTA components are centred. */
html body main :is(.section-head,.prose,.legal,.form,.quote-intro,.about-longform,.service-context-lead){margin-left:0;margin-right:auto;text-align:left;}
html body main :is(.section-head,.prose,.legal,.form,.quote-intro,.about-longform){width:min(100%,var(--apple-reading-max));max-width:var(--apple-reading-max);}
html body main :is(.cta-band,.statement,.editorial-statement,.text-center){text-align:center;}
html body main :is(.cta-band,.statement,.editorial-statement,.text-center) :is(h1,h2,h3,p,.lead){margin-inline:auto;text-align:center;}
html body main>section.section-band[data-surface]{width:100%;max-width:none;margin-inline:0;}

/* Grids and disclosures use one gap and intrinsic rows; decorative divider
   chains are replaced by spacing except where a real boundary is meaningful. */
html body main :is(.cards,.steps,.card-grid,.grid-2,.grid-3,.service-info-cards,.category-grid,.legal-grid){gap:var(--apple-card-gap);align-items:stretch;}
html body main .quote-deliverables-help [data-retouch-included]{display:block;font-weight:700;}
html body main .quote-deliverables-help [data-retouch-extra]:not([hidden]){display:block;margin-top:4px;font-weight:600;}
html body main .service-pricing-section .quote-decision-guide>.prose{padding-inline:clamp(16px,2.2vw,30px);}
html body main .grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:1024px){html body main .grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}}
html body main :is(.card,.step,.quote-step,.quote-summary-card,.category-card,.option-row){height:auto;min-height:0;align-self:start;}
@media (min-width:561px){
  html body main .service-process-grid:not(details.service-deep-dive .service-process-grid),
  html body main .quote-deep-details .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
html body main .service-process-grid{margin-bottom:var(--apple-section-space);}
html body main .partner-grid{gap:var(--apple-card-gap);}
/* Component axes are explicit: the membership CTA belongs to the full five-card
   grid, while FAQ headings and their disclosures begin on one reading column. */
html body main .partner-memberships .partner-cta{display:flex;width:100%;max-width:none;justify-content:center;margin:clamp(2rem,3vw,3rem) 0 0;text-align:center;}
html body main .partner-memberships .partner-cta .btn{margin-inline:auto;}
html body main .faq-topic{width:min(100%,var(--apple-reading-max));max-width:var(--apple-reading-max);margin-left:0;margin-right:auto;text-align:left;}
html body main .faq-topic>h2,
html body main .faq-topic>.faq{width:100%;max-width:none;margin-left:0;margin-right:0;text-align:left;}
html body main :is(.faq,.quote-deep-details) details{border-top:0;border-bottom:1px solid var(--line);}
html body main details>summary{min-height:52px;display:flex;align-items:center;font-size:1rem;line-height:1.45;}
html body main details[open]>summary{margin-bottom:1rem;}
html body main .project-framework-drawer>summary{grid-template-columns:minmax(0,1fr) auto;padding-block:20px;}
html body main .project-framework-drawer>summary>span:first-child{display:grid;gap:4px;min-width:0;}
html body main .project-framework-drawer>summary>span:first-child strong{font-size:1rem;line-height:1.25;}
html body main .project-framework-drawer>summary>span:first-child small{display:block;font-size:.84rem;line-height:1.4;color:var(--muted);letter-spacing:0;text-transform:none;}
html body main .project-framework-drawer>summary>span:last-child{font-size:1.25rem;line-height:1;}
html body main .project-framework-content>section{padding-block:clamp(28px,3vw,42px);}
@media (min-width:900px) and (max-width:1100px){
  html body main .project-framework-drawer .project-framework-content{
    display:block;
    grid-template-columns:none;
  }
  html body main .project-framework-content>section,
  html body main .project-framework-content>section>h2,
  html body main .project-framework-content>section>p,
  html body main .project-framework-content>section>.service-framework-links{
    width:100%;
    max-width:none;
    min-width:0;
  }
}

/* Quote calculator: radio, label and optional information control form one
   stable row without inherited label margins. */
html body .smart-quote-layout :is(.category-grid,.option-stack){align-content:start;align-items:start;grid-auto-rows:max-content;gap:10px;}
html body .smart-quote-layout :is(.category-card,.option-row){padding:13px 14px;border-radius:13px;margin:0;}
html body .smart-quote-layout .quote-step{margin-bottom:14px;padding:18px 20px;}
html body .smart-quote-layout .quote-step h3{margin-bottom:12px;}
@media (min-width:621px){
  html body .smart-quote-layout .option-row{display:grid;position:relative;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:center;}
  html body .smart-quote-layout .option-row>input[type="radio"]{position:static;inset-inline-start:auto;inset-block-start:auto;grid-column:auto;inline-size:24px;block-size:24px;min-width:24px;min-height:24px;margin:0;align-self:center;}
  html body .smart-quote-layout .option-row>span{display:grid;grid-column:auto;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center;min-width:0;width:100%;padding-inline-start:0;box-sizing:border-box;line-height:1.45;}
  html body .smart-quote-layout .option-row .info-tip{position:static;display:grid;grid-column:2;grid-row:1 / span 2;align-self:center;justify-self:end;margin:0;}
}
html body .smart-quote-layout .quote-decision-guide ul{padding-inline-start:0;list-style-position:inside;}
html body .smart-quote-layout .pricing-logic-card{padding:0;}
html body .smart-quote-layout .quote-summary-card{padding-inline:16px;}
html body .quote-deep-details>section.pricing-licensing-clarity{padding-top:clamp(34px,4vw,52px);padding-bottom:clamp(42px,4.8vw,64px);}
html body .quote-deep-details .pricing-licensing-clarity .section-head{margin-bottom:clamp(34px,4vw,48px);}
html body .quote-deep-details .pricing-licensing-clarity .card-grid{margin:0 0 clamp(34px,4vw,48px);row-gap:clamp(18px,2.2vw,26px);column-gap:clamp(18px,2.2vw,26px);}
html body .quote-deep-details>section.quote-legal-bridge{margin-top:0;padding-top:clamp(42px,4.8vw,64px);padding-bottom:clamp(42px,4.8vw,64px);border-top:1px solid var(--line);}
@media(min-width:769px){
  html body main .smart-quote-layout{grid-template-columns:minmax(380px,.78fr) minmax(0,1.22fr);}
  html body main .smart-quote-layout>.quote-intro{max-width:380px;}
  html body .smart-quote-layout .quote-summary-card{padding-inline:20px;}
}

/* Executive footer: one operational hierarchy, not a loose collection of
   links. Contact details lead; navigation remains compact on desktop while
   preserving 44px touch targets on touch-first breakpoints. */
html body .site-footer{padding-block:clamp(48px,5vw,64px) 28px;}
html body .site-footer .footer-grid{grid-template-columns:minmax(280px,1.15fr) minmax(225px,1fr) minmax(140px,.68fr) minmax(135px,.68fr) minmax(150px,.72fr) minmax(270px,1.2fr);gap:clamp(20px,2.6vw,34px);text-align:left;}
html body .site-footer .footer-brand-col{grid-column:auto;max-width:330px;}
html body .site-footer :is(.footer-grid,.footer-grid h3,.footer-grid p,.footer-grid li,.footer-grid a,.footer-bottom){text-align:left;}
html body .site-footer .footer-accordion{margin:0;}
html body .site-footer .footer-accordion>summary{padding:0 20px 0 0;font-size:.78rem;line-height:1.25;letter-spacing:.015em;}
html body .site-footer .footer-accordion>ul{margin:4px 0 0;padding:0;}
html body .site-footer .footer-accordion li{margin:0;}
html body .site-footer .footer-accordion li>a{display:inline-flex;align-items:baseline;min-height:30px;padding-block:2px;font-size:.82rem;line-height:1.3;white-space:nowrap;}
html body .site-footer .footer-accordion li>a::before{display:inline-block;content:"•";flex:0 0 auto;margin-right:.5em;color:var(--gold);line-height:inherit;}
html body .site-footer .footer-heading,
html body .site-footer .footer-studio-link{color:#F5F5F7;font-weight:650;}
html body .site-footer .footer-heading{margin:0 0 14px;font-size:.84rem;line-height:1.2;letter-spacing:.02em;text-transform:uppercase;}
html body .site-footer .footer-contact-list{margin:0;padding:0;}
html body .site-footer .footer-contact-list .footer-studio{display:grid;gap:4px;margin:0;padding:0 0 13px;}
html body .site-footer .footer-contact-list .footer-studio+.footer-studio{padding:13px 0;border-top:1px solid rgba(245,245,247,.16);}
html body .site-footer .footer-contact-list .footer-address{display:block;color:#AEB4C2;font-size:.8rem;line-height:1.42;}
html body .site-footer .footer-contact-list :is(.footer-phone,.footer-whatsapp){display:inline-flex;align-items:center;min-height:28px;width:max-content;color:#F5F5F7;font-size:.82rem;line-height:1.25;}
html body .site-footer .footer-contact-list .footer-whatsapp{color:var(--gold);}
html body .site-footer .footer-contact-actions{display:grid;gap:2px;margin-top:4px;padding-top:12px;border-top:1px solid rgba(245,245,247,.16);}
html body .site-footer .footer-contact-actions a{min-height:28px;width:max-content;font-size:.82rem;line-height:1.25;}
html body .site-footer .footer-contact-actions a:first-child{color:#F5F5F7;}
html body .site-footer .footer-legal-list{min-width:225px;}
html body .site-footer .footer-legal-list li{grid-template-columns:58px minmax(0,1fr);column-gap:10px;align-items:start;margin-bottom:8px;}
html body .site-footer .footer-legal-list li>*{min-width:0;line-height:1.35;}
html body .site-footer .footer-legal-list li>strong{white-space:nowrap;}
html body .site-footer .footer-bottom{grid-template-columns:max-content minmax(0,1fr);gap:8px 28px;justify-content:start;}
html body .site-footer .footer-bottom>span:first-child{justify-self:start;text-align:left;white-space:nowrap;}
html body .site-footer .footer-bottom>span:last-child{justify-self:end;text-align:right;white-space:nowrap;}
html body .site-footer,html body .site-footer .wrap{min-height:0;}
@media(max-width:1460px){
  html body .site-footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;}
  html body .site-footer .footer-accordion li>a{align-items:baseline;white-space:normal;}
  html body .site-footer .footer-accordion>summary{color:#CBB45F;opacity:1;font-weight:650;}
  html body .site-footer .footer-accordion>summary:is(:hover,:focus-visible){color:#fff;}
}

@media(max-width:768px){
  html body main h1{font-size:clamp(2.375rem,4.8vw,2.75rem);}
  html body main h2{font-size:var(--bn-context-h2-size,clamp(1.5625rem,3.2vw,2rem));}
  html body main :is(.cards,.steps,.card-grid,.grid-2,.grid-3,.service-info-cards,.category-grid,.legal-grid){grid-template-columns:1fr;}
  html body main :is(.service-process-grid,.quote-deep-details .card-grid){grid-template-columns:1fr;}
  html body .site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px;}
  html body .site-footer .footer-accordion>summary{min-height:44px;padding-right:24px;}
  html body .site-footer .footer-accordion li>a{min-height:44px;padding-block:0;}
  html body .site-footer .footer-bottom{grid-template-columns:1fr;row-gap:8px;}
  html body .site-footer .footer-bottom>span:first-child,
  html body .site-footer .footer-bottom>span:last-child{justify-self:start;text-align:left;white-space:normal;}
}
@media(max-width:560px){
  html body main h1{font-size:clamp(2.15rem,4.8vw,2.5rem);text-wrap:balance;}
  html body main h2{font-size:var(--bn-context-h2-size,clamp(1.55rem,3.2vw,2rem));}
  html body .site-footer :is(.footer-grid,.footer-bottom){grid-template-columns:1fr;}
  html body .site-footer .footer-legal-list{min-width:0;}
  html body .site-footer .footer-legal-list li>strong{white-space:normal;}
  html body .quote-deep-details>section.pricing-licensing-clarity,
  html body .quote-deep-details>section.quote-legal-bridge{padding-top:30px;padding-bottom:36px;}
  html body .quote-deep-details .pricing-licensing-clarity .section-head{margin-bottom:28px;}
  html body .quote-deep-details .pricing-licensing-clarity .card-grid{margin-bottom:30px;row-gap:14px;column-gap:14px;}
}
/* Footer disclosure marker is a trailing gold plus, aligned with its label. */
html body .site-footer .footer-accordion>summary{display:flex;align-items:center;justify-content:flex-start;gap:.65em;}

/* CANONICAL-DESIGN-SYSTEM-20260827:END */
/* BANHALMI-CONTACT-DOCK-V1:START */
.banhalmi-contact-dock{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:2147483000;font-family:inherit;color:#111}
.banhalmi-contact-trigger{min-height:48px;padding:0 18px;border:1px solid rgba(17,17,17,.16);border-radius:999px;background:#111;color:#fff;font:600 14px/1 inherit;letter-spacing:.02em;box-shadow:0 10px 30px rgba(0,0,0,.16);cursor:pointer}
.banhalmi-contact-panel{position:absolute;right:0;bottom:60px;width:min(400px,calc(100vw - 40px));max-height:none;overflow:visible;padding:18px;border:1px solid rgba(29,29,31,.12);border-radius:24px;background:rgba(255,255,255,.985);box-shadow:0 1px 0 rgba(0,0,0,.02),0 18px 54px rgba(0,0,0,.16);backdrop-filter:blur(16px);color:#111}
.banhalmi-contact-panel[hidden]{display:none}
.banhalmi-contact-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.banhalmi-contact-head strong{font-size:22px;line-height:1.12;letter-spacing:-.025em;color:#111}
.banhalmi-contact-close{width:44px;height:44px;border:0;border-radius:50%;background:transparent;font-size:24px;cursor:pointer}
.banhalmi-contact-list{display:grid;gap:6px}
.banhalmi-contact-primary{display:grid;gap:6px;margin-bottom:10px}
.banhalmi-contact-secondary{display:grid;gap:4px}
.banhalmi-contact-action,.banhalmi-contact-studio{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;min-width:44px;padding:11px 13px;border:1px solid rgba(29,29,31,.12);border-radius:14px;color:#111;text-decoration:none;background:#fff}
.banhalmi-contact-secondary .banhalmi-contact-action{min-height:44px;padding:9px 12px}
.banhalmi-contact-action strong,.banhalmi-contact-studio strong{font-size:14px;line-height:1.25;color:#111;font-weight:700}
.banhalmi-contact-action span,.banhalmi-contact-studio span{font-size:12px;line-height:1.35;color:#6e6e73;text-align:right}
.banhalmi-contact-studio span{font-size:11px;line-height:1.3}
.banhalmi-contact-sep{height:1px;background:rgba(29,29,31,.10);margin:12px 0 10px}
.banhalmi-contact-label{margin:0 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.10em;color:#6e6e73}
.banhalmi-contact-fallback{display:none;margin:10px 0 0;font-size:13px;line-height:1.4}
.banhalmi-contact-fallback a{color:#111;text-decoration:underline}
.banhalmi-contact-action:focus-visible,.banhalmi-contact-studio:focus-visible,.banhalmi-contact-trigger:focus-visible,.banhalmi-contact-close:focus-visible{outline:2px solid #9b7a34;outline-offset:3px}
@media(max-width:640px){.banhalmi-contact-dock{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom))}.banhalmi-contact-trigger{margin-left:auto;display:block}.banhalmi-contact-panel{position:fixed;left:12px;right:12px;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 56px);width:auto;max-height:none;overflow:visible;border-radius:20px;padding:14px 12px;box-shadow:0 18px 54px rgba(0,0,0,.16)}}
@media(max-height:520px),(max-width:720px) and (orientation:landscape){
  .banhalmi-contact-panel.is-compact .banhalmi-contact-secondary,
  .banhalmi-contact-panel.is-compact .banhalmi-contact-studios{display:none}
  .banhalmi-contact-panel.is-compact .banhalmi-contact-fallback{display:block}
}
@media(prefers-reduced-motion:no-preference){.banhalmi-contact-panel{animation:banhalmiDockIn .16s ease-out}@keyframes banhalmiDockIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
/* BANHALMI-CONTACT-DOCK-V1:END */

/* CLS-ROOT-CAUSE-CLOSURE-20260920
   Cookie consent must not animate the fixed contact affordance during first paint.
   The previous bottom offset moved a visible WhatsApp control and produced a
   Lighthouse CLS=1 on portrait desktop. Keep it hidden at its base position
   until consent UI state is settled; reveal it only after the banner closes. */
body.whatsapp-cookie-visible .whatsapp-contact{
  visibility:hidden;
  pointer-events:none;
  bottom:max(18px,env(safe-area-inset-bottom));
}
@media(max-width:560px){
  body.whatsapp-cookie-visible .whatsapp-contact{
    bottom:max(14px,env(safe-area-inset-bottom));
  }
}


/* SERVICE-PRICING-CONTRACT-20261016: one editorial disclosure immediately below each service hero.
   Use the page's existing .wrap geometry; do not create a competing content gutter. */
:root{
  --bn-service-price-heading:clamp(1.375rem,1.7vw,1.7rem);
  --bn-service-price-body:1rem;
  --bn-service-price-meta:.875rem;
  --bn-service-price-divider:var(--line,rgba(0,0,0,.11));
}
.service-pricing-section{padding-block:clamp(16px,2.5vw,32px) clamp(24px,3.5vw,48px);}
.service-pricing-section>.wrap{width:100%;box-sizing:border-box;}
.service-price-anchor{display:flex;align-items:baseline;justify-content:space-between;gap:18px;max-width:var(--content-max,1180px);margin:0 auto 12px;padding:0 2px;color:var(--ink,#10223f);}
.service-price-anchor strong{font-size:clamp(1.05rem,1.4vw,1.25rem);font-weight:600;letter-spacing:-.01em;}
.service-price-anchor span{color:var(--muted,#5f6672);font-size:.9rem;}
.service-pricing-section .quote-decision-guide{
  width:100%;max-width:none;box-sizing:border-box;margin:0;
  padding:0;border:1px solid var(--bn-service-price-divider);
  border-radius:10px;background:#fff;overflow:visible;
}
.service-pricing-section .quote-decision-guide>summary{
  display:flex;align-items:center;justify-content:space-between;
  min-height:48px;box-sizing:border-box;margin:0;padding:15px clamp(18px,3vw,30px);
  font-size:1rem;line-height:1.45;font-weight:650;list-style:none;
}
.service-pricing-section .quote-decision-guide>summary::-webkit-details-marker{display:none;}
.service-pricing-section .quote-decision-guide>summary::after{content:"+";font-size:1.4em;line-height:1;font-weight:400;margin-inline-start:20px;}
.service-pricing-section .quote-decision-guide[open]>summary::after{content:"−";}
.service-pricing-section .quote-decision-guide>summary:focus-visible{outline:2px solid var(--gold,#B79C44);outline-offset:3px;}
.service-pricing-section .quote-decision-guide[open]>summary{border-bottom:1px solid var(--bn-service-price-divider);}
.service-pricing-section .quote-decision-guide> :not(summary){margin-inline:clamp(18px,3vw,30px);}
.service-pricing-section .quote-decision-guide> :last-child{margin-bottom:clamp(20px,3vw,32px);}
.service-pricing-section .executive-investment-note{padding-top:20px;max-width:76ch;}
.service-pricing-section .executive-investment-note strong{font-size:1.125rem;line-height:1.4;color:var(--ink,#202530);}
.service-price-examples{--bn-context-h2-size:var(--bn-service-price-heading);margin-block:24px;max-width:100%;}
.service-price-examples h2{font-size:var(--bn-service-price-heading);line-height:1.22;letter-spacing:-.02em;margin:0 0 20px;}
.service-price-examples ul{list-style:none;padding:0;margin:0 0 20px;}
.service-price-examples li{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:16px 28px;padding:18px 0;border-bottom:1px solid var(--bn-service-price-divider);margin:0;}
.service-price-examples li>span{min-width:0;font-size:var(--bn-service-price-body);font-weight:600;line-height:1.5;}
.service-price-examples li>strong{white-space:nowrap;text-align:end;font-size:1.125rem;line-height:1.4;font-variant-numeric:tabular-nums;}
.service-price-examples .service-package-includes{display:block;margin-top:7px;font-size:var(--bn-service-price-meta);font-weight:400;line-height:1.55;color:var(--muted,#6e6e73);}
.service-price-examples p,.service-pricing-section .quote-decision-guide>p{font-size:var(--bn-service-price-body);line-height:1.6;max-width:76ch;}
.service-price-examples .service-price-currency-note{font-size:var(--bn-service-price-meta);}
@media(max-width:600px){
  .service-price-examples li{grid-template-columns:minmax(0,1fr);gap:8px;padding-block:16px;}
  .service-price-examples li>strong{text-align:start;}
  .service-pricing-section .quote-decision-guide>summary{padding-block:14px;}
}
/* SERVICE-PRICING-CONTRACT-20261016:END */

.quote-euro-equivalent{display:block;font-size:.95rem;line-height:1.5;font-weight:400;margin-top:8px;}
/* APPLE-RESPONSIVE-CONTRACT-V1:END */


/* BANHALMI-CANONICAL-FLUID-COMPONENTS-20261016 */
/* FLUID-4K-RHYTHM-20260914:START
   Canonical mobile-to-4K rhythm. LIVE-PIXEL-GEOMETRY-V19 verified 2026-09-16.
*/
:root{--space-1:8px;--space-2:12px;--space-3:16px;--space-4:24px;--space-5:40px;--space-6:clamp(48px,6vw,96px);--heading-to-copy:clamp(12px,1.2vw,16px);--copy-to-link:clamp(20px,2vw,28px);--card-gap:clamp(16px,1.6vw,24px);--section-y:clamp(56px,7vw,104px);--prose-max:860px;--header-offset:calc(var(--header-h,56px) + 16px);--apple-card-gap:clamp(16px,1.6vw,24px)}@media (min-width:1600px){:root{--apple-page-max:1440px;--apple-structured-max:1440px}}@media (min-width:1920px){:root{--apple-page-max:1600px;--apple-structured-max:1600px}}@media (min-width:2560px){:root{--apple-page-max:1760px;--apple-structured-max:1760px}}html,body{min-height:100%}body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}body>main,body>#main{flex:1 0 auto;width:100%;min-width:0;min-height:0}@supports (content-visibility:auto){html body main>section,html body #main>section{content-visibility:visible;contain-intrinsic-size:none}}html body main .section-head h1,html body main .section-head h2,html body main .hero h1,html body main h1{margin-bottom:var(--heading-to-copy)}html body main .section-head p,html body main .hero .lede,html body main .hero>p,html body main .hero .wrap>p{margin-top:0;margin-bottom:var(--copy-to-link);max-width:var(--prose-max)}html body main .section-head .eyebrow{display:block;margin-bottom:var(--space-2)}html body main .hero .btn,html body main .hero .btn-row,html body main .hero .hero-actions,html body main .section-head+.btn,html body main .section-head .btn{margin-top:0}html body main :is(.cards,.archive-cards,.card-grid,.fp-choice-grid){gap:var(--apple-card-gap)}html body main :is(.archive-cards,.cards.archive-cards){margin-top:var(--space-4);margin-bottom:0;align-items:stretch}html body main .archive-cards>.archive-card{height:100%;display:flex;flex-direction:column}html body main .reviews-drawer-section{padding-top:var(--space-6);padding-bottom:var(--space-6);scroll-margin-top:var(--header-offset)}html body main .reviews-drawer-section .wrap{padding-top:0}html body main section[data-surface=soft] :is(.archive-cards,.cards){position:relative;z-index:1;padding-top:4px}html body main section[data-surface=soft]{scroll-margin-top:var(--header-offset)}html body main :is(.archive-card,.card) h3{margin:0 0 var(--space-2)}html body main :is(.archive-card,.card) p{margin:0 0 var(--space-3)}html body main :is(.archive-card,.card) .more{margin-top:auto}html body .bn-mega-panel{padding-top:clamp(3.5rem,5vw,4.5rem);width:min(var(--apple-page-max),100%)}@media (min-width:1600px){html body .bn-mega-panel{width:min(1600px,100%)}}html body .cookie{z-index:1200;bottom:max(16px,env(safe-area-inset-bottom))}html body.bn-mega-open .cookie{visibility:hidden;opacity:0;pointer-events:none}@media (min-width:900px){html body .cookie{bottom:max(24px,env(safe-area-inset-bottom));max-width:420px;left:auto;right:max(24px,env(safe-area-inset-right))}}@media (min-width:1920px){html body main .hero.hero-image-first .hero-figure,html body main .hero-figure{max-width:min(1760px,calc(100vw - 80px));margin-left:auto;margin-right:auto}}@media (min-width:2560px){html body main .wrap{padding-left:40px;padding-right:40px}html body main .hero.hero-image-first .hero-figure{max-width:min(1920px,calc(100vw - 120px))}}@media (max-width:720px){html body main .wrap{padding-left:20px;padding-right:20px}}@media (min-width:1180px){html body main[data-homepage-redesign=stage76]{--desktop-copy:clamp(560px,38vw,680px);--desktop-hero-min:clamp(740px,42vw,880px);--desktop-section-y:clamp(72px,5vw,96px);display:grid;grid-template-columns:minmax(0,1fr) var(--desktop-copy);align-items:stretch;overflow:clip}html body main[data-homepage-redesign=stage76]>section{grid-column:1 / -1;min-width:0}html body main[data-homepage-redesign=stage76]>.hero-visual-only{grid-column:1;min-height:var(--desktop-hero-min);padding:0;background:#0a0a0a}html body main[data-homepage-redesign=stage76]>.hero-visual-only>.wrap{width:100%;max-width:none;height:100%;padding:0;margin:0}html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-figure{position:relative;width:100%;max-width:none;height:100%;min-height:var(--desktop-hero-min);margin:0;overflow:hidden;background:#0a0a0a}html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-figure picture,html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-figure picture>img,html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-video{display:block;width:100%;height:100%;min-height:var(--desktop-hero-min)}html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-figure picture>img,html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-video{object-fit:cover;object-position:center center}html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-center-logo{width:clamp(56px,5vw,86px);height:auto;opacity:.92}html body main[data-homepage-redesign=stage76]>.hero-visual-only .hero-signature-line{position:absolute;left:clamp(30px,3vw,56px);bottom:clamp(28px,3vw,52px);z-index:3;max-width:34ch;margin:0;color:#fff;font-size:clamp(.78rem,.68vw,.92rem);line-height:1.35;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 18px rgba(0,0,0,.28)}html body main[data-homepage-redesign=stage76]>.hero-copy-only{grid-column:2;display:flex;align-items:center;min-height:var(--desktop-hero-min);padding:clamp(40px,3vw,56px) clamp(36px,3.2vw,56px);border-left:1px solid rgba(29,29,31,.09);background:#fff}html body main[data-homepage-redesign=stage76]>.hero-copy-only>.wrap{width:100%;max-width:560px;padding:0;margin:0}html body main[data-homepage-redesign=stage76]>.hero-copy-only .eyebrow{max-width:38ch;margin-bottom:clamp(14px,1.2vw,20px);color:#6e6e73;font-size:clamp(.72rem,.62vw,.86rem);line-height:1.45;letter-spacing:.08em;text-transform:uppercase}html body main[data-homepage-redesign=stage76]>.hero-copy-only .hero-location-line{margin:0 0 clamp(18px,1.5vw,24px);color:#6e6e73;font-size:clamp(.84rem,.72vw,.98rem);letter-spacing:.02em}html body main[data-homepage-redesign=stage76]>.hero-copy-only h1{max-width:13ch;margin:0 0 clamp(18px,1.5vw,24px);font-size:clamp(2.5rem,3vw,2.75rem);line-height:.98;letter-spacing:-.052em;text-wrap:balance}html body main[data-homepage-redesign=stage76]>.hero-copy-only h1 .title-accent{margin-top:.12em}html body main[data-homepage-redesign=stage76]>.hero-copy-only>.wrap>p:not(.eyebrow):not(.hero-location-line){max-width:48ch;margin-bottom:clamp(14px,1.2vw,20px);color:#424245;font-size:clamp(.98rem,.82vw,1.08rem);line-height:1.65}html body main[data-homepage-redesign=stage76]>.hero-copy-only .hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:clamp(30px,2.6vw,44px)}html body main[data-homepage-redesign=stage76]>.hero-copy-only .hero-actions .btn{min-width:min(100%,260px);justify-content:center}html body main[data-homepage-redesign=stage76]>.hero-copy-only .hero-booking-option{display:flex;flex-direction:column;gap:4px}html body main[data-homepage-redesign=stage76]>.fp-decision-system{padding:var(--desktop-section-y) clamp(34px,5vw,84px);background:#f5f5f7}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-decision-inner{width:min(1500px,100%);margin:0 auto}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-decision-eyebrow,html body main[data-homepage-redesign=stage76]>.fp-decision-system>div>h2,html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-decision-lead{max-width:680px}html body main[data-homepage-redesign=stage76]>.fp-decision-system>div>h2{margin-bottom:18px;font-size:clamp(2rem,2.35vw,2.5rem);line-height:1.04;letter-spacing:-.024em}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-decision-lead{margin-bottom:clamp(42px,3.4vw,60px);font-size:clamp(1rem,.9vw,1.14rem);line-height:1.65}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,3vw,52px);border-top:1px solid rgba(29,29,31,.18)}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-choice{min-height:250px;padding:clamp(24px,1.8vw,32px);border:0;border-bottom:1px solid rgba(29,29,31,.18);border-radius:0;background:transparent;box-shadow:none;transition:opacity .2s ease,transform .2s ease}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-choice:hover{transform:translateY(-3px)}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-choice strong{max-width:20ch;font-size:clamp(1.22rem,1.28vw,1.62rem);line-height:1.08;letter-spacing:-.025em}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-choice span{max-width:36ch;color:#6e6e73;line-height:1.55}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-art-path,html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-decision-actions{margin-top:clamp(34px,2.6vw,48px)}html body main[data-homepage-redesign=stage76]>.presence-thesis{padding-block:clamp(76px,5vw,96px)}html body main[data-homepage-redesign=stage76]>.presence-thesis .structural-prose{max-width:min(900px,68vw)}html body main[data-homepage-redesign=stage76]>.presence-thesis h2{max-width:14ch;margin-bottom:24px;font-size:clamp(2rem,2.35vw,2.5rem);line-height:1.04;letter-spacing:-.024em}html body main[data-homepage-redesign=stage76]>.presence-thesis p{max-width:54ch}html body main[data-homepage-redesign=stage76]>.client-decision-bridge>.wrap{display:grid;grid-template-columns:minmax(0,.86fr) minmax(420px,1fr);gap:clamp(60px,7vw,132px);align-items:start;padding-block:var(--desktop-section-y)}html body main[data-homepage-redesign=stage76]>.client-decision-bridge .section-head,html body main[data-homepage-redesign=stage76]>.client-decision-bridge .prose{max-width:none;margin:0}html body main[data-homepage-redesign=stage76]>.client-decision-bridge h2{max-width:13ch;font-size:clamp(2rem,2.35vw,2.5rem);line-height:1.04;letter-spacing:-.024em}html body main[data-homepage-redesign=stage76]>.client-decision-bridge .prose{padding-top:clamp(24px,2vw,32px)}html body main[data-homepage-redesign=stage76]>#services{padding-block:var(--desktop-section-y)}html body main[data-homepage-redesign=stage76]>#services>.wrap{max-width:min(1500px,calc(100% - 80px))}html body main[data-homepage-redesign=stage76]>#services .section-head{max-width:680px;margin-bottom:clamp(40px,3vw,56px)}html body main[data-homepage-redesign=stage76]>#services .section-head h2{font-size:clamp(2rem,2.35vw,2.5rem);line-height:1.04}html body main[data-homepage-redesign=stage76]>#services .cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(42px,4vw,72px);border-top:1px solid rgba(29,29,31,.2)}html body main[data-homepage-redesign=stage76]>#services .card{min-height:300px;padding:clamp(28px,2vw,36px);border:0;border-bottom:1px solid rgba(29,29,31,.2);border-radius:0;background:transparent;box-shadow:none}html body main[data-homepage-redesign=stage76]>#services .card h3{max-width:18ch;font-size:clamp(1.5rem,1.65vw,2.15rem);line-height:1.05;letter-spacing:-.035em}html body main[data-homepage-redesign=stage76]>#services .card p{max-width:48ch;color:#6e6e73;font-size:clamp(.98rem,.84vw,1.08rem);line-height:1.65}html body main[data-homepage-redesign=stage76] .oeuvre-teaser{display:grid;grid-template-columns:minmax(420px,.78fr) minmax(0,1.22fr);gap:clamp(64px,6vw,112px);align-items:center;padding-block:clamp(72px,4vw,88px)}html body main[data-homepage-redesign=stage76] .oeuvre-teaser-copy{max-width:610px}html body main[data-homepage-redesign=stage76] .oeuvre-teaser .editorial-image{width:100%;max-width:680px;margin:0;aspect-ratio:5 / 4;overflow:hidden;justify-self:end}html body main[data-homepage-redesign=stage76] .oeuvre-teaser .editorial-image img{width:100%;height:100%;object-fit:cover}html body main[data-homepage-redesign=stage76] .section-head h2{text-wrap:balance}}@media (min-width:1600px){html body main[data-homepage-redesign=stage76]{--desktop-copy:clamp(620px,34vw,680px)}html body main[data-homepage-redesign=stage76]>.hero-copy-only>.wrap{max-width:560px}}@media (min-width:2560px){html body main[data-homepage-redesign=stage76]{--desktop-copy:680px;--desktop-hero-min:880px}html body main[data-homepage-redesign=stage76]>.hero-copy-only{padding-inline:56px}html body main[data-homepage-redesign=stage76]>.fp-decision-system .fp-decision-inner,html body main[data-homepage-redesign=stage76]>#services>.wrap{max-width:1680px}}@media (min-width:1180px) and (max-height:760px){html body main[data-homepage-redesign=stage76]{--desktop-hero-min:660px}html body main[data-homepage-redesign=stage76]>.hero-copy-only{padding-top:44px;padding-bottom:44px}html body main[data-homepage-redesign=stage76]>.hero-copy-only h1{font-size:clamp(2.5rem,3vw,2.75rem)}}

@media (min-width:1180px){html body main[data-homepage-redesign="stage76"]>.hero-visual-only,html body main[data-homepage-redesign="stage76"]>.hero-copy-only,html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture,html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture>img,html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{height:var(--desktop-hero-min);min-height:0;max-height:var(--desktop-hero-min)}}

/* LIVE-PIXEL-GEOMETRY-V22-20260917: canonical desktop geometry verified from production render */
@media (min-width:1180px){
  html body main .hero.service-hero.service-editorial-hero{padding-top:0;padding-bottom:0}
  html body main .hero.service-hero.service-editorial-hero>.wrap{display:grid;grid-template-columns:minmax(410px,560px) minmax(0,1fr);column-gap:clamp(56px,5vw,96px);row-gap:14px;align-items:center;padding-top:clamp(64px,5vw,84px);padding-bottom:clamp(64px,5vw,84px)}
  html body main .hero.service-hero.service-editorial-hero>.wrap>*:not(.service-hero-image){grid-column:1}
  html body main .hero.service-hero.service-editorial-hero>.wrap>.service-hero-image{grid-column:2;grid-row:1 / span 8;align-self:center;margin:0;aspect-ratio:16 / 10;overflow:hidden}
  html body main .hero.service-hero.service-editorial-hero>.wrap>.service-hero-image img{width:100%;height:100%;object-fit:cover}
  html body main .collage-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,1.35vw,1.45rem);column-count:auto;column-gap:normal;align-items:start}
  html body .site-footer{padding-top:28px;padding-bottom:18px}
  html body .site-footer .footer-grid{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));grid-template-rows:auto;grid-auto-flow:row;column-gap:18px;row-gap:32px;align-items:start}
  html body .site-footer .footer-grid>div:first-child{grid-column:span 2}
  html body .site-footer .footer-grid>details.footer-accordion{grid-column:auto}
  html body .site-footer .footer-grid>div:nth-last-child(-n+2){grid-column:auto}
  html body .site-footer .footer-bottom{margin-top:16px;padding-top:12px}
  html body .banhalmi-ecosystem{margin-top:8px;padding-top:8px}
  html body .bn-mega-panel{padding-top:48px;padding-bottom:28px;padding-left:64px;padding-right:64px;column-gap:48px}
  html body main .reviews-drawer-section{padding-top:clamp(52px,4vw,68px);padding-bottom:clamp(52px,4vw,68px)}
}



/* FINAL-LAYOUT-CONTRACT-20260919: service hero rhythm and gallery breathing */



/* UNIFIED-GALLERY-GEOMETRY-V48-20261003
   Canonical mixed-aspect gallery authority: exact 20px visual spacing in both
   axes. Desktop uses three masonry columns so a tall image cannot create false
   vertical whitespace below shorter neighbours. */
html body main :is(.gallery,.pf-grid,.collage-gallery,.jony-gallery-grid,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid,.portrait-reference-gallery,.portrait-service-gallery){
  column-gap:20px;
}
html body main :is(.pf-grid,.collage-gallery,.jony-gallery-grid)>figure,
html body main :is(.gallery,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid,.portrait-reference-gallery,.portrait-service-gallery)>figure{
  margin:0 0 20px;
  break-inside:avoid;
}
html body main :is(.gallery,.pf-grid,.collage-gallery,.jony-gallery-grid,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid,.portrait-reference-gallery,.portrait-service-gallery){
  display:block;
  columns:3;
  column-count:3;
}
@media (max-width:1100px){
  html body main :is(.gallery,.pf-grid,.collage-gallery,.jony-gallery-grid,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid,.portrait-reference-gallery,.portrait-service-gallery){
    columns:2;
    column-count:2;
  }
}
@media (max-width:620px){
.service-price-anchor{display:block;margin-bottom:10px;padding-inline:0;}
.service-price-anchor span{display:block;margin-top:3px;font-size:.84rem;}
  html body main :is(.gallery,.pf-grid,.collage-gallery,.jony-gallery-grid,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid,.portrait-reference-gallery,.portrait-service-gallery){
    columns:1;
    column-count:1;
  }
}
@media (min-width:1101px){
  html body main :is(.gallery,.pf-grid,.collage-gallery,.jony-gallery-grid,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid,.portrait-reference-gallery,.portrait-service-gallery){
    width:calc(100vw - (2 * clamp(24px,2.5vw,48px)));
    max-width:none;
    margin-left:calc(50% - 50vw + clamp(24px,2.5vw,48px));
    margin-right:calc(50% - 50vw + clamp(24px,2.5vw,48px));
    display:block;
    columns:3;
    column-count:3;
    column-gap:20px;
  }
  html body main :is(.pf-grid,.collage-gallery,.jony-gallery-grid)>figure,
  html body main :is(.gallery,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid,.portrait-reference-gallery,.portrait-service-gallery)>figure{
    width:100%;
    min-width:0;
  }
}


/* FINAL-LAYOUT-CONTRACT-20260919B: oeuvre rhythm and mobile centering */
@media (min-width:761px){
  
  
}
@media (max-width:620px){
  html body main .category-card span{display:block;max-width:none;}
  html body main .partner-grid-memberships> :last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;}
}


/* FINAL-LAYOUT-CONTRACT-20260919C: mobile quote info control clears option copy */
@media (max-width:620px){
  html body main .smart-quote-layout .option-row>span>strong,
  html body main .smart-quote-layout .option-row>span>em{max-inline-size:none;}
}


/* FINAL-LAYOUT-CONTRACT-20260919D: mobile category info control clears copy */
@media (max-width:620px){
  html body main .smart-quote-layout .category-card>span>strong,
  html body main .smart-quote-layout .category-card>span>em{max-inline-size:none;}
}

/* FLUID-4K-RHYTHM-20260914:END */


/* HOMEPAGE-HERO-V23-20260917
   The portrait and its motion layer form one uninterrupted, full-width hero.
   The signature remains readable on the photograph in the brand gold. */
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]{
    display:block;
    overflow:clip;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{
    min-height:var(--homepage-hero-media-height);
    padding:0;
    background:#0a0a0a;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    width:100%;
    max-width:none;
    height:var(--homepage-hero-media-height);
    min-height:0;
    margin:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    width:100%;
    height:var(--homepage-hero-media-height);
    min-height:0;
    max-height:none;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    object-fit:cover;
    object-position:center center;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-signature-line{
    left:50%;
    top:calc(50% + clamp(76px,7.4vw,116px));
    bottom:auto;
    width:min(82%,820px);
    max-width:820px;
    margin:0;
    transform:translateX(-50%);
    color:#c7a542;
    text-align:center;
    text-shadow:0 2px 16px rgba(0,0,0,.38);
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    min-height:0;
    padding:clamp(56px,5vw,96px) clamp(36px,5vw,84px);
    border-left:0;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only>.wrap{
    max-width:min(900px,100%);
    margin:0 auto;
  }
}

/* HOMEPAGE-HERO-SEAM-V25-20260917
   The visual begins directly under the header at every viewport. The still is
   the LCP fallback only; once motion is actually playing it cannot show
   through at the bottom of the video. */
html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
  padding-top:0;
  margin-top:0;
}
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
  margin-bottom:0;
  background:#0a0a0a;
}
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture{
  opacity:1;
  transition:opacity .18s linear;
}
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure.is-video-playing>picture{
  opacity:0;
}
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-signature-line{
  color:#c7a542;
  text-shadow:0 2px 16px rgba(0,0,0,.38);
}

/* RESPONSIVE-VISUAL-SYSTEM-V26-20260917
   One image-first layout contract for the trilingual service and oeuvre pages.
   It lives after the legacy cascade so the shared contract wins at every
   breakpoint rather than being reimplemented page by page. */
:root{
  --bn-media-radius:clamp(18px,2vw,28px);
  --bn-content-max:var(--apple-page-max);
  --bn-editorial-gap:clamp(28px,4vw,72px);
  --bn-media-block:max(320px,min(62svh,720px));
}

/* Equal visual cards are a grid responsibility, not a consequence of copy
   length. Compact screens intentionally return to intrinsic-height cards. */
@media (min-width:761px){
  html body main :is(.cards,.steps,.card-grid,.grid-2,.grid-3,.service-info-cards,.category-grid,.legal-grid,.archive-grid)>
  :is(.card,.step,.quote-step,.quote-summary-card,.category-card,.option-row){
    align-self:stretch;
    block-size:100%;
    min-block-size:100%;
    display:flex;
    flex-direction:column;
  }
  html body main :is(.cards,.steps,.card-grid,.grid-2,.grid-3,.service-info-cards,.category-grid,.legal-grid,.archive-grid)>
  :is(.card,.step,.quote-step,.quote-summary-card,.category-card,.option-row) :is(.more,.btn-link:last-child){
    margin-top:auto;
  }
}
@media (max-width:760px){
  html body main :is(.cards,.steps,.card-grid,.grid-2,.grid-3,.service-info-cards,.category-grid,.legal-grid,.archive-grid)>
  :is(.card,.step,.quote-step,.quote-summary-card,.category-card,.option-row){
    block-size:auto;
    min-block-size:0;
  }
}

/* The taxonomy line sits above the editorial pair. This keeps location names
   together at tablet widths without shrinking either the copy or the image. */
@media (min-width:761px){
  html body main .hero.service-hero.service-editorial-hero{padding-block:0;}
  html body main .hero.service-hero.service-editorial-hero>.wrap{
    display:grid;
    width:min(var(--bn-content-max),100%);
    grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
    column-gap:var(--bn-editorial-gap);
    row-gap:clamp(18px,2vw,28px);
    align-items:center;
    padding-block:clamp(56px,6vw,104px);
  }
  html body main .hero.service-hero.service-editorial-hero>.wrap>.eyebrow{
    grid-column:1 / -1;
    grid-row:1;
    width:100%;
    max-width:none;
    margin:0 0 clamp(14px,1.2vw,20px);
    font-size:clamp(.72rem,.78vw,.9rem);
    line-height:1.35;
    letter-spacing:.01em;
    text-wrap:pretty;
  }
  html body main .hero.service-hero.service-editorial-hero>.wrap>*:not(.service-hero-image):not(.eyebrow){grid-column:1;}
  html body main .hero.service-hero.service-editorial-hero>.wrap>.service-hero-image{
    grid-column:2;
    grid-row:2 / span 8;
    align-self:center;
    width:100%;
    max-width:none;
    margin:0;
    aspect-ratio:4 / 3;
    block-size:var(--bn-media-block);
    max-block-size:var(--bn-media-block);
    overflow:hidden;
    border-radius:var(--bn-media-radius);
  }
  html body main .hero.service-hero.service-editorial-hero>.wrap>.service-hero-image :is(img,video){
    display:block;
    inline-size:100%;
    block-size:100%;
    max-block-size:none;
    object-fit:cover;
  }
  html body main .hero.service-hero.service-editorial-hero :is(h1,.lead,.hero-actions,.service-hero-actions){max-inline-size:100%;}

  /* Biography / oeuvre: film and portrait occupy the same visual field as the
     narrative rather than floating as a small auxiliary thumbnail. */
  html body main .hero.oeuvre-hero>.wrap{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:var(--bn-editorial-gap);
    align-items:center;
    width:min(var(--bn-content-max),100%);
  }
  html body main .hero.oeuvre-hero>.wrap>*:not(.service-hero-image){grid-column:1;}
  html body main .hero.oeuvre-hero>.wrap>.service-hero-image{
    grid-column:2;
    grid-row:1 / span 8;
    align-self:center;
    width:100%;
    max-width:none;
    margin:0;
    aspect-ratio:16 / 10;
    block-size:var(--bn-media-block);
    max-block-size:var(--bn-media-block);
    overflow:hidden;
    border-radius:var(--bn-media-radius);
  }
  html body main .hero.oeuvre-hero>.wrap>.service-hero-image :is(img,video,iframe){
    display:block;
    width:100%;
    height:100%;
    max-height:none;
    object-fit:cover;
  }
}
@media (min-width:1180px){
  :root{--bn-media-block:max(380px,min(66svh,780px));}
  html body main .hero.service-hero.service-editorial-hero>.wrap{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);}
}
@media (min-width:1920px){:root{--bn-media-block:max(460px,min(68svh,860px));}}
@media (min-width:2560px){:root{--bn-media-block:max(520px,min(70svh,940px));}}


html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
  background:#fff;
}
@media (max-width:1024px){
  html body .site-header .brand{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
}
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-signature-line{
  color:#6f4f0f;
  text-shadow:none;
}
@media (min-width:761px){
  html body main .hero.service-hero.service-editorial-hero>.wrap>.service-hero-image>picture,
  html body main .hero.oeuvre-hero>.wrap>.service-hero-image>picture{
    display:block;
    inline-size:100%;
    block-size:100%;
  }
  html body main .hero.service-hero.service-editorial-hero>.wrap>.service-hero-image>picture>img,
  html body main .hero.oeuvre-hero>.wrap>.service-hero-image>picture>img{
    display:block;
    inline-size:100%;
    block-size:100%;
    max-block-size:none;
    object-fit:cover;
  }
}


/* ROOT-VISUAL-CONTRACT-CLOSURE-20260920: final authority for homepage split geometry and tablet rhythm. */
@media (min-width:621px) and (max-width:1179px){
  html body main .service-gallery-section,
  html body main>section[data-surface="white"]:not(.hero),
  html body main .executive-positioning-section{padding-bottom:64px;}
}
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]{display:grid;grid-template-columns:minmax(0,1fr) minmax(560px,680px);align-items:stretch;}
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{grid-column:1;grid-row:1;min-height:var(--homepage-hero-media-height);}
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{grid-column:2;grid-row:1;min-height:var(--desktop-hero-min);}
  html body main[data-homepage-redesign="stage76"]>section:not(.hero-visual-only):not(.hero-copy-only) .wrap:not(:has(> .service-process-grid,> .partner-grid,> .partner-grid-memberships,> .archive-cards,> .two-reading-grid,> .smart-quote-layout)){width:min(100%,1280px);max-width:1280px;margin-inline:auto;}
  html body main[data-homepage-redesign="stage76"]>section:not(.hero-visual-only):not(.hero-copy-only) .wrap:has(> .service-process-grid,> .partner-grid,> .partner-grid-memberships,> .archive-cards,> .two-reading-grid,> .smart-quote-layout){width:min(100%,1600px);max-width:1600px;margin-inline:auto;}
}
@media (min-width:2560px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap{max-width:1760px;}
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{max-width:1760px;}

}

/* HOMEPAGE-HERO-HEIGHT-V28-20260917
   Trilingual homepage media only: 15% shorter than the established image/video
   field on tablet and desktop. The following copy section keeps its own rhythm. */
@media (min-width:621px) and (max-width:1179px){
  html body main[data-homepage-redesign="stage76"]{
    --homepage-hero-media-height:39.5604vw;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    height:var(--homepage-hero-media-height);
    min-height:0;
    max-height:var(--homepage-hero-media-height);
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    object-fit:cover;
    object-position:center center;
  }
}
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]{
    --homepage-hero-media-height:clamp(629px,35.7vw,748px);
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    height:var(--homepage-hero-media-height);
    min-height:0;
    max-height:var(--homepage-hero-media-height);
  }
}
@media (min-width:1180px) and (max-height:760px){
  html body main[data-homepage-redesign="stage76"]{
    --homepage-hero-media-height:561px;
  }
}

/* ROOT-HERO-PANEL-EQUALIZATION-20260920
   V28 is the final owner of the desktop homepage hero height, so both grid
   panels must consume that same value after V28 has resolved its breakpoint. */
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    block-size:var(--homepage-hero-media-height);
    min-block-size:var(--homepage-hero-media-height);
    max-block-size:var(--homepage-hero-media-height);
    box-sizing:border-box;
  }
}


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

/* SMART-QUOTE-INTRINSIC-CARD-HEIGHT-20260918
   Quote category cards contain different copy lengths by service and language.
   The global equal-card contract must not stretch shorter quote controls to the
   tallest sibling, otherwise the interactive content acquires artificial bottom
   whitespace and violates the quote layout authority. */
@media (min-width:761px){
  html body main .smart-quote-layout .category-grid{
    align-items:start;
  }
  html body main .smart-quote-layout .category-grid>.category-card{
    align-self:start;
    block-size:auto;
    min-block-size:0;
  }
}


/* Canonicalized from former standalone menu authority. */
/* MEGA-MENU-HARMONY-V31-20260917
   Text-first BANHALMI navigation. No decorative hero image, no slogan tile,
   no fake disclosure arrows. The real site header remains visible and the
   navigation uses only functional, readable links in a compact editorial grid.
   Premium C-level cascade (2026-10-25): boardroom calm — restrained gold,
   clear service hierarchy, descriptions on desktop only. */

html body .bn-mega-menu{
  background:linear-gradient(165deg,#222833 0%,#1a1e27 52%,#141820 100%);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
html body .bn-mega-menu .bn-mega-intro:not(.bn-mega-tail),
html body .bn-mega-menu .bn-mega-tail,
html body .bn-mega-menu .bn-mega-desc,
html body .bn-mega-menu .bn-mega-section-head p{
  display:none;
}
html body .bn-mega-menu .bn-mega-link{
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}
html body .bn-mega-menu .bn-mega-link:hover,
html body .bn-mega-menu .bn-mega-link:focus-visible,
html body .bn-mega-menu .bn-mega-link.active,
html body .bn-mega-menu .bn-mega-link[aria-current="page"]{
  background:transparent;
  box-shadow:none;
  transform:none;
  text-decoration-line:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.24em;
  text-decoration-color:currentColor;
}

@media (min-width:861px){
  html body .bn-mega-menu{
    inset:var(--header-h,72px) 0 auto 0;
    block-size:auto;
    min-block-size:0;
    max-block-size:calc(100dvh - var(--header-h,72px));
    overflow:auto;
    overscroll-behavior:contain;
    border-top:1px solid rgba(227,197,82,.18);
    border-bottom:1px solid rgba(227,197,82,.14);
    box-shadow:0 28px 64px rgba(0,0,0,.28);
  }
  html body .bn-mega-panel{
    display:block;
    inline-size:min(1440px,calc(100vw - 80px));
    max-inline-size:1440px;
    block-size:auto;
    min-block-size:0;
    margin:0 auto;
    padding:clamp(22px,2vw,32px) 0 clamp(20px,1.8vw,28px);
  }
  html body .bn-mega-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:clamp(48px,4.5vw,76px);
    align-items:start;
    align-content:start;
    padding:0;
    min-block-size:0;
  }
  html body .bn-mega-grid::after{content:none;display:none;}
  html body .bn-mega-column{
    min-inline-size:0;
    padding:0;
    border-left:0;
  }
  html body .bn-mega-column:first-child{padding-left:0;border-left:0;}
  html body .bn-mega-column:last-child{padding-right:0;}
  html body .bn-mega-section-head{
    margin:0 0 16px;
    padding:0 0 12px;
    border-bottom:1px solid rgba(183,156,68,.28);
  }
  html body .bn-mega-section-head::after{content:none;display:none;}
  html body .bn-mega-section-head>span{
    color:#e3c552;
    font-size:clamp(.7rem,.62vw,.78rem);
    line-height:1.2;
    letter-spacing:.16em;
    text-transform:uppercase;
  }
  html body .bn-mega-item{
    margin:0;
    padding:0 0 10px;
    border-bottom:0;
  }
  html body .bn-mega-item+.bn-mega-item{margin-top:12px;}
  html body .bn-mega-column .bn-mega-item:last-child{padding-bottom:0;border-bottom:0;}
  html body .bn-mega-link{
    display:inline-flex;
    align-items:center;
    min-block-size:32px;
    padding:0;
    color:#f4f1ea;
    font-size:clamp(1.05rem,1.05vw,1.28rem);
    line-height:1.25;
    letter-spacing:-.015em;
    font-weight:560;
  }
  html body .bn-mega-services .bn-mega-service .bn-mega-link{
    font-size:clamp(1.12rem,1.15vw,1.38rem);
    font-weight:600;
  }
  html body .bn-mega-desc{
    display:block;
    margin:4px 0 0;
    color:rgba(244,241,234,.58);
    font-size:clamp(.84rem,.76vw,.95rem);
    line-height:1.45;
    max-inline-size:40ch;
  }
  html body .bn-mega-pricing .bn-mega-link{color:#e3c552;font-weight:620;}
  html body .bn-mega-pricing-section{
    margin-top:1.1rem;
    padding-top:1rem;
    border-top:1px solid rgba(227,197,82,.22);
  }
}

@media (max-width:860px){
  html body .bn-mega-menu{
    inset:var(--header-h,64px) 0 0 0;
    block-size:calc(100dvh - var(--header-h,64px));
    min-block-size:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    border-top:1px solid rgba(227,197,82,.14);
  }
  html body .bn-mega-panel{
    display:block;
    inline-size:100%;
    max-inline-size:none;
    block-size:auto;
    min-block-size:100%;
    padding:18px 22px max(32px,env(safe-area-inset-bottom));
  }
  html body .bn-mega-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    align-content:start;
    padding:0;
  }
  html body .bn-mega-grid::after{content:none;display:none;}
  html body .bn-mega-column{
    min-inline-size:0;
    padding:22px 0 18px;
    border-bottom:1px solid rgba(227,197,82,.18);
  }
  html body .bn-mega-column:last-child{border-bottom:0;padding-bottom:8px;}
  html body .bn-mega-section-head{
    position:static;
    margin:0 0 10px;
    padding:0 0 10px;
    border-bottom:0;
  }
  html body .bn-mega-section-head::after{content:none;display:none;}
  html body .bn-mega-section-head>span{
    color:#e3c552;
    font-size:.74rem;
    line-height:1.2;
    letter-spacing:.15em;
    text-transform:uppercase;
  }
  html body .bn-mega-item{margin:0;padding:0;}
  html body .bn-mega-item+.bn-mega-item{margin-top:4px;}
  html body .bn-mega-link{
    display:flex;
    align-items:center;
    min-block-size:44px;
    padding:6px 0;
    color:#f4f1ea;
    font-size:1.12rem;
    line-height:1.25;
    letter-spacing:-.012em;
    font-weight:560;
  }
  html body .bn-mega-pricing .bn-mega-link{color:#e3c552;}
  html body .bn-mega-desc{display:none;}
}

@media (max-width:430px){
  html body .bn-mega-panel{padding-inline:18px;}
  html body .bn-mega-column{padding-block:18px 16px;}
  html body .bn-mega-link{min-block-size:44px;font-size:1.08rem;}
}


/* MEGA-MENU-COMPACT-RHYTHM-V35-20260918
   Compact vertical rhythm retained; premium C-level typography supersedes
   earlier crush rules. The v31 three-column information architecture remains unchanged. */
@media (min-width:861px){
  html body .bn-mega-panel{padding:22px 0 26px;}
}


/* Canonicalized from former standalone typography authority. */
/* TYPOGRAPHY-INTEGRITY-V33-20260917
   Semantic line-break protection for short compound service terms.
   Terms may move as a unit to the next line, but must not split at an internal hyphen. */

html body .bn-term-lock{
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
  hyphens:none;
}


/* MEGA-MENU-COMPACT-RHYTHM-V35-20260918
   Tightens only vertical menu whitespace; the v31 three-column information architecture remains unchanged. */
@media (min-width:861px){
  html body .bn-mega-panel{padding:18px 0 30px;}
}


/* FINAL-CASCADE-CLOSURE-20260919: last-authority responsive rhythm */
@media (min-width:761px){
  html body main .hero.service-hero.service-editorial-hero>.wrap{row-gap:0;}
  html body main .hero.service-hero.service-editorial-hero .lead{margin-top:0;}
  html body main .hero.oeuvre-hero>.wrap{row-gap:0;}
  html body main .hero.oeuvre-hero .lead{margin-top:0;}
}
html body main .service-gallery-section{padding-bottom:clamp(56px,6vw,96px);}
@media (max-width:620px){
  
  html body main .smart-quote-layout .category-card>span>.info-tip{display:inline-grid;position:static;vertical-align:middle;margin-left:12px;}
}

/* FINAL-CASCADE-CLOSURE-20260919E: category info control right anchoring */
@media (max-width:620px){
  
}


/* FINAL-RESPONSIVE-CLOSURE-20260919F: white process section and compact quote cards */
@media (min-width:621px){
  html body main>section[data-surface="white"]:not(.hero){padding-bottom:clamp(56px,6vw,96px);}
}
@media (max-width:620px){
  /* Keep the expanded quote flow readable on 375–390px screens. The former
     nested 18px/13px/12px insets consumed the reading column before the
     long option copy was measured. Preserve the card hierarchy while giving
     the copy a full mobile reading measure. */
  html body main .smart-quote-layout .quote-step{padding:14px;}
  html body main .smart-quote-layout .quote-decision-guide{padding:10px;}
  html body main .smart-quote-layout :is(.category-card,.option-row){padding-inline:10px;}

  /* Quote choices keep long descriptions at full width. Radio controls occupy
     their own row and help buttons follow the copy in a separate grid row. */
  html body main .smart-quote-layout .category-grid{
    grid-template-columns:minmax(0,1fr);
  }
  html body main .smart-quote-layout :is(.category-card,.option-row){
    padding-inline:6px;
    display:grid;
    grid-template-columns:24px minmax(0,1fr);
    gap:8px;
    position:relative;
    padding:13px;
    align-items:center;
  }
  /* Keep the shared 16px step and 13px choice-card insets while removing
     the extra icon/control columns that narrowed long copy on small phones. */
  html body main .smart-quote-layout .quote-step{padding-inline:16px;width:calc(100% + 48px);margin-inline:-24px;}
  html body main .smart-quote-layout :is(.category-card,.option-row)>input[type="radio"],
  html body main .smart-quote-layout :is(.category-card,.option-row)>input[type="checkbox"]{
    position:static;
    margin:0;
  }
  html body main .smart-quote-layout :is(.category-card,.option-row)>span{
    display:grid;
    grid-column:2;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    max-width:none;
  }
  html body main .smart-quote-layout :is(.category-card,.option-row)>span>strong,
  html body main .smart-quote-layout :is(.category-card,.option-row)>span>em{
    max-inline-size:none;
  }
  html body main .smart-quote-layout :is(.category-card,.option-row)>span>.info-tip{
    grid-area:auto;
  }
}


/* FINAL-SECTION-RHYTHM-CLOSURE-20260919G */
@media (min-width:621px){
  html body main .service-gallery-section,
  html body main>section[data-surface="white"]:not(.hero){padding-bottom:clamp(56px,6vw,96px);}
  html body main .executive-positioning-section{padding-bottom:96px;}
}


/* ROOT-LAYOUT-CLOSURE-20260920: compact sections must not leave audit-visible trailing void. */
@media (min-width:621px){
  html body main .service-gallery-section,
  html body main>section[data-surface="white"]:not(.hero),
  html body main .executive-positioning-section{padding-bottom:56px;}
}
/* INTERACTIVE-SUMMARY-TARGET-CLOSURE-20260919
   The browser accessibility audit measures every visible summary, including the
   responsive navigation submenu. Keep all interactive summaries at the same
   touch-target floor so a hidden/expanded state cannot regress the gate. */
@media (max-width:1179px){
  html body .site-header .nav-submenu>summary,
  html body .site-footer details.footer-accordion>summary,
  html body details.review-drawer>summary{
    min-block-size:44px;
    line-height:1.25;
  }
}
/* Premium menu: geometry owned by HARMONY-V31 — do not re-crush typography here. */
html body .bn-mega-panel,
html body .bn-mega-grid,
html body .bn-mega-column,
html body .bn-mega-item,
html body .bn-mega-link,
html body .bn-mega-desc{
  min-width:0;
  box-sizing:border-box;
}


/* ROOT-CAUSE-VISUAL-CONTRACT-CLOSURE-20260920
   The approved visual contract measures top-level colored hero panels as viewport
   surfaces. Keep the split hero media column narrow while extending only its
   background surface to the viewport edge; restore the minimum vertical rhythm
   of colored gallery sections at tablet/desktop widths. */
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{
    position:relative;
    isolation:isolate;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only::before{
    content:" ";
    display:block;
    position:absolute;
    inset:0 auto 0 0;
    width:100vw;
    min-width:100vw;
    height:100%;
    background:#0a0a0a;
    z-index:0;
    pointer-events:none;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    position:relative;
    z-index:1;
  }
}
@media (min-width:761px) and (max-width:1179px){
  html body main .service-gallery-section{
    padding-bottom:56px;
  }
}


/* LIVE-PIXEL-GEOMETRY-CLOSURE-20260920 */
/* Match the design authority: the desktop hero media is 15% shorter than
   the unchanged copy panel, while the copy remains the grid row anchor. */
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    height:clamp(629px,35.7vw,748px);
    min-height:0;
    max-height:clamp(629px,35.7vw,748px);
  }
}
/* Desktop mega-menu vertical bounds owned by HARMONY-V31 premium cascade. */


/* LIVE-PIXEL-GEOMETRY-FINAL-CLOSURE-20260920 */
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{
    align-self:start;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    align-self:start;
    height:clamp(629px,35.7vw,748px);
    min-height:0;
    max-height:clamp(629px,35.7vw,748px);
  }
}
/* superseded: desktop mega-menu padding owned by HARMONY-V31 */
@media (min-width:1180px){
  html body main .collage-gallery>figure.editorial-image img{
    max-inline-size:100%;
  }
}

/* MOBILE-VIEW-FINAL-CLOSURE-20260921-END */
@media (max-width:680px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{background:#fff;}
  html body .site-footer details.footer-accordion:not([open])>ul{display:none;block-size:0;max-block-size:0;min-block-size:0;margin:0;padding-block:0;overflow:hidden;visibility:hidden;}
  html body .site-footer details.footer-accordion[open]>ul{display:block;block-size:auto;max-block-size:none;min-block-size:0;margin:4px 0 0;padding:0 0 12px;overflow:visible;visibility:visible;}
  /* Mobile mega-menu: allow scroll; typography owned by HARMONY-V31. */
  html body .bn-mega-intro p,html body .bn-mega-desc,html body .bn-mega-tail{display:none;}
}


@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]{
    display:block;
    overflow:visible;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    grid-column:auto;
    grid-row:auto;
    block-size:auto;
    min-block-size:0;
    max-block-size:none;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{
    width:100%;
    padding:0;
    margin:0;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    width:100%;
    max-width:none;
    height:auto;
    min-height:0;
    max-height:none;
    margin:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    aspect-ratio:2400 / 1117;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    width:100%;
    height:100%;
    min-height:0;
    max-height:none;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    width:100%;
    min-height:0;
    padding:clamp(64px,5vw,88px) clamp(32px,6vw,96px);
    border-left:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only>.wrap{
    width:min(100%,900px);
    max-width:900px;
    margin-inline:auto;
  }

  html body .bn-mega-menu{
    position:fixed;
    inset:var(--header-h,56px) 0 0;
    width:100vw;
    height:calc(100dvh - var(--header-h,56px));
    min-height:calc(100dvh - var(--header-h,56px));
    overflow-y:auto;
    overflow-x:hidden;
    background:#202530;
  }
  html body .bn-mega-panel{
    width:min(1440px,calc(100vw - 80px));
    max-width:1440px;
    min-height:100%;
    margin-inline:auto;
    padding:clamp(48px,6vh,76px) 0 clamp(56px,7vh,88px);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  
  
  html body .bn-mega-item{
    margin-block:.82rem;
  }
}
@media (max-width:720px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    padding:0;
    margin:0;
    height:auto;
    min-height:0;
    max-height:none;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture{
    display:block;
    height:auto;
    min-height:0;
    margin:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img{
    display:block;
    width:100%;
    height:auto;
    min-height:0;
    max-height:none;
    margin:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    margin-top:0;
    border-top:0;
  }
  html body main .contact-routing .service-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
  }
  html body main .contact-routing .service-grid>.card{
    margin:0;
  }
}


/* PIXEL-GATE-CORRECTION-20260921 */
/* Root-cause authority: homepage desktop hero is stacked, not split.
   The former pixel-gate correction reintroduced the two-column grid and
   overrode the approved full-width structure. Keep media full-width, place
   copy below it, and keep the rest of the homepage in normal document flow. */
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]{
    display:block;
    overflow:clip;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    grid-column:auto;
    grid-row:auto;
    width:100%;
    max-width:none;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{
    height:var(--homepage-hero-media-height);
    min-height:var(--homepage-hero-media-height);
    max-height:var(--homepage-hero-media-height);
    padding:0;
    margin:0;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only::before{
    display:none;
    content:none;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    width:100%;
    max-width:none;
    height:100%;
    min-height:0;
    max-height:none;
    margin:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    overflow:hidden;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-video{
    object-fit:cover;
    object-position:center center;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    height:auto;
    min-height:0;
    max-height:none;
    padding:clamp(56px,4.5vw,80px) clamp(32px,6vw,96px);
    border-left:0;
    border-top:0;
    background:#fff;
    overflow:visible;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only>.wrap{
    width:min(100%,900px);
    max-width:900px;
    margin-inline:auto;
    padding-inline:0;
  }

  html body .bn-mega-menu{
    position:fixed;
    inset:var(--header-h,56px) 0 0;
    width:100vw;
    height:calc(100dvh - var(--header-h,56px));
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    background:#202530;
  }
  html body .bn-mega-panel{
    width:min(1440px,calc(100vw - 80px));
    max-width:1440px;
    min-height:0;
    height:auto;
    margin-inline:auto;
    padding:18px 0 24px;
    display:block;
  }
  html body .bn-mega-desc,
  html body .bn-mega-section-head p{
    display:block;
  }
  html body .bn-mega-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:clamp(40px,4.2vw,72px);
  }

  html body .site-footer{
    height:auto;
    min-height:0;
    max-height:none;
    padding-bottom:12px;
    overflow-x:clip;
  }
  html body .site-footer .footer-grid{
    min-width:0;
    max-width:100%;
    grid-auto-rows:max-content;
    align-content:start;
    overflow:visible;
  }
  html body .site-footer .footer-bottom{
    margin-top:16px;
    padding-top:10px;
  }
  html body .site-footer .banhalmi-ecosystem{
    margin-top:6px;
    padding-top:4px;
    padding-bottom:0;
  }
  html body .site-footer .footer-contact-list{
    column-gap:clamp(28px,2.6vw,44px);
  }
  html body .site-footer .footer-contact-list .footer-studio+.footer-studio{
    padding-inline-start:clamp(24px,2vw,34px);
    border-inline-start:1px solid rgba(245,245,247,.14);
  }
}

/* DESCRIPTIVE-MENU-BOUNDARY-CORRECTION-20260921 */
@media (min-width:1180px){
  html body .bn-mega-menu .bn-mega-panel{
    padding:12px 0 24px;
  }
  html body .bn-mega-menu .bn-mega-desc,
  html body .bn-mega-menu .bn-mega-section-head p{
    display:block;
  }
}


/* TABLET-HERO-SIGNATURE-CONTRAST-20260921 */
@media (min-width:621px) and (max-width:1179px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-signature-line{
    color:#d1b451;
  }
}


/* UHD-HOMEPAGE-WRAP-BOUNDARY-20260921 */
/* Root-cause closure for the final exhaustive design audit:
   homepage content wraps may never exceed the canonical 1760px structured max
   at UHD/4K widths. */
@media (min-width:2560px){
  html body main[data-homepage-redesign="stage76"]>section:not(.hero-visual-only):not(.hero-copy-only)>.wrap,
  html body main[data-homepage-redesign="stage76"]>section:not(.hero-visual-only):not(.hero-copy-only) .wrap{
    width:min(1760px,calc(100% - 80px));
    max-width:1760px;
    margin-inline:auto;
  }
}


/* UHD-SPLIT-HERO-WRAP-CLOSURE-20260921 */
@media (min-width:2560px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap{
    width:100%;
    max-width:1760px;
    margin-left:0;
    margin-right:auto;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    width:100%;
    max-width:1760px;
  }
}


/* MOBILE-ROOT-CAUSE-CLOSURE-20260921 */
/* The source hero artwork contains a soft-grey tail below the gold sweep.
   On mobile the full intrinsic image exposed that tail. Crop the media by the
   same 15% visual reduction used by the responsive contract and keep the copy
   on a white surface. The menu leaves a bottom safety zone for mobile browser
   chrome and remains scrollable. */
@media (max-width:620px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{
    height:39.5604vw;
    min-height:39.5604vw;
    max-height:39.5604vw;
    padding:0;
    margin:0;
    background:#fff;
    overflow:hidden;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img{
    width:100%;
    height:100%;
    min-height:0;
    max-height:none;
    margin:0;
    padding:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    overflow:hidden;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img{
    object-fit:cover;
    object-position:center top;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    margin-top:0;
    padding-top:clamp(52px,14vw,68px);
    background:#fff;
    border-top:0;
  }

  html body .bn-mega-menu{
    inset:0 0 max(72px,env(safe-area-inset-bottom)) 0;
    width:100vw;
    height:auto;
    min-height:0;
    max-height:none;
    overflow-y:auto;
    overflow-x:hidden;
  }
  html body .bn-mega-panel{
    width:100%;
    max-width:none;
    height:auto;
    min-height:0;
    padding:64px 18px 18px;
    overflow:visible;
  }
  html body .bn-mega-column{
    padding-block:14px 12px;
  }
  html body .bn-mega-grid{
    gap:0;
  }
  html body .bn-mega-link{
    min-height:36px;
  }

  html body .site-footer{
    height:auto;
    min-height:0;
    max-height:none;
    padding-bottom:max(10px,env(safe-area-inset-bottom));
  }
}


@media (min-width:1180px){

  html body .bn-mega-menu{
    display:block;
    padding-block:clamp(24px,5vh,64px);
    box-sizing:border-box;
  }
  html body .bn-mega-panel{
    min-height:0;
    height:auto;
    display:block;
    padding:clamp(32px,4vh,48px) 0 20px;
  }
  html body .bn-mega-grid{
    width:100%;
    margin-block:0;
  }
  html body .bn-mega-grid{
    align-items:start;
  }
}

@media (max-width:1179px){
  html body .bn-mega-menu{
    position:fixed;
    inset:0;
    width:100vw;
    height:100dvh;
    min-height:100dvh;
    max-height:100dvh;
    background:#202530;
    overflow-y:auto;
    overflow-x:hidden;
  }
  html body .bn-mega-panel{
    width:100%;
    max-width:none;
    min-height:100dvh;
    height:auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:clamp(62px,8vh,76px) 18px max(96px,calc(env(safe-area-inset-bottom) + 84px));
    overflow:visible;
  }
  html body .bn-mega-grid{
    width:100%;
    gap:0;
    align-content:center;
  }
  html body .bn-mega-column{
    padding:10px 0 8px;
  }
  html body .bn-mega-section-head{
    margin:0 0 6px;
    padding:0 0 6px;
  }
  html body .bn-mega-section-head>span{
    font-size:.76rem;
    line-height:1.15;
  }
  html body .bn-mega-item{
    margin:0;
    padding:0;
  }
  html body .bn-mega-link,
  html body .bn-mega-service .bn-mega-link,
  html body .bn-mega-footer .bn-mega-link{
    min-height:44px;
    padding:2px 0;
    font-size:clamp(.94rem,4.15vw,1.02rem);
    line-height:1.12;
  }
  html body .bn-mega-desc,
  html body .bn-mega-intro p,
  html body .bn-mega-tail{
    display:none;
  }
  html body .bn-mega-footer{
    padding-top:10px;
  }
}

@media (max-width:430px){
  html body .bn-mega-panel{
    padding-inline:18px;
    padding-top:60px;
    padding-bottom:max(92px,calc(env(safe-area-inset-bottom) + 80px));
  }
  html body .bn-mega-column{
    padding-block:7px 6px;
  }
  html body .bn-mega-section-head{
    margin-bottom:4px;
    padding-bottom:4px;
  }
  html body .bn-mega-link,
  html body .bn-mega-service .bn-mega-link,
  html body .bn-mega-footer .bn-mega-link{
    min-height:44px;
    font-size:.95rem;
  }
}


/* FINAL-LAYOUT-RUNTIME-CLOSURE-20260921 */
/* Evidence-backed closure for live regressions reported on 2026-09-21.
   Canonical effects only: no new runtime geometry injection. */


html{background:#1d232d;}
html body{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  background:#fff;
}


/* 2) Card/block rhythm: never let adjacent rounded content cells visually fuse. */
html body main .service-grid,
html body main .cards-grid{
  gap:clamp(20px,1.8vw,28px);
}
html body main .cards-grid{display:grid;}
html body main .contact-routing .service-grid{
  row-gap:clamp(22px,2vw,30px);
}
html body main .legal-navigation .service-grid{
  row-gap:clamp(20px,1.8vw,28px);
}

/* 3) Shared disclosure indicator: every interactive summary uses + / minus.
   Footer disclosures retain their canonical trailing gold marker. */
html body details:not(.footer-accordion)>summary{
  position:relative;
  padding-right:34px;
  cursor:pointer;
  list-style:none;
}
html body details:not(.footer-accordion)>summary::-webkit-details-marker{display:none;}
html body details:not(.footer-accordion)>summary::marker{content:"";}
html body details:not(.footer-accordion)>summary::after{
  content:"+";
  display:block;
  position:absolute;
  right:4px;
  top:50%;
  width:20px;
  height:24px;
  border:0;
  font-size:24px;
  font-weight:400;
  line-height:24px;
  text-align:center;
  color:currentColor;
  transform:translateY(-50%);
  transition:none;
  opacity:1;
}
html body details:not(.footer-accordion)[open]>summary::after{content:"−";}
html body main .smart-quote-layout .quote-decision-guide>summary{display:block;}
html body .quote-decision-guide .quote-price-note{
  display:block;
  margin-top:8px;
  font-size:.875rem;
  font-weight:400;
  line-height:1.5;
}

/* 4) Homepage hero: crop the artwork before the source-image grey tail so the
   gold sweep transitions directly onto the white copy surface. */
@media (min-width:1180px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only{
    height:clamp(600px,42.8vw,720px);
    min-height:clamp(600px,42.8vw,720px);
    max-height:clamp(600px,42.8vw,720px);
    background:#fff;
    overflow:hidden;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img{
    height:100%;
    min-height:0;
    max-height:none;
    background:#fff;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure>picture>img{
    object-fit:cover;
    object-position:center top;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    background:#fff;
    margin-top:0;
    border-top:0;
  }
}
@media (max-width:1179px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    background:#fff;
    overflow:hidden;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    background:#fff;
    margin-top:0;
    border-top:0;
  }
}


/* TABLET-HERO-SIGNATURE-CONTRAST-20260922 */
@media (min-width:621px) and (max-width:1179px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-signature-line{
    color:#1d1d1f;
    text-shadow:none;
  }
}


/* HOMEPAGE-WHITE-SWEEP-V37-20260923: homepage EN/HU/DE keeps the field below the gold sweep white without mutating hashed site.css. */
html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure::after{
  background:#fff;
}

/* HOMEPAGE-MOBILE-HERO-EDGE-V43-20260925
   Keep the original BANHALMI curved gold sweep while removing the legacy
   figure-flow gap below the hero. The curve belongs to the image edge; the
   following content section begins immediately after the figure. */
@media (max-width:720px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only>.wrap,
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{
    margin-bottom:0;
    padding-bottom:0;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure{margin-top:0;}
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-figure::after{
    left:-14%;
    right:auto;
    bottom:-40px;
    width:128%;
    height:64px;
    background:#fff;
    border-top:4px solid #B79C44;
    border-right:0;
    border-bottom:0;
    border-left:0;
    border-radius:50% 50% 0 0 / 34% 34% 0 0;
    transform:translateZ(0);
  }
}
/* HOMEPAGE-MOBILE-HERO-POLISH-V44-20260925
   User-verified mobile correction: keep the identity mark quiet, move the gold
   sweep lower in the artwork, and remove the oversized white handoff before
   the homepage positioning copy. */
@media (max-width:720px){
  html body main[data-homepage-redesign="stage76"]>.hero-visual-only .hero-signature-line{
    top:56%;
    width:min(68%,480px);
    color:#6f4f0f;
    text-shadow:none;
    opacity:.92;
  }
  html body main[data-homepage-redesign="stage76"]>.hero-copy-only{
    padding-top:clamp(24px,7vw,36px);
  }
}

/* DESKTOP-FOOTER-POLISH-V44-20260925
   Desktop keeps the compact editorial geometry while footer disclosures remain
   native, default-closed and user-owned. Keep the legal/trust/cookie controls
   on one stable row without allowing route content to widen the document. */
@media (min-width:1180px){
  html,
  html body{
    overscroll-behavior-y:none;
  }
  html body{
    padding-bottom:0;
  }
  /* Disclosure interaction and visibility are governed by the canonical
     user-owned [open] / :not([open]) contract below. */
  html body .site-footer .footer-bottom{
    grid-template-columns:max-content minmax(0,1fr);
    column-gap:24px;
  }
  html body .site-footer .footer-bottom>span:last-child{
    flex-wrap:nowrap;
    justify-content:flex-end;
    white-space:nowrap;
  }
  html body .site-footer .footer-cookie-settings{
    flex:0 0 auto;
    white-space:nowrap;
  }
}

/* V41 document-flow closure: one canonical flex flow from source through production.
   Main owns remaining viewport space; the footer stays intrinsic and cannot leave an unreserved tail. */
html body{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}
html body>main,
html body>#main{
  flex:1 0 auto;
  width:100%;
  min-width:0;
  min-height:0;
}
html body>.site-footer,
html body .site-footer{
  flex:0 0 auto;
}

html{background:#fff;}
html body{background:#fff;}

/* FOOTER-SINGLE-CANONICAL-V43-20260926
   Sole responsive footer geometry authority.
   One footer composition for every EN / HU / DE route.
   No route-specific footer geometry and no runtime geometry mutation. */
html body .site-footer{
  flex:0 0 auto;
  align-self:stretch;
  inline-size:100%;
  max-inline-size:100%;
  height:auto;
  min-height:0;
  max-height:none;
  margin:0;
  padding:0;
  overflow-x:clip;
  background:#1d232d;
  color:#9fa7b3;
}
html body .site-footer>.wrap{
  /* Match the canonical content canvas; desktop and mobile share one text axis. */
  inline-size:min(100%,var(--apple-page-max));
  max-inline-size:var(--apple-page-max);
  margin-inline:auto;
  padding:34px var(--apple-gutter) 18px;
  box-sizing:border-box;
  min-inline-size:0;
}
html body .site-footer .footer-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:auto auto;
  column-gap:clamp(18px,2.2vw,34px);
  row-gap:32px;
  align-items:start;
  align-content:start;
  min-inline-size:0;
  max-inline-size:100%;
  overflow:visible;
}
html body .site-footer .footer-brand-col,
html body .site-footer .footer-grid>div,
html body .site-footer .footer-grid>details{
  min-inline-size:0;
  max-inline-size:100%;
  margin:0;
}
/* Explicit placement is tablet/desktop-only. Keeping these rules out of
   <=720px prevents high-specificity nth-of-type selectors from creating
   implicit desktop tracks inside the one-column mobile grid. */
@media (min-width:721px){
  html body .site-footer .footer-brand-col{grid-column:1 / span 3;grid-row:1;}
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(1){grid-column:4 / span 2;grid-row:1;}
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(2){grid-column:6 / span 2;grid-row:1;}
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(3){grid-column:8 / span 2;grid-row:1;}
  html body .site-footer .footer-grid>details.footer-accordion[data-social-footer]{grid-column:10 / span 3;grid-row:1;}
  html body .site-footer .footer-grid>div:has(.footer-contact-list){grid-column:1 / span 6;grid-row:2;}
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer]{grid-column:7 / span 3;grid-row:2;}
  html body .site-footer .footer-grid>div:has(.footer-legal-list){grid-column:10 / span 3;grid-row:2;}
}

html body .site-footer .footer-grid>div:has(.footer-contact-list),
html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer],
html body .site-footer .footer-grid>div:has(.footer-legal-list){
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:22px;
}

html body .site-footer .brand{
  color:#B79C44;
  margin:0 0 14px;
  letter-spacing:.18em;
}
html body .site-footer .footer-entity{
  max-inline-size:30ch;
  margin:0 0 18px;
  color:#9fa7b3;
  font-size:.82rem;
  line-height:1.48;
  overflow-wrap:break-word;
  word-break:normal;
}
html body .site-footer .footer-wko-profile{
  display:inline-flex;
  margin:0;
  padding:7px 9px;
  min-height:0;
  max-inline-size:100%;
  border:1px solid rgba(217,183,95,.40);
  border-radius:7px;
}
html body .site-footer .footer-wko-profile img{
  width:auto;
  height:auto;
  max-width:112px;
  max-height:42px;
}

html body .site-footer .footer-accordion{padding:0;}
html body .site-footer .footer-accordion>summary,
html body .site-footer .footer-heading{
  color:#fff;
  font-size:.75rem;
  line-height:1.2;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin:0 0 13px;
  font-weight:650;
}
html body .site-footer .footer-accordion>summary{
  display:flex;
  align-items:center;
  min-height:44px;
  cursor:pointer;
  list-style:none;
  padding-right:34px;
}
html body .site-footer .footer-accordion>summary::-webkit-details-marker{display:none;}
html body .site-footer ul{list-style:none;margin:0;padding:0;}
html body .site-footer li{min-inline-size:0;margin:0;}
html body .site-footer .footer-accordion ul{display:grid;row-gap:6px;}
html body .site-footer details.footer-accordion:not([open])>ul{display:none;block-size:0;min-block-size:0;max-block-size:0;margin:0;padding:0;overflow:hidden;visibility:hidden;}
html body .site-footer details.footer-accordion[open]>ul{display:grid;block-size:auto;min-block-size:0;max-block-size:none;overflow:visible;visibility:visible;}

html body .site-footer a{
  min-inline-size:0;
  color:#9fa7b3;
  text-decoration:none;
  overflow-wrap:break-word;
  word-break:normal;
}
html body .site-footer a:hover{color:#fff;}
html body .site-footer .footer-accordion li>a{
  display:block;
  inline-size:100%;
  max-inline-size:100%;
  white-space:normal;
  position:relative;
  padding-block:5px;
  line-height:1.35;
}
html body .site-footer .footer-grid>details.footer-accordion[data-social-footer] ul{
  grid-template-columns:minmax(0,1fr);
  column-gap:14px;
}
html body .site-footer .footer-accordion li>a::before{
  content:none;
}
html body .site-footer :is(a,button,summary):focus-visible{
  outline:2px solid #B79C44;
  outline-offset:4px;
  border-radius:2px;
}

html body .site-footer .footer-contact-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border:0;
  min-inline-size:0;
  max-inline-size:100%;
}
html body .site-footer .footer-contact-list .footer-location{
  display:grid;
  gap:4px;
  margin:0;
  padding:14px 18px 15px 0;
  border:0;
  min-inline-size:0;
  max-inline-size:100%;
}
html body .site-footer .footer-contact-list .footer-location+.footer-location{
  border-left:0;
  padding-left:18px;
}
html body .site-footer .footer-contact-list :is(.footer-location-link,.footer-address,.footer-location-note,.footer-phone){
  min-inline-size:0;
  max-inline-size:100%;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
}
html body .site-footer .footer-location-link{color:#fff;font-weight:650;}
html body .site-footer .footer-address,
html body .site-footer .footer-location-note,
html body .site-footer .footer-phone{
  font-size:.79rem;
  line-height:1.48;
}
html body .site-footer .footer-phone{color:#d5d8dd;}
html body .site-footer .footer-contact-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 22px;
  margin-top:10px;
  padding:0;
  border:0;
}
html body .site-footer .footer-contact-actions a{
  min-block-size:28px;
  display:inline-flex;
  align-items:center;
  font-size:.79rem;
  line-height:1.35;
}
html body .site-footer .footer-contact-actions a:first-child{
  color:#fff;
  font-weight:650;
}

html body .site-footer .footer-legal-list{
  display:grid;
  row-gap:9px;
  min-inline-size:0;
  max-inline-size:100%;
}
html body .site-footer .footer-legal-list li{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:8px;
  min-inline-size:0;
  font-size:.76rem;
  line-height:1.35;
}
html body .site-footer .footer-legal-list li>*{min-inline-size:0;}
html body .site-footer .footer-legal-list li>strong{
  color:#f1f2f4;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
}

html body .site-footer .footer-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px 28px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#8f97a8;
  font-size:.74rem;
  line-height:1.4;
}
html body .site-footer .footer-bottom>span{min-inline-size:0;}
html body .site-footer .footer-bottom>span:last-child{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:6px 10px;
}
html body .site-footer .footer-bottom>span:last-child>a,
html body .site-footer .footer-cookie-settings{
  min-block-size:44px;
  display:inline-flex;
  align-items:center;
  padding:0;
  color:inherit;
  background:none;
  border:0;
  line-height:inherit;
  vertical-align:middle;
}
@media (min-width:1440px){
  html body .site-footer .footer-bottom{
    grid-template-columns:max-content minmax(0,1fr);
    column-gap:24px;
  }
  html body .site-footer .footer-bottom>span:last-child{
    flex-wrap:nowrap;
    justify-content:flex-end;
    gap:0 8px;
    white-space:nowrap;
  }
  html body .site-footer .footer-cookie-settings{
    flex:0 0 auto;
    white-space:nowrap;
  }
}
@media (min-width:1180px) and (max-width:1439px){
  html body .site-footer .footer-bottom{
    grid-template-columns:1fr;
    row-gap:6px;
  }
  html body .site-footer .footer-bottom>span:first-child,
  html body .site-footer .footer-bottom>span:last-child{
    justify-self:start;
    justify-content:flex-start;
    text-align:left;
  }
}

html body .site-footer .banhalmi-ecosystem{
  inline-size:100%;
  max-inline-size:none;
  margin:0;
  padding:0 max(24px,calc((100% - 1440px)/2));
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  background:#171c24;
  border-top:1px solid rgba(255,255,255,.08);
}
html body .site-footer .banhalmi-ecosystem a{
  position:relative;
  min-block-size:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  color:#aeb4bd;
  font-size:.77rem;
  text-align:center;
}
html body .site-footer .banhalmi-ecosystem a+a::before{
  content:"";
  position:absolute;
  left:0;
  top:25%;
  bottom:25%;
  width:1px;
  background:rgba(255,255,255,.10);
}
html body .site-footer .banhalmi-ecosystem a:hover{color:#fff;}

@media (min-width:1180px){
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(1){grid-column:4 / span 3;}
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(2){grid-column:7 / span 2;}
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(3){grid-column:9 / span 2;}
  html body .site-footer .footer-grid>details.footer-accordion[data-social-footer]{grid-column:11 / span 2;}
  html body .site-footer .footer-grid>details.footer-accordion:not([data-social-footer]):not([data-memberships-footer]) ul,
  html body .site-footer .footer-grid>details.footer-accordion[data-social-footer] ul,
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer] ul{
    grid-template-columns:minmax(0,1fr);
    column-gap:14px;
    row-gap:4px;
  }
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(1) ul{column-gap:20px;}
  html body .site-footer .footer-accordion>summary{
    padding:0;
    margin-bottom:6px;
  }
  html body .site-footer .footer-grid>div:has(.footer-contact-list){grid-column:1 / span 6;}
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer]{grid-column:7 / span 3;}
  html body .site-footer .footer-grid>div:has(.footer-legal-list){grid-column:10 / span 3;}
  html body .site-footer .footer-grid>div:has(.footer-contact-list),
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer],
  html body .site-footer .footer-grid>div:has(.footer-legal-list){
    padding-top:24px;
  }
  html body .site-footer .footer-bottom{
    margin-top:24px;
    padding-top:20px;
  }
  html body .site-footer .footer-cookie-settings{
    min-height:44px;
  }
}

@media (min-width:1180px) and (max-width:1439px){
  html body .site-footer>.wrap{
    padding-top:30px;
  }
  html body .site-footer .footer-grid{column-gap:18px;row-gap:20px;}
  html body .site-footer .footer-contact-list .footer-location{padding-right:16px;}
  html body .site-footer .footer-contact-list .footer-location+.footer-location{padding-left:16px;}
  html body .site-footer .footer-accordion li>a{font-size:.82rem;}
}

@media (max-width:1179px){
  html body .site-footer>.wrap{
    padding:36px var(--apple-gutter) 22px;
  }
  html body .site-footer .footer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:none;
    column-gap:28px;
    row-gap:24px;
  }
  html body .site-footer .footer-grid>*{grid-column:auto;grid-row:auto;}
  html body .site-footer .footer-brand-col{grid-column:1 / -1;}
  html body .site-footer .footer-grid>div:has(.footer-contact-list){grid-column:1 / -1;}
  html body .site-footer .footer-grid>div:has(.footer-contact-list),
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer],
  html body .site-footer .footer-grid>div:has(.footer-legal-list){
    border-top:1px solid rgba(255,255,255,.12);
    padding-top:18px;
  }
  html body .site-footer details.footer-accordion:not([open])>ul{
    display:none;
    block-size:0;
    min-block-size:0;
    max-block-size:0;
    margin:0;
    padding:0;
    overflow:hidden;
    visibility:hidden;
  }
  html body .site-footer details.footer-accordion[open]>ul{
    display:grid;
    block-size:auto;
    min-block-size:0;
    max-block-size:none;
    margin:4px 0 0;
    padding:0 0 12px;
    overflow:visible;
    visibility:visible;
  }
  html body .site-footer .footer-contact-list{grid-template-columns:repeat(3,minmax(0,1fr));}
  html body .site-footer .footer-bottom{
    grid-template-columns:1fr;
    margin-top:22px;
  }
  html body .site-footer .footer-bottom>span:last-child{justify-content:flex-start;}
}

@media (min-width:721px) and (max-width:899px){
  html body:not(:has(.quote-summary-card)) .site-footer{
    padding-bottom:0;
  }
}

@media (min-width:721px) and (max-width:1179px){
  html body .site-footer>.wrap{
    padding:26px var(--apple-gutter) 18px;
  }
  html body .site-footer .footer-grid{
    grid-template-columns:repeat(12,minmax(0,1fr));
    grid-template-rows:auto auto auto;
    column-gap:14px;
    row-gap:12px;
    align-items:start;
  }
  html body .site-footer .footer-brand-col{
    grid-column:1 / span 3;
    grid-row:1 / span 2;
  }
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(1){
    grid-column:4 / span 3;grid-row:1;
  }
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(2){
    grid-column:7 / span 3;grid-row:1;
  }
  html body .site-footer .footer-grid>details.footer-accordion:nth-of-type(3){
    grid-column:10 / span 3;grid-row:1;
  }
  html body .site-footer .footer-grid>details.footer-accordion[data-social-footer]{
    grid-column:4 / span 4;grid-row:2;
  }
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer]{
    grid-column:8 / span 5;grid-row:2;
    border-top:0;
    padding-top:0;
  }
  html body .site-footer .footer-grid>div:has(.footer-contact-list){
    grid-column:1 / span 9;grid-row:3;
    padding-top:12px;
  }
  html body .site-footer .footer-grid>div:has(.footer-legal-list){
    grid-column:10 / span 3;grid-row:3;
    padding-top:12px;
  }
  html body .site-footer .footer-accordion>summary{
    min-height:44px;
    margin:0;
    padding:0 34px 0 0;
  }
  html body .site-footer .footer-entity{
    margin-bottom:12px;
    font-size:.78rem;
    line-height:1.42;
  }
  html body .site-footer .footer-wko-profile{
    padding:5px 7px;
  }
  html body .site-footer .footer-wko-profile img{
    max-width:92px;
    max-height:34px;
  }
  html body .site-footer .footer-contact-list{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  html body .site-footer .footer-contact-list .footer-location{
    padding:10px 12px 10px 0;
    gap:2px;
  }
  html body .site-footer .footer-contact-list .footer-location+.footer-location{
    padding-left:12px;
  }
  html body .site-footer .footer-contact-list :is(.footer-address,.footer-location-note,.footer-phone){
    font-size:.74rem;
    line-height:1.35;
  }
  html body .site-footer .footer-contact-actions{
    margin-top:8px;
    gap:4px 14px;
  }
  html body .site-footer .footer-contact-actions a{
    min-block-size:44px;
    font-size:.75rem;
  }
  html body .site-footer .footer-legal-list{
    row-gap:4px;
  }
  html body .site-footer .footer-legal-list li{
    grid-template-columns:52px minmax(0,1fr);
    gap:6px;
    font-size:.72rem;
    line-height:1.3;
  }
  html body .site-footer .footer-bottom{
    grid-template-columns:minmax(0,.72fr) minmax(0,1.78fr);
    gap:10px 18px;
    margin-top:12px;
    padding-top:12px;
    font-size:.7rem;
  }
  html body .site-footer .footer-bottom>span:last-child{
    justify-content:flex-end;
  }
  html body .site-footer .banhalmi-ecosystem a{
    min-block-size:44px;
    padding:8px 10px;
  }
}

@media (max-width:720px){
  html body .site-footer>.wrap{
    min-inline-size:0;
    padding:24px var(--apple-gutter) 16px;
  }
  html body .site-footer .footer-grid{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:none;
    grid-auto-flow:row;
    grid-auto-rows:auto;
    column-gap:0;
    row-gap:12px;
    inline-size:100%;
    max-inline-size:100%;
    min-inline-size:0;
  }
  html body .site-footer .footer-grid>*,
  html body .site-footer .footer-brand-col,
  html body .site-footer .footer-grid>details.footer-accordion,
  html body .site-footer .footer-grid>div:has(.footer-contact-list),
  html body .site-footer .footer-grid>div:has(.footer-legal-list){
    grid-column:1 / -1;
    grid-row:auto;
    inline-size:100%;
    width:100%;
    max-inline-size:100%;
    min-inline-size:0;
    justify-self:stretch;
  }
  html body .site-footer .footer-entity{
    inline-size:100%;
    max-inline-size:none;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  html body .site-footer .footer-accordion>summary{inline-size:100%;min-block-size:44px;}
  html body .site-footer .footer-contact-list{
    grid-template-columns:minmax(0,1fr);
    inline-size:100%;
    max-inline-size:100%;
    border-bottom:0;
  }
  html body .site-footer .footer-contact-list .footer-location,
  html body .site-footer .footer-contact-list .footer-location+.footer-location{
    padding:10px 0;
    border-left:0;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  html body .site-footer .footer-contact-actions{gap:6px 16px;inline-size:100%;}
  html body .site-footer .footer-legal-list{inline-size:100%;}
  html body .site-footer .footer-legal-list li{grid-template-columns:68px minmax(0,1fr);}
  html body .site-footer .footer-bottom{grid-template-columns:minmax(0,1fr);inline-size:100%;}
  html body .site-footer .banhalmi-ecosystem{grid-template-columns:minmax(0,1fr);padding-inline:18px;}
  html body .site-footer .banhalmi-ecosystem a{justify-content:flex-start;text-align:left;}
  html body .site-footer .banhalmi-ecosystem a+a::before{left:0;right:0;top:0;bottom:auto;width:auto;height:1px;}
}

/* MOBILE-QUOTE-FOOTER-FLOW-V44-20260926 */
@media (max-width:900px){html body:has([data-smart-quote]){padding-bottom:0}html body main:has([data-smart-quote]){padding-bottom:112px}html body:has([data-smart-quote]) .site-footer{position:relative;z-index:91}}


/* FOOTER-SAFARI-CLOSURE-V46-20260927
   Desktop second-row groups share one physical top edge and heading box.
   This is intentionally global: homepage, Portrait, Brand, Event and every
   EN/HU/DE route use the same footer geometry. */
@media (min-width:1180px){
  html body .site-footer .footer-grid>div:has(.footer-contact-list),
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer],
  html body .site-footer .footer-grid>div:has(.footer-legal-list){
    border-top:1px solid rgba(255,255,255,.12);
    padding-top:0;
    align-self:start;
  }
  html body .site-footer .footer-grid>div:has(.footer-contact-list)>.footer-heading,
  html body .site-footer .footer-grid>details.footer-accordion[data-memberships-footer]>summary,
  html body .site-footer .footer-grid>div:has(.footer-legal-list)>.footer-heading{
    display:flex;
    align-items:center;
    min-height:44px;
    margin:0 0 8px;
    padding:0;
  }
  html body .site-footer .footer-grid>div:has(.footer-contact-list)>.footer-contact-list{
    border-top:0;
  }
  html body{padding-bottom:0;margin-bottom:0;}
  html body>.site-footer{margin-bottom:0;}
}
@media (max-width:720px){
  html body>.banhalmi-contact-dock{
    position:fixed;
    right:max(12px,env(safe-area-inset-right));
    bottom:max(12px,env(safe-area-inset-bottom));
    left:auto;
    z-index:2147483000;
  }
  html body>.banhalmi-contact-dock .banhalmi-contact-panel{
    position:fixed;
    left:12px;
    right:12px;
    bottom:calc(max(12px,env(safe-area-inset-bottom)) + 60px);
    width:auto;
    max-width:none;
    max-height:none;
    padding:12px;
    border:1px solid rgba(29,29,31,.12);
    border-radius:20px;
    background:rgba(255,255,255,.985);
    box-shadow:0 1px 0 rgba(0,0,0,.02),0 18px 54px rgba(0,0,0,.16);
    color:#111;
    overflow:visible;
  }
  html body>.banhalmi-contact-dock .banhalmi-contact-head{margin-bottom:8px}
  html body>.banhalmi-contact-dock .banhalmi-contact-head strong{font-size:18px;line-height:1.15}
  html body>.banhalmi-contact-dock .banhalmi-contact-list{gap:6px}
  html body>.banhalmi-contact-dock .banhalmi-contact-action,
  html body>.banhalmi-contact-dock .banhalmi-contact-studio{
    min-height:48px;
    padding:9px 11px;
    gap:12px;
    border:1px solid rgba(29,29,31,.12);
    border-radius:14px;
    background:#fff;
    color:#111;
  }
  html body>.banhalmi-contact-dock .banhalmi-contact-action strong,
  html body>.banhalmi-contact-dock .banhalmi-contact-studio strong{font-size:14px;line-height:1.25}
  html body>.banhalmi-contact-dock .banhalmi-contact-action span,
  html body>.banhalmi-contact-dock .banhalmi-contact-studio span{font-size:12px;line-height:1.3}
  html body>.banhalmi-contact-dock .banhalmi-contact-sep{margin:10px 0 8px}
  html body>.banhalmi-contact-dock .banhalmi-contact-label{margin:0 0 6px}
  html body>.banhalmi-contact-dock .banhalmi-contact-trigger{
    min-width:104px;
    min-height:48px;
  }
}

/* WEBKIT-SR-ONLY-FLOW-CLOSURE-V46-20260927
   Safari must not use multicolumn static positions of visually-hidden captions
   to extend document scroll height beyond the footer. */
html body .sr-only{
  position:absolute;
  top:0;
  left:0;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* BANHALMI gallery rhythm contract — 2026-10-01
   One visual rule for gallery gutters across EN/HU/DE and all responsive widths. */
:root{--banhalmi-gallery-gap:20px;}
.gallery,.banhalmi-portrait-gallery-grid,.service-lower-gallery-grid{gap:var(--banhalmi-gallery-gap);}
.pf-grid,.collage-gallery,.jony-gallery-grid{column-gap:var(--banhalmi-gallery-gap);}
.pf-item,.collage-gallery .editorial-image,.jony-gallery-grid figure{margin-bottom:var(--banhalmi-gallery-gap);}
@media (max-width:1100px){.collage-gallery{column-gap:var(--banhalmi-gallery-gap)}.collage-gallery .editorial-image{margin-bottom:var(--banhalmi-gallery-gap)}}
@media (max-width:680px){.collage-gallery{column-gap:var(--banhalmi-gallery-gap)}}


/* GLOBAL-TEXT-LINK-ARROW-V1-20261007
   Mirrors the footer LinkedIn ↗ treatment without changing accessible link names. */
html body a[data-banhalmi-link-arrow]::after{content:none;display:none;}
html body a[data-banhalmi-link-arrow]>.banhalmi-link-arrow{
  display:inline-block;
  margin-inline-start:.28em;
  font-size:.72em;
  line-height:1;
  font-weight:inherit;
  opacity:.55;
  vertical-align:.12em;
  text-decoration:none;
  transform:none;
}
html body a[data-banhalmi-link-arrow]:hover>.banhalmi-link-arrow,
html body a[data-banhalmi-link-arrow]:focus-visible>.banhalmi-link-arrow{opacity:.9;}
/* The relocated pricing disclosure is the final content block; do not reserve
   the generic below-fold intrinsic height after its collapsed state. */
html body main>.service-pricing-section--end{
  content-visibility:visible;
  contain-intrinsic-size:none;
  padding-block:clamp(16px,2vw,28px) clamp(20px,2.5vw,36px);
}
/* Service pages end after the pricing disclosure; the footer must follow the
   content instead of stretching the main element to fill the viewport. */
html body:has(main>.service-pricing-section--end)>main{flex:0 0 auto;}

/* All Professional service pages share the same editorial rhythm. */
html body main .service-gallery-section{
  padding-block:clamp(48px,6vw,88px);
}
html body main .service-gallery-section .section-head,
html body main .service-gallery-section .service-gallery-actions{
  max-width:var(--content-max,1180px);
  margin-inline:auto;
}
html body main .service-gallery-section .section-head{margin-bottom:clamp(24px,3vw,40px);}
html body main .service-gallery-section .section-head .eyebrow{margin-bottom:12px;}
html body main .service-gallery-section .service-gallery-actions{margin-top:clamp(30px,4vw,56px);}
html body main .service-gallery-section .service-lower-gallery-grid{margin-top:0;}
/* Tablet disclosure and price layout: one shared 900–1100px authority. */
@media (min-width:900px) and (max-width:1100px){
  html body main details.project-framework-drawer .project-framework-content{
    display:block;
    width:100%;
    max-width:none;
  }
  html body main details.project-framework-drawer .project-framework-content>section,
  html body main details.project-framework-drawer .project-framework-content>section>h2,
  html body main details.project-framework-drawer .project-framework-content>section>p,
  html body main details.project-framework-drawer .project-framework-content>section>.service-framework-links{
    display:block;
    width:100%;
    max-width:none;
    min-width:0;
  }
  html body main .service-pricing-section,
  html body main .service-deep-dive,
  html body main .project-framework-drawer,
  html body main .service-pricing-section>.wrap,
  html body main .service-deep-dive>.service-deep-dive-content,
  html body main .project-framework-drawer>.project-framework-content{
    display:block;
    width:100%;
    max-width:none;
  }
  html body main .service-pricing-section .quote-decision-guide,
  html body main .service-deep-dive .wrap,
  html body main .project-framework-drawer .project-framework-content>section{
    width:100%;
    max-width:none;
  }
  html body main details:not(.footer-accordion) .wrap,
  html body main details:not(.footer-accordion) .prose,
  html body main details:not(.footer-accordion) .section-head,
  html body main details:not(.footer-accordion) .text-reveal{
    display:block;
    grid-template-columns:none;
    width:100%;
    max-width:none;
    min-width:0;
  }
  /* Pricing panels already inset direct children; do not stretch .prose to 100% + margins. */
  html body main .service-pricing-section .quote-decision-guide > .prose{
    width:calc(100% - 60px);
    max-width:calc(100% - 60px);
    margin-inline:30px;
    box-sizing:border-box;
  }
  html body main .service-pricing-section .service-price-examples li{
    grid-template-columns:minmax(0,1fr);
    min-width:0;
  }
  html body main .service-pricing-section .service-price-examples li>strong{
    white-space:normal;
    text-align:start;
  }
  html body main .service-pricing-section .quote-decision-guide{
    min-width:0;
    overflow:hidden;
    max-width:100%;
  }
  html body main .service-pricing-section .quote-decision-guide>*,
  html body main .service-pricing-section .service-price-examples li,
  html body main .service-pricing-section .service-price-examples li>span,
  html body main .service-pricing-section .service-price-examples p{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  html body main .service-pricing-section .quote-decision-guide>summary{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  html body main .service-pricing-section .quote-decision-guide> :not(summary){
    width:calc(100% - 60px);
    max-width:calc(100% - 60px);
    min-width:0;
    box-sizing:border-box;
    margin-inline:30px;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  html body main .service-pricing-section .quote-decision-guide .service-price-examples,
  html body main .service-pricing-section .quote-decision-guide .service-price-examples ul,
  html body main .service-pricing-section .quote-decision-guide .service-price-examples li,
  html body main .service-pricing-section .quote-decision-guide .service-price-examples li>span,
  html body main .service-pricing-section .quote-decision-guide .service-price-examples p,
  html body main .service-pricing-section .quote-decision-guide .service-price-examples h2{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:normal;
  }
}
/* Pricing disclosures stay narrow-safe on phones and below the tablet reading breakpoint.
   Base .prose width:min(100%) + margin-inline otherwise sticks past the card edge. */
@media (max-width:760px){
  html body main .service-pricing-section .quote-decision-guide > :not(summary),
  html body main .service-pricing-section .quote-decision-guide > .prose{
    width:calc(100% - 36px);
    max-width:calc(100% - 36px);
    margin-inline:18px;
    box-sizing:border-box;
  }
}
@media (min-width:761px) and (max-width:899px){
  html body main .service-pricing-section .quote-decision-guide > :not(summary),
  html body main .service-pricing-section .quote-decision-guide > .prose{
    width:calc(100% - 36px);
    max-width:calc(100% - 36px);
    margin-inline:18px;
    box-sizing:border-box;
  }
}


/* Expanded service process cards need a full reading measure at tablet widths.
   Their two-column layout inside the disclosure constrains long copy to ~242px. */
@media (min-width:561px){
  html body main details.service-deep-dive .service-process-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (min-width:769px) and (max-width:1100px){
  html body main details.service-deep-dive :is(.service-process-grid,.strategy-process-grid){
    grid-template-columns:minmax(0,1fr);
  }
}

/* Clear quote entry: the four starting routes are visible before the optional calculator. */
.quote-price-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,24px);margin-block:24px}
.quote-price-card{min-width:0;padding:clamp(18px,2vw,28px);border:1px solid var(--bn-border,#d8d4cb);border-radius:var(--bn-radius-card,18px);background:var(--bn-surface,#fff);display:flex;flex-direction:column;gap:10px}
.quote-price-card h3{margin:0;font-size:clamp(1rem,1.25vw,1.25rem)}
.quote-price-card p{margin:0;flex:1;color:var(--bn-text-muted,#585858)}
.quote-price-card strong{margin-top:8px;color:var(--bn-accent,#8a6b28);font-size:1.15rem}
.quote-price-footnote{max-width:75ch;color:var(--bn-text-muted,#585858)}
.quote-calculator-disclosure{margin:clamp(20px,4vw,48px) auto;max-width:var(--bn-content-max,1280px);padding-inline:var(--bn-page-gutter,clamp(20px,5vw,64px))}
.quote-calculator-disclosure>summary{padding:18px 20px;border:1px solid var(--bn-border,#d8d4cb);border-radius:14px;background:var(--bn-surface,#fff);font-weight:650;cursor:pointer}
.quote-calculator-note{max-width:70ch;color:var(--bn-text-muted,#585858)}
@media(max-width:900px){.quote-price-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.quote-price-cards{grid-template-columns:minmax(0,1fr)}.quote-calculator-disclosure{padding-inline:16px}}
/* QUOTE-PRICING-MOBILE-AUTHORITY: one source of truth for expanded pricing copy. */
@media (max-width:620px){
  html body main .pricing-logic-card{
    width:calc(100% + 24px);
    margin-inline:-12px;
    overflow:hidden;
  }
  html body main .pricing-logic-card .pricing-logic-details{
    width:calc(100% + 20px);
    max-width:none;
    margin-inline:-10px;
    padding-inline:8px;
    box-sizing:border-box;
  }
  html body main .pricing-logic-card .pricing-logic-details :is(h3,ul,li,p,span){
    min-width:0;
    max-width:none;
    overflow-wrap:anywhere;
  }
}

/* Quote builder mobile reading rules: one component scope and one cascade. */
@media (max-width:620px){
  html body main .quote-step{
    padding-inline:12px;
  }
  html body main .quote-step .option-row{
    display:grid;
    grid-template-columns:24px minmax(0,1fr);
    gap:8px;
    align-items:center;
    padding-inline:12px;
  }
  html body main .quote-step .quote-decision-guide,
  html body main .quote-step .conditional-panel{
    width:100%;
    min-width:0;
    max-width:none;
  }
  html body main .quote-step .quote-decision-guide li,
  html body main .quote-step .conditional-panel .microcopy,
  html body main .quote-step .option-row>span{
    min-width:0;
    max-width:none;
    overflow-wrap:anywhere;
  }
  html body main .quote-step .option-row>input[type="radio"],
  html body main .quote-step .option-row>input[type="checkbox"]{
    position:static;
    margin:0;
    align-self:center;
  }
  html body main .quote-step .option-row>span{
    display:block;
    grid-column:2;
    width:100%;
    max-width:none;
    min-width:0;
  }
}



/* BANHALMI-C SIMPLE SYSTEM 2026-10-23: presentation-only hierarchy layer. */
html body main[data-homepage-redesign] .hero-copy-only h1,html body main[data-homepage-redesign] .section-head h2,html body main[data-homepage-redesign] .client-decision-bridge h2,html body main[data-homepage-redesign] .presence-thesis h2,html body main[data-homepage-redesign] .cta-band h2{max-width:24ch;text-wrap:balance;}
html body main[data-homepage-redesign] .hero-copy-only h1{font-size:clamp(2.25rem,3.2vw,3.5rem);line-height:1.02;letter-spacing:-.04em;}
html body main[data-homepage-redesign] .section-head h2,html body main[data-homepage-redesign] .client-decision-bridge h2,html body main[data-homepage-redesign] .presence-thesis h2{font-size:clamp(1.9rem,2.7vw,3rem);line-height:1.08;letter-spacing:-.035em;}
html body main[data-homepage-redesign] .fp-decision-system .fp-decision-inner,html body main[data-homepage-redesign] #services>.wrap{width:min(1200px,100%);}
html body main[data-homepage-redesign] #services .card p>strong{display:none;}
html body main[data-homepage-redesign] #services .card{min-height:250px;padding:clamp(24px,2.2vw,36px);}
@media (min-width:1920px){html body main[data-homepage-redesign] .hero-copy-only>.wrap{max-width:520px}html body main[data-homepage-redesign]>.fp-decision-system,html body main[data-homepage-redesign]>#services{padding-inline:clamp(40px,6vw,120px)}}
@media (max-width:1179px){html body main[data-homepage-redesign] .hero-copy-only h1{max-width:18ch}html body main[data-homepage-redesign] .section-head h2,html body main[data-homepage-redesign] .client-decision-bridge h2,html body main[data-homepage-redesign] .presence-thesis h2{max-width:20ch}}
/* Clean cascade repairs: these selectors intentionally win by scope and order. */
html body .smart-quote-layout{align-items:flex-start}
html body .smart-quote-layout .category-card{height:auto;align-self:start}
/* SMART-QUOTE-INTRINSIC-CARD-HEIGHT-20260918 — clean-cascade authority */
html body .smart-quote-layout .category-grid{align-items:start}
html body .smart-quote-layout .category-grid>.category-card{align-self:start;block-size:auto;min-block-size:0}
html body .smart-quote-layout .quote-summary-card{box-shadow:none}
/* Accessible source-contract phrases remain available without adding another visual block. */
html body .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html,html body{background:#fff}
@media (min-width:1180px){html body .site-footer .footer-contact-list{grid-template-columns:repeat(3,minmax(0,1fr))}html body .site-footer .footer-grid>div:has(.footer-contact-list){grid-column:1 / span 6}html body .site-footer .footer-grid>div:has(.footer-memberships){grid-column:7 / span 3}html body .site-footer .footer-grid>div:has(.footer-legal-list){grid-column:10 / span 3}html body .site-footer .footer-legal-list li>strong{white-space:nowrap}}

/* Shared rhythm: adjacent content panels and FAQ disclosure cards. */
html body .faq-list>details+details,html body .faq-grid>details+details,html body .faq-accordion+ .faq-accordion,html body .accordion-list>details+details{margin-block-start:clamp(12px,1.5vw,22px)}
html body .service-pricing-section--end{margin-block-end:0;padding-block-end:clamp(24px,3vw,48px)}
html body .service-pricing-section--end+.site-footer{margin-block-start:0}

/* Legal navigation cards: explicit two-axis spacing at every breakpoint. */
html body main .legal-navigation .service-grid{display:grid;column-gap:clamp(16px,2vw,28px);row-gap:clamp(16px,2vw,28px)}
html body main .legal-navigation .service-grid>.card{min-width:0;margin:0}

/* FOOTER-DISCLOSURE-ICON-CONTRACT: mobile closed rows show a trailing gold +; open rows show −.
   Desktop keeps groups open, so the marker stays mobile-only. No leading X/close glyphs. */
html body .site-footer details.footer-accordion>summary::before{content:none;display:none;}
@media (max-width:720px){
  html body .site-footer details.footer-accordion>summary::after{
    content:"+";
    display:inline-block;
    margin-left:auto;
    flex:0 0 auto;
    width:1.1em;
    font-size:1.35rem;
    font-weight:300;
    line-height:1;
    color:#CBB45F;
    text-align:center;
  }
  html body .site-footer details.footer-accordion[open]>summary::after{content:"−";}
}

/* HOMEPAGE_SERVICES_QUOTE_CTA_V1 */
html body main[data-homepage-redesign] #services .cards{align-items:stretch}
html body main[data-homepage-redesign] #services .card{
  display:flex;flex-direction:column;align-items:flex-start;gap:0;
  min-height:clamp(250px,28vw,320px);
}
html body main[data-homepage-redesign] #services .card h3{
  margin:0 0 clamp(12px,1.2vw,16px);
  min-height:calc(1.05em * 2);
}
html body main[data-homepage-redesign] #services .card p{
  margin:0 0 clamp(18px,1.8vw,24px);
  flex:1 1 auto;
}
html body main[data-homepage-redesign] #services .card .more{
  margin-top:auto;padding-top:clamp(8px,1vw,12px);
}
@media (max-width:720px){
  html body main[data-homepage-redesign] #services .card{min-height:0}
  html body main[data-homepage-redesign] #services .card h3{min-height:0}
}
/* /HOMEPAGE_SERVICES_QUOTE_CTA_V1 — removed: redundant quote strip under services */
/* HOMEPAGE_LEAN_SEPARATORS_V1: one surface change = one edge, not stacked hairlines */
html body main[data-homepage-redesign] > section.section-band{
  border-top:0;
  border-bottom:0;
}
html body main[data-homepage-redesign] > section + section{
  border-top:1px solid rgba(29,29,31,.10);
}
html body main[data-homepage-redesign] > section[data-surface="soft"] + section[data-surface="soft"],
html body main[data-homepage-redesign] > section[data-surface="white"] + section[data-surface="white"],
html body main[data-homepage-redesign] > section[data-surface="dark"] + section[data-surface="dark"]{
  border-top:0;
}
/* /HOMEPAGE_LEAN_SEPARATORS_V1 */
/* HOMEPAGE_ART_PRIVATE_BRIDGE_V1 */
html body main .homepage-art-private-bridge{margin:clamp(12px,1.4vw,18px) 0 0;max-width:46ch;color:#6e6e73;font-size:clamp(.92rem,.8vw,1.02rem);line-height:1.55}
html body main .homepage-art-private-bridge a{color:inherit;text-decoration:underline;text-underline-offset:0.18em}
/* /HOMEPAGE_ART_PRIVATE_BRIDGE_V1 */


/* === HUMAN-LAYOUT-20261025 === */
/* Keep lines from wrapping early when the viewport has room; restore missing vertical rhythm. */
html body main h1,
html body main h2,
html body main .section-head h1,
html body main .section-head h2,
html body main .hero h1{
  max-width:min(100%,42rem);
  text-wrap:pretty;
}
html body main .hero-copy-only h1,
html body main[data-homepage-redesign] .hero-copy-only h1{
  max-width:min(100%,22ch);
}
html body main .eyebrow[data-service-owner-links],
html body main .hero-copy-only .eyebrow[data-service-owner-links]{
  max-width:none;
  white-space:normal;
}
@media (min-width:1100px){
  html body main .eyebrow[data-service-owner-links]{
    white-space:nowrap;
  }
}
html body main .service-grid .card p,
html body main .contact-routing .card p,
html body main .cards .card p,
html body main .location-cards .card p{
  max-width:none;
}
/* Contact routing grid: one component owns display+gap at every width.
   Column count alone switches at 860px. Do not zero second-card padding. */
html body main .contact-routing .service-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(28px,3vw,40px);
  align-items:stretch;
}
html body main .contact-routing .service-grid > .card{
  margin:0;
  padding:30px 30px;
  box-sizing:border-box;
}
@media (min-width:860px){
  html body main .contact-routing .service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(28px,3vw,48px);
  }
}
html body main .faq-topic{
  margin-top:clamp(28px,3.5vw,44px);
}
html body main .faq-topic > h2{
  margin-bottom:clamp(14px,1.6vw,22px);
}
html body main .faq .lead,
html body main .hero .lead{
  margin-top:clamp(12px,1.4vw,18px);
  margin-bottom:clamp(18px,2vw,28px);
}
html body main .service-pricing-section{
  margin-top:clamp(8px,1.2vw,16px);
}
html body .bn-mega-pricing-section{
  margin-top:0.85rem;
  padding-top:0.85rem;
}
html body .bn-mega-journal{
  margin-top:1.1rem;
  padding-top:0.85rem;
  border-top:1px solid var(--bn-menu-line,rgba(255,255,255,.14));
}
html body .bn-mega-journal > summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:44px;
  color:var(--bn-menu-ink,#f5f5f7);
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
html body .bn-mega-journal > summary::-webkit-details-marker{display:none}
html body .bn-mega-journal-title{font-weight:650}
/* Shared disclosure ::after is the only +/− marker — no HTML twin. */
html body .bn-mega-journal > summary::after{color:var(--bn-menu-gold,#B79C44);}
html body .bn-mega-journal-desc{
  margin:0.45rem 0 0.75rem;
  color:var(--bn-menu-muted,#b0b0b5);
  font-size:0.92rem;
  line-height:1.45;
}
html body .bn-mega-journal-list{display:grid;gap:0.55rem}
html body .bn-mega-journal:not([open]) .bn-mega-journal-list,
html body .bn-mega-journal:not([open]) .bn-mega-journal-desc{display:none}


/* === PREMIUM-CLEVEL-MENU-20261025 ===
   Last-authority executive navigation. Keeps HARMONY-V31 contracts
   (below-header inset, 3 columns, #e3c552 gold, desktop descriptions)
   while restoring calm C-level hierarchy after earlier crush patches.
   Cascade order is the sole priority authority. */
html body .bn-mega-menu{
  background:linear-gradient(165deg,#222833 0%,#1a1e27 52%,#141820 100%);
}
html body .bn-mega-menu .bn-mega-intro:not(.bn-mega-tail),
html body .bn-mega-menu .bn-mega-tail{display:none;}
html body .bn-mega-grid::after{content:none;display:none;}
html body .bn-mega-section-head::after{content:none;display:none;}

@media (min-width:861px){
  html body .bn-mega-menu{
    inset:var(--header-h,72px) 0 auto 0;
    width:100%;
    height:auto;
    min-height:0;
    max-height:calc(100dvh - var(--header-h,72px));
    max-block-size:calc(100dvh - var(--header-h,72px));
    overflow:auto;
    background:linear-gradient(165deg,#222833 0%,#1a1e27 52%,#141820 100%);
    border-top:1px solid rgba(227,197,82,.18);
    border-bottom:1px solid rgba(227,197,82,.14);
    box-shadow:0 28px 64px rgba(0,0,0,.28);
  }
  html body .bn-mega-panel,
  html body .bn-mega-menu .bn-mega-panel{
    display:block;
    width:min(1440px,calc(100vw - 80px));
    max-width:1440px;
    inline-size:min(1440px,calc(100vw - 80px));
    max-inline-size:1440px;
    min-height:0;
    height:auto;
    margin:0 auto;
    padding:24px 0 22px;
    justify-content:flex-start;
  }
  html body .bn-mega-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:clamp(48px,4.5vw,72px);
    align-content:start;
    padding:0;
  }
  html body .bn-mega-column{padding:0;border-bottom:0;}
  html body .bn-mega-services{
    padding-right:clamp(12px,1.5vw,24px);
    border-right:1px solid rgba(227,197,82,.14);
  }
  html body .bn-mega-section-head{
    margin:0 0 16px;
    padding:0 0 12px;
    border-bottom:1px solid rgba(183,156,68,.28);
  }
  html body .bn-mega-section-head>span{color:#e3c552;font-size:.74rem;letter-spacing:.16em;}
  html body .bn-mega-item{margin:0 0 12px;padding:0;border-bottom:0;}
  html body .bn-mega-link{
    color:#f4f1ea;
    font-size:clamp(1.06rem,1.08vw,1.28rem);
    font-weight:560;
    min-height:32px;
    min-block-size:32px;
    line-height:1.25;
  }
  html body .bn-mega-services .bn-mega-service .bn-mega-link{
    color:#f7f4ed;
    font-size:clamp(1.14rem,1.18vw,1.4rem);
    font-weight:600;
  }
  html body .bn-mega-pricing .bn-mega-link,
  html body .bn-mega-pricing-section .bn-mega-pricing .bn-mega-link{color:#e3c552;font-weight:620;}
  html body .bn-mega-desc,
  html body .bn-mega-menu .bn-mega-desc{
    display:block;
    margin:4px 0 0;
    color:rgba(244,241,234,.58);
    font-size:clamp(.84rem,.78vw,.94rem);
    line-height:1.45;
    max-width:40ch;
  }
  html body .bn-mega-section-head p{display:none;}
  html body .bn-mega-pricing-section{
    margin-top:1.1rem;
    padding-top:1rem;
    border-top:1px solid rgba(227,197,82,.22);
  }
}

@media (max-width:860px){
  html body .bn-mega-menu{
    inset:var(--header-h,64px) 0 0 0;
    width:100%;
    height:calc(100dvh - var(--header-h,64px));
    min-height:0;
    max-height:none;
    block-size:calc(100dvh - var(--header-h,64px));
    overflow-y:auto;
    overflow-x:hidden;
    background:linear-gradient(165deg,#222833 0%,#1a1e27 52%,#141820 100%);
  }
  html body .bn-mega-panel,
  html body .bn-mega-menu .bn-mega-panel{
    display:block;
    width:100%;
    max-width:none;
    min-height:0;
    height:auto;
    padding:16px 20px max(32px,env(safe-area-inset-bottom));
    justify-content:flex-start;
  }
  html body .bn-mega-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    align-content:start;
    padding:0;
  }
  html body .bn-mega-column{
    padding:20px 0 16px;
    border-bottom:1px solid rgba(227,197,82,.18);
  }
  html body .bn-mega-column:last-child{border-bottom:0;}
  html body .bn-mega-section-head{
    margin:0 0 10px;
    padding:0 0 8px;
    border-bottom:0;
  }
  html body .bn-mega-section-head>span{color:#e3c552;font-size:.74rem;}
  html body .bn-mega-link,
  html body .bn-mega-service .bn-mega-link,
  html body .bn-mega-footer .bn-mega-link{
    display:flex;
    align-items:center;
    min-height:44px;
    min-block-size:44px;
    padding:6px 0;
    color:#f4f1ea;
    font-size:1.14rem;
    font-weight:560;
    line-height:1.25;
  }
  html body .bn-mega-pricing .bn-mega-link{color:#e3c552;}
  html body .bn-mega-desc,
  html body .bn-mega-menu .bn-mega-desc,
  html body .bn-mega-section-head p,
  html body .bn-mega-intro p,
  html body .bn-mega-tail{display:none;}
  html body .bn-mega-item{margin:0;padding:0;}
  html body .bn-mega-item+.bn-mega-item{margin-top:2px;}
}

@media (max-width:430px){
  html body .bn-mega-panel{padding-inline:18px;padding-top:14px;}
  html body .bn-mega-link,
  html body .bn-mega-service .bn-mega-link,
  html body .bn-mega-footer .bn-mega-link{
    min-height:44px;
    font-size:1.1rem;
  }
}

html body .bn-mega-journal{
  margin-top:1rem;
  padding-top:.85rem;
  border-top:1px solid rgba(227,197,82,.18);
}
html body .bn-mega-journal > summary{
  min-height:44px;
  color:rgba(244,241,234,.78);
  letter-spacing:.12em;
}
html body .bn-mega-journal > summary::after{color:#e3c552;}
body.bn-mega-open .site-header{
  background:#1a1e27;
  border-bottom-color:rgba(227,197,82,.18);
}
body.bn-mega-open .site-header .menu-btn{
  border-radius:0;
  background:transparent;
}
body.bn-mega-open .site-header .menu-btn span:nth-child(1){transform:rotate(45deg);}
body.bn-mega-open .site-header .menu-btn span:nth-child(2){opacity:0;transform:scaleX(0);}
body.bn-mega-open .site-header .menu-btn span:nth-child(3){transform:rotate(-45deg);}

/* SERVICE-EDITORIAL-SSR-20261026:START */
.service-editorial-ssr .service-editorial-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  margin-top:8px;
}
.service-editorial-ssr .service-editorial-actions .btn{
  text-decoration:none;
}
/* SERVICE-EDITORIAL-SSR-20261026:END */

/* Static Trustindex source link; no third-party script or rating snapshot. */
.trustindex-evidence{padding:clamp(32px,4vw,56px) 0;background:#f5f5f7;border-block:1px solid rgba(29,29,31,.1)}
.trustindex-evidence .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px}
.trustindex-evidence__label{margin:0;color:#1d1d1f;font-size:clamp(1rem,1.2vw,1.18rem);font-weight:600}
.trustindex-evidence a{color:#424245;text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere}
.trustindex-evidence a:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* Canonical BANHALMI Photography wordmark: compact, with a lighter descriptor. */
.brand-word{font-size:clamp(.68rem,.78vw,.82rem);letter-spacing:.075em;font-weight:600;white-space:nowrap;}
.brand-word strong{font-weight:700;}
.brand-word > span{font-weight:300;letter-spacing:.045em;}
.site-footer .brand-word{font-size:clamp(.72rem,.82vw,.88rem);letter-spacing:.075em;}
.site-footer .brand-word > span{font-weight:300;}
