/*
Theme Name: Nivitec Montagetechnik Custom
Theme URI: https://nivitec-montagetechnik-2.lead.bummeltech.com/
Author: Nivitec Montagetechnik
Description: Individuelles Theme im Dimensional-Layering-Stil (Variante 2) fuer Nivitec Montagetechnik – Metallmontage, Tore, Gelaender, Schweisstechnik in Langenfeld.
Version: 1.0
Text Domain: nivitec-2
*/

/* ==========================================================================
   DESIGN TOKENS — Dimensional Layering
   ========================================================================== */
:root{
  /* Neutral base */
  --color-bg: #F1F2F4;
  --color-bg-alt: #E7E9EC;
  --color-surface: #FFFFFF;
  --color-ink: #1B2027;
  --color-ink-muted: #5B6472;
  --color-border: rgba(27,32,39,.09);

  /* Steel (dark elevated panels) */
  --color-steel-900: #171B20;
  --color-steel-800: #232933;
  --color-steel-700: #2E3642;
  --color-steel-600: #46505E;
  --color-steel-ink: #E7E9EC;
  --color-steel-ink-muted: #A8B0BC;

  /* Single committed accent: welded copper */
  --color-accent: #C1691F;
  --color-accent-dark: #9C5417;
  --color-accent-light: #E08B3F;
  --color-accent-ink: #FFF8F1;

  /* Elevation scale (shadow tinted toward ink, not pure black) */
  --shadow-tint: 20,24,29;
  --elevation-1: 0 1px 2px rgba(var(--shadow-tint),.08), 0 1px 1px rgba(var(--shadow-tint),.04);
  --elevation-2: 0 6px 14px rgba(var(--shadow-tint),.10), 0 2px 4px rgba(var(--shadow-tint),.06);
  --elevation-3: 0 16px 32px rgba(var(--shadow-tint),.14), 0 4px 10px rgba(var(--shadow-tint),.08);
  --elevation-4: 0 30px 60px rgba(var(--shadow-tint),.20), 0 10px 20px rgba(var(--shadow-tint),.10);
  --blur-amount: 8px;

  /* Shape lock: all-soft scale */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 999px;

  /* Semantic z-index scale */
  --z-base: 1;
  --z-elevated: 2;
  --z-sticky: 10;
  --z-header: 100;
  --z-drawer: 200;
  --z-toast: 400;

  --font-display: 'Outfit', 'Work Sans', sans-serif;
  --font-body: 'Work Sans', sans-serif;

  --header-h: 84px;
  --header-h-shrunk: 62px;
  --content-w: 1240px;

  --ease-out: cubic-bezier(.16,1,.3,1);
  --dur-fast: .18s;
  --dur-base: .28s;
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img, video, iframe{ max-width:100%; height:auto; display:block; }
svg{ max-width:100%; height:auto; }
.icon{ width:1.4em; height:1.4em; flex:0 0 auto; vertical-align:middle; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.15; letter-spacing:-.02em; margin:0 0 .5em; text-wrap:balance; color:var(--color-ink); }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
.container{ width:100%; max-width:var(--content-w); margin-inline:auto; padding-inline:24px; }

h1{ font-size:clamp(2.3rem,4.6vw,3.6rem); }
h2{ font-size:clamp(1.7rem,3.2vw,2.5rem); }
h3{ font-size:clamp(1.2rem,2vw,1.5rem); }

:focus-visible{ outline:3px solid var(--color-accent); outline-offset:2px; border-radius:4px; }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:.9em 1.7em; border-radius:var(--radius-pill);
  font-family:var(--font-display); font-weight:600; font-size:.98rem;
  border:1px solid transparent; white-space:nowrap; min-height:48px;
  transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);
}
.btn-primary{ background:var(--color-accent); color:var(--color-accent-ink); box-shadow:var(--elevation-2); }
.btn-primary:hover{ background:var(--color-accent-light); box-shadow:var(--elevation-3); transform:translateY(-2px); }
.btn-primary:active{ transform:translateY(0) scale(.98); box-shadow:var(--elevation-1); }
.btn-ghost{ background:var(--color-surface); color:var(--color-ink); border-color:var(--color-border); box-shadow:var(--elevation-1); }
.btn-ghost:hover{ box-shadow:var(--elevation-2); transform:translateY(-2px); }
.btn-ghost:active{ transform:translateY(0) scale(.98); }
.btn-on-dark{ background:rgba(255,255,255,.08); color:var(--color-steel-ink); border-color:rgba(255,255,255,.16); backdrop-filter:blur(var(--blur-amount)); }
.btn-on-dark:hover{ background:rgba(255,255,255,.14); transform:translateY(-2px); }

