/* ════════════════════════════════════════════════════════
   FESSY BIOSSET — Styles
   Direction : Précision industrielle × Finition haut de gamme
   Palette : Blanc / Anthracite / Rouge #c1121f / Or #b67d00
   Polices  : Barlow Condensed (titres) + DM Sans (corps)
════════════════════════════════════════════════════════ */

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --bg         : #ffffff;
  --surface    : #ffffff;
  --surface-2  : #f5f5f3;
  --text       : #0f0f0f;
  --muted      : #5a5a5a;
  --line       : #e2e2e2;
  --dark       : #111111;
  --accent     : #c1121f;
  --accent-hov : #a00e19;
  --gold       : #b67d00;
  --r-sm       : 10px;
  --r-md       : 18px;
  --r-lg       : 26px;
  --r-xl       : 32px;
  --sh-sm      : 0 4px 18px rgba(0,0,0,.06);
  --sh-md      : 0 12px 42px rgba(0,0,0,.09);
  --sh-lg      : 0 32px 90px rgba(0,0,0,.13);
  --font-d     : 'Barlow Condensed', sans-serif;
  --font-b     : 'DM Sans', system-ui, sans-serif;
}

/* ── Reset ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background : var(--bg);
  color      : var(--text);
  font-family: var(--font-b);
  line-height: 1.65;
  letter-spacing: .008em;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a   { text-decoration: none; color: inherit; }

/* ── Container ──────────────────────────────────────────────── */
.container {
  width : min(1240px, calc(100% - 48px));
  margin: 0 auto;
}

/* ── Overline ───────────────────────────────────────────────── */
.overline {
  font-size     : 11px;
  font-weight   : 600;
  text-transform: uppercase;
  letter-spacing: .28em;
  color         : var(--muted);
}

