/* Home, À propos and Services hub — page-specific styles */

/* ---------- Hero with side panel (home) ---------- */
.hero-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero-split .hero__content { max-width: 720px; }
.hero-split .hero__lede { margin-bottom: 0; }
.hero.has-aside .hero__inner { padding-bottom: clamp(120px, 14vw, 180px); }
.hero-aside {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--radius-panel);
  padding: clamp(28px, 3vw, 38px);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 22px 50px rgba(0,0,0,.22);
}
.hero-aside .card__icon { background: rgba(73,142,211,.2); color: #8fc0ee; margin-bottom: 20px; }
.hero-aside h2 { font-weight: 800; font-size: clamp(22px, 2vw, 28px); line-height: 1.15; margin: 0 0 12px; color: #fff; }
.hero-aside p { font-size: 17px; line-height: 1.6; margin: 0 0 26px; color: #fff; }
.hero-aside .btn { width: 100%; justify-content: center; }
@media (max-width: 960px) {
  .hero-split { grid-template-columns: 1fr; }
  .hero-aside { max-width: 520px; }
}

/* ---------- Service cards lifted over the hero (home) ---------- */
.svc-lift { padding-top: 0; }
.svc-lift .grid-4 { margin-top: clamp(-110px, -8vw, -70px); position: relative; z-index: 4; }
.svc-lift .card { box-shadow: 0 18px 40px rgba(21,42,63,.10); border-color: transparent; }
.card--link { position: relative; transition: box-shadow .18s ease, transform .18s ease; }
.card--link h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.card--link:hover { transform: translateY(-3px); box-shadow: 0 22px 46px rgba(21,42,63,.16); }
.card--link:hover h3 a { color: var(--blue); }
.card--link h3 a { transition: color .18s ease; }

/* ---------- Local expertise closing (home) ---------- */
.local-close { margin-top: 44px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; }
.local-close p { flex: 1 1 480px; margin: 0; font-size: var(--lede); line-height: 1.6; color: #fff; max-width: 760px; }
.card--glass h3 strong { font-weight: inherit; }
.card--glass p { line-height: 1.68; }

/* ---------- Partner logos (home) ---------- */
.partners { padding-block: clamp(44px, 5vw, 64px); }
.partners .logos { gap: 32px clamp(40px, 7vw, 96px); }
.partners .logos img { max-height: 56px; max-width: 220px; object-fit: contain; }

/* ---------- À propos ---------- */
.about-split { align-items: start; }
.about-split .split__media { position: sticky; top: calc(var(--header-h) + 24px); }
.about-split .split__media img { aspect-ratio: 4 / 5; max-height: 640px; object-position: 50% 40%; }
.about-split .h2 { font-size: clamp(28px, 3.2vw, 42px); }
.modern-head .h2 { margin-bottom: 20px; }
.modern-panel { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-panel); padding: clamp(26px, 3vw, 40px); }
.modern-panel .checklist { margin: 0; }
.modern-panel .checklist li { color: #fff; }
.modern-close { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; }
.modern-close p { flex: 1 1 520px; margin: 0; font-size: var(--lede); line-height: 1.6; color: #fff; max-width: 820px; }
@media (max-width: 860px) {
  .about-split .split__media { position: static; }
  .about-split .split__media img { aspect-ratio: 16 / 10; }
}

/* ---------- Services hub: flip cards ---------- */
.flip-card { padding: 30px 28px 28px; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.flip-card:hover { border-color: rgba(73,142,211,0.5); box-shadow: 0 16px 36px rgba(21,42,63,0.10); transform: translateY(-2px); }
.flip-card__back { padding-top: 20px; margin-top: 12px; border-top: 1px solid var(--border); }
.flip-card__back h3 { font-size: 17px; font-weight: 700; letter-spacing: .01em; color: var(--blue); margin-bottom: 8px; }
.flip-card .text-link { margin-top: 0; padding-top: 18px; align-self: end; justify-self: start; }
/* Align the front/back sections across cards of a row */
@supports (grid-template-rows: subgrid) {
  .flip-grid { grid-auto-rows: auto; }
  .flip-card { display: grid; grid-template-rows: subgrid; grid-row: span 5; row-gap: 0; }
  .flip-card .card__icon { justify-self: start; }
}

/* Services hub: contact block */
.contact-split .split__media img { aspect-ratio: 3 / 2; }
.contact-phone { display: flex; align-items: center; gap: 16px; margin: 4px 0 18px; }
.contact-phone .card__icon { margin: 0; width: 56px; height: 56px; background: rgba(73,142,211,.18); color: #8fc0ee; }
.contact-phone h3 { font-weight: 800; font-size: clamp(28px, 3vw, 40px); line-height: 1; color: #fff; margin: 0; letter-spacing: .01em; }
.contact-desc { font-size: var(--lede); line-height: 1.6; color: #fff; margin: 0 0 30px; }
.contact-desc p { margin: 0; }
