/*
Theme Name: KS-3Design - Scan to BIM
Theme URI: https://www.ks-3design.eu/
Author: MM Digital
Author URI: https://www.ks-3design.eu/
Description: Bilingual (FR/EN) WordPress theme for KS-3Design, a Scan-to-BIM technical studio on the French Riviera. French home at /, English home at /en/. Converted faithfully from the original static site.
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ks3design
*/

@font-face{
  font-family:'Fraunces Body';
  src:url('assets/fonts/fraunces-body-400-subset.ttf') format('truetype');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:'Fraunces Body';
  src:url('assets/fonts/fraunces-body-500-subset.ttf') format('truetype');
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face{
  font-family:'Fraunces Display';
  src:url('assets/fonts/fraunces-display-600-subset.ttf') format('truetype');
  font-style:normal;
  font-weight:600;
  font-display:swap;
}
@font-face{
  font-family:'Fraunces Display';
  src:url('assets/fonts/fraunces-display-600-italic-subset.ttf') format('truetype');
  font-style:italic;
  font-weight:600;
  font-display:swap;
}
/* ============================================================
   KS-3Design - design system  (premium · editorial · technical)
   ============================================================ */
:root{
  /* surfaces */
  --paper:#f8f5ef;          /* warm off-white - primary page */
  --paper-2:#eee9df;        /* muted band */
  --card:#ffffff;
  --ink:#17131b;            /* primary text / near-black */
  --noir:#09070d;           /* deep surface - premium dark sections */
  --noir-2:#141119;         /* dark card */
  /* text */
  --slate:#4a4654;
  --grey:#6c6776;
  --faint:#6a6675;
  /* lines */
  --line:rgba(23,20,29,0.10);
  --line-2:rgba(23,20,29,0.16);
  --line-d:rgba(255,255,255,0.12);
  --line-d2:rgba(255,255,255,0.20);
  /* brand accent - magenta, used sparingly */
  --accent:#c51662;
  --accent-700:#9f104e;
  --accent-soft:#f2649f;
  /* type */
  --f-display:'Fraunces Display',Georgia,'Times New Roman',serif;
  --f-body:'Fraunces Body',Georgia,'Times New Roman',serif;
  --f-mono:ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  /* metrics */
  --container:1240px;
  --gutter:clamp(22px,5vw,56px);
  --section:clamp(88px,12vw,168px);
  --r:8px;
  --r-sm:6px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--f-body); font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
::selection{ background:var(--accent); color:#fff; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
:focus-visible{ outline:2.5px solid var(--accent); outline-offset:3px; border-radius:4px; }
.skip-link{ position:absolute; left:12px; top:12px; z-index:999; transform:translateY(-140%); background:#fff; color:var(--ink); }
.skip-link:focus{ transform:none; }
.on-noir :focus-visible{ outline-color:var(--accent-soft); }

/* ---- layout ---- */
.container{ max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
.section{ padding:var(--section) 0; }
.section--muted{ background:var(--paper-2); }
.section--noir{ background:var(--noir); color:#fff; position:relative; overflow:hidden; }
.rule{ height:1px; background:var(--line); border:0; margin:0; }

/* ---- type ---- */
h1,h2,h3,h4{ margin:0; font-weight:400; }
.display{ font-family:var(--f-display); font-weight:600; font-size:clamp(42px,5.15vw,70px); line-height:.95; letter-spacing:0; font-variation-settings:"SOFT" 0,"WONK" 1; }
.h2{ font-family:var(--f-display); font-weight:600; font-size:clamp(34px,4.2vw,58px); line-height:.98; letter-spacing:0; font-variation-settings:"SOFT" 0,"WONK" 1; }
.h3{ font-family:var(--f-display); font-weight:600; font-size:clamp(22px,1.8vw,27px); line-height:1.14; letter-spacing:0; }
.lede{ font-size:clamp(16px,1.2vw,19px); line-height:1.68; color:var(--slate); max-width:60ch; }
.on-noir .lede{ color:rgba(255,255,255,0.74); }
.muted{ color:var(--grey); }
.on-noir .muted{ color:rgba(255,255,255,0.6); }
.kicker{ font:600 12px/1 var(--f-mono); letter-spacing:0.22em; text-transform:uppercase; color:var(--accent); }
.on-noir .kicker{ color:var(--accent-soft); }
.eyebrow{ display:flex; align-items:center; gap:13px; margin-bottom:22px; }
.eyebrow__line{ width:26px; height:1px; background:var(--accent); flex:none; }
.mono{ font-family:var(--f-mono); font-feature-settings:"tnum"; }

/* ---- section heads ---- */
.shead{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(28px,5vw,72px); align-items:end; margin-bottom:clamp(46px,6vw,72px); }
.shead__t{ max-width:18ch; }
.shead__aside{ max-width:42ch; align-self:end; }
.shead--center{ grid-template-columns:1fr; justify-items:center; text-align:center; }
.shead--center .eyebrow{ justify-content:center; }
.shead--center .shead__t{ max-width:24ch; }

/* ---- buttons ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font:600 15px/1 var(--f-body); letter-spacing:0.005em; text-decoration:none;
  padding:16px 26px; border-radius:var(--r-sm); border:1px solid transparent;
  cursor:pointer; min-height:50px; white-space:nowrap;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.btn svg{ width:18px; height:18px; }
.btn--accent{ background:var(--accent); color:#fff; }
.btn--ink{ background:var(--ink); color:#fff; }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); }
.on-noir .btn--ghost{ color:#fff; border-color:var(--line-d2); }
.btn--sm{ padding:11px 18px; min-height:42px; font-size:14px; }
.btn--block{ width:100%; }
.btn:active{ transform:scale(.97); }

/* ---- brand / logo ---- */
.brand{ display:inline-flex; align-items:center; text-decoration:none; flex:none; background:var(--paper); padding:10px 14px; border-radius:2px; box-shadow:0 0 0 1px rgba(23,20,29,0.035); }
.brand__lockup{ height:36px; width:auto; display:block; filter:none !important; opacity:1; mix-blend-mode:normal; transition:none; }
.brand--plate{ background:var(--paper); padding:10px 14px; border-radius:2px; box-shadow:0 0 0 1px rgba(23,20,29,0.035); }
.brand--plate .brand__lockup{ height:36px; }
@media (max-width:760px){ .brand__lockup{ height:30px; } }

/* ---- header (Image #4 - simple, calm) ---- */
.header{ position:sticky; top:0; z-index:100; background:rgba(250,248,244,0.82); backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px); border-bottom:1px solid var(--line); }
.header__bar{ display:flex; align-items:center; gap:28px; min-height:98px; padding:10px 0; }
.nav{ display:flex; gap:4px; margin:0 auto; }
.nav__link{ font:500 14.5px/1 var(--f-body); color:var(--slate); text-decoration:none; padding:10px 14px; border-radius:7px; transition:color .18s var(--ease), background-color .18s var(--ease); }
.header__actions{ display:flex; align-items:center; gap:14px; }

/* language toggle */
.lang{ display:inline-flex; flex-direction:column; align-items:center; gap:2px; padding:3px; background:var(--card); border:1px solid var(--line); border-radius:999px; }
.lang__btn{ width:44px; min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; font:600 12px/1 var(--f-mono); letter-spacing:0.08em; padding:8px 0; border:none; border-radius:999px; background:transparent; color:var(--grey); cursor:pointer; text-decoration:none; transition:color .2s var(--ease), background-color .2s var(--ease); }
.lang__btn[aria-current="page"],.lang__btn[aria-pressed="true"]{ background:var(--ink); color:#fff; }
.lang__btn:active{ transform:scale(.97); }
.lang--d{ background:rgba(255,255,255,0.06); border-color:var(--line-d); }
.lang--d .lang__btn{ color:rgba(255,255,255,0.62); }
.lang--d .lang__btn[aria-current="page"],.lang--d .lang__btn[aria-pressed="true"]{ background:rgba(255,255,255,0.2); color:#fff; }

/* hamburger */
.burger{ display:none; width:46px; height:46px; border:1px solid var(--line-2); border-radius:var(--r-sm); background:var(--card); cursor:pointer; align-items:center; justify-content:center; }
.burger svg{ width:22px; height:22px; stroke:var(--ink); }
.burger:active{ transform:scale(.97); }
.mnav{ display:none; }
.mnav:not([hidden]){ display:block; border-top:1px solid var(--line); background:var(--paper); }
.mnav__inner{ padding-top:14px; padding-bottom:20px; display:flex; flex-direction:column; gap:4px; }
.mnav__actions{ display:flex; gap:12px; align-items:center; margin-top:16px; }
.mnav__cta{ flex:1; }
@media (min-width:1025px){ .mnav:not([hidden]){ display:none; } }

/* ---- media frames ---- */
.media{ position:relative; overflow:hidden; margin:0; border-radius:var(--r); background:#15131d; }
.media img{ width:100%; height:100%; object-fit:cover; display:block; transition:opacity .35s var(--ease); }

/* ============================================================
   HERO - editorial, dominant visual (Image #1 + #3)
   ============================================================ */
.hero{ position:relative; background:var(--paper); border-bottom:1px solid var(--line); }
.hero__inner{ display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,500px); gap:clamp(32px,5vw,76px); align-items:center; min-height:calc(100svh - 132px); padding:clamp(22px,4vh,40px) 0; }
.hero h1{ max-width:14.5ch; }
.hero h1 em{ font-style:italic; color:var(--accent); }
.hero__sub{ margin:20px 0 0; font-size:clamp(15px,1.05vw,17px); line-height:1.58; color:var(--slate); max-width:48ch; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }

/* hero visual */
.hero__visual{ position:relative; justify-self:end; width:100%; max-width:500px; }
.hero__frame{ position:relative; aspect-ratio:4/3; border-radius:var(--r); overflow:hidden; background:#ebe5da; box-shadow:0 30px 70px -46px rgba(23,20,29,0.48), 0 1px 0 rgba(255,255,255,0.72) inset; }
.hero__frame img{ width:100%; height:100%; object-fit:contain; object-position:center; }

/* spec rail (file formats) */
.specrail{ border-top:1px solid var(--line); }
.specrail__in{ display:flex; flex-wrap:wrap; gap:0; }
.spec{ flex:1 1 0; min-width:150px; padding:12px 4px 12px 0; display:flex; flex-direction:column; gap:4px; position:relative; }
.spec + .spec{ padding-left:clamp(20px,2.4vw,34px); border-left:1px solid var(--line); }
.spec__k{ font:600 11px/1 var(--f-mono); letter-spacing:0.14em; text-transform:uppercase; color:var(--faint); }
.spec__v{ font:500 16px/1.25 var(--f-body); color:var(--ink); }
.spec__v span{ color:var(--accent); }

/* ============================================================
   SERVICES - editorial numbered rows (not a bento grid)
   ============================================================ */
.svc-wrap{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(36px,6vw,88px); align-items:start; }
.svc-aside{ position:sticky; top:104px; }
.svc-list{ display:flex; flex-direction:column; }
.svc{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,3vw,44px); padding:clamp(28px,3.4vw,44px) 0; border-top:1px solid var(--line); }
.svc:last-child{ border-bottom:1px solid var(--line); }
.svc__no{ font:500 15px/1 var(--f-mono); color:var(--accent); letter-spacing:0.04em; padding-top:7px; }
.svc__title{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.svc__body p{ margin:14px 0 0; color:var(--grey); font-size:16px; line-height:1.62; max-width:54ch; }
.svc__tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.tag{ display:inline-flex; align-items:center; gap:7px; padding:7px 13px; background:var(--card); border:1px solid var(--line); border-radius:999px; font:500 12.5px/1 var(--f-mono); color:var(--slate); letter-spacing:0.01em; }
.tag .dot{ width:5px; height:5px; border-radius:50%; background:var(--accent); flex:none; }

/* ============================================================
   LIVRABLES - interactive inspector
   ============================================================ */
.insp{ display:grid; grid-template-columns:0.92fr 1.08fr; gap:clamp(24px,3vw,40px); align-items:stretch; }
.insp__list{ display:flex; flex-direction:column; border-top:1px solid var(--line-d); }
.insp__btn{ display:flex; align-items:center; gap:16px; width:100%; text-align:left; background:transparent; border:0; border-bottom:1px solid var(--line-d); padding:20px 8px; cursor:pointer; color:#fff; transition:padding-left .25s var(--ease), background-color .25s var(--ease); }
.insp__btn .n{ font:500 13px/1 var(--f-mono); color:rgba(255,255,255,0.72); flex:none; }
.insp__btn .t{ font:500 19px/1.2 var(--f-display); letter-spacing:0; flex:1; }
.insp__btn .fmt{ font:600 11px/1 var(--f-mono); letter-spacing:0.06em; color:rgba(255,255,255,0.68); padding:5px 9px; border:1px solid var(--line-d); border-radius:6px; flex:none; }
.insp__btn[aria-selected="true"]{ background:rgba(255,255,255,0.04); }
.insp__btn[aria-selected="true"] .t{ color:#fff; }
.insp__btn[aria-selected="true"] .fmt{ color:var(--accent-soft); border-color:rgba(255,111,174,0.4); }
.insp__bar{ width:2px; align-self:stretch; background:var(--accent); border-radius:2px; opacity:0; transition:opacity .25s var(--ease); }
.insp__btn[aria-selected="true"] .insp__bar{ opacity:1; }
.insp__panel{ display:grid; grid-template-rows:minmax(260px,1fr) auto; border-radius:var(--r); overflow:hidden; min-height:430px; background:rgba(255,255,255,0.045); border:1px solid var(--line-d); box-shadow:0 34px 90px -56px rgba(0,0,0,0.92); }
.insp__panel img{ width:100%; height:100%; min-height:260px; object-fit:contain; background:linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02)); padding:clamp(16px,2.2vw,28px); }
.insp__meta{ padding:clamp(22px,2.6vw,34px); border-top:1px solid var(--line-d); }
.insp__meta .fmt{ display:inline-block; font:600 11px/1 var(--f-mono); letter-spacing:0.1em; color:var(--accent-soft); margin-bottom:14px; }
.insp__meta h3{ color:#fff; margin-bottom:12px; }
.insp__meta p{ margin:0; color:rgba(255,255,255,0.78); font-size:16px; line-height:1.6; max-width:46ch; }

/* ============================================================
   CAPABILITIES - editorial alternating rows
   ============================================================ */
.cap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px); align-items:center; }
.cap + .cap{ margin-top:clamp(72px,9vw,128px); }
.cap--rev .cap__text{ order:2; }
.cap--textonly{ grid-template-columns:minmax(0,760px); }
.cap__media{ height:clamp(330px,38vw,500px); border-radius:var(--r); box-shadow:0 28px 70px -44px rgba(23,20,29,0.48); border:1px solid rgba(23,20,29,0.08); }
.on-noir .cap__media{ box-shadow:0 30px 80px -38px rgba(0,0,0,0.78); border:1px solid var(--line-d); }
.cap__media--cream{ background:linear-gradient(145deg,#fbfaf6 0%,#f2eee6 100%); border:1px solid rgba(23,20,29,0.12); box-shadow:0 42px 100px -62px rgba(23,20,29,0.45), 0 1px 0 rgba(255,255,255,0.82) inset; padding:clamp(18px,3vw,44px); }
.cap__media--cream img{ object-fit:contain; background:#fffdf9; border-radius:6px; box-shadow:0 22px 60px -44px rgba(23,20,29,0.34); }
.cap__media--yacht{ background:radial-gradient(78% 70% at 58% 42%, rgba(255,255,255,0.18), rgba(255,255,255,0.04) 48%, rgba(255,255,255,0.02) 100%), #19171e; padding:clamp(18px,2.4vw,30px); }
.cap__media--yacht img{ object-fit:contain; filter:contrast(1.03) brightness(1.04); }

/* ---- tech / hardware (asymmetric, vertical scanner cutout) ---- */
.section--tech{ background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; }
.tech{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(32px,5vw,80px); align-items:center; }
.tech__text{ max-width:46ch; }
.techspecs{ display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:32px 0 0; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.techspec{ background:var(--paper); padding:18px 20px; display:flex; flex-direction:column; gap:6px; }
.techspec dt{ font:600 11px/1 var(--f-mono); letter-spacing:0.14em; text-transform:uppercase; color:var(--faint); }
.techspec dd{ margin:0; font:500 19px/1.1 var(--f-display); color:var(--ink); letter-spacing:0; }
.tech__visual{ position:relative; align-self:stretch; min-height:clamp(360px,42vw,520px); }
.tech__stage{ position:absolute; inset:0; border-radius:var(--r); overflow:hidden; border:1px solid var(--line);
  background:linear-gradient(145deg,#fffdfa 0%,#f1ece2 100%); box-shadow:0 34px 90px -60px rgba(23,20,29,0.44), 0 1px 0 rgba(255,255,255,0.8) inset; }
.tech__visual img{ position:absolute; z-index:2; left:50%; bottom:5%; transform:translateX(-50%); height:90%; width:auto; max-width:84%; object-fit:contain; filter:drop-shadow(0 28px 44px rgba(23,20,29,0.26)); }

/* ---- field banner ---- */
.banner{ position:relative; overflow:hidden; background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.banner__grid{ display:grid; grid-template-columns:0.82fr 1.18fr; gap:clamp(28px,5vw,76px); align-items:center; padding:clamp(72px,9vw,124px) 0; }
.banner__media{ aspect-ratio:1596/672; height:auto; border-radius:var(--r); background:#111; box-shadow:0 28px 70px -42px rgba(23,20,29,0.5); }
.banner__media img{ width:100%; height:100%; object-fit:contain; object-position:center; background:#111; }
.banner__h{ max-width:17ch; }
.banner__p{ margin:22px 0 0; font:450 clamp(16px,1.35vw,19px)/1.62 var(--f-body); color:var(--slate); max-width:44ch; }
.checklist{ display:flex; flex-direction:column; gap:14px; margin-top:30px; }
.check{ display:flex; align-items:flex-start; gap:13px; font-size:16px; color:var(--ink); font-weight:500; }
.on-noir .check{ color:rgba(255,255,255,0.9); }
.check svg{ width:20px; height:20px; flex:none; margin-top:2px; }

/* ============================================================
   ASSURANCE - text-first replacement for image case grid
   ============================================================ */
.assurance{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:1px; background:var(--line-d); border:1px solid var(--line-d); border-radius:var(--r); overflow:hidden; }
.assurance__item{ background:rgba(255,255,255,0.035); padding:clamp(24px,3vw,38px); min-height:210px; }
.assurance__no{ font:600 11px/1 var(--f-mono); letter-spacing:0.14em; text-transform:uppercase; color:var(--accent-soft); margin-bottom:28px; }
.assurance__item h3{ color:#fff; margin:0; }
.assurance__item p{ margin:14px 0 0; color:rgba(255,255,255,0.68); font-size:15.5px; line-height:1.68; max-width:34ch; }

/* ============================================================
   MISSION LOG - process as a vertical technical log
   ============================================================ */
.log{ display:grid; grid-template-columns:1fr; gap:0; max-width:880px; }
.logrow{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,4vw,52px); padding:clamp(26px,3.2vw,40px) 0; border-top:1px solid var(--line); align-items:baseline; }
.logrow:last-child{ border-bottom:1px solid var(--line); }
.logrow__k{ font:500 13px/1 var(--f-mono); color:var(--accent); letter-spacing:0.06em; white-space:nowrap; }
.logrow__t{ font-family:var(--f-display); font-weight:500; font-size:clamp(20px,2vw,27px); letter-spacing:0; }
.logrow__d{ margin:10px 0 0; color:var(--grey); font-size:16px; line-height:1.6; max-width:58ch; }

/* ============================================================
   CONTACT INTAKE
   ============================================================ */
.contact{ display:grid; grid-template-columns:0.82fr 1.18fr; gap:clamp(32px,4vw,64px); align-items:start; }
.office{ display:flex; flex-direction:column; gap:7px; padding-top:28px; border-top:1px solid var(--line); }
.office__k{ font:600 11px/1 var(--f-mono); letter-spacing:0.14em; text-transform:uppercase; color:var(--faint); }
.office__v{ font:500 17px/1.4 var(--f-body); color:var(--ink); }
.ccard{ background:var(--noir); color:#fff; border-radius:var(--r); padding:clamp(14px,1.6vw,20px); display:flex; flex-direction:column; gap:10px; }
.ccard :focus-visible{ outline-color:var(--accent-soft); }
.ccta{ display:flex; align-items:center; gap:18px; padding:clamp(20px,2.2vw,26px) clamp(18px,2vw,24px); border-radius:var(--r-sm); background:rgba(255,255,255,0.04); border:1px solid var(--line-d); text-decoration:none; color:#fff; transition:background-color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease); }
.ccta--mail{ background:var(--accent); border-color:transparent; }
.ccta__ico{ width:46px; height:46px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.16); }
.ccta__ico svg{ width:22px; height:22px; stroke:#fff; }
.ccta--mail .ccta__ico{ background:rgba(255,255,255,0.2); border-color:rgba(255,255,255,0.3); }
.ccta__body{ display:flex; flex-direction:column; gap:4px; flex:1; min-width:0; }
.ccta__body small{ font:600 11px/1 var(--f-mono); letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.62); }
.ccta--mail .ccta__body small{ color:#fff; }
.ccta__body b{ font:500 clamp(18px,1.9vw,23px)/1.15 var(--f-display); letter-spacing:0; word-break:break-word; }
.ccta__arrow{ flex:none; opacity:0.65; transition:transform .25s var(--ease), opacity .25s var(--ease); }
.ccta__arrow svg{ width:20px; height:20px; stroke:#fff; }
.ccta:active{ transform:scale(.99); }
.brief-list{ display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; margin:8px 4px 6px; padding:14px 16px; border:1px solid var(--line-d); border-radius:var(--r-sm); color:rgba(255,255,255,0.78); font:500 13px/1.35 var(--f-body); }
.brief-list li{ margin-left:16px; }
.ccard__note{ display:flex; gap:11px; align-items:flex-start; font:500 13px/1.5 var(--f-mono); color:rgba(255,255,255,0.58); letter-spacing:0.01em; margin:6px 4px 4px; }
.ccard__note svg{ width:18px; height:18px; flex:none; stroke:var(--accent-soft); margin-top:1px; }

/* ============================================================
   FOOTER - Image #5 (large text, generous gaps, calm dark)
   ============================================================ */
.footer{ background:var(--noir); color:#fff; }
.footer__top{ display:grid; grid-template-columns:1.7fr 1fr 1.2fr; gap:clamp(40px,6vw,96px); padding:clamp(72px,9vw,128px) 0 clamp(48px,5vw,72px); }
.footer__lede{ font-family:var(--f-display); font-weight:400; font-size:clamp(22px,2.2vw,30px); line-height:1.32; color:rgba(255,255,255,0.92); max-width:20ch; letter-spacing:0; }
.footer__heading{ font:600 11px/1 var(--f-mono); letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.62); margin-bottom:24px; }
.footer__col a,.footer__col span{ display:block; color:rgba(255,255,255,0.74); text-decoration:none; font-size:16px; padding:9px 0; transition:color .18s var(--ease); }
.footer__bar{ display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; padding:28px 0 0; font:500 13px/1.5 var(--f-mono); color:rgba(255,255,255,0.5); letter-spacing:0.02em; border-top:1px solid rgba(255,255,255,0.1); }
.footer__credits{ margin:14px 0 28px; font:500 11.5px/1.5 var(--f-mono); color:rgba(255,255,255,0.5); letter-spacing:0.02em; }

/* ---- scroll reveal ---- */
.js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.js .reveal.in{ opacity:1; transform:none; }

/* ============================================================
   HOVER - only for true pointer devices
   ============================================================ */
@media (hover:hover) and (pointer:fine){
  .nav__link:hover{ color:var(--ink); background:rgba(23,20,29,0.05); }
  .btn--accent:hover{ background:var(--accent-700); transform:translateY(-2px); box-shadow:0 18px 40px -14px rgba(212,21,108,0.5); }
  .btn--ink:hover{ transform:translateY(-2px); box-shadow:0 18px 40px -18px rgba(23,20,29,0.5); }
  .btn--ghost:hover{ border-color:currentColor; transform:translateY(-2px); }
  .lang__btn:hover{ color:var(--ink); }
  .lang--d .lang__btn:hover{ color:#fff; }
  .insp__btn:hover{ padding-left:16px; }
  .ccta:hover{ background:rgba(255,255,255,0.08); border-color:var(--line-d2); }
  .ccta--mail:hover{ background:var(--accent-700); border-color:transparent; }
  .ccta:hover .ccta__arrow{ transform:translateX(4px); opacity:1; }
  .footer__col a:hover{ color:#fff; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .nav{ display:none; }
  .burger{ display:flex; }
  .header__actions .lang{ display:none; }
  .header__bar{ min-height:68px; padding:0; }
  .hero__inner{ grid-template-columns:1fr; gap:34px; min-height:auto; }
  .hero__visual{ justify-self:start; max-width:560px; }
  .hero h1{ max-width:18ch; }
  .svc-wrap{ grid-template-columns:1fr; gap:34px; }
  .svc-aside{ position:static; }
  .insp{ grid-template-columns:1fr; }
  .insp__panel{ order:-1; min-height:300px; }
  .banner__grid{ grid-template-columns:1fr; }
  .assurance{ grid-template-columns:1fr; }
  .contact{ grid-template-columns:1fr; }
}
@media (max-width:760px){
  body{ font-size:16px; }
  .header__actions .btn--accent{ display:none; } /* CTA lives in the mobile menu */
  /* mobile hero order: headline → sub → CTA → graphic */
  .hero__inner{ gap:24px; padding:28px 0 24px; }
  .hero__visual{ order:2; }
  .specrail{ display:none; }
  .cap{ grid-template-columns:1fr; gap:30px; }
  .cap--rev .cap__text{ order:0; }
  .tech{ grid-template-columns:1fr; gap:30px; }
  .tech__visual{ min-height:380px; }
  .tech__visual img{ height:88%; max-width:62%; }
  .banner__media img{ object-position:50% center; }
  .specrail__in{ flex-direction:column; }
  .spec{ padding:18px 0; min-width:0; }
  .spec + .spec{ padding-left:0; border-left:none; border-top:1px solid var(--line); }
  .shead{ grid-template-columns:1fr; align-items:start; gap:16px; }
  .shead__t{ max-width:none; }
  .ccta{ gap:14px; }
  .footer__top{ grid-template-columns:1fr 1fr; gap:40px 32px; }
  .footer__brand{ grid-column:1 / -1; }
}
@media (max-width:480px){
  .insp__btn .fmt{ display:none; }
  .footer__top{ grid-template-columns:1fr; }
  .footer__bar{ flex-direction:column; align-items:flex-start; }
  .logrow{ grid-template-columns:1fr; gap:6px; }
}

@media (prefers-reduced-motion:reduce){
  *{ scroll-behavior:auto !important; }
  .js .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .media img,.btn,.insp__btn,.nav__link{ transition:none !important; }
}
.mt-22{ margin-top:22px; }
.mt-24{ margin-top:24px; }
.contact__intro{ margin:22px 0 32px; }
.footer__logo{ margin-bottom:26px; }
