/* ==========================================================================
   ExpertChantier — site stylesheet
   Recreated from the ExpertChantier design system (exact token values).
   ========================================================================== */

/* ---- Fonts ---------------------------------------------------------------- */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/manrope-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("assets/fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---- Tokens --------------------------------------------------------------- */
:root {
  --color-white: #ffffff;
  --color-black: #0d151d;
  --color-gray-1: #515355;
  --color-gray-2: #eaeef3;
  --color-gray-3: #f6faff;
  --color-primary-1: #ebb017;
  --color-secondary-1: #eebc3a;
  --color-success: #03cd69;
  --color-error: #b10000;

  --font-family-body: "Manrope", sans-serif;
  --font-weight-body: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  --radius: 20px;
  --radius-sm: 10px;
  --radius-lg: 30px;
  --radius-button: 50px;
  --radius-notch-bl: 20px 20px 20px 0;   /* service cards, image tabs */
  --radius-notch-tl: 0 20px 20px 20px;    /* value / contact cards */

  --container-max: 1540px;
  --container-medium: 1200px;
  --container-pad: 30px;

  --transition: 0.3s ease-in-out;

  --text-price: 46px;
}

/* ---- Reset / base --------------------------------------------------------- */
* { box-sizing: border-box; }

html, body { margin: 0; overflow-x: clip; }

body {
  background-color: var(--color-white);
  font-family: var(--font-family-body);
  color: var(--color-gray-1);
  font-size: 18px;
  font-weight: var(--font-weight-body);
  line-height: 1.5;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-family-body);
  color: var(--color-black);
  margin: 0 0 10px;
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  text-wrap: balance;
}
h2 { line-height: 1.2; }

p { margin: 0 0 10px; }
ul, ol { margin: 0 0 10px; padding-left: 20px; }

a { color: var(--color-gray-1); text-decoration: none; }

img { max-width: 100%; }

strong { font-weight: var(--font-weight-bold); }

/* Page shell: capped at 1720px, white margins beyond. */
.screen {
  max-width: 1720px;
  margin: 0 auto;
  background: var(--color-white);
}

.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}
.container--medium { max-width: var(--container-medium); }

.section { padding-top: clamp(64px, 9vw, 120px); }
.section--pb { padding-bottom: clamp(64px, 9vw, 120px); }

.section-head {
  text-align: center;
  margin: 0 auto 50px;
}
.section-head h2 {
  margin: 0 0 20px;
  font-size: clamp(30px, 4.2vw, 48px);
}
.section-head p { margin: 0; }
.section-head--w720 { max-width: 720px; }
.section-head--w760 { max-width: 760px; }
.section-head--w860 { max-width: 860px; }
@media (min-width: 641px) { .nowrap { white-space: nowrap; } }

/* ---- Navbar --------------------------------------------------------------- */
.nav {
  background: var(--color-white);
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid var(--color-gray-2);
}
.nav__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 10px var(--container-pad);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 2vw, 30px);
}
.nav__logo {
  flex: none;
  display: flex;
  position: relative;
  padding-right: 14px;
}
.nav__logo img.logo { height: 24px; display: block; }
.nav__logo img.flag {
  height: 12px; width: 12px; display: block;
  border-radius: 2px; position: absolute; top: -6px; right: 0;
}
.nav__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(14px, 2.2vw, 38px);
}
.nav__links a {
  color: var(--color-black);
  font-weight: 600;
  text-decoration: none;
}
.nav__links a:hover,
.nav__links a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}
.nav__burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 10px;
  background: none;
  border: none;
  cursor: pointer;
}
.nav__burger span {
  display: block;
  height: 2px;
  width: 24px;
  background: var(--color-black);
  border-radius: 2px;
  transition: transform var(--transition), opacity var(--transition);
}
@media (max-width: 860px) {
  .nav__burger { display: flex; }
  .nav__links { display: none; }
  .nav__inner > .btn { display: none; }
  .nav--open .nav__links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    flex-basis: 100%;
    order: 3;
    padding: 10px 0 4px;
    border-top: 1px solid var(--color-gray-2);
    margin-top: 10px;
  }
  .nav--open .nav__links a { display: block; width: 100%; padding: 10px 0; }
  .nav--open .nav__inner > .btn {
    display: block;
    order: 4;
    flex-basis: 100%;
    margin: 8px 0 6px;
  }
  .nav--open .nav__burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav--open .nav__burger span:nth-child(2) { opacity: 0; }
  .nav--open .nav__burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* ---- Buttons -------------------------------------------------------------- */