/* ── Section title ──────────────────────────────────────────── */
.section-title {
  font-family   : var(--font-d);
  font-size     : clamp(34px, 5vw, 62px);
  font-weight   : 700;
  line-height   : .97;
  letter-spacing: -.01em;
  margin-top    : 14px;
}
.section-title.light { color: #fff; }

/* ── Subtitle ───────────────────────────────────────────────── */
.subtitle {
  color      : var(--muted);
  font-size  : 17px;
  max-width  : 760px;
  margin-top : 16px;
  line-height: 1.72;
}
.subtitle.light { color: rgba(255,255,255,.65); }

/* ── Link red ───────────────────────────────────────────────── */
.link-red { color: var(--accent); font-weight: 600; font-size: 13px; }
.link-red:hover { text-decoration: underline; }

/* ── Sections ───────────────────────────────────────────────── */
.section       { padding: 96px 0; }
.section-light { background: var(--surface-2); }
.section-dark  { background: #111; color: #fff; }


/* ════════════════════════════════════════
   BUTTONS
════════════════════════════════════════ */
.btn {
  display      : inline-flex;
  align-items  : center;
  justify-content: center;
  gap          : 8px;
  min-height   : 50px;
  padding      : 0 26px;
  border-radius: var(--r-sm);
  font-family  : var(--font-b);
  font-size    : 12px;
  font-weight  : 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  transition   : all .22s ease;
  cursor       : pointer;
  border       : 1.5px solid transparent;
  white-space  : nowrap;
}
.btn-primary {
  background: var(--accent);
  color     : #fff;
  border-color: var(--accent);
  box-shadow: 0 6px 22px rgba(193,18,31,.30);
}
.btn-primary:hover {
  background  : var(--accent-hov);
  border-color: var(--accent-hov);
  transform   : translateY(-2px);
  box-shadow  : 0 12px 32px rgba(193,18,31,.40);
}
.btn-ghost {
  background  : transparent;
  color       : rgba(255,255,255,.88);
  border-color: rgba(255,255,255,.26);
}
.btn-ghost:hover {
  background  : rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.55);
  color       : #fff;
}
.btn-full { width: 100%; }


/* ════════════════════════════════════════
   HEADER
════════════════════════════════════════ */
.site-header {
  position     : sticky;
  top          : 0;
  z-index      : 100;
  background   : rgba(255,255,255,.97);
  backdrop-filter: blur(22px);
  border-bottom: 1px solid var(--line);
}
.header-inner {
  display        : flex;
  justify-content: space-between;
  align-items    : center;
  gap            : 20px;
  padding        : 10px 0;
  position       : relative; /* anchor for mobile menu */
}

/* Logo — no shadow, visible */
.brand     { display: flex; align-items: center; flex-shrink: 0; }
.site-logo {
  height: 90px;
  width : auto;
  filter: none !important; /* remove drop-shadow */
}

/* Nav links */
.nav {
  display        : flex;
  align-items    : center;
  gap            : 5px;
  flex-wrap      : wrap;
  justify-content: flex-end;
}
.nav-link {
  display      : inline-flex;
  align-items  : center;
  height       : 36px;
  padding      : 0 13px;
  border-radius: var(--r-sm);
  border       : 1px solid #e5e5e5;
  background   : #fafafa;
  font-size    : 11.5px;
  font-weight  : 500;
  color        : #333;
  text-transform: uppercase;
  letter-spacing: .09em;
  transition   : all .18s ease;
}
.nav-link:hover,
.nav-link.active {
  border-color: var(--accent);
  color       : var(--accent);
  background  : rgba(193,18,31,.04);
}
/* Contact CTA in nav */
.nav-cta {
  display      : inline-flex;
  align-items  : center;
  height       : 36px;
  padding      : 0 18px;
  border-radius: var(--r-sm);
  background   : var(--accent);
  color        : #fff;
  font-size    : 11.5px;
  font-weight  : 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  transition   : all .18s ease;
  box-shadow   : 0 4px 14px rgba(193,18,31,.26);
}
.nav-cta:hover {
  background: var(--accent-hov);
  transform : translateY(-1px);
  box-shadow: 0 6px 20px rgba(193,18,31,.38);
}

/* Burger */
.burger {
  display   : none;
  flex-direction: column;
  gap       : 5px;
  cursor    : pointer;
  background: none;
  border    : 1px solid var(--line);
  padding   : 9px 10px;
  border-radius: var(--r-sm);
  transition: background .18s;
}
.burger:hover { background: var(--surface-2); }
.burger span {
  display      : block;
  width        : 22px;
  height       : 2px;
  background   : var(--text);
  border-radius: 2px;
  transition   : all .25s ease;
}
.burger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.burger.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.burger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }


