/* Homepage only. Keep the existing brand, wording, images and destinations. */
.page-home { --home-muted: #60686f; --home-line: #dfe2e4; }
.page-home :is(.stack-2,.stack-3,.stack-4,.stack-5,.stack-6) { box-shadow: none; }
.page-home .stack-1 { box-shadow: 0 -8px 28px rgba(48,45,45,.1); }
.page-home .section { padding-block: clamp(3.75rem, 6.5vw, 6rem); }
.page-home .section-heading { font-size: clamp(2.25rem, 3.5vw, 3.25rem); text-wrap: balance; }
.page-home .section-logo-bg::before { opacity: .025; }
.page-home :is(a,button,input,select):focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; }
.page-home :is(.home-journey,.cta-banner) :is(a,button,input,select):focus-visible { outline-color: var(--accent); }
.page-home :is(.btn-primary-wan,.btn-outline-blue) { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; text-align: center; letter-spacing: 1.5px; }
.page-home .dark-stat-label { color: #62686b; line-height: 1.6; }
.page-home .wan-quality-wrap { padding-block: clamp(3.5rem, 6vw, 5rem); }
.page-home .wan-quality-section .wan-q-body { color: #d3d2d1; font-size: .9rem; line-height: 1.85; }
.page-home .wan-quality-section .col-lg-6 > p { color: #c1bfbd !important; font-size: .875rem !important; }
.page-home .wan-pillar-desc { color: #c4c2bf; font-size: .72rem; }
.page-home .wan-pillar-text { color: #f3f2f1; }
.page-home .svc-row-header { padding-top: clamp(3.75rem, 6.5vw, 6rem); padding-bottom: 2.75rem; }
.page-home .svc-row-title { font-size: clamp(2.4rem, 4vw, 3.5rem); }
.page-home .svc-row { padding-block: 1.5rem; border-bottom-color: var(--home-line); }
.page-home .svc-row-name { font-size: 1.45rem; }
.page-home .svc-row-desc { max-width: 70ch; color: var(--home-muted); font-size: .875rem; line-height: 1.8; }
.page-home .svc-row-arrow { border-color: #c9d2d9; }
.page-home .svc-row-arrow svg { stroke: var(--primary); }
.page-home .svc-row-footer { padding-block: 2rem 4rem; }

/* Introduction at left, seven generous steps at right. */
.page-home .home-journey { background: var(--dark); padding-block: clamp(3.5rem, 6vw, 5.5rem); }
.home-journey-layout { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.65fr); gap: 2.5rem clamp(2rem, 6vw, 6rem); align-items: start; }
.home-journey-intro { padding-top: .65rem; }
.home-journey .eyebrow { color: var(--accent); }
.home-journey .section-heading { margin-bottom: 1.5rem; }
.home-journey-lead { color: #ceccca; font-size: .94rem; line-height: 1.85; margin: 0 0 2rem; max-width: 38ch; }
.home-journey-more { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 100%; padding: 1rem 0; color: var(--accent); background: transparent; border: 0; border-bottom: 1px solid #807243; font: 500 .82rem/1.5 var(--sans); text-align: left; cursor: pointer; transition: border-color .2s; }
.home-journey-more:hover { border-color: var(--accent); }
.home-journey-more svg { flex-shrink: 0; }
.home-journey-steps { list-style: none; padding: 0; margin: 0; }
.home-journey-step { display: grid; grid-template-columns: 2.75rem minmax(0, .85fr) minmax(0, 1.2fr); align-items: start; column-gap: 1.25rem; padding: 1.5rem 0; border-bottom: 1px solid rgba(255,255,255,.17); position: relative; }
.home-journey-step:first-child { padding-top: .5rem; }
.home-journey-step:last-child { border-bottom: 0; padding-bottom: 0; }
.home-journey-number { display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 1px solid #8b8061; border-radius: 50%; color: var(--accent); font: 500 .85rem var(--sans); }
.home-journey-step:last-child .home-journey-number { background: var(--accent); border-color: var(--accent); color: var(--dark); }
.home-journey-step h3 { font: 600 1.3rem/1.25 var(--serif); color: #fff; margin: .5rem 0 0; }
.home-journey-step p { font-size: .84rem; color: #ceccca; line-height: 1.8; margin: .25rem 0 0; }
.home-journey-action { grid-column: 2; padding-top: .5rem; }

/* Consistent photo proportions and permanently visible project captions. */
.page-home .home-projects { background: #f6f7f7; }
.home-projects-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2.5rem; }
.home-projects-heading .section-heading { margin: 0 0 1rem; }
.home-projects-heading > a { flex-shrink: 0; margin-bottom: .3rem; }
.home-projects-lead { color: var(--home-muted); font-size: .94rem; line-height: 1.8; max-width: 58ch; margin: 0; }
.hg-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.hg-cell { display: flex; flex-direction: column; min-width: 0; color: var(--dark); text-decoration: none; background: #fff; border: 1px solid var(--home-line); border-radius: 5px; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.hg-cell:hover { color: var(--dark); border-color: #94a9b7; box-shadow: 0 6px 18px rgba(48,45,45,.06); }
.hg-image { position: relative; overflow: hidden; aspect-ratio: 4/3; background: var(--light); }
.hg-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
@media (hover:hover) { .hg-cell:hover .hg-image img { transform: scale(1.025); } }
.hg-badge { position: absolute; top: 1rem; left: 1rem; background: var(--accent); color: var(--dark); padding: .35rem .65rem; border-radius: 2px; font: 600 .68rem/1.4 var(--sans); }
.hg-overlay { position: relative; padding: 1.3rem 1.4rem 1.5rem; }
.hg-name { color: var(--dark); font: 600 1.5rem/1.3 var(--serif); margin: 0 0 .55rem; }
.hg-meta { color: var(--home-muted); font-size: .78rem; line-height: 1.7; margin: 0; }
.hg-cell-all { background: var(--dark); border-color: var(--dark); justify-content: center; align-items: flex-start; padding: 2.5rem; min-height: 250px; }
.hg-cell-all:hover { background: #393636; border-color: #393636; }
.hg-cell-all-count { font: 500 clamp(4.5rem,7vw,6rem)/1 var(--serif); color: var(--accent); margin-bottom: .75rem; }
.hg-cell-all-label { font-size: 1rem; color: #fff; }
.hg-cell-all-arrow { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid #8b8061; border-radius: 50%; margin-top: 2rem; }

/* Supporting sections retain their content and interactions. */
.page-home .review-card { border-color: var(--home-line); padding: 1.65rem; border-radius: 5px; }
.page-home .review-card:hover { transform: none; box-shadow: 0 4px 16px rgba(48,45,45,.05); }
.page-home .review-date { color: #6d7378; }
.page-home .review-verified { font-size: .7rem; }
.page-home .reviews-count { color: var(--home-muted); }
.page-home .cta-banner { padding-block: clamp(3.75rem, 6.5vw, 6rem); }
.page-home .cta-banner .text-center > p { color: #d0cecc !important; font-size: .9rem !important; }
.page-home #ctaBannerForm { margin-top: 2rem; border: 1px solid #686563; background: #ffffff04; border-radius: 6px; padding: clamp(1.25rem,3vw,2.25rem); }
.page-home #ctaBannerForm .cm-label { color: #e1dfdc !important; font-size: .7rem; letter-spacing: .7px; margin-bottom: .5rem; }
.page-home #ctaBannerForm :is(.cm-input,.cm-select) { min-height: 48px; font-size: 16px; border-color: #878380 !important; }
.page-home #ctaBannerForm :is(.cm-input,.cm-select):focus { border-color: var(--accent) !important; }
.page-home #ctaBannerForm input::placeholder { color: #c1bebb; opacity: 1; }
.page-home #ctaBannerForm > div { margin-bottom: 1rem !important; }
.page-home #ctaBannerForm > div:last-child { margin-bottom: 0 !important; }
.page-home #ctaBannerSubmit { width: 100%; }
.page-home .consult-modal { max-height: calc(100dvh - 2rem); }
.page-home .consult-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.page-home .consult-close, .page-home .parcours-close { width: 44px; height: 44px; }
.page-home .consult-note { color: #666; }
.page-home .parcours-cta-note { color: #666; }
.page-home .parcours-modal { border-radius: 8px; }
.page-home .float-cta-btn::after { display: none; }
.page-home .float-cta.is-footer-visible { visibility: hidden; pointer-events: none; }
.page-home .float-cta:focus-within .float-cta-label { max-width: 200px; opacity: 1; padding: .7rem 1.1rem; }

@media (max-width: 1199px) {
  .home-journey-layout { grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr); gap: 2.5rem; }
  .home-journey-step { grid-template-columns: 2.75rem minmax(0,1fr); gap: 0 1rem; }
  .home-journey-number { grid-row: span 2; }
  .home-journey-step h3 { margin-top: .15rem; }
  .home-journey-step p { grid-column: 2; margin-top: .5rem; }
}
@media (max-width: 991px) {
  .home-journey-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .home-journey-intro { max-width: 580px; }
  .home-journey-lead { max-width: 55ch; margin-bottom: 1rem; }
  .home-journey-action { grid-column: 1; }
  .hg-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-projects-heading { align-items: start; flex-direction: column; gap: 1.5rem; }
  .page-home .wan-quality-wrap { --bs-gutter-y: 2rem; }
}
@media (max-width: 575px) {
  .page-home .container { padding-inline: 1.25rem; }
  .page-home .svc-row { grid-template-columns: 1.5rem minmax(0,1fr) 1.5rem; gap: .8rem; }
  .page-home .svc-row-name { font-size: 1.3rem; line-height: 1.3; }
  .page-home .svc-row-desc { display: block; -webkit-line-clamp: unset; overflow: visible; color: var(--home-muted); font-size: .85rem; }
  .page-home .svc-row-arrow { display: flex; width: 1.5rem; height: 1.5rem; border: 0; }
  .page-home .svc-row-footer { padding-bottom: 3.5rem; }
  .page-home .wan-pillar { flex-wrap: wrap; gap: .5rem .75rem; }
  .page-home .wan-pillar-text { flex: 1 1 80%; }
  .page-home .wan-pillar-desc { display: block; margin-left: 1.75rem; }
  .home-journey-layout { gap: 2rem; }
  .home-journey-step { padding-block: 1.35rem; }
  .home-journey-step h3 { font-size: 1.4rem; }
  .home-journey-step p { font-size: .85rem; }
  .home-journey-action .btn-primary-wan { width: 100%; padding-inline: .75rem; font-size: .66rem; letter-spacing: 1px; }
  .hg-grid { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .hg-image { aspect-ratio: 4/3; }
  .hg-overlay { padding: 1.2rem; }
  .hg-name { font-size: 1.6rem; }
  .hg-cell-all { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 1.5rem; min-height: 180px; }
  .hg-cell-all-count { font-size: 4rem; margin: 0 0 .4rem; }
  .hg-cell-all-label { grid-column: 1; font-size: .95rem; }
  .hg-cell-all-arrow { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
  .page-home #temoignages > .container > .row > .col { flex: 1 1 100%; border-left: 0 !important; padding-left: calc(var(--bs-gutter-x) * .5) !important; }
  .page-home .reviews-masonry { scrollbar-width: thin; scrollbar-color: #a1afba transparent; scroll-snap-type: x proximity; }
  .page-home .reviews-masonry .review-item { flex-basis: 92%; }
  .page-home .consult-modal { max-height: calc(100dvh - 1rem); }
  .page-home .float-cta { right: .75rem; bottom: .75rem; }
  .page-home .float-cta-btn { width: 44px; height: 44px; }
}
@media (max-width: 480px) {
  .page-home #ctaBannerForm > div[style*="grid-template-columns"] { grid-template-columns: minmax(0,1fr) !important; gap: 1rem !important; }
  .page-home #ctaBannerSubmit { padding-inline: .75rem !important; letter-spacing: 1px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .page-home :is(.hg-image img,.home-journey-more,.review-card) { transition: none; }
  .page-home .hg-cell:hover .hg-image img { transform: none; }
  .page-home .parcours-scroll-hint svg { animation: none; }
}