.btn {
  display: inline-block;
  box-sizing: border-box;
  border: 1px solid var(--color-primary-1);
  border-radius: var(--radius-button);
  font-family: var(--font-family-body);
  text-align: center;
  padding: 12px 30px;
  font-size: 18px;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition: all var(--transition);
  background: var(--color-primary-1);
  color: var(--color-black);
  font-weight: 700;
}
.btn--white {
  background: var(--color-white);
  border-color: var(--color-white);
  color: var(--color-black);
  font-weight: 600;
}
.btn--full { width: 100%; }
/* Final hover for all pill buttons: slate gray, white text. */
.btn:hover, .btn:active {
  background: var(--color-gray-1);
  border-color: var(--color-gray-1);
  color: var(--color-white);
}

/* "Parler à un conseiller" phone pill */
.btn-conseiller {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 34px;
  border-radius: 100px;
  background: var(--color-black);
  color: var(--color-white);
  font-weight: 700;
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
}
.btn-conseiller:hover, .btn-conseiller:active {
  background: var(--color-gray-1);
  color: var(--color-white);
}

.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  align-items: center;
  justify-content: center;
}
.cta-row--left { justify-content: flex-start; }

/* ---- Hero ----------------------------------------------------------------- */
.hero {
  border-radius: var(--radius);
  background: var(--color-gray-2);
  margin: 0 15px;
  padding-top: clamp(48px, 7vw, 90px);
  padding-bottom: clamp(110px, 14vw, 170px);
  position: relative;
}
.hero--flat { padding-bottom: clamp(48px, 7vw, 90px); }
.hero__wrap { display: flex; justify-content: center; }
.hero__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
  text-align: center;
  max-width: 900px;
}
.hero__inner h1 { margin: 0; font-size: clamp(30px, 4.2vw, 48px); }
.hero__inner p { color: var(--color-gray-1); margin: 0; }
.hero--home .hero__inner { max-width: none; width: 90%; }
.hero--home .hero__inner h1 { font-size: clamp(38px, 6.5vw, 68px); }
.hero--home .hero__inner p { max-width: min(100%, 660px); margin: 0 auto; }

.badge {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 50px;
  border: 1px solid var(--color-black);
  background: transparent;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-black);
}

/* ---- Stats band ----------------------------------------------------------- */
.stats {
  position: relative;
  z-index: 2;
  margin-top: clamp(-90px, -9vw, -60px);
}
.stats__inner { margin: 0 clamp(30px, 5vw, 75px); }
.stats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px 30px;
  background: var(--color-black);
  border-radius: var(--radius);
  padding: clamp(28px, 3.5vw, 44px) clamp(24px, 3vw, 40px);
}
.stat { border-left: 2px solid var(--color-primary-1); padding-left: 24px; }
.stat h2 { font-size: 30px; margin: 0 0 4px; color: var(--color-primary-1); }
.stat p { margin: 0; color: var(--color-white); font-size: 16px; }

/* ---- Card grids ----------------------------------------------------------- */
.grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px;
  align-items: stretch;
}
.grid-cards--wide {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
}