/* ════════════════════════════════════════
   HERO
════════════════════════════════════════ */
.hero {
  background: #0e0e0e;
  position  : relative;
  overflow  : hidden;
}
/* Background atmosphere */
.hero::before {
  content : "";
  position: absolute;
  inset   : 0;
  background:
    radial-gradient(ellipse 80% 55% at 72% 50%, rgba(193,18,31,.09) 0%, transparent 58%),
    linear-gradient(150deg, #0e0e0e 0%, #181818 100%);
  pointer-events: none;
}
/* Subtle grid texture */
.hero::after {
  content : "";
  position: absolute;
  inset   : 0;
  background-image :
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events : none;
}

.hero-grid {
  position: relative;
  z-index : 2;
  display : grid;
  grid-template-columns: 1.2fr .8fr;
  gap     : 56px;
  align-items: center;
  padding : 96px 0 88px;
}
.hero-left {
  display       : flex;
  flex-direction: column;
}

/* Badge */
.badge {
  display      : inline-flex;
  align-items  : center;
  gap          : 9px;
  border       : 1px solid rgba(193,18,31,.38);
  background   : rgba(193,18,31,.08);
  color        : #f2bfc3;
  padding      : 8px 16px;
  border-radius: 999px;
  font-size    : 10.5px;
  font-weight  : 700;
  text-transform: uppercase;
  letter-spacing: .22em;
  width        : fit-content;
}
.badge::before {
  content      : "";
  width        : 6px;
  height       : 6px;
  border-radius: 50%;
  background   : var(--accent);
  flex-shrink  : 0;
  box-shadow   : 0 0 0 3px rgba(193,18,31,.22);
}

/* Hero title — smaller than original */
.hero-title {
  font-family   : var(--font-d);
  font-size     : clamp(28px, 3.8vw, 50px);
  font-weight   : 700;
  line-height   : 1.06;
  letter-spacing: -.01em;
  color         : #ededed;
  margin-top    : 22px;
  max-width     : 800px;
}
.hero-title span {
  display   : block;
  color     : #ffb9bd;
  font-style: italic;
  font-weight: 400;
}

/* Lead text */
.lead {
  color      : #c2c2c2;
  font-size  : 16.5px;
  line-height: 1.72;
  max-width  : 700px;
  margin-top : 20px;
}

/* CTA buttons */
.actions {
  display  : flex;
  flex-wrap: wrap;
  gap      : 12px;
  margin-top: 28px;
}

/* Hero contact chips */
.hero-contacts {
  display              : grid;
  grid-template-columns: repeat(3, 1fr);
  gap                  : 10px;
  margin-top           : 22px;
}
.contact-chip {
  border       : 1px solid rgba(255,255,255,.09);
  background   : rgba(255,255,255,.035);
  border-radius: 14px;
  padding      : 15px 16px;
  transition   : all .2s ease;
}
.contact-chip:hover {
  background  : rgba(255,255,255,.07);
  border-color: rgba(193,18,31,.38);
}
.contact-chip .role  {
  font-size     : 9.5px;
  text-transform: uppercase;
  letter-spacing: .2em;
  color         : rgba(255,255,255,.38);
  font-weight   : 600;
}
.contact-chip .name  {
  font-size  : 14px;
  font-weight: 600;
  color      : #ececec;
  margin-top : 3px;
}
.contact-chip .phone {
  margin-top : 4px;
  color      : #ffb9bd;
  font-size  : 12.5px;
  font-weight: 500;
}

/* ── Certifications RGE (BIGGER & MORE PROMINENT) ───── */
.certifications {
  display   : flex;
  gap       : 14px;
  margin-top: 24px;
}
.cert-card {
  display      : flex;
  align-items  : center;
  gap          : 16px;
  background   : rgba(255,255,255,.07);
  border       : 1px solid rgba(255,255,255,.14);
  border-radius: 18px;
  padding      : 18px 22px;
  flex         : 1;
  transition   : all .22s ease;
}
.cert-card:hover {
  background  : rgba(255,255,255,.12);
  border-color: rgba(193,18,31,.35);
  transform   : translateY(-2px);
}
.cert-card img {
  height      : 86px;  /* bigger than original 64px */
  width       : auto;
  object-fit  : contain;
  flex-shrink : 0;
}
.cert-text         { display: flex; flex-direction: column; gap: 4px; }
.cert-name {
  font-size     : 11.5px;
  font-weight   : 700;
  text-transform: uppercase;
  letter-spacing: .13em;
  color         : rgba(255,255,255,.82);
  line-height   : 1.45;
}
.cert-sub {
  font-size  : 10px;
  color      : rgba(255,255,255,.4);
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* ── Hero decorative ornament ───────────────────────── */
.hero-ornament {
  position  : relative;
  width     : 100%;
  max-width : 480px;
  height    : 150px;
  margin-top: 22px;
  overflow  : hidden;
}
.hero-ornament .line {
  position       : absolute;
  left           : 0;
  right          : 0;
  height         : 1px;
  background     : linear-gradient(90deg, rgba(193,18,31,0), rgba(193,18,31,.55), rgba(17,17,17,.18), rgba(193,18,31,0));
  transform-origin: left center;
  animation      : ornamentSweep 7s ease-in-out infinite;
}
.hero-ornament .line.l2 { top: 38px;  animation-delay: .6s; }
.hero-ornament .line.l3 { top: 76px;  animation-delay: 1.2s; }
.hero-ornament .line.l4 { top: 114px; animation-delay: 1.8s; }
.hero-ornament .dot {
  position     : absolute;
  width        : 8px;
  height       : 8px;
  border-radius: 50%;
  background   : var(--accent);
  box-shadow   : 0 0 0 5px rgba(193,18,31,.1);
  animation    : ornamentFloat 5.6s ease-in-out infinite;
}
.hero-ornament .dot.d1 { top: 32px;  left: 10%; }
.hero-ornament .dot.d2 { top: 70px;  left: 36%; animation-delay: .8s; }
.hero-ornament .dot.d3 { top: 108px; left: 62%; animation-delay: 1.6s; }
.hero-ornament .dot.d4 { top: 32px;  left: 84%; animation-delay: 2.4s; }
.hero-ornament .panel {
  position     : absolute;
  right        : 0;
  bottom       : 0;
  width        : 170px;
  height       : 105px;
  border-radius: 18px;
  background   : linear-gradient(135deg, rgba(193,18,31,.1), rgba(17,17,17,.02));
  border       : 1px solid rgba(193,18,31,.15);
  animation    : panelPulse 6s ease-in-out infinite;
}
.hero-ornament .panel::before {
  content      : "";
  position     : absolute;
  inset        : 13px;
  border-radius: 12px;
  border       : 1px solid rgba(193,18,31,.14);
}
.hero-ornament .caption {
  position      : absolute;
  right         : 16px;
  bottom        : 16px;
  font-size     : 9.5px;
  text-transform: uppercase;
  letter-spacing: .22em;
  color         : rgba(193,18,31,.75);
  font-weight   : 700;
}

/* ── Hero right card ────────────────────────────────── */
.hero-right {
  display    : flex;
  align-items: center;
}
.hero-card {
  width        : 100%;
  background   : rgba(255,255,255,.055);
  border       : 1px solid rgba(255,255,255,.11);
  border-radius: var(--r-xl);
  padding      : 18px;
  box-shadow   : 0 40px 100px rgba(0,0,0,.38);
}
.hero-card-inner {
  background   : rgba(0,0,0,.22);
  border       : 1px solid rgba(255,255,255,.07);
  border-radius: var(--r-lg);
  padding      : 18px;
}
.hero-card-inner img {
  width        : 100%;
  max-height   : 360px;
  aspect-ratio : 4/5;
  object-fit   : cover;
  border-radius: var(--r-md);
}
.hero-card-body       { margin-top: 18px; }
.hero-card-body .overline { color: #c0c0c0; }
.hero-card-body h3 {
  font-family   : var(--font-d);
  font-size     : 26px;
  font-weight   : 700;
  color         : #ececec;
  line-height   : 1.12;
  margin-top    : 8px;
}
.hero-card-body p {
  color      : #909090;
  font-size  : 13.5px;
  margin-top : 10px;
  line-height: 1.6;
}


/* ════════════════════════════════════════
   PARTNERS BAR
════════════════════════════════════════ */
.partners-bar {
  background   : var(--surface-2);
  border-top   : 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding      : 34px 0;
}
.partners-label { text-align: center; margin-bottom: 20px; }
.partners-logos {
  display        : flex;
  flex-wrap      : wrap;
  justify-content: center;
  align-items    : center;
  gap            : 44px;
  opacity        : .5;
  filter         : grayscale(1);
  transition     : opacity .3s;
}
.partners-logos:hover { opacity: .72; }
.partners-logos img { height: 26px; object-fit: contain; }


/* ════════════════════════════════════════
   GALLERY
════════════════════════════════════════ */
.gallery {
  display              : grid;
  grid-template-columns: repeat(3, 1fr);
  gap                  : 22px;
  margin-top           : 38px;
}
.gallery-card {
  background   : var(--bg);
  border       : 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow     : hidden;
  box-shadow   : var(--sh-sm);
  transition   : transform .22s ease, box-shadow .22s ease;
}
.gallery-card:hover {
  transform : translateY(-5px);
  box-shadow: var(--sh-md);
}
.gallery-card img {
  width       : 100%;
  aspect-ratio: 4/3;
  object-fit  : cover;
}
.gallery-body    { padding: 22px 24px 26px; }
.gallery-body h3 {
  font-family   : var(--font-d);
  font-size     : 25px;
  font-weight   : 700;
  line-height   : 1.1;
  color         : var(--text);
}
.gallery-body p {
  color      : var(--muted);
  font-size  : 13.5px;
  margin-top : 8px;
  line-height: 1.62;
}


/* ════════════════════════════════════════
   ABOUT / L'ENTREPRISE
════════════════════════════════════════ */
.about-grid {
  display              : grid;
  grid-template-columns: 1fr 1fr;
  gap                  : 52px;
  align-items          : center;
}
.about-img-wrap {
  border-radius: var(--r-lg);
  overflow     : hidden;
  box-shadow   : var(--sh-md);
}
.about-img-wrap img {
  width       : 100%;
  aspect-ratio: 4/3;
  object-fit  : cover;
}
.about-content .subtitle { max-width: 100%; }
.contacts-grid {
  display              : grid;
  grid-template-columns: repeat(3, 1fr);
  gap                  : 14px;
  margin-top           : 28px;
}
.contact-card {
  padding      : 20px 16px;
  background   : var(--surface-2);
  border       : 1px solid var(--line);
  border-radius: var(--r-md);
  transition   : all .2s ease;
}
.contact-card:hover {
  border-color: var(--accent);
  background  : rgba(193,18,31,.03);
  transform   : translateY(-2px);
  box-shadow  : var(--sh-sm);
}
.contact-card h3 {
  font-family: var(--font-d);
  font-size  : 19px;
  font-weight: 700;
  margin-top : 6px;
  line-height: 1.1;
}
.contact-card p {
  color      : var(--gold);
  font-weight: 600;
  font-size  : 13.5px;
  margin-top : 6px;
}


/* ════════════════════════════════════════
   GOOGLE REVIEWS
════════════════════════════════════════ */
.google-reviews-wrap {
  margin-top           : 38px;
  display              : grid;
  grid-template-columns: 260px 1fr;
  gap                  : 26px;
  align-items          : start;
}
.google-score {
  background   : rgba(255,255,255,.06);
  border       : 1px solid rgba(255,255,255,.11);
  border-radius: var(--r-lg);
  padding      : 28px 24px;
  color        : #fff;
}
.google-badge {
  display      : inline-flex;
  align-items  : center;
  gap          : 8px;
  font-size    : 10.5px;
  text-transform: uppercase;
  letter-spacing: .14em;
  color        : rgba(255,255,255,.5);
  margin-bottom: 16px;
}
.google-badge::before {
  content        : "G";
  display        : inline-flex;
  width          : 22px;
  height         : 22px;
  border-radius  : 50%;
  align-items    : center;
  justify-content: center;
  background     : #fff;
  color          : var(--accent);
  font-weight    : 700;
  font-size      : 13px;
  flex-shrink    : 0;
}
.google-score .score {
  font-family: var(--font-d);
  font-size  : 66px;
  font-weight: 700;
  line-height: 1;
}
.google-score .stars {
  color    : #ffb9bd;
  font-size: 20px;
  margin-top: 8px;
}
.google-score .meta {
  color    : rgba(255,255,255,.45);
  font-size: 13px;
  margin-top: 10px;
}
.google-list {
  display              : grid;
  grid-template-columns: repeat(3, 1fr);
  gap                  : 16px;
}
.google-card {
  background   : rgba(255,255,255,.055);
  border       : 1px solid rgba(255,255,255,.1);
  border-radius: var(--r-md);
  padding      : 22px;
  transition   : all .2s ease;
}
.google-card:hover {
  background  : rgba(255,255,255,.09);
  border-color: rgba(193,18,31,.28);
}
.google-card .stars {
  color    : #ffb9bd;
  font-size: 15px;
}
.google-card p {
  color      : rgba(255,255,255,.72);
  font-size  : 14.5px;
  margin-top : 10px;
  line-height: 1.6;
}
.google-name {
  font-size     : 10.5px;
  text-transform: uppercase;
  letter-spacing: .14em;
  color         : rgba(255,255,255,.35);
  margin-top    : 14px;
}
.google-empty { color: rgba(255,255,255,.5); font-size: 15px; }


/* ════════════════════════════════════════
   CONTACT SECTION
════════════════════════════════════════ */
.contact-grid {
  display              : grid;
  grid-template-columns: 1fr 1fr;
  gap                  : 48px;
  align-items          : start;
}
.contact-info .section-title { max-width: 480px; }
.contact-info > p {
  color      : var(--muted);
  font-size  : 16px;
  margin-top : 18px;
  line-height: 1.72;
}
.contact-details {
  margin-top    : 28px;
  display       : flex;
  flex-direction: column;
  gap           : 10px;
}
.detail-row {
  display    : flex;
  align-items: center;
  gap        : 14px;
  padding    : 13px 16px;
  background : var(--surface-2);
  border-radius: var(--r-sm);
  border     : 1px solid var(--line);
}
.detail-label {
  font-size     : 11px;
  font-weight   : 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color         : var(--muted);
  min-width     : 118px;
  flex-shrink   : 0;
}
.detail-row a {
  color      : var(--accent);
  font-weight: 600;
  font-size  : 14.5px;
  transition : color .15s;
}
.detail-row a:hover { color: var(--accent-hov); text-decoration: underline; }
.detail-row > span:last-child {
  color    : var(--text);
  font-size: 14.5px;
}

/* Form card */
.form-card {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r-xl);
  padding      : 40px;
  box-shadow   : var(--sh-md);
}
.form-card h3 {
  font-family   : var(--font-d);
  font-size     : 34px;
  font-weight   : 700;
  line-height   : 1.05;
}
.form-grid {
  display              : grid;
  grid-template-columns: 1fr 1fr;
  gap                  : 12px;
  margin-top           : 22px;
}
input, textarea {
  width        : 100%;
  border       : 1.5px solid var(--line);
  background   : var(--surface-2);
  border-radius: var(--r-sm);
  padding      : 14px 16px;
  font-family  : var(--font-b);
  font-size    : 14px;
  color        : var(--text);
  outline      : none;
  transition   : border-color .18s, background .18s, box-shadow .18s;
}
textarea { min-height: 140px; resize: vertical; }
input:focus, textarea:focus {
  border-color: var(--accent);
  background  : #fff;
  box-shadow  : 0 0 0 3px rgba(193,18,31,.1);
}
input::placeholder, textarea::placeholder { color: #aaa; }


/* ════════════════════════════════════════
   LEGAL
════════════════════════════════════════ */
.legal-grid {
  display              : grid;
  grid-template-columns: 1fr 1fr;
  gap                  : 22px;
}
.legal-card {
  background   : var(--bg);
  border       : 1px solid var(--line);
  border-radius: var(--r-lg);
  padding      : 36px;
  box-shadow   : var(--sh-sm);
}
.legal-card h3 {
  font-family: var(--font-d);
  font-size  : 28px;
  font-weight: 700;
  margin-top : 10px;
}
.legal-list        { margin-top: 18px; }
.legal-list p {
  font-size  : 13.5px;
  color      : var(--muted);
  margin-bottom: 10px;
  line-height: 1.62;
}
.legal-list p strong { color: var(--text); }


/* ════════════════════════════════════════
   FOOTER CONTACTS BAR
════════════════════════════════════════ */
.footer-contacts-bar { background: #111; color: #fff; }
.footer-contacts-grid {
  display              : grid;
  grid-template-columns: repeat(3, 1fr);
  gap                  : 18px;
  padding              : 54px 0;
}
.footer-contact-card {
  padding      : 26px 22px;
  background   : rgba(255,255,255,.04);
  border       : 1px solid rgba(255,255,255,.08);
  border-radius: var(--r-md);
  transition   : all .2s ease;
}
.footer-contact-card:hover {
  background  : rgba(255,255,255,.08);
  border-color: rgba(193,18,31,.3);
  transform   : translateY(-2px);
}
.footer-contact-card .overline { color: rgba(255,255,255,.38); }
.footer-contact-card h3 {
  font-family: var(--font-d);
  font-size  : 22px;
  font-weight: 700;
  color      : #fff;
  margin-top : 8px;
}
.footer-contact-card p {
  color      : var(--gold);
  font-weight: 600;
  font-size  : 14px;
  margin-top : 7px;
}


/* ════════════════════════════════════════
   SITE FOOTER
════════════════════════════════════════ */
.site-footer { background: #fff; border-top: 1px solid var(--line); }
.footer-inner {
  display        : flex;
  justify-content: space-between;
  align-items    : center;
  gap            : 20px;
  padding        : 22px 0;
  font-size      : 12.5px;
  color          : var(--muted);
}



/* ── Keyframes ─────────────────────────────────────────────── */
@keyframes ornamentSweep {
  0%, 100% { transform: scaleX(.58); opacity: .38; }
  50%      { transform: scaleX(1);   opacity: 1;   }
}
@keyframes ornamentFloat {
  0%, 100% { transform: translateY(0);   opacity: .65; }
  50%      { transform: translateY(-6px); opacity: 1;   }
}
@keyframes panelPulse {
  0%, 100% { transform: translateY(0);   box-shadow: 0 10px 26px rgba(193,18,31,.06); }
  50%      { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(193,18,31,.13); }
}


/* ════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════ */
@media (max-width: 1100px) {
  .hero-grid   { grid-template-columns: 1fr; }
  .hero-right  { display: none; }
  .about-grid  { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .legal-grid  { grid-template-columns: 1fr; }

  /* Show burger, hide nav */
  .nav    { display: none; }
  .burger { display: flex; }

  /* Mobile nav overlay */
  .nav.open {
    display       : flex;
    flex-direction: column;
    position      : absolute;
    top           : 100%;
    left          : 0;
    right         : 0;
    background    : #fff;
    border-bottom : 1px solid var(--line);
    padding       : 14px 24px 18px;
    gap           : 6px;
    box-shadow    : 0 18px 48px rgba(0,0,0,.1);
    z-index       : 99;
  }
  .nav.open .nav-link,
  .nav.open .nav-cta {
    justify-content: flex-start;
    width          : 100%;
  }

  .google-reviews-wrap { grid-template-columns: 1fr; }
  .google-list  { grid-template-columns: 1fr 1fr; }
  .gallery      { grid-template-columns: 1fr 1fr; }
  .contacts-grid { grid-template-columns: 1fr 1fr; }
  .hero-contacts { grid-template-columns: 1fr 1fr; }
  .footer-contacts-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  .container { width: calc(100% - 32px); }
  .section   { padding: 64px 0; }

  .site-logo { height: 72px; }
  .hero-grid { padding: 72px 0 64px; }

  .certifications      { flex-direction: column; }
  .gallery             { grid-template-columns: 1fr; }
  .contacts-grid       { grid-template-columns: 1fr; }
  .hero-contacts       { grid-template-columns: 1fr; }
  .footer-contacts-grid { grid-template-columns: 1fr; }
  .google-list         { grid-template-columns: 1fr; }
  .form-grid           { grid-template-columns: 1fr; }

  .form-card { padding: 28px 22px; }
  .footer-inner { flex-direction: column; text-align: center; gap: 6px; }
  .partners-logos { gap: 24px; }
}