/* ==========================================================================
   HEADER / NAV — sticky, elevates & shrinks on scroll
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:var(--z-header);
  height:var(--header-h);
  display:flex; align-items:center;
  background:rgba(241,242,244,.86);
  backdrop-filter:blur(var(--blur-amount));
  -webkit-backdrop-filter:blur(var(--blur-amount));
  border-bottom:1px solid transparent;
  transition:height var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);
}
.site-header.is-scrolled{
  height:var(--header-h-shrunk);
  box-shadow:var(--elevation-2);
  background:rgba(241,242,244,.96);
}
.header-inner{ width:100%; max-width:var(--content-w); margin-inline:auto; padding-inline:24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ display:flex; align-items:center; gap:.7rem; font-family:var(--font-display); font-weight:700; font-size:1.15rem; flex:0 0 auto; }
.brand img{ height:38px; width:auto; transition:height var(--dur-base) var(--ease-out); }
.site-header.is-scrolled .brand img{ height:30px; }

.primary-nav{ display:flex; align-items:center; gap:2.1rem; }
.primary-nav li{ position:relative; }
.primary-nav a{
  font-family:var(--font-display); font-weight:500; font-size:.97rem; color:var(--color-ink);
  position:relative; padding:.3em 0;
}
.primary-nav > ul > li > a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--color-accent);
  transition:right var(--dur-base) var(--ease-out);
}
.primary-nav > ul > li > a:hover::after, .primary-nav > ul > li > a:focus-visible::after{ right:0; }

.primary-nav .sub-menu{
  position:absolute; top:100%; left:-1rem; margin-top:.6rem; min-width:260px;
  background:var(--color-surface); border-radius:var(--radius-md); box-shadow:var(--elevation-3);
  border:1px solid var(--color-border); padding:.6rem; z-index:var(--z-header);
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility var(--dur-base);
}
.primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.primary-nav .sub-menu a{ display:block; padding:.65rem .8rem; border-radius:var(--radius-sm); font-size:.92rem; font-weight:500; }
.primary-nav .sub-menu a::after{ display:none; }
.primary-nav .sub-menu a:hover{ background:var(--color-bg); color:var(--color-accent-dark); }

.mobile-drawer .sub-menu{ display:flex; flex-direction:column; gap:1.1rem; padding-left:1.2rem; margin:.9rem 0 0; }
.mobile-drawer .sub-menu a{ font-size:1.02rem; font-weight:500; color:var(--color-steel-ink-muted); }
.header-cta{ display:flex; align-items:center; gap:1rem; }

.burger{
  display:none; width:44px; height:44px; border-radius:var(--radius-sm);
  background:var(--color-surface); box-shadow:var(--elevation-1); border:1px solid var(--color-border);
  align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.burger span{ display:block; width:20px; height:2px; background:var(--color-ink); border-radius:2px; transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-fast) var(--ease-out); }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-drawer{
  position:fixed; inset:0 0 0 auto; width:min(86vw,380px); height:100dvh;
  background:var(--color-steel-900); color:var(--color-steel-ink);
  z-index:var(--z-drawer); box-shadow:var(--elevation-4);
  padding:110px 32px 40px; transform:translateX(100%);
  transition:transform var(--dur-base) var(--ease-out);
  display:flex; flex-direction:column; gap:1.6rem; overflow-y:auto;
}
.mobile-drawer.is-open{ transform:translateX(0); }
.mobile-drawer a{ font-family:var(--font-display); font-size:1.25rem; font-weight:600; color:var(--color-steel-ink); }
.drawer-backdrop{
  position:fixed; inset:0; background:rgba(15,17,20,.5); backdrop-filter:blur(4px);
  z-index:var(--z-drawer); opacity:0; pointer-events:none; transition:opacity var(--dur-base) var(--ease-out);
}
.drawer-backdrop.is-open{ opacity:1; pointer-events:auto; }

/* ==========================================================================
   HERO / SLIDER — layered, floating panel over image
   ========================================================================== */