/* ---- Cutout tab (signature notch) ---------------------------------------- */
.cutout {
  z-index: 2;
  position: relative;
  display: inline-block;
  align-self: flex-start;
  background: var(--color-white);
}
.cutout__curve { width: 26px; height: 26px; position: absolute; }
/* top-left variant (value cards) */
.cutout--tl {
  border-radius: 0 0 var(--radius-lg) 0;
  margin: -20px 0 30px -20px;
  padding: 0 10px 10px 0;
}
.cutout--tl .cutout__curve.a { top: -1px; right: -25px; }
.cutout--tl .cutout__curve.b { left: -1px; bottom: -25px; }
/* bottom-left variant (service cards) */
.cutout--bl {
  border-radius: 0 var(--radius-lg) 0 0;
  margin: 0 0 -30px -30px;
  padding: 10px 10px 0 0;
}
.cutout--bl .cutout__curve.a { top: -25px; left: -1px; transform: rotate(-90deg); }
.cutout--bl .cutout__curve.b { right: -25px; bottom: -1px; transform: rotate(-90deg); }

.icon-circle {
  border-radius: 50%;
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.icon-circle img { width: 28px; height: 28px; }

/* ---- Value card ----------------------------------------------------------- */
.value-card {
  border-radius: var(--radius-notch-tl);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px;
  position: relative;
  overflow: hidden;
}
.value-card h2 { font-size: 24px; margin: 0 0 10px; }
.value-card__body { }
.value-card--gray { background: var(--color-gray-2); color: var(--color-black); }
.value-card--gray .icon-circle { background: var(--color-gray-2); }
.value-card--gold { background: var(--color-primary-1); color: var(--color-black); }
.value-card--gold .icon-circle { background: var(--color-primary-1); }
.value-card--black { background: var(--color-black); }
.value-card--black h2 { color: var(--color-white); }
.value-card--black .icon-circle { background: var(--color-black); }
.value-card--black .value-card__body { color: var(--color-gray-2); opacity: .7; }

/* ---- Service card --------------------------------------------------------- */
.service-card {
  border-radius: var(--radius-notch-bl);
  background: var(--color-gray-2);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: 30px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  min-height: 340px;
  color: var(--color-black);
}
.service-card__icon { margin-bottom: 30px; width: 40px; height: 40px; }
.service-card__icon img { width: 40px; height: 40px; }
.service-card h3 { font-size: 22px; font-weight: 700; line-height: 1.2; margin: 0 0 10px; }
.service-card p { color: var(--color-gray-1); margin: 30px 0 60px; }
.service-card .icon-circle { background: var(--color-gray-2); }
.service-card .arrow-yellow { position: absolute; margin: auto; inset: 0; opacity: 0; transition: opacity var(--transition); }
.service-card .arrow-dark { opacity: 1; transition: opacity var(--transition); }
.service-card .icon-circle img { width: 22px; height: 16px; }
/* hover: card turns gold */
.service-card:hover, .service-card:active { background: var(--color-primary-1); }
.service-card:hover p, .service-card:active p { color: var(--color-black); }
.service-card:hover .cutout--bl, .service-card:active .cutout--bl { background: var(--color-white); }
.service-card:hover .icon-circle, .service-card:active .icon-circle { background: var(--color-white); }
.service-card:hover .arrow-dark, .service-card:active .arrow-dark { opacity: 0; }
.service-card:hover .arrow-yellow, .service-card:active .arrow-yellow { opacity: 1; }

/* ---- Pricing card --------------------------------------------------------- */
.price-card {
  border-radius: var(--radius);
  background: var(--color-gray-3);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 30px;
  padding: 30px;
}
.price-card h2 { font-size: 24px; font-weight: 700; margin: 0 0 20px; }
.price-card__price { font-size: var(--text-price); line-height: 1; margin: 0; }
.price-card__price .cur { font-size: 18px; font-weight: 500; line-height: 1.2; display: inline-block; }
.price-card__mid { flex: 1; }
.price-card__tagline { font-size: 22px; line-height: 1.3; margin: 0 0 10px; }
.price-card ul { color: var(--color-gray-1); margin: 0 0 16px; padding-left: 20px; }
.price-card ul li { margin-bottom: 6px; }
.price-card__note { font-size: 18px; font-weight: 700; margin: 0; }
.price-card--featured { background: var(--color-black); color: var(--color-white); }
.price-card--featured h2,
.price-card--featured .price-card__price,
.price-card--featured .price-card__tagline,
.price-card--featured .price-card__note { color: var(--color-white); }
.price-card--featured ul { color: var(--color-gray-2); }
/* CECB small labels */
.price-card__price .sublabel { font-size: 18px; font-weight: 500; display: inline-block; }
.price-card__subprice { font-size: 14px; font-weight: 500; margin: -12px 0 12px; color: var(--color-gray-2); }
.price-card--featured .price-card__note.asterisk {
  font-size: 13px; font-weight: 500; font-style: italic; color: var(--color-gray-2);
}

/* ---- Dark panel (approche / rentable) ------------------------------------ */
.panel-dark {
  border-radius: var(--radius);
  background: var(--color-black);
  padding: clamp(40px, 6vw, 70px);
  text-align: center;
}
.panel-dark h2 { margin: 0 0 20px; font-size: clamp(30px, 4.2vw, 48px); color: var(--color-white); }
.panel-dark p { margin: 0 auto; max-width: 860px; color: var(--color-white); }
.panel-dark p.mb { margin: 0 auto 30px; }
.panel-dark strong { color: var(--color-primary-1); }

/* ---- Two-column feature block (déroulé / relevons) ----------------------- */
.split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 50px;
  align-items: stretch;
}
.split__media {
  border-radius: var(--radius);
  position: relative;
  overflow: hidden;
  min-height: clamp(300px, 45vw, 480px);
}
.split__media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.split__text {
  display: flex;
  flex-direction: column;
  gap: 40px;
  justify-content: center;
}
.split__text h2 { margin: 0 0 20px; font-size: clamp(30px, 4.2vw, 48px); }
.split__text > div > p { margin: 0; }
.steps { display: flex; flex-direction: column; gap: 16px; }
.step { display: flex; gap: 14px; align-items: flex-start; }
.step__num {
  flex: none; width: 32px; height: 32px; border-radius: 50%;
  background: var(--color-primary-1); color: var(--color-black); font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.bullet { display: flex; gap: 6px; align-items: flex-start; }
.bullet img { margin-top: 7px; width: 22px; height: 16px; flex: none; }

/* ---- Team ----------------------------------------------------------------- */
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 30px;
  max-width: 1160px;
  margin: 0 auto;
}
.team-photo {
  border-radius: var(--radius);
  height: 300px;
  overflow: hidden;
  background: var(--color-gray-2);
  position: relative;
}
.team-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.team-name {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; margin: 0 0 6px;
}
.team-name h3 { font-size: 22px; margin: 0; }
.team-name a { display: flex; opacity: 1; transition: opacity var(--transition); }
.team-name a:hover { opacity: .6; }
.team-name a img { width: 20px; height: 20px; display: block; }
.team-role { color: var(--color-gray-1); }
.team-card-text { text-align: center; padding-top: 14px; }

