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

:root{
  --bg:#FFFFFF;          /* snow white */
  --bg-alt:#F7F7F5;      /* soft white band */
  --navy:#202530;        /* black */
  --navy-soft:#202020;
  --graphite:#1C1C1E;    /* Apple graphite */
  --ink:#202530;         /* black text */
  --muted:#6E6E73;       /* secondary text */
  --gold:#B99A5B;        /* champagne gold */
  --gold-deep:#9A7F45;
  --line:#E5E5E5;        /* hairline */
  --white:#ffffff;
  --maxw:1080px;
  --radius:4px;
  /* 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){
  html{scroll-behavior:auto;}
  *{animation:none;transition:none;}
}

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

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

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

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

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

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,0.88);
  backdrop-filter:saturate(180%) blur(14px);
  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);}
.nav-links{display:flex;align-items:center;gap:clamp(14px,1.9vw,28px);list-style:none;margin:0;padding:0;}
.nav-links a{font-size:0.875rem;color:var(--graphite);letter-spacing:-0.006em;font-weight:400;}
.nav-links a:hover{color:var(--navy);}
.nav-cta{
  border:1px solid var(--navy);border-radius:980px;          /* apple pill */
  padding:7px 16px;color:var(--navy);font-weight:500;font-size:0.85rem;
  transition:background .2s,color .2s;
}
.nav-cta:hover{background:var(--navy);color:var(--white);}
.lang-switch{display:flex;gap:9px;align-items:center;font-size:0.78rem;letter-spacing:0.02em;}
.lang-switch a{color:var(--muted);text-transform:uppercase;}
.lang-switch a.active{color:var(--navy);font-weight:600;}
.lang-switch .sep{color:var(--line);}

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

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

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

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

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

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

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

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

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

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

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

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