.hero-slider{ position:relative; overflow:hidden; min-height:min(86vh,860px); background:var(--color-steel-900); }
.hero-slide{
  position:absolute; inset:0; opacity:0; visibility:hidden;
  transition:opacity .9s var(--ease-out);
}
.hero-slide.is-active{ opacity:1; visibility:visible; }
.hero-slide__media{ position:absolute; inset:0; z-index:var(--z-base); }
.hero-slide__media img{ width:100%; height:100%; object-fit:cover; }
.hero-slide__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(23,27,32,.15) 0%, rgba(23,27,32,.55) 65%, rgba(23,27,32,.86) 100%); z-index:var(--z-elevated); }
.hero-content-wrap{ position:absolute; left:0; right:0; bottom:0; z-index:var(--z-sticky); width:100%; padding:0 24px 64px; }
.hero-panel{
  max-width:640px; margin-inline:auto; margin-left:max(24px, calc(50% - var(--content-w) / 2));
  background:rgba(35,41,51,.62); backdrop-filter:blur(var(--blur-amount)); -webkit-backdrop-filter:blur(var(--blur-amount));
  border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-lg); box-shadow:var(--elevation-4);
  padding:clamp(1.8rem,3vw,2.8rem); color:var(--color-steel-ink);
  transform:translateZ(0);
}
.hero-eyebrow{ display:inline-block; font-family:var(--font-display); font-weight:600; font-size:.82rem; letter-spacing:.06em; color:var(--color-accent-light); margin-bottom:.9rem; }
.hero-panel h1{ color:#fff; margin-bottom:.55em; }
.hero-panel p{ color:var(--color-steel-ink-muted); font-size:1.06rem; max-width:52ch; }
.hero-actions{ display:flex; gap:1rem; margin-top:1.6rem; flex-wrap:wrap; }

.hero-dots{ position:absolute; right:24px; bottom:28px; z-index:var(--z-sticky); display:flex; gap:.5rem; }
.hero-dots button{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.35); border:none; padding:0; transition:background var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.hero-dots button.is-active{ background:var(--color-accent); transform:scale(1.25); }

/* ==========================================================================
   PAGE HERO (subpages) — layered header band
   ========================================================================== */
.page-hero{ position:relative; background:var(--color-steel-900); color:var(--color-steel-ink); overflow:hidden; }
.page-hero__media{ position:absolute; inset:0; }
.page-hero__media img{ width:100%; height:100%; object-fit:cover; opacity:.42; }
.page-hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(23,27,32,.92), rgba(23,27,32,.55)); }
.page-hero-inner{ position:relative; z-index:var(--z-elevated); padding:130px 24px 76px; max-width:var(--content-w); margin-inline:auto; }
.page-hero-inner .breadcrumb{ font-family:var(--font-display); font-size:.85rem; color:var(--color-steel-ink-muted); margin-bottom:1rem; display:flex; gap:.5rem; align-items:center; }
.page-hero-inner .breadcrumb a:hover{ color:var(--color-accent-light); }
.page-hero-inner h1{ color:#fff; max-width:26ch; }
.page-hero-inner .lede{ color:var(--color-steel-ink-muted); max-width:60ch; font-size:1.1rem; margin-top:.8rem; }

/* ==========================================================================
   SECTIONS
   ========================================================================== */
section{ padding:clamp(3.5rem,7vw,6.5rem) 0; position:relative; }
.section-head{ max-width:640px; margin-bottom:3rem; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-dark{ background:var(--color-steel-900); color:var(--color-steel-ink); }
.section-dark h2, .section-dark h3{ color:#fff; }
.section-dark p{ color:var(--color-steel-ink-muted); }
.section-alt{ background:var(--color-bg-alt); }

/* Reveal (must stay visible by default; JS only adds motion) */
.reveal{ opacity:1; transform:none; }
.js-ready .reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.js-ready .reveal.in-view{ opacity:1; transform:translateY(0); }

/* ==========================================================================
   ELEVATED / LAYERED CARDS (core Dimensional Layering motif)
   ========================================================================== */
.card-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:1.8rem; }
.elev-card{
  position:relative; background:var(--color-surface); border-radius:var(--radius-md);
  box-shadow:var(--elevation-2); border:1px solid var(--color-border);
  padding:2rem 1.8rem; overflow:hidden;
  transform-style:preserve-3d; perspective:900px;
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
  will-change:transform;
}
.elev-card:hover, .elev-card:focus-within{ box-shadow:var(--elevation-4); transform:translateY(-6px) translateZ(0); }
.elev-card__media{ margin:-2rem -1.8rem 1.4rem; position:relative; aspect-ratio:4/3; overflow:hidden; }
.elev-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out); }
.elev-card:hover .elev-card__media img{ transform:scale(1.06); }
.elev-card__badge{
  position:absolute; top:1.6rem; right:1.6rem; z-index:var(--z-elevated);
  width:48px; height:48px; border-radius:var(--radius-sm); background:var(--color-accent);
  display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:var(--elevation-3);
}
.elev-card__badge svg{ width:22px; height:22px; }
.elev-card h3{ margin-bottom:.5rem; }
.elev-card p{ color:var(--color-ink-muted); }
.elev-card .card-link{ display:inline-flex; align-items:center; gap:.4rem; margin-top:1.2rem; font-family:var(--font-display); font-weight:600; color:var(--color-accent-dark); }
.elev-card .card-link svg{ width:18px; height:18px; transition:transform var(--dur-fast) var(--ease-out); }
.elev-card:hover .card-link svg{ transform:translateX(4px); }