/* ---- FAQ / Accordion ------------------------------------------------------ */
.faq {
  background: var(--color-gray-3);
  padding: clamp(64px, 9vw, 120px) 0;
  margin-top: clamp(64px, 9vw, 120px);
}
.faq__row { display: flex; flex-wrap: wrap; gap: 40px 70px; }
.faq__row > h2 { margin: 0; flex: 1 1 160px; font-size: clamp(30px, 4.2vw, 48px); }
.accordion { flex: 999 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 30px; align-items: flex-start; }
.acc-item { display: flex; flex-direction: column; width: 100%; }
.acc-head {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
}
.acc-head h3 { margin: 0; font-size: 22px; color: var(--color-black); transition: color var(--transition); }
.acc-toggle {
  background: var(--color-black);
  border-radius: 50%;
  flex: none;
  width: 24px; height: 24px;
  display: flex; justify-content: center; align-items: center;
  transition: background-color var(--transition);
  margin-top: 3px;
}
.acc-toggle .bar { width: 14px; height: 14px; position: relative; display: flex; align-items: center; }
.acc-toggle .bar::before,
.acc-toggle .bar::after {
  content: ""; background: var(--color-white); width: 100%; height: 2px; position: absolute;
}
.acc-toggle .bar::after { transform: rotate(90deg); transition: transform var(--transition); }
.acc-body { overflow: hidden; max-height: 0; transition: max-height var(--transition); }
.acc-body__inner { padding-top: 20px; }
.acc-divider { background: var(--color-black); opacity: .1; width: 100%; height: 2px; margin-top: 30px; }
.acc-item.open .acc-head h3 { color: var(--color-primary-1); }
.acc-item.open .acc-toggle { background: var(--color-primary-1); }
.acc-item.open .acc-toggle .bar::after { transform: none; }
.acc-body__inner p { margin: 0; }
.acc-body__inner ul { margin: 10px 0 0; }