/* ---------- FAQ ---------- */
.faq{max-width:760px;}
.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{max-width:760px;}
.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 h4{color:#fff;font-size:0.8rem;letter-spacing:-0.004em;margin:0 0 14px;font-weight:500;opacity:.92;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:10px;}
.site-footer a{color:#9AA1B2;}
.site-footer a:hover{color:#fff;}
.footer-bottom{border-top:1px solid #243049;margin-top:46px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#6E7689;font-size:0.82rem;}
.footer-bottom a{color:#6E7689;}
.footer-bottom a:hover{color:#9AA1B2;}
.footer-entity{color:#6E7689;font-size:0.84rem;max-width:46ch;line-height:1.55;}

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

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

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

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

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

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

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

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

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


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

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


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

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

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


/* Phase 8 — guided quote builder */
.smart-quote-layout{align-items:flex-start;gap:clamp(32px,5vw,72px)}
.quote-intro{position:sticky;top:104px;align-self:flex-start}.quote-summary-card{margin-top:32px;border:1px solid var(--line);border-radius:22px;padding:26px;background:linear-gradient(180deg,#fff,#faf9f6);box-shadow:0 12px 40px rgba(22,32,58,.05)}
.quote-total{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.7rem);line-height:1;color:var(--navy);letter-spacing:-.04em;margin:8px 0 14px}.quote-summary-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}.quote-summary-card dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.quote-summary-card dd{margin:2px 0 0;color:var(--graphite);font-weight:600}.quote-summary-card p{font-size:.92rem;color:var(--muted);margin:0}.quote-summary-card.reverse{border-color:#b9a16d;background:#fffdf7}.quote-step{border:1px solid var(--line);border-radius:22px;padding:clamp(20px,3vw,30px);background:#fff;margin-bottom:22px}.quote-step h3{font-size:1.08rem;margin-bottom:18px}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-card,.option-row{display:block;border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.category-card:hover,.option-row:hover{transform:translateY(-1px);border-color:rgba(185,161,109,.65)}.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:#b9a16d}.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:#B99A5B;
  --gold-deep:#8F7337;
  --gold-soft:#F5F0E7;
  --gold-line:rgba(185,154,91,.32);
}
.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(185,154,91,.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 h4,
.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 h4{
  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-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 h4{
  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:#CBA968;
  font-weight:400;
  line-height:1;
  transform:translateY(-1px);
}
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a:hover::before,
.site-footer .footer-grid > div:not(.footer-brand-col) ul:not(.footer-contact-list):not(.footer-legal-list) li > a:focus-visible::before,
.site-footer .footer-grid > details.footer-accordion ul li > a:hover::before,
.site-footer .footer-grid > details.footer-accordion ul li > a:focus-visible::before{
  color:#fff;
}

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

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

/* Phase 17 — homepage-only full-bleed hero image under the header.
   Subpages keep the editorial text hero without the signature image. */
.hero.hero-image-first{padding-top:0;}
.hero.hero-image-first .hero-figure{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:0;
  margin-bottom:clamp(48px,7vw,104px);
  border-radius:0;
  overflow:hidden;
  border:0;
  background:#f2f2f2;
  box-shadow:none;
}
.hero.hero-image-first .hero-figure picture,
.hero.hero-image-first .hero-figure img:not(.hero-center-logo){
  display:block;
  width:100%;
  height:auto;
}
.hero.hero-image-first .hero-figure{
  position:relative;
}
.hero.hero-image-first .hero-figure picture{
  display:block;
  width:100%;
  height:auto;
}
.hero.hero-image-first .hero-figure picture img:not(.hero-center-logo){
  width:100%;
  height:auto;
  object-fit:contain;
}
@media (prefers-reduced-motion: reduce){
  .hero.hero-image-first .hero-center-logo{transform:translate(-50%,-50%) ;}
}
.hero.hero-image-first .hero-center-logo{
  width:clamp(72px,10vw,150px);
  opacity:.24;
}
@media(max-width:720px){
  .hero.hero-image-first .hero-figure{margin-bottom:40px;}
  .hero.hero-image-first .hero-center-logo{width:clamp(52px,18vw,92px);opacity:.22;}
}

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

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

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

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

/* 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, backdrop-filter .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;
  }
}


/* 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);
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid rgba(180,144,72,.18);
  z-index:999;
}
.site-header .wrap{max-width:1200px;}
.nav{
  position:relative;
  display:flex;
  align-items:center;
  min-height:64px;
  gap:clamp(14px,2vw,28px);
}
.brand{
  flex:0 0 auto;
  min-width:0;
}
.brand-word{
  letter-spacing:.16em;
  white-space:nowrap;
}
.lang-switch{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  font-size:.78rem;
  letter-spacing:.08em;
  color:rgba(32,37,48,.58);
}
.lang-switch a{
  color:rgba(32,37,48,.58);
  text-decoration:none;
  padding:8px 2px;
  transition:color .22s ease;
}
.lang-switch a.active,
.lang-switch a:hover,
.lang-switch a:focus-visible{color:#202530;}
.lang-switch .sep{color:rgba(32,37,48,.26);}
.menu-btn{
  display:inline-flex;
  flex:0 0 auto;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  background:transparent;
  padding:0;
  cursor:pointer;
  position:relative;
  z-index:1001;
  transition:background-color .22s ease, transform .22s cubic-bezier(.16,1,.3,1);
}
.menu-btn:hover,.menu-btn:focus-visible{background:rgba(180,144,72,.10);transform:translateY(-1px);}
.menu-btn span{
  position:absolute;
  width:20px;
  height:1.5px;
  margin:0;
  border-radius:999px;
  background:#202530;
  transition:transform .28s cubic-bezier(.16,1,.3,1), opacity .2s ease;
}
.menu-btn span:nth-child(1){transform:translateY(-6px);}
.menu-btn span:nth-child(2){transform:translateY(0);}
.menu-btn span:nth-child(3){transform:translateY(6px);}
.nav.open .menu-btn span:nth-child(1){transform:rotate(45deg);}
.nav.open .menu-btn span:nth-child(2){opacity:0;}
.nav.open .menu-btn span:nth-child(3){transform:rotate(-45deg);}
.nav-links{
  position:fixed;
  top:64px;
  left:0;
  right:0;
  width:100vw;
  min-width:0;
  max-width:none;
  display:grid;
  grid-template-columns:minmax(24px,1fr) minmax(260px,960px) minmax(24px,1fr);
  gap:0;
  list-style:none;
  margin:0;
  padding:clamp(22px,4vw,42px) 0;
  background:rgba(255,255,255,.94);
  border:0;
  border-top:1px solid rgba(180,144,72,.16);
  border-bottom:1px solid rgba(180,144,72,.16);
  border-radius:0;
  box-shadow:0 28px 80px rgba(32,37,48,.10);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-12px);
  transition:opacity .34s cubic-bezier(.16,1,.3,1), transform .34s cubic-bezier(.16,1,.3,1), visibility .34s;
  z-index:1000;
}
.nav.open .nav-links{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.nav-links li{
  grid-column:2;
  width:100%;
  list-style:none;
}
.nav-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:#b49048;
  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:#b49048;
}
@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:#b49048;}
  .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;}
}
@media(prefers-reduced-motion:reduce){
  .menu-btn,.menu-btn span,.nav-links,.nav-links a{transition:none;transform:none;}
}



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

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

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


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


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

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

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


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


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



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

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

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

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


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

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

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

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

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


/* BANHALMI age-restricted fine-art gallery — 2026-07-08 */
.age-gallery-notice{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin:0 0 30px;padding:20px 22px;border:1px solid var(--line,#ddd);border-radius:18px;background:#f7f7f5;color:var(--text,#202530)}
.age-gallery-notice strong{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#171a20;color:#fff;font-size:.92rem;letter-spacing:.04em}
.age-gallery-notice p{margin:2px 0 0;line-height:1.6;color:var(--muted,#62666f)}
.age-restricted-item{position:relative}
.age-restricted-item .image-open{position:relative;overflow:hidden;border-radius:inherit;background:#111}
.age-restricted-preview{filter:blur(2px);transform:scale(1.035)!important;opacity:.92}
.age-restricted-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:168px;padding:12px 18px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(8,9,12,.78);color:#fff;font-size:.82rem;font-weight:700;letter-spacing:.035em;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.28);backdrop-filter:blur(10px)}
.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);backdrop-filter:blur(14px)}
.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.
   ========================================================================== */
:root{
  --bg:#fff;
  --bg-alt:#f5f5f7;
  --navy:#1d1d1f;
  --navy-soft:#2d2d2f;
  --graphite:#1d1d1f;
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --line:rgba(0,0,0,.11);
  --gold:#a98542;
  --gold-deep:#8b6b32;
  --gold-soft:#f6f1e7;
  --gold-line:rgba(169,133,66,.25);
  --white:#fff;
  --maxw:1120px;
  --textw:680px;
  --wide-textw:820px;
  --radius:22px;
  --header-h:56px;
  --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;
}
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;
}
html.nav-open,html.nav-open body{overflow:hidden;}

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

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

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

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

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

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

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

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

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

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