/* Floating stat / layered panel stack */
.stat-stack{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1.2rem; }
.stat-panel{
  background:var(--color-surface); border-radius:var(--radius-md); padding:1.6rem 1.4rem;
  box-shadow:var(--elevation-2); border:1px solid var(--color-border); text-align:left;
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.stat-panel:hover{ transform:translateY(-4px); box-shadow:var(--elevation-3); }
.stat-panel .num{ font-family:var(--font-display); font-weight:700; font-size:clamp(2rem,3.4vw,2.6rem); color:var(--color-accent-dark); display:block; line-height:1; }
.stat-panel .label{ color:var(--color-ink-muted); font-size:.92rem; margin-top:.5rem; display:block; }

/* Layered image composition (about/hero support) */
.layer-figure{ position:relative; width:100%; max-width:520px; margin-inline:auto; }
.layer-figure img{ border-radius:var(--radius-lg); box-shadow:var(--elevation-3); position:relative; z-index:var(--z-elevated); }
.layer-figure::before{
  content:""; position:absolute; inset:20px -20px -20px 20px; z-index:var(--z-base);
  background:var(--color-accent); border-radius:var(--radius-lg); opacity:.9;
}
.layer-figure__chip{
  position:absolute; left:-24px; bottom:-24px; z-index:var(--z-sticky);
  background:var(--color-steel-900); color:#fff; border-radius:var(--radius-md);
  padding:1.1rem 1.3rem; box-shadow:var(--elevation-4); display:flex; align-items:center; gap:.8rem;
  max-width:230px;
}
.layer-figure__chip svg{ width:26px; height:26px; color:var(--color-accent-light); flex-shrink:0; }
.layer-figure__chip strong{ display:block; font-family:var(--font-display); font-size:1.1rem; }
.layer-figure__chip span{ font-size:.82rem; color:var(--color-steel-ink-muted); }

/* Split layouts */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.split.reverse .split__media{ order:2; }

/* Process list (numbered — only used once, this IS a real sequence) */
.process-list{ counter-reset:step; display:grid; gap:1.4rem; }
.process-item{
  display:flex; gap:1.4rem; align-items:flex-start; background:var(--color-surface);
  border-radius:var(--radius-md); padding:1.6rem 1.8rem; box-shadow:var(--elevation-1); border:1px solid var(--color-border);
  transition:box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.process-item:hover{ box-shadow:var(--elevation-3); transform:translateY(-3px); }
.process-item__num{
  counter-increment:step; font-family:var(--font-display); font-weight:700; font-size:1.4rem;
  width:52px; height:52px; border-radius:50%; background:var(--color-steel-900); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:var(--elevation-2);
}
.process-item__num::before{ content:counter(step); }

/* Testimonial / quote block */
.quote-panel{
  background:var(--color-steel-900); color:#fff; border-radius:var(--radius-lg); padding:clamp(2rem,4vw,3.2rem);
  box-shadow:var(--elevation-4); position:relative; max-width:760px; margin-inline:auto;
}
.quote-panel p{ font-family:var(--font-display); font-size:clamp(1.15rem,2vw,1.5rem); font-weight:500; color:#fff; line-height:1.4; }
.quote-panel footer{ margin-top:1.4rem; color:var(--color-steel-ink-muted); font-size:.92rem; }

/* CTA band */
.cta-band{
  background:linear-gradient(135deg, var(--color-steel-900), var(--color-steel-700));
  color:#fff; border-radius:var(--radius-lg); padding:clamp(2.4rem,5vw,4rem); text-align:center;
  box-shadow:var(--elevation-4); max-width:var(--content-w); margin:0 auto;
}
.cta-band h2{ color:#fff; }
.cta-band p{ color:var(--color-steel-ink-muted); max-width:56ch; margin-inline:auto; }
.cta-band .btn{ margin-top:1.6rem; }

/* ==========================================================================
   CONTACT / ANFAHRT — icons stay small, flex layout, never oversized
   ========================================================================== */
.contact-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:2.5rem; align-items:start; }
.contact-list{ display:grid; gap:1rem; }
.contact-row{
  display:flex; align-items:center; gap:.9rem; background:var(--color-surface);
  border-radius:var(--radius-md); padding:1.1rem 1.3rem; box-shadow:var(--elevation-1); border:1px solid var(--color-border);
}
.contact-row .icon-badge{
  width:44px; height:44px; border-radius:var(--radius-sm); background:var(--color-accent); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-row .icon-badge svg{ width:20px; height:20px; }
.contact-row a, .contact-row span.value{ font-weight:600; }
.contact-row .label{ display:block; font-size:.8rem; color:var(--color-ink-muted); }
.map-embed{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--elevation-3); aspect-ratio:4/3; border:1px solid var(--color-border); }
.map-embed iframe{ width:100%; height:100%; border:0; }

/* Contact form (native plugin overrides) */
.contact-form-wrap{ background:var(--color-surface); border-radius:var(--radius-lg); padding:2rem; box-shadow:var(--elevation-3); border:1px solid var(--color-border); }
.contact-form-wrap input.wpscp-input,
.contact-form-wrap textarea.wpscp-textarea,
.contact-form-wrap .wpscp-form input[type=text],
.contact-form-wrap .wpscp-form input[type=email],
.contact-form-wrap .wpscp-form input[type=tel],
.contact-form-wrap .wpscp-form textarea{
  width:100% !important; border-radius:var(--radius-sm) !important; border:1px solid var(--color-border) !important;
  background:var(--color-bg) !important; color:var(--color-ink) !important; padding:.85em 1em !important;
  font-family:var(--font-body) !important; font-size:1rem !important; box-shadow:none !important;
}
.contact-form-wrap .wpscp-form button,
.contact-form-wrap .wpscp-form input[type=submit],
.contact-form-wrap button[type=submit]{
  background:var(--color-accent) !important; color:var(--color-accent-ink) !important; border:none !important;
  border-radius:var(--radius-pill) !important; padding:.9em 1.8em !important; font-weight:600 !important;
  font-family:var(--font-display) !important; box-shadow:var(--elevation-2) !important;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{ background:var(--color-steel-900); color:var(--color-steel-ink-muted); padding:4.5rem 0 2rem; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; margin-bottom:3rem; }
.footer-brand img{ height:34px; margin-bottom:1rem; }
.footer-col h4{ color:#fff; font-size:1rem; margin-bottom:1rem; }
.footer-col ul{ display:grid; gap:.65rem; }
.footer-col a:hover{ color:var(--color-accent-light); }
.footer-contact-row{ display:flex; align-items:center; gap:.6rem; }
.footer-contact-row svg{ width:18px; height:18px; flex-shrink:0; color:var(--color-accent-light); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:1.6rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.85rem; }
.footer-social{ display:flex; gap:.8rem; }
.footer-social a{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; transition:background var(--dur-base) var(--ease-out); }
.footer-social a:hover{ background:var(--color-accent); }
.footer-social svg{ width:18px; height:18px; }

/* ==========================================================================
   MISC — animated counters, list, service overview
   ========================================================================== */
.check-list{ display:grid; gap:.8rem; }
.check-list li{ display:flex; align-items:flex-start; gap:.7rem; }
.check-list svg{ width:20px; height:20px; color:var(--color-accent); flex-shrink:0; margin-top:.15em; }

.entry-content{ max-width:760px; margin-inline:auto; }
.entry-content > *:not(.wp-block-columns):not(.wp-block-group){ max-width:70ch; }
.entry-content h2{ margin-top:2em; }
.entry-content ul li{ display:flex; gap:.6rem; margin-bottom:.5rem; }
.entry-content ul li::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--color-accent); margin-top:.6em; flex-shrink:0; }
.entry-content .wp-block-columns{ gap:2rem; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:900px){
  .primary-nav, .header-cta .btn-ghost{ display:none; }
  .burger{ display:flex; }
  .split, .contact-grid{ grid-template-columns:1fr; gap:2.2rem; }
  .split.reverse .split__media{ order:0; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .hero-panel{ margin-left:24px; }
}
@media (max-width:600px){
  :root{ --header-h:72px; --header-h-shrunk:58px; }
  body{ font-size:15.5px; }
  .footer-grid{ grid-template-columns:1fr; gap:2rem; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .hero-slider{ min-height:640px; }
  .hero-panel{ margin-left:16px; margin-right:16px; max-width:none; }
  .layer-figure__chip{ left:0; right:0; margin-inline:16px; bottom:-18px; max-width:none; }
  .layer-figure{ margin-bottom:2.5rem; }
  .cta-band{ border-radius:var(--radius-md); }
  .page-hero-inner{ padding:100px 20px 56px; }
}
@media (min-width:601px) and (max-width:900px){
  .card-grid{ grid-template-columns:repeat(2,1fr); }
}

html, body{ max-width:100%; overflow-x:hidden; }