/* ---- Devis form ----------------------------------------------------------- */
.devis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 30px;
  align-items: stretch;
}
.devis__media { border-radius: var(--radius); overflow: hidden; }
.devis__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.devis__panel { border-radius: var(--radius); background: var(--color-gray-3); padding: 30px; }
.devis__panel h2 { margin: 0; font-size: clamp(30px, 4.2vw, 48px); }
.devis__panel > p { margin: 20px 0; }

.field { width: 100%; margin-bottom: 20px; }
.field > label { display: block; color: var(--color-black); margin-bottom: 5px; font-weight: 500; }
.field-row { display: flex; flex-wrap: wrap; gap: 30px; }
.field-row .field { flex: 1 1 220px; }

.input, .select, .textarea {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid var(--color-gray-2);
  border-radius: var(--radius);
  background: var(--color-gray-2);
  color: var(--color-black);
  height: 48px;
  padding: 10px 20px;
  font-family: var(--font-family-body);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  outline: none;
  transition: border-color var(--transition);
}
.input:focus, .select:focus, .textarea:focus { border-color: var(--color-primary-1); }
.select { line-height: 1.3; appearance: auto; }
.select:required:invalid, .select.placeholder { color: var(--color-gray-1); }
.textarea { height: 212px; resize: vertical; padding-top: 12px; line-height: 1.6; }

.form-message {
  border-radius: var(--radius);
  color: var(--color-white);
  text-align: center;
  background: var(--color-success);
  padding: 15px;
}
.is-hidden { display: none !important; }

