/* Sols en résine — particuliers */

.part-hero__title,
.part-h2,
.part-h3,
.part-cta__title { font-weight: 600; }
.part-h2 { font-size: clamp(32px, 3.35vw, 48px); }
.part-h3 { font-size: clamp(22px, 1.95vw, 28px); }

/* En-têtes de section : titre large, intro étroite */
@media (min-width: 901px) {
  .part-head { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   Hero : texte à gauche, visuel à fond perdu à droite
   -------------------------------------------------------------------------- */
.part-hero {
  --edge: calc(max(0px, (100vw - var(--maxw)) / 2) + var(--gutter));
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 3.9vw, 56px);
  padding: clamp(28px, 2.5vw, 36px) 0 0 var(--edge);
  background: var(--cream);
}
.part-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 720px);
  gap: clamp(40px, 5.6vw, 80px);
  align-items: center;
}
@media (min-width: 1441px) {
  .part-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, calc(50vw)); }
}
.part-hero__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
  padding-bottom: 72px;
}
.part-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--noir);
}
.part-hero .lead { font-size: clamp(17px, 1.25vw, 18px); max-width: 500px; }
.part-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }
.part-hero__media { aspect-ratio: 720 / 640; border-radius: 0; }
.js .part-hero__media[data-reveal] { clip-path: inset(0 0 0 100%); }
.js .part-hero__media[data-reveal].is-revealed { clip-path: inset(0); transition: clip-path 1.4s var(--ease-out) 0.1s; }

@media (hover: hover) {
  .part-link-down:hover .icon { transform: translateY(3px); }
}

@media (max-width: 900px) {
  .part-hero { padding-left: 0; }
  .part-hero__crumb { padding-left: var(--gutter); }
  .part-hero__grid { grid-template-columns: 1fr; gap: 0; }
  .part-hero__text { padding: 0 var(--gutter) 48px; }
  .part-hero__media { aspect-ratio: 4 / 3; }
}

/* --------------------------------------------------------------------------
   01 · Situations
   -------------------------------------------------------------------------- */
.part-situations {
  display: grid;
  grid-template-columns: minmax(0, 1.58fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
.part-situation { display: flex; flex-direction: column; gap: 24px; }
.part-situation--offset { padding-top: 120px; }
.part-situation__body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 20px;
  align-items: baseline;
}
.part-num {
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--accent);
}
.part-situation:hover .part-h3 { color: var(--gold-ink); }
.part-h3 { transition: color 0.3s; }

.part-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  margin-top: 72px;
  padding: 48px;
  border-radius: 2px;
  background: var(--cream-2);
}
.part-panel__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.part-panel__item:first-child { padding-right: 48px; border-right: 1px solid var(--line); }
.part-panel__item:last-child { padding-left: 48px; }
.part-panel__title {
  font-family: var(--font-heading);
  font-size: clamp(22px, 1.8vw, 26px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.part-panel .text { font-size: 15px; }
.part-panel .link-arrow { margin-top: 4px; }

@media (max-width: 900px) {
  .part-situations { grid-template-columns: 1fr; gap: 56px; }
  .part-situation--offset { padding-top: 0; }
  .part-situation .media { aspect-ratio: 4 / 3; }
  .part-panel { grid-template-columns: 1fr; padding: 32px 24px; margin-top: 56px; }
  .part-panel__item:first-child { padding: 0 0 32px; border-right: 0; border-bottom: 1px solid var(--line); }
  .part-panel__item:last-child { padding: 32px 0 0; }
}

/* --------------------------------------------------------------------------
   02 · Avant de vous lancer
   -------------------------------------------------------------------------- */
.part-qa {
  display: grid;
  grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
  gap: clamp(48px, 6.7vw, 96px);
  align-items: start;
}
.part-qa__aside { display: flex; flex-direction: column; gap: 40px; }
@media (min-width: 1081px) {
  .part-qa__aside { position: sticky; top: calc(var(--header-h) + 32px); }
}
.part-qa__title { font-size: clamp(32px, 3.05vw, 44px); }
.part-answers { margin: 0; border-bottom: 1px solid var(--line); }
.part-answer {
  position: relative;
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 40px;
  padding-block: 32px;
  border-top: 1px solid var(--line);
}
.part-answer::before {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  width: 100%;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.8s var(--ease-out);
}
.part-answer__theme {
  padding-top: 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
}
.part-answer__body { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.part-answer__q {
  font-family: var(--font-heading);
  font-size: clamp(19px, 1.55vw, 22px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--white);
}
.part-answer .text { font-size: 15px; }
.part-answer__cta { padding-top: 12px; }
@media (hover: hover) {
  .part-answer:hover::before { transform: scaleX(1); }
}
@media (max-width: 1080px) {
  .part-qa { grid-template-columns: 1fr; }
  .part-qa__aside .media { max-width: 520px; }
}
@media (max-width: 640px) {
  .part-answer { grid-template-columns: 1fr; gap: 10px; padding-block: 26px; }
  .part-answer__theme { padding-top: 0; }
  .part-answer__cta .btn { white-space: normal; text-align: left; }
}

/* --------------------------------------------------------------------------
   03 · Finitions
   -------------------------------------------------------------------------- */
.part-finishes { padding-bottom: 96px; }
.part-finishes__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px 48px;
  margin-bottom: 64px;
}
.part-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  align-items: start;
}
.part-cards__offset { margin-top: 72px; }
.part-cards .card-link { gap: 20px; }
.part-cards .text { font-size: 15px; }
@media (max-width: 900px) {
  .part-cards { grid-template-columns: 1fr 1fr; gap: 40px 24px; }
  .part-cards__offset { margin-top: 0; }
  .part-cards .media { aspect-ratio: 4 / 3.4; }
}
@media (max-width: 600px) {
  .part-cards { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   04 · Démarche
   -------------------------------------------------------------------------- */
.part-demarche__head {
  padding-top: clamp(40px, 3.3vw, 48px);
  margin-bottom: 56px;
  border-top: 1px solid var(--line);
}
.part-demarche__title { font-size: clamp(28px, 2.8vw, 40px); }
.part-steps { gap: 40px; }
.part-steps .h4 { font-size: 20px; }
.part-steps .text-sm { font-size: 15px; }
@media (hover: hover) {
  .part-steps .step:hover .step__num { color: var(--noir); }
  .part-steps .step__num { transition: color 0.4s; }
}

@media (max-width: 720px) { .part-h2 br { display: none; } }
