/* Styles des sections immo (page /immo et accueil) */
.pg-immo .immo-hero { min-height: 640px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; padding: 56px 64px; }
.pg-immo .immo-hero .copy { display: flex; flex-direction: column; gap: 24px; max-width: 700px; padding-top: 16px; }
.pg-immo .immo-hero h1, .pg-immo .immo-hero h2 { font-size: clamp(2.75rem, 5.3vw, 4.75rem); letter-spacing: -.04em; line-height: 1; }
.pg-immo .immo-hero .btns { display: flex; gap: 10px; flex-wrap: wrap; }
.pg-immo .immo-hero .btns .btn { height: 54px; padding: 0 28px; border-radius: 27px; }
.pg-immo .immo-hero .frame { width: 320px; height: 528px; padding: 0; align-self: start; }
.pg-immo .immo-hero .frame .vid { width: 270px; }
.pg-immo .vid .sweep, .pg-immo .vid .sheen { z-index: 1; }
.pg-immo .vid.playing .sweep, .pg-immo .vid.playing .sheen, .pg-immo .vid.playing .cap { display: none; }
.pg-immo .vid .cap { position: absolute; left: 12px; bottom: 12px; z-index: 1; font-family: var(--font-display); font-weight: 700; font-size: 0.9375rem; color: var(--white); text-shadow: 0 1px 12px rgba(0, 0, 0, .45); pointer-events: none; }
.pg-immo .stats .card-white .stat { font-size: 1.875rem; }
.pg-immo .price-block .big .accent, .pg-immo .opts .accent { font-variant-numeric: tabular-nums; }
.pg-immo .stats .card-white p { font-size: 0.875rem; color: var(--muted); }
.pg-immo .price-block { display: flex; flex-direction: column; gap: 12px; padding: 12px 8px; }
.pg-immo .price-block .big { font-size: clamp(2.5rem, 3.7vw, 3.25rem); line-height: 1; letter-spacing: -.03em; }
.pg-immo .offer .title { font-family: var(--font-display); font-weight: 700; letter-spacing: -.03em; font-size: 1.875rem; line-height: 1.1; }
.pg-immo .offer .sub { font-size: 0.875rem; line-height: 1.6; }
.pg-immo .offer .cta { margin-top: auto; height: 50px; font-size: 0.875rem; }
.pg-immo .offer.card { gap: 12px; }
.pg-immo .offer .sub { margin-bottom: 8px; }
.pg-immo .link-pill { min-height: 44px; padding: 0 16px; border-radius: 22px; }
.pg-immo .link-pill:focus-visible, .pg-immo .ex-grid figcaption a:focus-visible, .pg-immo .opts a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 6px; }
.pg-immo .card-dark .mono { color: var(--slate); }
.pg-immo .ex-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; padding: 0 8px; }
.pg-immo .ex-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pg-immo .ex-grid figure { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.pg-immo .ex-grid figcaption { display: flex; justify-content: space-between; gap: 12px; font-size: 0.875rem; padding: 0 6px; }
.pg-immo .ex-grid figcaption .mono { font-size: 0.625rem; text-align: right; }
.pg-immo .ex-grid figcaption a { display: inline-flex; align-items: center; min-height: 44px; margin: -13px 0; text-underline-offset: 3px; transition: color .2s; }
.pg-immo .ex-grid figcaption a:hover, .pg-immo .opts a:hover { color: var(--blue); }
.pg-immo .opts a { color: var(--ink); text-underline-offset: 3px; white-space: nowrap; transition: color .2s; }
.pg-immo .opts { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.pg-immo .opts .card-white h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.375rem; letter-spacing: -.02em; line-height: 1.15; }
.pg-immo .opts .card-white p { font-size: 0.875rem; color: var(--muted); }
.pg-immo .cta-bar .q { font-size: 1rem; }
.pg-immo .cta-bar .btn { height: 56px; }
@media (max-width: 1100px) {
  .pg-immo .immo-hero { padding: 48px 40px; }
  .pg-immo .opts { grid-template-columns: 1fr 1fr; }
  .pg-immo .opts .intro { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .pg-immo .immo-hero { grid-template-columns: minmax(0, 1fr); padding: 28px 22px 22px; gap: 28px; min-height: 0; }
  .pg-immo .immo-hero .copy { padding-top: 0; gap: 18px; }
  .pg-immo .immo-hero h1, .pg-immo .immo-hero h2 { font-size: 2.625rem; }
  .pg-immo .immo-hero .btns { flex-direction: column; }
  .pg-immo .immo-hero .btns .btn { width: 100%; }
  .pg-immo .immo-hero .frame { width: 100%; max-width: 320px; height: auto; padding: 22px; justify-self: center; }
  .pg-immo .immo-hero .frame .vid { width: 100%; }
  .pg-immo .stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; }
  .pg-immo .stats .card-white { padding: 18px; border-radius: 22px; }
  .pg-immo .stats .card-white .stat { font-size: 1.625rem; }
  .pg-immo .stats .card-white p { font-size: 0.8125rem; }
  .pg-immo .formulas.grid-3 { gap: 12px; }
  .pg-immo .offer.card { padding: 24px; border-radius: 26px; }
  .pg-immo .offer .title { font-size: 1.625rem; }
  .pg-immo .ex-grid { grid-template-columns: repeat(3, minmax(220px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 12px; overscroll-behavior-x: contain; scrollbar-width: none; padding-bottom: 8px; margin: 0 -12px; padding-left: 12px; padding-right: 12px; gap: 12px; }
  .pg-immo .ex-grid::-webkit-scrollbar { display: none; }
  .pg-immo .ex-grid figure { scroll-snap-align: start; }
  .pg-immo .ex-grid figcaption { flex-direction: column; gap: 2px; padding: 0 4px; }
  .pg-immo .ex-grid figcaption .mono { text-align: left; }
  .pg-immo .ex-grid figcaption a { margin: -12px 0 -10px; }
  .pg-immo .opts { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

/* Alignement au pixel avec la carte noire voisine : la carte contour compense son bord de 2,5 px dans son padding */
.pg-immo .offer.card-outline { padding: 27.5px; }
@media (max-width: 860px) { .pg-immo .offer.card-outline { padding: 21.5px; } }