/* ---- Calculateur CECB ----------------------------------------------------- */
.calc {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
  gap: 30px;
  align-items: stretch;
}
.calc__pitch {
  background: var(--color-black);
  border-radius: var(--radius);
  padding: clamp(28px, 4vw, 50px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
}
.calc__pitch h2 { margin: 0; color: var(--color-white); font-size: clamp(26px, 3vw, 40px); }
.calc__pitch p { margin: 0; color: var(--color-gray-2); }
.calc__args { display: flex; flex-direction: column; gap: 14px; }
.calc__arg { display: flex; gap: 10px; align-items: flex-start; }
.calc__arg img { margin-top: 6px; width: 22px; height: 16px; flex: none; }
.calc__arg div { color: var(--color-white); }
.calc__card {
  background: var(--color-gray-3);
  border-radius: 20px 20px 20px 0;
  padding: clamp(24px, 4vw, 44px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.calc__topbar {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; margin-bottom: 12px;
}
.calc__step-label {
  font-weight: 700; font-size: 13px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--color-gray-1);
}
.calc__back {
  background: none; border: none; font-family: inherit; font-size: 15px; font-weight: 600;
  color: var(--color-gray-1); cursor: pointer; text-decoration: underline;
  text-underline-offset: 4px; padding: 0;
}
.calc__segments { display: flex; gap: 6px; margin-bottom: 28px; }
.calc__segments .seg {
  height: 6px; border-radius: 3px; flex: 1 1 0;
  transition: background var(--transition); background: var(--color-gray-2);
}
.calc__segments .seg.on { background: var(--color-primary-1); }
.calc__card h3 { font-size: clamp(20px, 2.6vw, 26px); margin: 0 0 8px; }
.calc__help { margin: 0 0 22px; color: var(--color-gray-1); font-size: 16px; }
.calc__select, .calc__number {
  padding: 14px 18px; border-radius: 14px; border: 1px solid var(--color-gray-2);
  background: var(--color-white); font-family: inherit; font-size: 16px; font-weight: 600;
  color: var(--color-black); box-sizing: border-box;
}
.calc__select { width: 100%; max-width: 420px; cursor: pointer; }
.calc__number { width: 100%; max-width: 260px; }
.calc__choices {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px;
}
.calc__opt {
  padding: 14px 18px; border-radius: 14px; border: 1px solid var(--color-gray-2);
  background: var(--color-white); font-family: inherit; font-size: 16px; font-weight: 600;
  color: var(--color-black); cursor: pointer; text-align: left; transition: all var(--transition);
}
.calc__opt.active { border-color: var(--color-primary-1); background: var(--color-primary-1); }
.calc__continue-wrap { margin-top: 24px; }
.calc__continue {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 34px; border-radius: 100px; border: none;
  background: var(--color-primary-1); color: var(--color-black);
  font-family: inherit; font-size: 17px; font-weight: 700; cursor: pointer;
  transition: all var(--transition);
}
.calc__continue:hover { background: var(--color-black); color: var(--color-white); }
.calc__result h3 { font-size: clamp(22px, 3vw, 30px); margin: 0 0 20px; }
.calc__blocks { display: grid; gap: 16px; }
.calc__b1 { background: var(--color-primary-1); border-radius: 20px 20px 20px 0; padding: 22px 24px; }
.calc__b1 .lbl { font-weight: 700; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 6px; }
.calc__b1 .val { font-size: clamp(18px, 2.6vw, 26px); font-weight: 700; line-height: 1.25; }
.calc__b2 { background: var(--color-black); border-radius: 0 20px 20px 20px; padding: 22px 24px; }
.calc__b2 .lbl { font-weight: 700; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 6px; color: var(--color-primary-1); }
.calc__b2 .val { font-size: clamp(18px, 2.6vw, 26px); font-weight: 700; line-height: 1.25; color: var(--color-white); }
.calc__b-note { background: var(--color-white); border-radius: 20px; padding: 18px 24px; font-weight: 600; }
.calc__b3 { background: var(--color-white); border-radius: 20px; padding: 18px 24px; }
.calc__alert { border: 1px solid var(--color-error); color: var(--color-error); border-radius: 20px; padding: 16px 24px; background: var(--color-white); font-weight: 600; }
.calc__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 26px; align-items: center; }
.calc__restart {
  background: none; border: none; font-family: inherit; font-size: 15px; font-weight: 600;
  color: var(--color-gray-1); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; padding: 0;
}
.calc__legal { margin: 22px 0 0; font-size: 12.5px; color: var(--color-gray-1); line-height: 1.55; }

/* ---- Footer --------------------------------------------------------------- */
.footer { padding-top: 130px; padding-bottom: 50px; }
.footer__panel {
  border-radius: var(--radius);
  background: var(--color-black);
  margin: 0 30px;
  position: relative;
}
.footer__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}
.footer__cta {
  border-radius: var(--radius);
  background: var(--color-white);
  margin: -130px 30px 0;
  padding: 0 20px 20px;
  position: relative;
}
.footer__cta .curve { width: 20px; height: 20px; position: absolute; top: 130px; }
.footer__cta .curve.left { left: -20px; transform: rotate(90deg); }
.footer__cta .curve.right { right: -20px; }
.footer__cta-card {
  border-radius: var(--radius);
  background: var(--color-gray-2);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  padding: 40px;
}
.footer__cta-card h2 { font-size: 42px; margin: 0; }
.footer__cta-right {
  display: flex; flex-direction: column; gap: 20px;
  justify-content: space-between; align-items: flex-end; text-align: right;
}
.footer__cta-right p { margin: 0; white-space: pre-line; }
.footer__grid {
  display: grid;
  grid-template-columns: 1fr 1.25fr 1fr;
  gap: 50px;
  margin: 80px 0;
}
.footer__brand img { height: 40px; display: block; margin-bottom: 40px; }
.footer__brand p { color: var(--color-white); font-size: 18px; margin-bottom: 0; }
.footer__news { margin-top: 30px; position: relative; }
.footer__news input {
  box-sizing: border-box; width: 100%;
  border: 1px solid var(--color-white); border-radius: var(--radius-button);
  background: var(--color-white); color: var(--color-black);
  height: 52px; padding: 10px 60px 10px 20px;
  font-family: var(--font-family-body); font-size: 16px; line-height: 1.6; outline: none;
}
.footer__news button {
  position: absolute; top: 5px; right: 10px; bottom: 5px; width: 40px;
  border: none; cursor: pointer; background: transparent; padding: 0;
  display: flex; align-items: center; justify-content: center;
}
.footer__news .sent {
  border-radius: var(--radius); color: var(--color-white); text-align: center;
  background: var(--color-success); padding: 15px;
}
.footer__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.footer__col { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.footer__col a { color: var(--color-white); font-size: 18px; font-weight: 500; text-decoration: none; transition: color var(--transition); }
.footer__col a:hover { color: var(--color-primary-1); }
.footer__meta { display: flex; flex-direction: column; gap: 30px; justify-content: space-between; }
.footer__contacts { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.footer__contact { display: flex; gap: 10px; color: var(--color-white); align-items: flex-start; }
.footer__contact img { width: 24px; height: 24px; margin-top: 4px; }
.footer__contact a { color: var(--color-white); font-size: 18px; text-decoration: none; }
.footer__contact span { font-size: 18px; color: var(--color-white); }
.footer__social { display: flex; gap: 15px; }
.footer__social a {
  background: var(--color-white); border-radius: 50%;
  width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
  transition: background-color var(--transition);
}
.footer__social a:hover { background: var(--color-primary-1); }
.footer__social img { width: 20px; height: 20px; }
.footer__copy-row { display: flex; justify-content: center; align-items: flex-start; }
.footer__copy {
  background: var(--color-white);
  display: flex; justify-content: center; align-items: flex-start;
  margin: 0 42px; padding: 20px 30px 0; position: relative;
}
.footer__copy p { color: var(--color-black); margin: 0; font-weight: 700; }
.footer__copy .flare { height: 100%; position: absolute; top: 0; }
.footer__copy .flare.l { left: -42px; transform: rotateY(180deg) rotateZ(180deg); }
.footer__copy .flare.r { right: -42px; transform: rotateX(180deg) rotateY(180deg); }

/* ---- Responsive ----------------------------------------------------------- */
@media (max-width: 900px) {
  .footer__cta-card { grid-template-columns: 1fr; }
  .footer__cta-right { align-items: flex-start; text-align: left; }
  .footer__grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 640px) {
  h1, h2, h3 { white-space: normal !important; }
  .footer__panel { margin: 0 15px; }
  .footer__cta { margin: -130px 15px 0; }
  .footer__cols { grid-template-columns: 1fr; }
  .footer__copy { margin: 0 20px; text-align: center; }
}
