/*
Theme Name: Névéa Terrebonne
Theme URI: https://dev.neveaterrebonne.ca/
Author: Groupe GDI
Description: Thème WordPress original et indépendant pour Névéa Terrebonne, en français et anglais.
Version: 6.07.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: nevea-terrebonne
*/
:root{--ink:#29352f;--charcoal:#292e2a;--forest:#244d3e;--green:#47735f;--sage:#e3ebe3;--cream:#f7f4ed;--ivory:#fffdf8;--line:#dddcd4;--muted:#69766e;--accent:#d5e8c9;--header-h:84px;--wrap:1320px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Aptos','Segoe UI','Helvetica Neue',Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2{font-weight:350;letter-spacing:-.045em;line-height:1.14}h2{font-size:clamp(2.6rem,4.45vw,5.05rem)}p{line-height:1.72}.wrap{width:min(var(--wrap),calc(100% - 96px));margin-inline:auto}.narrow{max-width:820px!important}.section-pad{padding:clamp(80px,9vw,145px) 0}.eyebrow{display:inline-block;color:var(--green);font-size:.71rem;line-height:1.6;text-transform:uppercase;letter-spacing:.21em;font-weight:700;margin-bottom:25px}.skip-link{position:fixed;z-index:1000;top:-80px;left:12px;background:white;padding:10px 22px;color:var(--forest)}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:100;background:var(--charcoal);color:#f8f7f0;min-height:var(--header-h);box-shadow:0 2px 16px #00000012}.nav-wrap{min-height:var(--header-h);width:min(1500px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:minmax(178px,1fr) auto minmax(190px,1fr);align-items:center;gap:clamp(20px,3vw,65px)}.brand{display:flex;align-items:center;width:170px}.brand img{width:170px;height:auto;max-height:70px;object-fit:contain}.desktop-nav{display:flex;align-items:center;gap:clamp(16px,1.35vw,30px);white-space:nowrap}.desktop-nav a{font-size:.77rem;opacity:.83;letter-spacing:.01em;position:relative;padding:11px 0;transition:opacity .2s}.desktop-nav a:hover,.desktop-nav a:focus-visible,.desktop-nav a.current{opacity:1}.desktop-nav a.current::after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:#c8ddca}.nav-right{display:flex;align-items:center;gap:16px;justify-content:flex-end}.nav-contact{background:var(--accent);color:#27382f;padding:11px 20px;border-radius:28px;font-weight:650;font-size:.77rem;transition:transform .2s,background .2s}.nav-contact:hover{background:#e9f4df;transform:translateY(-1px)}.lang-switch{font-size:.74rem;padding:9px 0;letter-spacing:.1em}.lang-switch span{margin-left:6px;font-size:.65rem;color:#c5d8c6}.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;border:0;background:none;width:42px;height:42px}.menu-toggle span{height:1px;background:white;width:22px;display:block}.mobile-nav{display:none}
.btn{display:inline-flex;align-items:center;justify-content:space-between;min-width:199px;gap:38px;padding:15px 19px 15px 25px;border:1px solid transparent;border-radius:2px;cursor:pointer;font-weight:700;font-size:.74rem;letter-spacing:.09em;line-height:1.2;text-transform:uppercase;transition:transform .2s,background .2s,color .2s}.btn:hover{transform:translateY(-3px)}.btn-dark{background:var(--forest);color:#f7f8f2}.btn-dark:hover{background:#336b54}.btn-light{background:var(--accent);color:#263d32}.btn-light:hover{background:#e7f3dd}.btn-arrow{font-weight:500;font-size:1.25rem;line-height:1}
.hero{position:relative;min-height:min(820px,calc(100svh - var(--header-h)));min-height:max(620px,min(820px,calc(100svh - var(--header-h))));overflow:hidden;background:#2c4b3d;color:white}.hero-img,.inner-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-img{object-position:center 57%;filter:saturate(.84)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,27,22,.83) 0%,rgba(16,42,32,.58) 44%,rgba(17,40,33,.05) 90%),linear-gradient(0deg,rgba(11,36,25,.37),transparent 40%)}.hero-body{position:relative;z-index:1;padding-top:clamp(135px,16vh,195px);padding-bottom:135px}.hero .eyebrow{color:var(--accent)}.hero h1{font-size:clamp(3.65rem,6.45vw,7.2rem);line-height:1.055;letter-spacing:-.055em;max-width:880px;font-weight:380}.hero-body p{margin:27px 0 36px;max-width:550px;font-size:1.1rem;line-height:1.7;color:#f4f7ef}.hero-bottom{position:absolute;bottom:0;left:0;right:0;padding:18px max(48px,calc((100vw - var(--wrap))/2));display:flex;justify-content:space-between;align-items:center;z-index:2;color:#e0e7df;letter-spacing:.08em;font-size:.61rem;text-transform:uppercase}.hero-bottom a{font-size:1.65rem;transition:transform .2s}.hero-bottom a:hover{transform:translateY(4px)}
.project-block{display:grid;grid-template-columns:1fr 1fr;min-height:635px;background:#faf9f4}.project-image{min-height:600px;overflow:hidden}.project-image img,.split-picture img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.project-image:hover img,.split-picture:hover img{transform:scale(1.035)}.project-copy,.split-copy{display:flex;align-items:center;padding:clamp(50px,6vw,100px)}.copy-inner,.split-copy-in{max-width:560px;margin-inline:auto}.project-copy h2{max-width:520px}.project-copy p,.feature-copy p,.split-copy p{font-size:1.065rem;color:#5d6c63;margin:28px 0 37px;max-width:550px}.project-mini{display:flex;gap:30px;justify-content:space-between;margin-top:56px;border-top:1px solid var(--line);padding-top:24px}.project-mini span{color:var(--muted);font-size:.71rem;line-height:1.35;max-width:130px}.project-mini b{font-size:1.6rem;font-weight:450;display:block;color:var(--forest);white-space:nowrap;margin-bottom:5px}.project-mini b small{font-size:.72rem;font-weight:500}
.benefits{background:#dfe8df url('assets/images/pattern.png') center/600px auto;padding:clamp(30px,calc(8vw - 72px),60px) 0 135px}.benefits>.wrap>.eyebrow{display:block;text-align:center}.benefits-heading{text-align:center;margin-bottom:60px}.benefits-heading h2{font-size:clamp(2.7rem,4vw,4.9rem)}.benefits-heading p{margin-top:17px;color:#637469;font-size:1.09rem}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.benefit-card{background:rgba(255,253,248,.91);min-height:286px;padding:30px 32px 35px;border:1px solid rgba(255,255,255,.68);position:relative;transition:transform .25s,background .25s}.benefit-card:hover{transform:translateY(-4px);background:white}.benefit-icon{color:var(--forest);background:#e7eee7;width:62px;height:62px;display:flex;align-items:center;justify-content:center;border-radius:50%}.benefit-icon svg{width:32px;height:32px}.benefit-num{position:absolute;right:30px;top:29px;font-size:.73rem;color:#9ca9a2;letter-spacing:.12em}.benefit-card h3{font-weight:530;font-size:1.4rem;margin:18px 0 10px;letter-spacing:-.03em}.benefit-card p{font-size:.93rem;color:#667369;max-width:335px}
.feature{display:grid;grid-template-columns:55% 45%;min-height:640px;background:var(--ivory)}.feature-services{background:#eff3ee}.feature-neighbourhood{background:#f5f1e9}.feature-gallery{min-height:640px}.gallery{position:relative;height:100%;min-height:560px;overflow:hidden;background:#dae3db;isolation:isolate}.gallery-stage{position:relative;height:100%;min-height:560px}.gallery-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .55s ease,visibility .55s ease}.gallery-slide.is-active{opacity:1;visibility:visible}.gallery-slide img{height:100%;width:100%;object-fit:cover;transition:transform 6s linear}.gallery-slide.is-active img{transform:scale(1.04)}.gallery-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:80px 30px 25px;color:#fff;background:linear-gradient(transparent,#0009);font-size:.86rem;line-height:1.4}.gallery-slide figcaption span{display:block;font-size:.64rem;color:#e8f0e7;margin-top:5px;text-transform:uppercase;letter-spacing:.045em}.gallery-control{position:absolute;z-index:2;top:48%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:#18291f77;color:#fff;font-size:2rem;line-height:1;display:grid;place-items:center;transition:background .2s}.gallery-control:hover{background:#193d2eec}.gallery-prev{left:20px}.gallery-next{right:20px}.gallery-bottom{position:absolute;left:50%;bottom:27px;z-index:2;transform:translateX(-50%);display:flex;align-items:center;gap:18px}.gallery-dots{display:flex;gap:10px;align-items:center}.gallery-dots button{border:1px solid #fff;padding:0;width:7px;height:7px;border-radius:50%;background:#fff2;transition:background .2s}.gallery-dots button.is-active{background:#fff}.gallery-counter{font-size:.8rem;color:#fff;letter-spacing:.08em;white-space:nowrap}.gallery-counter strong{font-weight:700}.gallery-counter .slash{color:#ffffff88}.feature-copy{display:flex;align-items:center;justify-content:center;padding:clamp(48px,6vw,105px)}.feature-copy-in{max-width:500px;width:100%;position:relative}.feature-ordinal{display:block;color:#85958a;font-size:.77rem;letter-spacing:.16em;margin-top:2px;margin-bottom:18px}.feature-copy h2{font-size:clamp(2.8rem,4.15vw,5.1rem)}.feature-copy p{margin-bottom:37px}.feature-line{width:100%;height:1px;background:#d6dbd1;margin-top:60px}.cta-band{background:#517c6b;color:#f8faf4;position:relative;overflow:hidden}.cta-band:before{content:'';position:absolute;inset:0;background:url('assets/images/pattern.png') center/600px auto;opacity:.28}.cta-grid{position:relative;display:grid;grid-template-columns:1fr 2.4fr auto;gap:35px;align-items:center;padding:74px 0 86px}.cta-band .eyebrow{color:#b8d0bb;margin:0}.cta-band h2{font-size:clamp(2.2rem,3.5vw,4.2rem);margin-bottom:10px}.cta-band p{color:#d9e3da;max-width:620px}
.site-footer{background:var(--charcoal);color:#f5f3eb;padding:90px 0 0}.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(40px,6vw,110px);padding-bottom:75px}.footer-brand img{width:225px;height:auto;max-height:110px;object-fit:contain}.footer-brand p{font-size:.98rem;color:#d2d8d0;max-width:280px;margin-top:25px}.footer-tag{color:#aab9ac;font-size:.7rem;display:block;margin-top:28px;letter-spacing:.12em}.site-footer h3{font-size:.75rem;font-weight:700;letter-spacing:.18em;margin:0 0 20px;color:#d7e6d6}.footer-nav-links{display:grid;grid-template-columns:1fr 1fr;gap:5px 22px}.footer-nav-links a{font-size:.95rem;color:#d2d8d0;line-height:1.9;transition:color .2s}.footer-nav-links a:hover,.footer-contact-col a:hover{color:#a9e3b1}.footer-contact-col h3{margin:0 0 7px}.footer-contact-col h3:not(:first-child){margin-top:24px}.footer-contact-col p{color:#d2d8d0;font-size:.96rem;line-height:1.8}.footer-contact-col small{font-size:.76rem;color:#aebbad}.footer-bottom{border-top:1px solid #ffffff25;padding:20px 0 30px;display:flex;gap:35px;justify-content:space-between;color:#aebbb0;font-size:.7rem;line-height:1.6}.footer-bottom span:last-child{max-width:600px;text-align:right}
.inner-hero{height:clamp(420px,62vh,650px);position:relative;color:#fff;background:#244d3e;display:flex;align-items:end;overflow:hidden}.inner-hero-image{filter:saturate(.85)}.inner-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#102a1ed9,#143e2680 55%,#0002),linear-gradient(0deg,#10261954,transparent)}.inner-content{position:relative;z-index:1;padding-bottom:85px}.inner-content .eyebrow{color:#c4dfbd}.inner-content h1{font-size:clamp(3.3rem,6vw,6rem);max-width:960px;line-height:1.04}.inner-content p{font-size:1.1rem;max-width:610px;margin-top:20px;color:#e1eee2}.inner-concept{position:absolute;bottom:18px;right:48px;color:#e8efea;font-size:.64rem;text-transform:uppercase;letter-spacing:.1em}.split-content{display:grid;grid-template-columns:1fr 1fr;min-height:590px;background:var(--ivory)}.split-content.swap .split-picture{order:2}.split-content.swap .split-copy{order:1;background:#e8efe8}.split-picture{min-height:530px;overflow:hidden}.split-copy{padding:clamp(50px,7vw,110px)}.split-copy h2{font-size:clamp(2.7rem,4.4vw,5rem)}.split-copy p{max-width:600px}.inclusions{background:#e5ede5}.inclusions h2{max-width:820px;margin-bottom:40px}.inclusions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.inclusion-item{display:flex;gap:12px;align-items:center;background:#fefef9ba;padding:23px 20px;font-size:.96rem;line-height:1.35;min-height:90px}.inclusion-star{font-size:1.3rem;color:var(--green)}.gallery-full{background:#faf8f1;padding-bottom:70px}.gallery-full h2{margin-bottom:30px}.gallery-full .gallery{height:630px;min-height:630px}.gallery-full .gallery-stage{height:630px;min-height:630px}.gallery-full>.gallery{width:min(1400px,calc(100% - 96px));margin:auto}.gallery-full .gallery-slide img{object-position:center}.detail-cards{background:#e6ece4}.detail-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.detail-card-grid article{background:#fdfcf5;padding:40px 36px;min-height:235px}.detail-marker{color:var(--green);font-size:1.45rem;line-height:1}.detail-card-grid h3{font-weight:550;font-size:1.48rem;margin:18px 0 8px}.detail-card-grid p{color:#6b756a}.wait-list{text-align:center}.wait-list h2{margin-bottom:25px}.wait-list p{font-size:1.12rem;color:#617368;max-width:715px;margin:auto auto 32px}.wait-list .detail-card-grid{margin-top:80px;text-align:left}.generic-state{min-height:66vh;display:flex;align-items:center}.generic-state .wrap{padding:80px 0}.generic-state h1{font-size:clamp(3rem,5vw,5.5rem);margin:20px 0}
.contact-body{background:#f6f5ef}.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(48px,8vw,140px)}.contact-info h2{max-width:530px}.contact-info>p{margin-top:25px;max-width:490px;color:#617268}.contact-item{padding-top:30px;margin-top:35px;border-top:1px solid #d3d9d0}.contact-item b{font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--forest)}.contact-item p{margin-top:12px;color:#627466}.contact-item a{text-decoration:underline}.contact-form-card{background:white;padding:clamp(35px,5vw,65px);box-shadow:0 16px 55px #2237280b}.contact-form-card h3{font-size:2.1rem;font-weight:430;letter-spacing:-.04em;margin-bottom:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form-grid label{font-size:.82rem;letter-spacing:.02em;display:flex;flex-direction:column;gap:8px;color:#4e6756}.form-grid .wide{grid-column:1/-1}.form-grid input:not([type=checkbox]),.form-grid textarea{width:100%;border:1px solid #d3ddd5;background:#fcfdfb;padding:13px 14px;outline:none;border-radius:0;color:#213b2d}.form-grid input:focus,.form-grid textarea:focus{border-color:#44745c;box-shadow:0 0 0 2px #81b79a33}.form-grid textarea{resize:vertical}.form-grid .form-consent{display:flex;flex-direction:row;align-items:flex-start;gap:10px;line-height:1.6;font-size:.8rem}.form-consent input{margin-top:4px;flex-shrink:0;accent-color:var(--forest)}.contact-form-card form .btn{margin-top:25px}.honey{position:absolute!important;left:-10000px!important;height:1px!important;overflow:hidden!important}.form-notice{padding:12px 16px;margin-bottom:20px}.form-notice.is-success{background:#dceee0;color:#234f32}.form-notice.is-error{background:#f7e6df;color:#8e3a21}
@media (max-width:1260px){.nav-wrap{grid-template-columns:180px 1fr auto;gap:15px}.desktop-nav{gap:12px}.desktop-nav a{font-size:.7rem}.nav-right{gap:12px}.nav-contact{padding:9px 15px}.project-mini{gap:10px}.project-mini b{font-size:1.4rem}}
@media (max-width:1040px){:root{--header-h:74px}.nav-wrap{grid-template-columns:1fr auto;width:calc(100% - 40px)}.desktop-nav{display:none}.brand,.brand img{width:150px}.nav-contact{display:inline-flex}.menu-toggle{display:flex}.mobile-nav{display:none;background:#2e3530;border-top:1px solid #ffffff22;padding:22px 25px 30px}.site-header.menu-open .mobile-nav{display:grid;grid-template-columns:1fr 1fr;gap:13px 25px}.mobile-nav a{padding:13px 6px;font-size:1rem;border-bottom:1px solid #ffffff18}.mobile-nav .mobile-contact{color:var(--accent)}.cta-grid{grid-template-columns:1fr auto}.cta-grid .eyebrow{grid-column:1/-1}.project-copy,.split-copy{padding:55px 50px}.wrap{width:calc(100% - 64px)}.footer-top{gap:35px}}
@media (max-width:820px){.project-block,.split-content,.feature{grid-template-columns:1fr}.project-image,.split-picture{min-height:380px;max-height:520px}.project-copy,.split-copy{padding:65px 36px}.project-mini{max-width:600px}.benefit-grid{grid-template-columns:repeat(2,1fr)}.feature-gallery{min-height:470px}.gallery,.gallery-stage{min-height:470px}.feature-copy{padding:70px 40px}.feature-copy-in{max-width:100%}.feature-line{margin-top:38px}.feature .gallery{height:480px}.feature .gallery-stage{height:480px;min-height:480px}.split-content.swap .split-picture{order:0}.split-content.swap .split-copy{order:1}.inclusions-grid{grid-template-columns:repeat(2,1fr)}.contact-layout{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.cta-grid{grid-template-columns:1fr;gap:16px;padding:72px 0}.cta-grid .eyebrow{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:10px}.footer-bottom span:last-child{text-align:left}.gallery-full>.gallery{width:calc(100% - 64px)}.detail-card-grid{grid-template-columns:1fr}}
@media (max-width:600px){:root{--header-h:70px}.wrap{width:calc(100% - 36px)}.nav-wrap{width:calc(100% - 34px);min-height:var(--header-h)}.brand,.brand img{width:128px}.nav-right{gap:11px}.nav-contact{padding:9px 13px;font-size:.71rem}.lang-switch{font-size:.72rem}.site-header.menu-open .mobile-nav{grid-template-columns:1fr}.hero{min-height:660px}.hero-body{padding-top:135px;padding-bottom:140px}.hero h1{font-size:clamp(3.2rem,12vw,4.5rem)}.hero-body p{font-size:.98rem}.hero-bottom{padding-inline:18px}.hero-bottom span{max-width:250px}.project-image{min-height:340px}.project-copy,.split-copy{padding:58px 22px}.project-mini{flex-wrap:wrap;gap:14px}.project-mini b{font-size:1.25rem}.project-mini span{flex:1 1 28%}.benefits{padding:30px 0 90px}.benefit-grid{grid-template-columns:1fr}.benefits-heading{margin-bottom:38px}.benefit-card{min-height:230px;padding:28px}.feature-copy{padding:65px 22px}.feature-gallery{min-height:400px}.feature .gallery,.feature .gallery-stage{height:400px;min-height:400px}.gallery-control{width:38px;height:38px;font-size:1.6rem}.gallery-prev{left:12px}.gallery-next{right:12px}.gallery-slide figcaption{font-size:.79rem;padding:45px 18px 55px}.gallery-bottom{bottom:18px}.gallery-slide figcaption{padding-bottom:65px}.inner-hero{height:520px}.inner-content{padding-bottom:70px}.inner-content h1{font-size:clamp(3rem,10vw,4.1rem)}.inner-content p{font-size:.99rem}.inner-concept{right:18px;font-size:.52rem}.inclusions-grid{grid-template-columns:1fr}.gallery-full>.gallery{width:100%}.gallery-full .gallery,.gallery-full .gallery-stage{height:430px;min-height:430px}.contact-form-card{padding:27px 22px}.form-grid{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr;gap:50px}.footer-brand{grid-column:auto}.footer-nav-links{grid-template-columns:1fr 1fr}.site-footer{padding-top:75px}.footer-bottom{padding-bottom:38px}.detail-card-grid article{min-height:180px}.section-pad{padding:75px 0}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Version 4.3: focused keyboard states for accessible navigation. */
:where(.site-header,.gallery,.contact-form-card) a:focus-visible,:where(.site-header,.gallery,.contact-form-card) button:focus-visible{outline:3px solid #acd3a9;outline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto} .gallery-slide,.gallery-slide img,.btn{transition:none!important;animation:none!important}}


/* Nevea Terrebonne V4.4 — grands boutons ovales et lecture agrandie.
   Reference visuelle fournie: RGB(162, 140, 121), soit #A28C79.
   Les titres H1/H2/H3 et le menu fixe gardent leurs dimensions. */
:root {
  --nt44-taupe: #a28c79;
  --nt44-taupe-hover: #8f7967;
  --nt44-main-text: clamp(2rem, 3.28vw, 3rem);
}
/* Boutons de grande taille: copie de la pastille beige avec texte blanc. */
.btn, .btn.btn-dark, .btn.btn-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-width: 255px;
  min-height: 82px;
  max-width: 100%;
  padding: 22px 40px;
  gap: 0;
  border: 0;
  border-radius: 999px;
  background: var(--nt44-taupe);
  color: #fffdfa;
  font-size: clamp(1.12rem, 1.55vw, 1.4rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.012em;
  text-transform: uppercase;
  box-shadow: none;
  white-space: normal;
  transition: background-color .2s ease, transform .2s ease;
}
.btn:hover, .btn.btn-dark:hover, .btn.btn-light:hover,
.btn:focus-visible, .btn.btn-dark:focus-visible, .btn.btn-light:focus-visible {
  background: var(--nt44-taupe-hover);
  color: #fffdfa;
}
.btn-arrow { display: none !important; }
.nav-contact {
  border-radius: 999px;
  background: var(--nt44-taupe);
  color: #fffdfa;
}
.nav-contact:hover, .nav-contact:focus-visible {
  background: var(--nt44-taupe-hover);
  color: #fffdfa;
}
/* Paragraphes descriptifs (et non les titres): triple taille visee en grand ecran. */
.hero-body p {
  font-size: var(--nt44-main-text);
  max-width: 770px;
  line-height: 1.35;
  margin: 26px 0 36px;
}
.project-copy p, .feature-copy p, .split-copy p {
  font-size: var(--nt44-main-text);
  line-height: 1.38;
  color: #4b5a51;
  max-width: 740px;
  margin: 25px 0 37px;
}
.benefits-heading p {
  font-size: clamp(1.6rem, 2.55vw, 2.7rem);
  line-height: 1.43;
}
.benefit-card p {
  font-size: clamp(1.5rem, 2.05vw, 2.15rem);
  line-height: 1.52;
  max-width: none;
  color: #4e5c50;
}
.inner-content p {
  font-size: clamp(1.8rem, 2.95vw, 2.9rem);
  max-width: 820px;
  line-height: 1.37;
}
.wait-list p, .contact-info>p, .contact-item p,
.detail-card-grid p, .cta-band p {
  font-size: clamp(1.65rem, 2.4vw, 2.6rem);
  line-height: 1.46;
}
.inclusion-item { font-size: clamp(1.3rem, 1.85vw, 1.8rem); }
.project-mini span {font-size: clamp(1.1rem, 1.3vw, 1.4rem); max-width: 180px;}
.detail-card-grid article {min-height: 290px;}
.detail-card-grid h3 {line-height: 1.2;}
.footer-brand p, .footer-contact-col p {font-size: 1.25rem;}
.footer-nav-links a {font-size: 1.16rem;}
.form-grid label, .form-grid .form-consent {font-size: 1.18rem;}
.form-grid input:not([type=checkbox]), .form-grid textarea {font-size: 1.25rem;}
/* Agrandir les zones de lecture et faire respirer les descriptions. */
.project-block {grid-template-columns: 42% 58%; min-height: 790px;}
.project-copy {padding: clamp(50px, 4vw, 80px);}
.project-image {min-height: 750px;}
.copy-inner {max-width: 710px;}
.feature {grid-template-columns: 46% 54%; min-height: 780px;}
.feature-copy {padding: clamp(45px, 4vw, 80px);}
.feature-copy-in {max-width: 700px;}
.feature-gallery, .feature .gallery, .feature .gallery-stage {min-height: 740px;}
.benefit-grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px;}
.benefit-card {min-height: 340px; padding: 34px 38px 42px;}
.cta-grid {grid-template-columns: 1fr 2.7fr auto; gap: 22px;}
.cta-grid .btn {min-width: 230px;}

@media (max-width: 1100px) {
  :root {--nt44-main-text: clamp(1.85rem, 3.2vw, 2.65rem);}
  .project-block {grid-template-columns: 44% 56%;}
  .feature {grid-template-columns: 47% 53%;}
  .project-copy, .feature-copy {padding: 48px 35px;}
  .benefit-card p {font-size: clamp(1.42rem, 2.3vw, 1.9rem);}
}
@media (max-width: 820px) {
  :root {--nt44-main-text: clamp(1.6rem, 4.2vw, 2.2rem);}
  .project-block, .feature, .split-content {grid-template-columns: 1fr;}
  .project-image {min-height: 390px;}
  .project-copy, .split-copy {padding: 65px 36px;}
  .feature-gallery, .feature .gallery, .feature .gallery-stage {min-height: 480px;}
  .feature-copy {padding: 65px 36px;}
  .benefit-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
  .cta-grid {grid-template-columns: 1fr;}
  .cta-grid .btn {justify-self: start;}
}
@media (max-width: 600px) {
  :root {--nt44-main-text: clamp(1.5rem, 6.25vw, 1.85rem);}
  .btn, .btn.btn-dark, .btn.btn-light {
    min-width: 236px;
    min-height: 70px;
    padding: 18px 28px;
    font-size: clamp(1rem, 4.25vw, 1.18rem);
  }
  .hero-body p {font-size: var(--nt44-main-text); line-height:1.43;}
  .project-copy p, .feature-copy p, .split-copy p {font-size: var(--nt44-main-text); line-height:1.44;}
  .benefit-grid {grid-template-columns: 1fr;}
  .benefit-card {min-height: 0; padding: 26px;}
  .benefit-card p {font-size: 1.5rem; line-height: 1.5;}
  .benefits-heading p {font-size: 1.5rem;}
  .inner-content p {font-size: 1.55rem;}
  .wait-list p, .contact-info>p, .contact-item p,
  .detail-card-grid p, .cta-band p {font-size: 1.5rem; line-height: 1.5;}
  .feature-gallery, .feature .gallery, .feature .gallery-stage {min-height: 400px;}
  .project-copy, .split-copy, .feature-copy {padding: 58px 22px;}
  .inclusion-item {font-size: 1.4rem;}
  .project-mini span {font-size: 1rem;}
  .footer-brand p, .footer-contact-col p, .footer-nav-links a {font-size: 1.1rem;}
  .form-grid label, .form-grid .form-consent {font-size: 1.05rem;}
}


/* ===============================================================
   NÉVÉA TERREBONNE V4.5 — NAVIGATION BEAUCOUP PLUS LISIBLE
   Agrandissement ciblé des liens d'en-tête (FR et EN).
   Un menu sur deux rangées à largeur intermédiaire évite
   l'entassement et préserve les liens visibles.
   =============================================================== */
:root { --header-h: 104px; }
.site-header { min-height: var(--header-h); }
.nav-wrap {
  width: min(1550px, calc(100% - 64px));
  min-height: var(--header-h);
  grid-template-columns: 180px minmax(0, 1fr) auto;
  gap: clamp(14px, 2.1vw, 34px);
}
.brand, .brand img { width: 180px; }
.desktop-nav { display: flex; justify-content: center; gap: clamp(16px, 1.5vw, 27px); }
.desktop-nav a {
  font-size: 1.25rem;
  font-weight: 650;
  letter-spacing: -0.012em;
  line-height: 1.25;
  padding: 17px 0;
  opacity: .95;
}
.desktop-nav a.current::after { height: 2px; bottom: 6px; }
.nav-right { gap: 19px; }
.nav-contact {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 25px;
  font-size: 1.13rem;
  line-height: 1.2;
  font-weight: 700;
  white-space: nowrap;
}
.lang-switch { font-size: 1.12rem; line-height: 1.2; font-weight: 700; white-space: nowrap; }
.lang-switch span { font-size: .95rem; margin-left: 6px; }

/* Entre 921 et 1320 px : garder les six liens lisibles
   en les disposant sur une deuxième rangée fixe. */
@media (min-width: 921px) and (max-width: 1320px) {
  :root { --header-h: 142px; }
  .nav-wrap {
    width: calc(100% - 56px);
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 78px 64px;
    grid-template-areas: 'nvt-logo nvt-actions' 'nvt-menu nvt-menu';
    gap: 0;
  }
  .brand { grid-area: nvt-logo; }
  .desktop-nav {
    grid-area: nvt-menu;
    display: flex;
    width: 100%;
    align-self: stretch;
    justify-content: center;
    gap: clamp(17px, 2.3vw, 33px);
  }
  .desktop-nav a { font-size: clamp(1.17rem, 1.9vw, 1.31rem); padding: 16px 0; }
  .nav-right { grid-area: nvt-actions; }
  .menu-toggle { display: none; }
}

/* Tablettes et téléphones : menu dépliant avec liens agrandis. */
@media (max-width: 920px) {
  :root { --header-h: 84px; }
  .nav-wrap {
    width: calc(100% - 38px);
    min-height: var(--header-h);
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 84px;
    gap: 10px;
  }
  .brand, .brand img { width: 150px; }
  .desktop-nav { display: none; }
  .menu-toggle { display: flex; }
  .nav-right { gap: 14px; }
  .nav-contact { min-height: 46px; font-size: 1.04rem; padding: 12px 18px; }
  .lang-switch { font-size: 1.05rem; }
  .lang-switch span { font-size: .88rem; }
  .mobile-nav a { font-size: 1.24rem; font-weight: 620; line-height: 1.38; padding: 16px 7px; }
}
@media (max-width: 600px) {
  :root { --header-h: 76px; }
  .nav-wrap { width: calc(100% - 28px); grid-template-rows: 76px; gap: 7px; }
  .brand, .brand img { width: 128px; }
  .nav-right { gap: 10px; }
  .nav-contact { min-height: 43px; font-size: .92rem; padding: 10px 13px; }
  .lang-switch { font-size: .94rem; }
  .lang-switch span { font-size: .78rem; margin-left: 3px; }
  .menu-toggle { width: 40px; height: 42px; }
  .mobile-nav a { font-size: 1.15rem; padding: 17px 8px; }
}
@media (max-width: 375px) {
  .brand, .brand img { width: 112px; }
  .nav-right { gap: 7px; }
  .nav-contact { padding: 10px 11px; font-size: .87rem; }
  .lang-switch { font-size: .87rem; }
  .menu-toggle { width: 36px; }
}


/* =============================================================
   NÉVÉA TERREBONNE V4.6 — SURTITRES DE SECTION TRÈS AGRANDIS
   « LE PROJET », « APPARTEMENTS », « ESPACES COMMUNS »,
   « LE QUARTIER » et équivalents EN.
   Base V4.5 conservée : navigation et boutons inchangés.
   ============================================================= */
.eyebrow {
  font-size: clamp(1.6rem, 2.45vw, 2.25rem);
  line-height: 1.25;
  font-weight: 750;
  letter-spacing: .09em;
  margin-bottom: clamp(23px, 2.3vw, 35px);
  text-transform: uppercase;
  max-width: 100%;
}
/* Empêche le surtitre du bandeau d'inscription de déborder sur le CTA. */
.cta-grid {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 2.3fr) auto;
}
.cta-band .eyebrow {
  font-size: clamp(1.35rem, 1.9vw, 1.9rem);
  line-height: 1.32;
  overflow-wrap: normal;
}
@media (max-width: 1100px) {
  .cta-grid { grid-template-columns: 1fr; }
  .cta-grid .eyebrow {grid-column: 1 / -1;}
  .cta-grid .btn {justify-self: start;}
}
@media (max-width: 820px) {
  .eyebrow {font-size: clamp(1.4rem, 3.3vw, 1.85rem); letter-spacing: .08em;}
}
@media (max-width: 600px) {
  .eyebrow {font-size: clamp(1.3rem, 5.5vw, 1.6rem); line-height: 1.3; letter-spacing: .075em; margin-bottom: 24px;}
  .cta-band .eyebrow {font-size: 1.3rem;}
}


/* =============================================================
   NÉVÉA TERREBONNE V4.7 — EN-TÊTE TRÈS GRAND / LANGUE SANS FLÈCHE
   Corrige explicitement les anciennes règles des points de rupture.
   Navigation grande (30-35 px), sans écraser le contenu ni sortir
   des limites de la fenêtre.
   ============================================================= */
:root { --header-h: 128px; }
.site-header { min-height: 0; }
.nav-wrap {
  width: min(2260px, calc(100% - 74px));
  min-height: 128px;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) auto;
  grid-template-areas: "nv-brand nv-menu nv-tools";
  grid-template-rows: auto;
  align-items: center;
  gap: clamp(15px, 1.4vw, 35px);
  padding: 0;
}
.brand { grid-area: nv-brand; width: 190px; }
.brand img { width: 190px; max-height: 90px; }
.desktop-nav {
  grid-area: nv-menu;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: clamp(16px, 1.25vw, 26px);
  white-space: nowrap;
}
.desktop-nav a {
  font-size: clamp(1.95rem, 1.62vw, 2.17rem);
  font-weight: 750;
  letter-spacing: -.018em;
  line-height: 1.18;
  opacity: 1;
  padding: 19px 0;
}
.desktop-nav a.current::after { height: 3px; bottom: 10px; }
.nav-right { grid-area: nv-tools; justify-content: flex-end; gap: 20px; }
.nav-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 16px 25px;
  min-height: 64px;
  font-size: 1.6rem;
  font-weight: 750;
  line-height: 1.1;
  white-space: nowrap;
}
.lang-switch {
  font-size: 1.62rem;
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: .01em;
  white-space: nowrap;
  padding: 12px 4px;
}
/* Les anciennes pages conservées dans les caches ne doivent pas montrer ↗. */
.lang-switch > span { display: none !important; }
.menu-toggle { display: none; }

/* Sous 2000 px, logo/actions sur la première ligne et les liens
   agrandis en dessous. Les liens peuvent se répartir sur deux lignes
   sans jamais réduire leur taille pour rentrer artificiellement. */
@media (max-width: 1999px) and (min-width: 921px) {
  :root { --header-h: 188px; }
  .nav-wrap {
    width: calc(100% - 58px);
    min-height: 0;
    padding: 12px 0 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: minmax(74px, auto) auto;
    grid-template-areas: "nv-brand nv-tools" "nv-menu nv-menu";
    row-gap: 3px;
    column-gap: 16px;
  }
  .brand, .brand img { width: 185px; }
  .desktop-nav {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-self: stretch;
    column-gap: clamp(20px, 2vw, 35px);
    row-gap: 0;
    white-space: normal;
  }
  .desktop-nav a {
    font-size: clamp(1.91rem, 2.22vw, 2.17rem);
    white-space: nowrap;
    line-height: 1.16;
    padding: 12px 0 15px;
  }
  .nav-right { gap: 24px; }
  .nav-contact { min-height: 57px; font-size: 1.53rem; padding: 13px 25px; }
  .lang-switch { font-size: 1.54rem; }
  .menu-toggle { display: none; }
}

/* Menu dépliant, mais ses libellés restent aussi plus grands. */
@media (max-width: 920px) {
  :root { --header-h: 90px; }
  .site-header { min-height: 0; }
  .nav-wrap {
    width: calc(100% - 34px);
    min-height: 90px;
    padding: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 90px;
    grid-template-areas: "nv-brand nv-tools";
    gap: 10px;
  }
  .brand, .brand img { width: 150px; }
  .desktop-nav { display: none; }
  .nav-right { gap: 15px; }
  .nav-contact { min-height: 49px; padding: 12px 18px; font-size: 1.27rem; }
  .lang-switch { font-size: 1.3rem; }
  .menu-toggle { display: flex; width: 46px; height: 46px; }
  .mobile-nav a { font-size: 1.55rem; font-weight: 700; line-height: 1.25; padding: 20px 9px; }
}
@media (max-width: 600px) {
  :root { --header-h: 78px; }
  .nav-wrap { width: calc(100% - 28px); min-height: 78px; grid-template-rows: 78px; gap: 7px; }
  .brand, .brand img { width: 124px; }
  .nav-right { gap: 9px; }
  .nav-contact { min-height: 43px; font-size: 1rem; padding: 10px 13px; }
  .lang-switch { font-size: 1.16rem; padding: 8px 0; }
  .menu-toggle { width: 40px; height: 43px; }
  .mobile-nav a { font-size: 1.37rem; padding: 17px 9px; }
}
@media (max-width: 375px) {
  .nav-wrap { width: calc(100% - 22px); }
  .brand, .brand img { width: 105px; }
  .nav-right { gap: 7px; }
  .nav-contact { padding: 9px 11px; font-size: .93rem; }
  .lang-switch { font-size: 1.08rem; }
  .menu-toggle { width: 37px; }
}


/* =============================================================
   NEVEA TERREBONNE V4.8 — EN-TETE SUR UNE SEULE LIGNE
   Logo | navigation (6 liens) | Contact + langue
   Aucune ligne secondaire sur ordinateur.
   Sous le seuil de lisibilite, les liens passent dans le menu mobile.
   ============================================================= */
:root { --header-h: 110px; }
.site-header { min-height: 0; }
.nav-wrap {
  display: grid;
  width: min(1940px, calc(100% - 48px));
  min-height: var(--header-h);
  padding: 0;
  margin-inline: auto;
  grid-template-areas: "nv-brand nv-menu nv-tools";
  grid-template-columns: clamp(150px, 11.2vw, 190px) minmax(0, 1fr) auto;
  grid-template-rows: minmax(0, 1fr);
  align-items: center;
  gap: clamp(11px, 1.12vw, 21px);
}
.brand { grid-area: nv-brand; width: 100%; min-width: 0; }
.brand img { width: 100%; max-height: 85px; height: auto; object-fit: contain; }
.desktop-nav {
  grid-area: nv-menu;
  display: flex;
  flex-wrap: nowrap;
  min-width: 0;
  width: 100%;
  align-self: center;
  justify-content: center;
  align-items: center;
  gap: clamp(12px, 1.1vw, 20px);
  white-space: nowrap;
}
.desktop-nav a {
  flex: 0 0 auto;
  padding: 14px 0;
  white-space: nowrap;
  font-size: clamp(1.24rem, 1.82vw, 2.08rem);
  font-weight: 750;
  letter-spacing: -.023em;
  line-height: 1.18;
  opacity: 1;
}
.desktop-nav a.current::after { height: 2px; bottom: 6px; }
.nav-right {
  grid-area: nv-tools;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-items: center;
  gap: clamp(10px, 1.15vw, 20px);
  min-width: 0;
  white-space: nowrap;
}
.nav-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 13px clamp(15px, 1.5vw, 25px);
  border-radius: 999px;
  font-size: clamp(1.17rem, 1.3vw, 1.48rem);
  line-height: 1.1;
  white-space: nowrap;
}
.lang-switch {
  font-size: clamp(1.2rem, 1.36vw, 1.55rem);
  font-weight: 750;
  line-height: 1.1;
  padding: 11px 4px;
  letter-spacing: .01em;
  white-space: nowrap;
}
.lang-switch > span { display: none !important; }
.menu-toggle { display: none; }

/* La navigation ne saute plus a la ligne : menu mobile pour tablettes. */
@media (max-width: 1170px) {
  :root { --header-h: 88px; }
  .nav-wrap {
    width: calc(100% - 36px);
    min-height: var(--header-h);
    display: grid;
    padding: 0;
    grid-template-areas: "nv-brand nv-tools";
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 88px;
    gap: 10px;
  }
  .brand { width: 150px; }
  .brand img { width: 150px; max-height: 73px; }
  .desktop-nav { display: none; }
  .nav-right { gap: 13px; }
  .nav-contact { min-height: 49px; padding: 12px 18px; font-size: 1.27rem; }
  .lang-switch { font-size: 1.3rem; }
  .menu-toggle { display: flex; width: 46px; height: 46px; }
  .site-header.menu-open .mobile-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
    padding: 20px 27px 29px;
  }
  .mobile-nav a { font-size: 1.48rem; font-weight: 700; line-height: 1.3; padding: 16px 8px; }
}
@media (max-width: 600px) {
  :root { --header-h: 78px; }
  .nav-wrap { width: calc(100% - 28px); min-height: 78px; grid-template-rows: 78px; gap: 7px; }
  .brand, .brand img { width: 124px; }
  .nav-right { gap: 9px; }
  .nav-contact { min-height: 43px; font-size: 1rem; padding: 10px 13px; }
  .lang-switch { font-size: 1.16rem; padding: 8px 0; }
  .menu-toggle { width: 40px; height: 43px; }
  .site-header.menu-open .mobile-nav { grid-template-columns: 1fr; }
  .mobile-nav a { font-size: 1.37rem; padding: 17px 9px; }
}
@media (max-width: 375px) {
  .nav-wrap { width: calc(100% - 22px); }
  .brand, .brand img { width: 105px; }
  .nav-right { gap: 7px; }
  .nav-contact { padding: 9px 11px; font-size: .93rem; }
  .lang-switch { font-size: 1.08rem; }
  .menu-toggle { width: 37px; }
}

/* V4.9 : nouvelle illustration de couverture fournie par le client. */


/* =============================================================
   NEVEA TERREBONNE V5.0 - STATISTIQUES DE LA SECTION PROJET
   Image du projet remplacee via la configuration WordPress/PHP.
   Agrandissement modere des trois donnees descriptives, sans
   modifier les dimensions du bandeau de navigation V4.8.
   ============================================================= */
.project-mini {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(13px, 1.5vw, 24px);
  align-items: start;
  margin-top: clamp(34px, 3.2vw, 52px);
  padding-top: 27px;
}
.project-mini > span {
  min-width: 0;
  max-width: none;
  font-size: clamp(1.23rem, 1.52vw, 1.55rem);
  font-weight: 500;
  line-height: 1.36;
  overflow-wrap: normal;
}
.project-mini b {
  font-size: clamp(1.95rem, 2.28vw, 2.35rem);
  font-weight: 590;
  line-height: 1.15;
  letter-spacing: -.045em;
  white-space: nowrap;
  margin-bottom: 11px;
}
.project-mini b small {
  font-size: .47em;
  font-weight: 600;
  letter-spacing: 0;
}
.project-image img { object-position: 50% 50%; }
@media (min-width: 821px) and (max-width: 1240px) {
  .project-mini {gap: 12px;}
  .project-mini > span {font-size: clamp(1.08rem, 1.5vw, 1.25rem);}
  .project-mini b {font-size: clamp(1.60rem, 2.1vw, 1.92rem);}
}
@media (max-width: 600px) {
  .project-mini {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 24px 16px;
  }
  .project-mini > span {font-size: 1.16rem;}
  .project-mini b {font-size: clamp(1.75rem, 6.7vw, 2rem);margin-bottom: 7px;}
}
@media (max-width: 440px) {
  .project-mini {grid-template-columns: 1fr;gap: 19px;}
  .project-mini > span {display: flex;align-items: baseline;gap: 18px;font-size: 1.18rem;}
  .project-mini b {min-width: 105px;flex: 0 0 auto;font-size: 1.75rem;margin-bottom: 0;}
}


/* =============================================================
   NEVEA TERREBONNE V5.1 — HIERARCHIE DES CARTES "POURQUOI CHOISIR"
   Les titres des six avantages sont plus grands que les descriptifs.
   Aucun changement aux titres des autres sections, ni aux menus.
   ============================================================= */
.benefit-card h3 {
  font-size: clamp(2.65rem, 3.35vw, 3.55rem);
  font-weight: 720;
  line-height: 1.13;
  letter-spacing: -.035em;
  margin: 22px 0 17px;
  overflow-wrap: normal;
}
@media (max-width: 1100px) {
  .benefit-card h3 {
    font-size: clamp(2.25rem, 3.7vw, 2.8rem);
  }
}
@media (max-width: 820px) {
  .benefit-card h3 {
    font-size: clamp(2.1rem, 4.7vw, 2.65rem);
  }
}
@media (max-width: 600px) {
  .benefit-card h3 {
    font-size: clamp(2.25rem, 7.8vw, 2.75rem);
    margin: 19px 0 14px;
  }
}


/* =============================================================
   NEVEA TERREBONNE V5.3 — GALERIES APPARTEMENTS PANORAMIQUES
   Toutes les photos d'appartements ont un rapport natif 2048x1152 (16:9).
   Aucun recadrage ni zoom, y compris lors des transitions.
   Les galeries Services et Quartier restent inchangees.
   ============================================================= */
/* Accueil : davantage de largeur pour la photo, texte toujours a droite. */
@media (min-width: 1201px) {
  .feature.feature-apartments {
    grid-template-columns: minmax(0, 64%) minmax(0, 36%);
    min-height: 0;
  }
  .feature-apartments .feature-copy {
    padding: clamp(32px, 3vw, 65px);
  }
  /* Conserver l'image panoramique visible pendant la lecture du texte. */
  .feature-apartments .feature-gallery {
    position: sticky;
    top: var(--header-h);
    align-self: start;
  }
}
@media (min-width: 821px) and (max-width: 1200px) {
  .feature.feature-apartments {grid-template-columns: minmax(0,1fr); min-height:0;}
  .feature-apartments .feature-copy {padding: 60px 6%;}
  .feature-apartments .feature-copy-in {max-width: 900px;}
}
/* Image au ratio 16:9, qui n'est plus etiree a la hauteur du texte. */
.feature-apartments .feature-gallery {
  align-self: center;
  height: auto;
  min-height: 0;
  overflow: hidden;
}
.feature-apartments .gallery {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 9;
  background: #dfe7df;
}
.feature-apartments .gallery-stage {
  position: absolute;
  inset: 0;
  height: 100%;
  min-height: 0;
}
.feature-apartments .gallery-slide img,
.gallery-full.apartment-gallery .gallery-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  transform: none !important;
  transition: none;
}
/* La page Appartements utilise egalement le 16:9 entier. */
.gallery-full.apartment-gallery > .gallery {
  width: min(1540px, calc(100% - 64px));
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 9;
  margin-inline: auto;
  background: #dfe7df;
}
.gallery-full.apartment-gallery .gallery-stage {
  position: absolute;
  inset: 0;
  height: 100%;
  min-height: 0;
}
/* Sur tablette et mobile, la photo reste 16:9 et le texte suit sous l'image. */
@media (max-width: 820px) {
  .feature.feature-apartments { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .feature-apartments .feature-gallery,
  .feature-apartments .gallery,
  .feature-apartments .gallery-stage {
    min-height: 0;
  }
  .feature-apartments .feature-gallery { width: 100%; }
}
@media (min-width: 1201px) {
  .feature-apartments .feature-gallery { align-self: start; }
}

@media (max-width: 600px) {
  .gallery-full.apartment-gallery > .gallery {
    width: 100%;
    min-height: 0;
  }
  /* Les fleches et les points restent accessibles sur la photo plus courte. */
  .feature-apartments .gallery-control,
  .gallery-full.apartment-gallery .gallery-control {
    width: 40px;
    height: 40px;
  }
  .feature-apartments .gallery-slide figcaption,
  .gallery-full.apartment-gallery .gallery-slide figcaption {
    padding: 35px 13px 38px;
    font-size: .7rem;
  }
  .feature-apartments .gallery-slide figcaption span,
  .gallery-full.apartment-gallery .gallery-slide figcaption span { font-size: .5rem; }
  .feature-apartments .gallery-bottom,
  .gallery-full.apartment-gallery .gallery-bottom { bottom: 12px; }
}


/* ============================================================
   NEVEA TERREBONNE V5.4 — INCLUSIONS DU LOYER
   Nine newly drawn SVGs, compact 5 + 4 grid, FR + EN.
   No images or icon artwork copied from the reference site.
   ============================================================ */
.apartments-section-spacer {
  display: block;
  height: clamp(14px, 1.7vw, 26px);
  background: #dfe8df url('assets/images/pattern.png') center/600px auto;
}
.rent-inclusions-section {
  --rent-gap: clamp(14px, 1.8vw, 28px);
  isolation: isolate;
  position: relative;
  overflow: hidden;
  background: #dfe8df url('assets/images/pattern.png') center/600px auto;
  color: #29352f;
  padding: clamp(25px, 2.8vw, 40px) 25px clamp(63px, 5.7vw, 92px);
}
.rent-inclusions-container {
  width: min(1370px,100%);
  margin-inline: auto;
}
.rent-inclusions-section h2 {
  text-align: center;
  color: #29352f;
  font-size: clamp(2rem, 3.1vw, 3.4rem);
  font-weight: 420;
  line-height: 1.12;
  letter-spacing: .005em;
  margin: 0 0 clamp(35px, 3.6vw, 55px);
}
.rent-inclusions-grid {
  list-style: none;
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 0;
  margin: 0;
}
.rent-inclusion-item {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
}
.rent-inclusion-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: clamp(80px, 6.4vw, 96px);
  height: clamp(80px, 6.4vw, 96px);
  background: var(--nt44-taupe);
  color: #f1f6f0;
  border-radius: 50%;
}
.rent-inclusion-icon svg {
  width: 58%;
  height: 58%;
  display: block;
  overflow: visible;
}
.rent-inclusion-label {
  display: block;
  color: #29352f;
  font-size: clamp(.84rem, .9vw, 1.06rem);
  line-height: 1.28;
  font-weight: 440;
  overflow-wrap: break-word;
  max-width: 145px;
}
@media(max-width: 1180px) {
  .rent-inclusions-grid {
    flex-wrap: wrap;
    justify-content: center;
    gap: 34px 24px;
  }
  .rent-inclusion-item {flex: 0 0 calc((100% - 2 * 24px) / 3);}
  .rent-inclusion-label {font-size: clamp(1rem, 1.9vw, 1.16rem); max-width: 210px;}
}
@media(max-width: 640px) {
  .apartments-section-spacer {height: 12px;}
  .rent-inclusions-section {padding: 25px 12px 48px;}
  .rent-inclusions-section h2 {font-size: clamp(1.85rem, 6vw, 2.6rem); margin-bottom: 37px;}
  .rent-inclusions-grid {--rent-gap: 10px;column-gap: var(--rent-gap);row-gap: 24px;}
  .rent-inclusion-item {flex: 0 0 calc((100% - 2 * var(--rent-gap)) / 3); gap: 9px;}
  .rent-inclusion-icon {width: clamp(58px, 18vw, 83px);height: clamp(58px, 18vw, 83px);}
  .rent-inclusion-label {font-size: clamp(.72rem, 2.9vw, .98rem); line-height:1.25;}
}

/* ============================================================
   NEVEA TERREBONNE V5.7 — ESPACES COMMUNS ET INCLUSIONS
   Accueil : texte a gauche, carrousel 5 photos du client a droite.
   Smartphone : 3 pictogrammes de loyer par ligne.
   ============================================================ */
@media (min-width: 821px) {
  .feature.feature-services {
    grid-template-columns: minmax(0,44%) minmax(0,56%);
  }
  .feature-services .feature-copy {
    grid-column: 1;
    grid-row: 1;
  }
  .feature-services .feature-gallery {
    grid-column: 2;
    grid-row: 1;
  }
}
/* Preserve the full 16:9 frame of the supplied community-space photos. */
.feature-services .feature-gallery {
  min-height: 0;
  align-self: center;
}
.feature-services .gallery,
.feature-services .gallery-stage {
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 9;
}
.feature-services .gallery-slide img {
  object-fit: contain;
  transform: none !important;
}
@media (max-width: 820px) {
  .feature.feature-services {grid-template-columns: minmax(0, 1fr);}
  .feature-services .feature-copy {grid-row: 1;grid-column:1;}
  .feature-services .feature-gallery {grid-row: 2;grid-column:1;}
}
@media (max-width: 640px) {
  .rent-inclusions-grid {justify-content: space-between;}
  .rent-inclusion-item {min-width: 0;max-width: calc((100% - 2 * 10px) / 3);}
  .rent-inclusion-label {overflow-wrap: anywhere;}
}


/* ============================================================
   NEVEA TERREBONNE V5.8 — ESTIMATION DES INCLUSIONS
   Tableau HTML accessible sur Appartements FR/EN uniquement.
   Le fond vert pale a motifs est HERITE de rent-inclusions-section.
   ============================================================ */
.rent-value-estimate {
  margin: clamp(46px, 5vw, 74px) auto 0;
  width: 100%;
  color: #27382f;
}
.rent-value-estimate h3 {
  font-size: clamp(1.58rem, 2.25vw, 2.28rem);
  font-weight: 620;
  text-align: center;
  letter-spacing: -.025em;
  line-height: 1.2;
  margin: 0 auto 22px;
  color: #29352f;
}
.rent-value-scroll {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  border-radius: 9px;
  box-shadow: 0 9px 25px rgba(26,43,34,.10);
  scrollbar-color: #a28c79 #dadfd8;
  -webkit-overflow-scrolling: touch;
}
.rent-value-scroll:focus-visible {
  outline: 3px solid #a28c79;
  outline-offset: 5px;
}
.rent-value-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  background: #242523;
  color: #f7f6f0;
  text-align: center;
  font-size: clamp(.94rem, 1.12vw, 1.1rem);
  font-variant-numeric: tabular-nums;
  min-width: 780px;
}
.rent-value-caption-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.rent-value-table th,
.rent-value-table td {
  box-sizing: border-box;
  border-bottom: 1px solid rgba(255,255,255,.10);
  border-right: 1px solid rgba(255,255,255,.08);
  padding: 19px 11px;
  line-height: 1.28;
  vertical-align: middle;
}
.rent-value-table th:last-child,
.rent-value-table td:last-child {border-right: 0;}
.rent-value-table thead th {
  background: #333431;
  color: #a8cdbd;
  text-transform: uppercase;
  font-weight: 650;
  font-size: clamp(.76rem, .95vw, .95rem);
  letter-spacing: .015em;
  padding: 20px 10px;
}
.rent-value-table tbody tr:nth-child(odd) {background: #1e201e;}
.rent-value-table tbody tr:nth-child(even) {background: #2c2d2a;}
.rent-value-table tbody tr:last-child td,
.rent-value-table tbody tr:last-child th {border-bottom: 0;}
.rent-value-table tbody th[scope="row"] {font-weight: 460;}
.rent-value-table .rent-value-grandtotal {
  font-weight: 680;
}
.rent-value-note {
  margin: 17px auto 0;
  font-size: clamp(.85rem, .95vw, 1rem);
  text-align: center;
  line-height: 1.5;
  color: #475a4d;
}
.rent-value-mobile-hint {display: none;}
@media (max-width: 820px) {
  .rent-value-estimate {margin-top: 43px;}
  .rent-value-estimate h3 {font-size: clamp(1.45rem, 4.7vw, 2rem);}
  .rent-value-table {font-size: .97rem;min-width: 820px;}
  .rent-value-table thead th {font-size: .77rem;}
  .rent-value-mobile-hint {
    display: block;
    margin-top: 11px;
    font-size: .84rem;
    line-height: 1.4;
    color: #435548;
    text-align: left;
  }
}
@media (max-width: 640px) {
  .rent-value-estimate {margin-top: 39px;}
  .rent-value-estimate h3 {font-size: clamp(1.32rem, 5.4vw, 1.8rem);margin-bottom: 16px;}
  .rent-value-table th,.rent-value-table td {padding: 15px 10px;}
  .rent-value-note {font-size: .81rem;}
}


/* ============================================================
   NEVEA TERREBONNE V5.9 - Espace commun / Common areas
   Eight custom inline SVGs, one desktop row, 3-per-row on mobile.
   Original artwork: no image or icon source taken from the reference.
   ============================================================ */
.community-services-section {
  position: relative;
  isolation: isolate;
  background: #dfe8df url('assets/images/pattern.png') center / 600px auto;
  color: #29352f;
  padding: clamp(44px, 5vw, 75px) clamp(12px, 2.8vw, 42px) clamp(40px, 5vw, 75px);
}
.community-services-container {
  max-width: 1480px;
  margin-inline: auto;
}
.community-services-section h2 {
  text-align: center;
  font-size: clamp(2.2rem, 3.35vw, 3.6rem);
  font-weight: 420;
  letter-spacing: -.018em;
  line-height: 1.15;
  color: #29352f;
  margin: 0 0 clamp(25px, 3.1vw, 42px);
}
.community-services-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 18px clamp(6px, .8vw, 14px);
  list-style: none;
  padding: 0;
  margin: 0;
  align-items: start;
}
.community-service-item {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  text-align: center;
}
.community-service-icon {
  flex: none;
  width: clamp(78px, 7.4vw, 112px);
  height: clamp(78px, 7.4vw, 112px);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #faf8f0;
  color: #47786d;
  border: 1px solid rgba(255,255,255,.45);
}
.community-service-icon svg {
  display: block;
  width: 61%;
  height: 61%;
}
.community-service-label {
  display: block;
  min-width: 0;
  font-size: clamp(.8rem, .98vw, 1rem);
  line-height: 1.3;
  font-weight: 440;
  color: #35473d;
  overflow-wrap: break-word;
  hyphens: auto;
}
.community-services-note {
  text-align: center;
  font-size: clamp(.74rem, .85vw, .94rem);
  color: #52665b;
  line-height: 1.4;
  margin: 23px 0 0;
}
@media (max-width: 1100px) {
  .community-services-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 29px 16px;
  }
  .community-service-label {font-size: clamp(.85rem, 1.6vw, 1rem);}
}
@media (max-width: 700px) {
  .community-services-section {
    padding: 44px 10px 46px;
  }
  .community-services-section h2 {
    margin-bottom: 27px;
    font-size: clamp(1.85rem, 6.6vw, 2.5rem);
  }
  .community-services-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px 8px;
  }
  .community-service-item {gap: 9px;}
  .community-service-icon {
    width: clamp(59px, 18.5vw, 88px);
    height: clamp(59px, 18.5vw, 88px);
  }
  .community-service-label {
    font-size: clamp(.68rem, 2.75vw, .86rem);
    line-height: 1.26;
    overflow-wrap: anywhere;
  }
  .community-services-note {margin-top: 25px;font-size: .76rem;}
}
/* Centre the remaining two icons on the third mobile row (3 + 3 + 2). */
@media (max-width: 700px) {
  .community-services-grid {grid-template-columns: repeat(6,minmax(0,1fr));}
  .community-service-item {grid-column: span 2;}
  .community-service-item:nth-child(7) {grid-column: 2 / span 2;}
  .community-service-item:nth-child(8) {grid-column: 4 / span 2;}
  .community-service-label {font-size: clamp(.76rem, 3vw, .93rem);}
}

/* ============================================================
   NEVEA TERREBONNE V5.10 — OCTOBRE 2026
   Fond harmonise avec le carrousel espaces communs.
   Tableau estimatif : colonnes plus compactes en mobile seulement.
   ============================================================ */
.community-services-section {
  background: #eff3ee;
}
@media (max-width: 820px) {
  .rent-value-table {
    min-width: 590px;
    font-size: .77rem;
  }
  .rent-value-table thead th {
    font-size: .65rem;
    letter-spacing: 0;
  }
  .rent-value-table th,
  .rent-value-table td {
    padding: 11px 5px;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }
  .rent-value-table thead th {padding: 12px 4px;}
}
@media (max-width: 600px) {
  .rent-value-table {min-width: 540px;font-size: .72rem;}
  .rent-value-table th,
  .rent-value-table td {padding: 9px 4px;}
  .rent-value-table thead th {padding: 10px 3px;font-size: .61rem;}
}

/* V5.11 — Incluse dans le loyer : fond uni identique au bloc Appartements. */
.apartments-section-spacer, .rent-inclusions-section { background: var(--ivory); background-image: none; }

/* V5.12 — Rapprochement du titre Espaces communs du carrousel precedent. */
.community-services-section { padding-top: 14px; }
@media (max-width: 700px) { .community-services-section { padding-top: 12px; } }


/* ============================================================
   NEVEA TERREBONNE V5.13 - PICTOGRAMMES MONOCHROMES
   Appartements / inclus dans le loyer + Espaces communs.
   Traits renforces, bouts et angles arrondis, sans aplats colores.
   Fonds et grilles de sections inchanges par rapport a V5.12.
   ============================================================ */
.rent-inclusion-icon,
.community-service-icon {
  background: #fffdf8;
  color: #292e2a;
  border: 1px solid rgba(41, 46, 42, .11);
}
.rent-inclusion-icon svg,
.community-service-icon svg {
  stroke: currentColor;
  stroke-width: 3.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}


/* V5.16 - Descriptifs enrichis des trois indicateurs de la section Projet. */
.project-mini {
  grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, 1fr));
}
.project-mini .project-mini-lead { display:block; }
.project-mini .project-mini-detail {
  display:block;
  margin-top:6px;
  font-size:clamp(.9rem, 1.04vw, 1.03rem);
  font-weight:400;
  line-height:1.45;
}
@media (max-width:600px) {
  .project-mini { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-mini > span:first-child { grid-column: 1 / -1; }
}
@media (max-width:440px) {
  .project-mini { grid-template-columns:1fr; }
  .project-mini > span:first-child { grid-column:auto; display:block; }
}

/* V5.17 — Trois descriptifs identiques en taille, indépendamment de leur longueur. */
.project-mini > span > .project-mini-copy {
  display: block;
  width: auto;
  max-width: none;
  margin: 0;
  font: inherit;
  color: inherit;
  line-height: 1.43;
  overflow-wrap: break-word;
}
/* L’unité « pi » du bassin est en exposant (sans carré). */
.project-mini b > sup {
  font-size: .47em;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 0;
  vertical-align: super;
}
@media (max-width: 440px) {
  /* Valeur au-dessus du descriptif, identiquement pour les trois statistiques. */
  .project-mini > span {display:block;}
  .project-mini > span > b {display:block;min-width:0;margin-bottom:8px;}
}

/* V5.18 — Nouvelle ligne de détails sous la superficie des espaces communs. */
.project-mini > span > .project-mini-copy.project-mini-extra {
  margin-top: 7px;
}

/* ============================================================
   NEVEA TERREBONNE V5.20 — RAPPORTS VERTICAUX ACCUEIL
   - Bloc Espaces communs : reduit la zone vide sous la galerie
     tout en conservant le format panoramique 16:9.
   - Bloc Quartier : titre, description et CTA places plus haut.
   - Ajustements limites a ces sections, FR/EN et responsive.
   ============================================================ */
@media (min-width: 821px) {
  .feature.feature-services { min-height: 0; }
  .feature-services .feature-gallery { align-self: end; }
  .feature-services .feature-copy {
    padding-top: clamp(26px, 2.6vw, 42px);
    padding-bottom: clamp(18px, 2.1vw, 34px);
  }
  .feature-services .feature-line { margin-top: 26px; }
}
.community-services-section { padding-top: clamp(25px, 2.8vw, 40px); }
.feature-neighbourhood .feature-copy {
  align-items: flex-start;
  padding-top: 12px;
  padding-bottom: clamp(32px, 4vw, 68px);
}
@media (max-width: 820px) {
  .feature.feature-services { min-height: 0; }
  .feature-services .feature-gallery { align-self: stretch; }
  .feature-services .feature-copy { padding-bottom: 26px; }
  .feature-services .feature-line { margin-top: 24px; }
  .feature-neighbourhood .feature-copy {
    padding-top: 18px;
    padding-bottom: 40px;
  }
}
@media (max-width: 700px) {
  .community-services-section { padding-top: 25px; }
}


/* V5.22 — Textes des carrousels agrandis sur l’ensemble du site. */
.gallery-slide figcaption {
  font-size: clamp(1.12rem, 1.28vw, 1.38rem);
  line-height: 1.45;
}
.gallery-slide figcaption span {
  font-size: clamp(.78rem, .9vw, .94rem);
  line-height: 1.45;
}
@media (max-width: 600px) {
  .gallery-slide figcaption {
    font-size: .98rem;
    line-height: 1.45;
    padding: 42px 16px 60px;
  }
  .gallery-slide figcaption span {
    font-size: .72rem;
    line-height: 1.42;
  }
  .feature-apartments .gallery-slide figcaption,
  .gallery-full.apartment-gallery .gallery-slide figcaption {
    font-size: .98rem;
    padding: 42px 16px 60px;
  }
  .feature-apartments .gallery-slide figcaption span,
  .gallery-full.apartment-gallery .gallery-slide figcaption span {
    font-size: .72rem;
  }
}

/* V5.23 : aligner la fleche du hero apres suppression de l’avertissement. */
.hero-bottom { justify-content: flex-end; }


/* V5.25 — Section 1VALET sur la page Appartements uniquement (FR/EN). */
.onevalet-showcase {
  background: #e8eee7;
  color: var(--ink);
  padding: clamp(64px, 7.6vw, 112px) 0;
}
.onevalet-layout {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: clamp(42px, 5.5vw, 105px);
  align-items: center;
}
.onevalet-visual {
  display: flex;
  align-items: center;
  justify-content: center;
}
.onevalet-image-shell {
  width: min(100%, 460px);
  margin: 0;
  background: #fffdf8;
  padding: clamp(11px, 1.4vw, 18px);
  border: 1px solid rgba(41, 53, 47, .08);
  border-radius: 20px;
  box-shadow: 0 25px 65px rgba(41, 53, 47, .12);
}
.onevalet-image-shell img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 385 / 318;
  border-radius: 11px;
  object-fit: contain;
}
.onevalet-copy .eyebrow {
  margin-bottom: 18px;
  color: var(--forest);
}
.onevalet-copy h2 {
  font-size: clamp(2.45rem, 3.7vw, 4.4rem);
  line-height: 1.12;
  letter-spacing: -.045em;
  max-width: 750px;
}
.onevalet-copy .onevalet-lead {
  margin: 22px 0 0;
  max-width: 680px;
  color: #4d6257;
  line-height: 1.68;
  font-size: clamp(1.12rem, 1.42vw, 1.34rem);
}
.onevalet-lead strong { color: #244d3e; font-weight: 700; }
.onevalet-benefits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(20px, 2.3vw, 42px);
  row-gap: 26px;
  margin-top: 34px;
}
.onevalet-benefit {
  border-top: 1px solid #b9c8bc;
  padding-top: 15px;
}
.onevalet-benefit h3 {
  margin: 0 0 8px;
  font-size: clamp(1.16rem, 1.34vw, 1.38rem);
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: -.015em;
}
.onevalet-benefit p {
  margin: 0;
  font-size: clamp(1.03rem, 1.08vw, 1.12rem);
  line-height: 1.65;
  color: #5b7064;
}
@media (max-width: 1050px) {
  .onevalet-layout { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: 38px; }
  .onevalet-benefits { gap: 22px; }
}
@media (max-width: 820px) {
  .onevalet-layout { grid-template-columns: 1fr; gap: 42px; }
  .onevalet-image-shell { width: min(100%, 460px); }
  .onevalet-copy { max-width: 720px; }
}
@media (max-width: 600px) {
  .onevalet-showcase { padding: 62px 0 70px; }
  .onevalet-layout { gap: 38px; }
  .onevalet-image-shell { width: min(100%, 380px); border-radius: 16px; padding: 11px; }
  .onevalet-copy h2 { font-size: clamp(2.4rem, 10.3vw, 3.4rem); }
  .onevalet-copy .onevalet-lead { font-size: 1.08rem; }
  .onevalet-benefits { grid-template-columns: 1fr; gap: 20px; margin-top: 26px; }
  .onevalet-benefit { padding-top: 13px; }
  .onevalet-benefit h3 { font-size: 1.2rem; }
  .onevalet-benefit p { font-size: 1.04rem; }
}


/* V5.27 — Typographie 1VALET nettement agrandie (page Appartements uniquement). */
.onevalet-copy .onevalet-lead {
  font-size: clamp(1.38rem, 1.8vw, 1.7rem);
  line-height: 1.56;
}
.onevalet-benefit h3 {
  font-size: clamp(1.46rem, 1.75vw, 1.75rem);
  line-height: 1.3;
  margin-bottom: 12px;
}
.onevalet-benefit p {
  font-size: clamp(1.22rem, 1.35vw, 1.43rem);
  line-height: 1.55;
}
@media (max-width: 600px) {
  .onevalet-copy .onevalet-lead { font-size: 1.28rem; }
  .onevalet-benefit h3 { font-size: 1.43rem; }
  .onevalet-benefit p { font-size: 1.19rem; }
}


/* V5.31 — Baseline du logo en blanc pur, affinée et alignée exactement
   sur les côtés du mot-symbole Névéa, du bureau au mobile. La largeur
   native du mot-symbole occupe x=4 à x=936 dans le visuel 960 px.
   Le SVG de typographie reste net et n'affecte jamais l'image du logo. */
.site-header .brand {
  position: relative;
  container-type: inline-size;
}
.site-header .brand img {
  /* Cache seulement la signature pâle d'origine, sans toucher à Névéa. */
  clip-path: inset(0 0 14% 0);
}
.site-header .brand-tagline {
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 960 / 52;
  pointer-events: none;
}
.site-header .brand-tagline svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.site-header .brand-tagline text {
  fill: #fff;
  font-family: var(--nevea-font);
  font-size: 47px;
  font-weight: 400;
  text-rendering: geometricPrecision;
}


/* V5.34 — Libellés des pictogrammes harmonisés et agrandis.
   Identiques pour les neuf inclusions du loyer et les huit services communs,
   sur l'accueil et la page Appartements, FR/EN. */
.rent-inclusion-label,
.community-service-label {
  font-size: clamp(.95rem, 1.08vw, 1.06rem);
  line-height: 1.36;
  font-weight: 440;
}
@media (max-width: 1180px) {
  .rent-inclusion-label,
  .community-service-label { font-size: .98rem; }
}
@media (max-width: 700px) {
  .rent-inclusion-label,
  .community-service-label { font-size: .88rem; line-height: 1.32; }
}

/* V5.35 — Légère hausse supplémentaire et harmonisée des 17 légendes,
   en français et anglais, sans changer les pictogrammes ni les grilles. */
.rent-inclusion-label,
.community-service-label {
  font-size: clamp(1.04rem, 1.20vw, 1.16rem);
  line-height: 1.36;
}
@media (max-width: 1180px) {
  .rent-inclusion-label,
  .community-service-label { font-size: 1.06rem; }
}
@media (max-width: 700px) {
  .rent-inclusion-label,
  .community-service-label { font-size: .95rem; line-height: 1.34; }
}


/* V5.36 — La ligne sous le bouton Appartements s'aligne sur le bas
   de la photographie, en disposition cote a cote (ordinateur).
   Aucun changement sur mobile / tablette, ou autres carrousels. */
@media (min-width: 1201px) {
  .feature.feature-apartments .feature-copy {
    padding-bottom: 0;
  }
}


/* ============================================================
   V5.37 — ALIGNEMENT DU TRAIT SOUS LE BOUTON "SERVICES"
   Le trait du bloc Espaces communs est aligne sur le bas du carrousel
   sur ordinateur, comme pour le bloc Appartements.
   ============================================================ */
@media (min-width: 821px) {
  .feature-services .feature-copy {
    align-items: stretch;
  }
  .feature-services .feature-copy-in {
    display: flex;
    flex-direction: column;
    min-height: 100%;
  }
  .feature-services .feature-line {
    margin-top: auto;
  }
}


/* V5.38 — Espaces communs : trait de séparation réellement aligné
   sur le bas de la galerie. Conserve l'espacement sous le bouton
   en transférant la marge basse du conteneur sur le trait lui-même.
   Aucun changement au rendu empilé sur mobile / tablette. */
@media (min-width: 821px) {
  .feature.feature-services .feature-copy {
    padding-bottom: 0;
  }
  .feature-services .feature-line {
    margin-top: clamp(18px, 2.1vw, 34px);
  }
}

/* V5.39 – Typographie globale inspiree de Bosco NDG : Inter.
   Variante libre et proche du modele visuel; logo image conserve. */
:root { --nevea-font: 'Inter', 'Segoe UI', Arial, sans-serif; }
html, body, button, input, select, textarea,
.site-header, .desktop-nav, .mobile-nav, .nav-contact,
h1,h2,h3,h4,h5,h6,p,a,span,li,th,td,figcaption,label,
.btn,.eyebrow,.gallery-slide figcaption,.gallery-counter,
.rent-inclusion-label,.community-service-label,.project-mini,
.onevalet-showcase,.site-footer { font-family: var(--nevea-font) !important; }
h1,h2,h3,h4,h5,h6 { letter-spacing: -.038em; }
.hero h1, .inner-content h1 { font-weight: 700; letter-spacing: -.045em; }
.site-header .desktop-nav a, .site-header .mobile-nav a { font-weight: 600; }
/* Empecher les grands titres de deborder apres le changement de police. */
.hero h1, .inner-content h1, .feature-copy h2 { overflow-wrap: normal; }


/* V5.40 — Accueil : titre principal legerement reduit et plus large,
   afin d'obtenir deux lignes sur les ecrans de bureau usuels.
   Les petites largeurs conservent un dimensionnement lisible. */
.hero h1 {
  font-size: clamp(3.1rem, 5.45vw, 6.05rem);
  max-width: min(1200px, 67vw);
}
@media (max-width: 820px) {
  .hero h1 {
    font-size: clamp(2.4rem, 5.9vw, 3rem);
    max-width: 100%;
  }
}
@media (max-width: 600px) {
  .hero h1 {
    font-size: clamp(2.35rem, 6.8vw, 2.6rem);
    max-width: 100%;
  }
}


/* V5.42 — Harmonisation de l’espace au-dessus du titre
   « Inclus dans le loyer » pour qu’il corresponde à celui
   observé entre le carrousel Services et le titre
   « Espaces communs ». */
.apartments-section-spacer {
  height: 0;
}
@media (max-width: 600px) {
  .apartments-section-spacer {
    height: 0;
  }
}


/* V5.43 — Quartier Urbanova : décaler légèrement vers le bas
   la rubrique, le titre, le descriptif et le bouton QUARTIER.
   Le carrousel et le filet séparateur demeurent à leur place. */
.feature-neighbourhood .feature-copy-in > .eyebrow,
.feature-neighbourhood .feature-copy-in > h2,
.feature-neighbourhood .feature-copy-in > p,
.feature-neighbourhood .feature-copy-in > .btn {
  position: relative;
  top: clamp(18px, 2vw, 34px);
}


/* V5.44 — Pied de page : logo identique au bandeau supérieur,
   textes nettement agrandis et bas de page sur deux côtés. */
.footer-brand-logo {
  position: relative;
  display: block;
  width: 190px;
  max-width: 100%;
  container-type: inline-size;
}
.footer-brand-logo img {
  width: 100%;
  height: auto;
  max-height: 90px;
  object-fit: contain;
  clip-path: inset(0 0 14% 0);
}
.footer-brand-tagline {
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  aspect-ratio: 960 / 52;
  pointer-events: none;
}
.footer-brand-tagline svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.footer-brand-tagline text {
  fill: #fff;
  font-family: var(--nevea-font);
  font-size: 47px;
  font-weight: 400;
  text-rendering: geometricPrecision;
}
.site-footer h3 {
  font-size: 0.9rem;
  letter-spacing: 0.2em;
  margin-bottom: 24px;
}
.footer-brand p,
.footer-contact-col p {
  font-size: 1.38rem;
  line-height: 1.55;
  max-width: 34ch;
}
.footer-tag {
  font-size: 0.82rem;
  letter-spacing: 0.16em;
  margin-top: 34px;
}
.footer-nav-links {
  gap: 10px 34px;
}
.footer-nav-links a {
  font-size: 1.28rem;
  line-height: 1.9;
}
.footer-contact-col small {
  font-size: 0.86rem;
}
.footer-bottom {
  font-size: 0.92rem;
  align-items: center;
}
.footer-bottom a {
  color: #dbe9dd;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}
.footer-bottom a:hover {
  color: #ffffff;
}
@media (max-width: 820px) {
  .footer-brand-logo { width: 180px; }
  .footer-brand p,
  .footer-contact-col p,
  .footer-nav-links a { font-size: 1.18rem; }
  .footer-bottom { font-size: 0.88rem; }
}
@media (max-width: 600px) {
  .footer-brand-logo { width: 170px; }
  .footer-tag { font-size: 0.76rem; }
  .footer-brand p,
  .footer-contact-col p { font-size: 1.1rem; }
  .footer-nav-links a { font-size: 1.08rem; }
  .footer-bottom { font-size: 0.82rem; }
}


/* V5.45 — pied de page structuré avec réseaux sociaux et formulaire d'inscription. */
.site-footer { padding-top: 86px; }
.footer-main-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.1fr) minmax(200px, 0.75fr) minmax(320px, 0.95fr);
  gap: clamp(42px, 5vw, 92px);
  align-items: start;
  padding-bottom: 68px;
}
.footer-column-brand { display: flex; flex-direction: column; gap: 32px; }
.footer-info-blocks { display: flex; flex-direction: column; gap: 24px; }
.footer-info-item h3, .footer-column-nav > h3 { margin: 0 0 12px; }
.footer-info-item p { margin: 0; }
.footer-socials { display: flex; gap: 16px; align-items: center; padding-top: 8px; }
.footer-socials a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; color: #dfe6de; transition: color .2s ease, transform .2s ease;
}
.footer-socials a:hover { color: #ffffff; transform: translateY(-1px); }
.footer-socials svg { width: 24px; height: 24px; display: block; }
.footer-column-nav { padding-top: 22px; }
.footer-column-signup { display: flex; justify-content: flex-end; }
.footer-signup-card {
  width: min(100%, 520px);
  padding: clamp(28px, 3.5vw, 42px);
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(255,255,255,.02);
}
.footer-signup-card h2 {
  margin: 0 0 26px;
  color: #edf2ec;
  font-family: var(--nevea-font);
  font-size: clamp(2.1rem, 4vw, 3rem);
  line-height: 1.12;
  letter-spacing: -.035em;
  font-weight: 320;
  text-transform: uppercase;
}
.footer-form-notice { margin-bottom: 18px; }
.footer-signup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.footer-signup-grid label { display: flex; flex-direction: column; gap: 8px; color: #eef3ee; font-size: 1.02rem; }
.footer-signup-grid .wide { grid-column: 1 / -1; }
.footer-signup-grid input {
  width: 100%; border: 1px solid transparent; background: rgba(255,255,255,.03);
  color: #ffffff; padding: 14px 16px; outline: none; border-radius: 0; font-size: 1.05rem;
}
.footer-signup-grid input:focus { border-color: rgba(255,255,255,.7); box-shadow: 0 0 0 2px rgba(255,255,255,.12); }
.footer-signup-submit {
  margin-top: 26px; min-width: 220px; border: 1px solid rgba(255,255,255,.8); background: transparent; color: #f8f8f2;
  padding: 14px 24px; font-size: 1.18rem; font-family: var(--nevea-font); text-transform: uppercase; cursor: pointer; transition: background .2s ease, color .2s ease;
}
.footer-signup-submit:hover { background: #f3efe6; color: #2b2f2a; }
.footer-bottom { padding-top: 24px; }
@media (max-width: 1180px) {
  .footer-main-grid { grid-template-columns: 1fr 0.8fr; }
  .footer-column-signup { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 820px) {
  .footer-main-grid { grid-template-columns: 1fr; gap: 42px; }
  .footer-column-nav { padding-top: 0; }
  .footer-signup-card { width: 100%; }
}
@media (max-width: 600px) {
  .footer-signup-grid { grid-template-columns: 1fr; }
  .footer-signup-card h2 { font-size: 2rem; }
  .footer-signup-submit { width: 100%; }
}


/* V5.46 — Readability adjustments limited to footer content.
   Footer logo is no longer interactive; links and forms remain active. */
@media (min-width: 1181px) {
  .site-footer .footer-main-grid {
    /* Make room for the wider navigation labels without collisions. */
    grid-template-columns: minmax(260px, 1.05fr) minmax(315px, .95fr) minmax(335px, 1fr);
    gap: clamp(22px, 3vw, 56px);
  }
}
.site-footer .footer-column-nav .footer-nav-links a {
  font-size: 1.52rem;
  line-height: 1.6;
}
.site-footer .footer-column-nav .footer-nav-links {
  column-gap: 20px;
  row-gap: 10px;
}
.site-footer .footer-signup-grid label {
  font-size: 1.28rem;
  line-height: 1.35;
  font-weight: 500;
}
.site-footer .footer-signup-grid input {
  font-size: 1.14rem;
}
.site-footer .footer-bottom {
  font-size: 1.1rem;
  line-height: 1.65;
}
@media (min-width: 821px) and (max-width: 1180px) {
  .site-footer .footer-column-nav .footer-nav-links a { font-size: 1.4rem; }
}
@media (max-width: 820px) {
  .site-footer .footer-column-nav .footer-nav-links a { font-size: 1.38rem; }
  .site-footer .footer-signup-grid label { font-size: 1.18rem; }
  .site-footer .footer-bottom { font-size: 1rem; }
}
@media (max-width: 420px) {
  .site-footer .footer-column-nav .footer-nav-links a { font-size: 1.24rem; }
  .site-footer .footer-signup-grid label { font-size: 1.12rem; }
  .site-footer .footer-bottom { font-size: .98rem; }
}


/* V5.47 — Crédits du projet sous la navigation, logos sur fond sombre. */
.site-footer .footer-column-nav > h3,
.site-footer .footer-info-item h3 {
  font-size: 1.16rem;
  line-height: 1.3;
  font-weight: 650;
  letter-spacing: .11em;
}
.site-footer .footer-project-credits {
  margin-top: clamp(34px, 3.5vw, 48px);
  max-width: 440px;
}
.site-footer .footer-project-credit {
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.15);
}
.site-footer .footer-project-credit + .footer-project-credit {
  margin-top: 31px;
}
.site-footer .footer-project-credit h3 {
  color: #f2f5ef;
  font-size: clamp(1rem, 1.1vw, 1.15rem);
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: .055em;
  text-transform: uppercase;
  margin: 0 0 17px;
}
.site-footer .footer-project-credit-main > img {
  display: block;
  width: min(100%, 248px);
  height: auto;
  max-width: 100%;
}
.site-footer .footer-project-team-logos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  align-items: center;
  gap: clamp(8px, 1vw, 16px);
}
.site-footer .footer-project-team-logos img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media (max-width: 1180px) {
  .site-footer .footer-column-nav > h3,
  .site-footer .footer-info-item h3 {
    font-size: 1.06rem;
  }
}
@media (max-width: 600px) {
  .site-footer .footer-project-credits { max-width: 100%; margin-top: 34px; }
  .site-footer .footer-project-credit-main > img { width: min(100%, 248px); }
  .site-footer .footer-project-credit h3 { font-size: 1rem; }
  .site-footer .footer-column-nav > h3,
  .site-footer .footer-info-item h3 { font-size: 1.04rem; }
}


/* V5.48 — Footer credit title update + equalized project-team logo squares. */
.site-footer .footer-column-nav > h3,
.site-footer .footer-info-item h3 {
  font-size: 1.28rem;
  line-height: 1.3;
  font-weight: 650;
  letter-spacing: .115em;
}
.site-footer .footer-project-credit h3 {
  font-size: clamp(1.06rem, 1.15vw, 1.22rem);
}
.site-footer .footer-project-team-logos {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.site-footer .footer-project-team-logos img {
  width: 100%;
  height: auto;
  max-width: none;
}
@media (max-width: 600px) {
  .site-footer .footer-project-team-logos {
    grid-template-columns: 1fr;
  }
}


/* V5.48 — Footer without navigation links; owner/management/project credit stack. */
@media (min-width: 1181px) {
  .site-footer .footer-main-grid {
    grid-template-columns: minmax(260px, .98fr) minmax(280px, .88fr) minmax(420px, 1.12fr);
    gap: clamp(22px, 3vw, 52px);
  }
}
.site-footer .footer-column-nav {
  padding-top: 0;
}
.site-footer .footer-project-credits {
  margin-top: 0;
  max-width: 100%;
}
.site-footer .footer-project-credit {
  padding-top: 20px;
}
.site-footer .footer-project-credit:first-child {
  padding-top: 0;
  border-top: 0;
}
.site-footer .footer-project-credit h3 {
  color: #f2f5ef;
  font-size: clamp(1.08rem, 1.15vw, 1.24rem);
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: .055em;
  text-transform: uppercase;
  margin: 0 0 16px;
}
.site-footer .footer-project-credit-owner > img,
.site-footer .footer-project-credit-main > img {
  display: block;
  width: min(100%, 270px);
  height: auto;
  max-width: 100%;
}
.site-footer .footer-project-team-logos {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.site-footer .footer-project-team-logos img {
  width: 100%;
  height: auto;
  display: block;
}
.site-footer .footer-column-signup {
  justify-content: flex-start;
}
.site-footer .footer-signup-card {
  width: min(100%, 560px);
}
@media (max-width: 980px) {
  .site-footer .footer-column-signup { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .site-footer .footer-project-credit-owner > img,
  .site-footer .footer-project-credit-main > img {
    width: min(100%, 248px);
  }
  .site-footer .footer-project-team-logos {
    grid-template-columns: 1fr;
  }
}


/* V5.49 — Align the heading “Propriétaire actuel” with “PROJET” below
   the Névéa footer logo; use the same pure white for footer headings. */
@media (min-width: 821px) {
  .site-footer .footer-column-nav {
    /* footer logo height (69.7px at 190px wide) + 32px column gap */
    padding-top: 101.7px;
  }
}
@media (max-width: 820px) {
  .site-footer .footer-column-nav {
    padding-top: 0;
  }
}
.site-footer .footer-info-item h3,
.site-footer .footer-project-credit h3 {
  color: #ffffff;
}


/* V5.50 — Pied de page : les crédits débutent à hauteur du logo Névéa.
   La colonne des entreprises est élargie pour offrir environ 25 % de
   largeur supplémentaire aux trois petits logos sur ordinateur.
   Les deux grands logos conservent leur dimension précédente. */
@media (min-width: 1181px) {
  .site-footer .footer-main-grid {
    grid-template-columns: minmax(260px, .9fr) minmax(330px, 1.18fr) minmax(395px, 1.17fr);
    gap: clamp(22px, 3vw, 52px);
  }
}
@media (min-width: 821px) and (max-width: 1180px) {
  .site-footer .footer-main-grid {
    grid-template-columns: minmax(270px, .9fr) minmax(385px, 1.1fr);
  }
}
@media (min-width: 821px) {
  .site-footer .footer-column-nav {
    padding-top: 0;
  }
}


/* V5.51 — Identical typography for all six footer section headings,
   and explicit Inter family for the newsletter card, labels, fields and CTA.
   The newsletter's large title deliberately keeps its own visual hierarchy. */
.site-footer .footer-info-item h3,
.site-footer .footer-project-credit h3 {
  font-family: var(--nevea-font) !important;
  font-size: 1.28rem;
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: .115em;
  text-transform: uppercase;
  color: #fff;
}
.site-footer .footer-signup-card,
.site-footer .footer-signup-card h2,
.site-footer .footer-signup-grid label,
.site-footer .footer-signup-grid input,
.site-footer .footer-signup-submit {
  font-family: var(--nevea-font) !important;
}
@media (max-width: 600px) {
  .site-footer .footer-info-item h3,
  .site-footer .footer-project-credit h3 {
    font-size: 1.08rem;
    letter-spacing: .10em;
  }
}


/* V5.52 — Company logos open Groupe GDI in a new tab.
   Preserve the dimensions of the two large and three small logos. */
.site-footer .footer-project-credit-owner > .footer-company-logo-link,
.site-footer .footer-project-credit-main > .footer-company-logo-link {
  display: block;
  width: min(100%, 270px);
  max-width: 100%;
}
.site-footer .footer-project-credit-owner > .footer-company-logo-link img,
.site-footer .footer-project-credit-main > .footer-company-logo-link img {
  display: block;
  width: 100%;
  height: auto;
}
.site-footer .footer-project-team-logos .footer-company-logo-link {
  display: block;
  width: 100%;
  min-width: 0;
}
.site-footer .footer-project-team-logos .footer-company-logo-link img {
  display: block;
  width: 100%;
  height: auto;
}
.site-footer .footer-company-logo-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 4px;
}
@media (max-width: 600px) {
  .site-footer .footer-project-credit-owner > .footer-company-logo-link,
  .site-footer .footer-project-credit-main > .footer-company-logo-link {
    width: min(100%, 248px);
  }
}


/* V5.53 — Contact : harmoniser les titres des coordonnées avec les
   six titres du pied de page, sans réduire le contraste sur fond clair. */
.contact-body .contact-item > b {
  display: block;
  font-family: var(--nevea-font);
  font-size: 1.28rem;
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: .115em;
  text-transform: uppercase;
  color: var(--forest);
}
@media (max-width: 600px) {
  .contact-body .contact-item > b {
    font-size: 1.08rem;
    letter-spacing: .10em;
  }
}


/* V5.55 — Contact page: complete apartment inquiry form (FR/EN). */
.contact-form-card .nvtb-contact-form .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 25px);
}
.contact-form-card .nvtb-contact-form .form-grid > label {
  min-width: 0;
}
.contact-form-card .nvtb-contact-form .form-grid input:not([type="checkbox"]),
.contact-form-card .nvtb-contact-form .form-grid select,
.contact-form-card .nvtb-contact-form .form-grid textarea {
  display: block;
  width: 100%;
  background: #fcfdfb;
  color: #29352f;
  border: 1px solid #c9d7cb;
  border-radius: 0;
  padding: 14px 16px;
  font-family: var(--nevea-font, Inter, Arial, sans-serif);
  font-size: clamp(1.05rem, 1.15vw, 1.18rem);
  line-height: 1.45;
}
.contact-form-card .nvtb-contact-form .form-grid select {
  appearance: auto;
  cursor: pointer;
}
.contact-form-card .nvtb-contact-form .form-grid input:focus-visible,
.contact-form-card .nvtb-contact-form .form-grid select:focus-visible,
.contact-form-card .nvtb-contact-form .form-grid textarea:focus-visible {
  outline: 2px solid #47735f;
  outline-offset: 2px;
}
.contact-form-card .nvtb-apartment-fieldset {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.contact-form-card .nvtb-apartment-fieldset legend {
  color: #4e6756;
  font-family: var(--nevea-font, Inter, Arial, sans-serif);
  font-size: 1.18rem;
  font-weight: 450;
  margin-bottom: 12px;
}
.contact-form-card .nvtb-apartment-options {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 24px;
}
.contact-form-card .nvtb-apartment-option {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  color: #29352f;
  font-size: 1.12rem;
  line-height: 1.4;
  white-space: nowrap;
}
.contact-form-card .nvtb-apartment-option input,
.contact-form-card .nvtb-contact-updates input {
  width: 21px;
  height: 21px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: #47735f;
  cursor: pointer;
}
.contact-form-card .nvtb-contact-form .nvtb-contact-updates {
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: flex-start;
  cursor: pointer;
  color: #29352f;
  font-size: 1.08rem;
  line-height: 1.45;
  letter-spacing: 0;
}
.contact-form-card .nvtb-contact-updates input { margin-top: 3px; }
.contact-form-card .nvtb-contact-form .form-grid .wide { grid-column: 1 / -1; }
@media (max-width: 620px) {
  .contact-form-card .nvtb-contact-form .form-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-form-card .nvtb-apartment-options { gap: 10px 18px; }
  .contact-form-card .nvtb-apartment-option { font-size: 1.04rem; }
  .contact-form-card .nvtb-apartment-fieldset legend { font-size: 1.08rem; }
}


/* V5.57 — Portrait de l'équipe dans la colonne gauche de la page Contact.
   Le texte et les champs restent inchangés; le cadrage complet est conservé. */
.contact-body .contact-team-photo {
  display: block;
  width: min(100%, 390px);
  max-width: 100%;
  margin: clamp(32px, 3vw, 48px) 0 0;
}
.contact-body .contact-team-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 418 / 550;
  object-fit: contain;
}
@media (max-width: 820px) {
  .contact-body .contact-team-photo {
    width: min(100%, 418px);
    margin-top: 32px;
  }
}

/* V5.57 — Place the preserved contact details in a compact introduction above
   a clear photo/form two-column composition on desktop. */
@media (min-width: 821px) {
  .contact-body .contact-layout {
    grid-template-columns: minmax(280px, .88fr) minmax(0, 1.12fr);
    column-gap: clamp(32px, 4.5vw, 68px);
    row-gap: clamp(38px, 4.5vw, 68px);
    align-items: start;
  }
  .contact-body .contact-info {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: 0 clamp(40px, 6vw, 90px);
    align-items: start;
  }
  .contact-body .contact-intro {
    grid-row: 1 / span 2;
  }
  .contact-body .contact-info .contact-item {
    margin-top: 0;
    padding-top: 18px;
  }
  .contact-body .contact-info .contact-item + .contact-item {
    margin-top: 24px;
  }
  .contact-body .contact-team-photo {
    grid-column: 1;
    width: min(100%, 418px);
    margin: 0;
  }
  .contact-body .contact-form-card {
    grid-column: 2;
    align-self: start;
  }
}
@media (max-width: 820px) {
  .contact-body .contact-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .contact-body .contact-team-photo {
    margin-top: 0;
  }
  .contact-body .contact-info .contact-item {
    margin-top: 32px;
  }
}

/* Conserver la lisibilité et la taille du texte de présentation existant. */
.contact-body .contact-intro > p {
  font-size: clamp(1.65rem, 2.4vw, 2.6rem);
  line-height: 1.46;
  max-width: 650px;
  margin-top: 25px;
  color: #617268;
}
@media (max-width: 820px) {
  .contact-body .contact-intro > p {
    font-size: 1.5rem;
    line-height: 1.5;
  }
}


/* V5.58 — Page Contact : les coordonnées passent sous la photo, tout en
   maintenant la photo à gauche du formulaire et le texte d'introduction. */
.contact-body .contact-info {
  display: block;
}
.contact-body .contact-photo-and-details {
  min-width: 0;
}
.contact-body .contact-photo-and-details .contact-team-photo {
  width: min(100%, 418px);
  max-width: 100%;
  margin: 0;
  grid-column: auto;
}
.contact-body .contact-photo-and-details .contact-details {
  margin-top: clamp(30px, 3.5vw, 48px);
  max-width: 560px;
}
.contact-body .contact-photo-and-details .contact-item {
  margin-top: 0;
  padding-top: 22px;
}
.contact-body .contact-photo-and-details .contact-item + .contact-item {
  margin-top: 30px;
}
@media (min-width: 821px) {
  .contact-body .contact-info { grid-column: 1 / -1; }
  .contact-body .contact-photo-and-details { grid-column: 1; }
  .contact-body .contact-form-card { grid-column: 2; }
}
@media (max-width: 820px) {
  .contact-body .contact-info,
  .contact-body .contact-photo-and-details,
  .contact-body .contact-form-card { grid-column: 1; }
  .contact-body .contact-photo-and-details .contact-team-photo { margin-top: 0; }
  .contact-body .contact-photo-and-details .contact-details { margin-top: 32px; }
}


/* V5.59 — Page Contact : aligner précisément la fin du numéro de téléphone
   avec le bord inférieur de l’encadré blanc du formulaire (ordinateur).
   La version mobile conserve son empilement naturel. */
@media (min-width: 821px) {
  .contact-body .contact-photo-and-details {
    display: flex;
    flex-direction: column;
    align-self: stretch;
  }
  .contact-body .contact-photo-and-details .contact-details {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }
  .contact-body .contact-photo-and-details .contact-item:last-child {
    margin-top: auto;
  }
  .contact-body .contact-form-card {
    align-self: stretch;
  }
}


/* V5.60 — Page Contact : paragraphe à droite du titre, photo et formulaire
   rapprochés de l'introduction et conservés sur une même ligne. */
@media (min-width: 821px) {
  .contact-body .contact-layout {
    row-gap: clamp(22px, 2.5vw, 36px);
  }
  .contact-body .contact-info .contact-intro {
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    column-gap: clamp(32px, 4.5vw, 68px);
    align-items: start;
  }
  .contact-body .contact-intro > .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: clamp(18px, 2.2vw, 30px);
  }
  .contact-body .contact-intro > h2 {
    grid-column: 1;
    grid-row: 2;
    max-width: 100%;
    /* Two-line headline without splitting the word « chez-vous ». */
    font-size: clamp(2.1rem, 4vw, 3.625rem);
  }
  .contact-body .contact-intro > p {
    grid-column: 2;
    grid-row: 2;
    margin-top: 0;
    max-width: 100%;
  }
  .contact-body .contact-photo-and-details,
  .contact-body .contact-form-card {
    align-self: stretch;
  }
}
@media (max-width: 820px) {
  .contact-body .contact-layout {
    gap: 26px;
  }
}


/* V5.61 — Page Contact : retirer le soulignement du téléphone,
   en préservant le lien tel: cliquable et le repère clavier. */
.contact-body .contact-item a[href^="tel:"],
.contact-body .contact-item a[href^="tel:"]:hover {
  text-decoration: none;
}
.contact-body .contact-item a[href^="tel:"]:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}


/* V5.62 — Page Contact : photo à la même largeur visuelle que la ligne
   des coordonnées, et texte des coordonnées légèrement réduit pour ne pas
   dépasser le bas du formulaire. */
.contact-body .contact-photo-and-details {
  width: 100%;
  max-width: 560px;
}
.contact-body .contact-photo-and-details .contact-team-photo,
.contact-body .contact-photo-and-details .contact-details {
  width: 100%;
  max-width: none;
}
.contact-body .contact-photo-and-details .contact-item > p,
.contact-body .contact-photo-and-details .contact-item > p a {
  font-size: clamp(1.35rem, 1.7vw, 2rem);
  line-height: 1.34;
}
.contact-body .contact-photo-and-details .contact-item > b {
  font-size: 0.92rem;
  letter-spacing: 0.16em;
}
@media (min-width: 821px) {
  .contact-body .contact-photo-and-details .contact-details {
    margin-top: 26px;
  }
  .contact-body .contact-photo-and-details .contact-item {
    padding-top: 18px;
  }
  .contact-body .contact-photo-and-details .contact-item + .contact-item {
    margin-top: 24px;
  }
}
@media (max-width: 820px) {
  .contact-body .contact-photo-and-details {
    max-width: none;
  }
}


/* V5.63 — Le terme « chez-vous » reste insécable dans les titres de la page Contact. */
.nvtb-nowrap { white-space: nowrap; }


/* V5.64 — Pied de page mobile : les deux logos GDI du haut utilisent
   exactement le même visuel et la même échelle que les trois logos
   "Un projet réalisé par". Les images de la rangée ont des carrés
   identiques et les lettrages GDI / Construction ont la même hauteur. */
.site-footer .footer-responsive-company-logo {
  display: block;
  width: 100%;
}
.site-footer .footer-responsive-company-logo img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 600px) {
  .site-footer .footer-project-credit-owner > .footer-company-logo-link,
  .site-footer .footer-project-credit-main > .footer-company-logo-link,
  .site-footer .footer-project-team-logos > .footer-company-logo-link {
    display: block;
    width: 100%;
    max-width: none;
  }
  .site-footer .footer-project-credit-owner .footer-responsive-company-logo,
  .site-footer .footer-project-credit-main .footer-responsive-company-logo,
  .site-footer .footer-project-team-logos .footer-company-logo-link img {
    width: 100%;
  }
  .site-footer .footer-project-credit-owner .footer-responsive-company-logo img,
  .site-footer .footer-project-credit-main .footer-responsive-company-logo img {
    width: 100%;
    height: auto;
  }
}


/* V5.66 — Mobile footer only: keep all five company-logo rows on the
   exact same visual system. Every logo image uses the same full-width
   block, preserves its original aspect ratio, and stays fully visible so
   the colored square icons remain identical in scale and the wordmarks
   stay on clean uninterrupted lines. */
@media (max-width: 600px) {
  .site-footer .footer-project-credit-owner > .footer-company-logo-link,
  .site-footer .footer-project-credit-main > .footer-company-logo-link,
  .site-footer .footer-project-team-logos > .footer-company-logo-link {
    width: 100%;
    max-width: none;
  }

  .site-footer .footer-project-credit-owner .footer-responsive-company-logo,
  .site-footer .footer-project-credit-main .footer-responsive-company-logo,
  .site-footer .footer-project-credit-owner .footer-responsive-company-logo img,
  .site-footer .footer-project-credit-main .footer-responsive-company-logo img,
  .site-footer .footer-project-team-logos > .footer-company-logo-link img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }
}


/* V5.67 — Construction GDI: match the gap between the blue square and
   wordmark to Groupe GDI, on mobile only. The alternate mobile PNG
   preserves the square and text scale, only shifting the text 9px. */
@media (max-width: 600px) {
  .site-footer .footer-construction-mobile-picture {
    display: block;
    width: 100%;
  }
  .site-footer .footer-construction-mobile-picture img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }
}


/* V5.68 — Le pied de page sur ordinateur utilise les versions des logos
   Construction GDI et GDI Électrique dont l’espacement carré / texte
   correspond exactement au logo Groupe GDI.
   Les images utilisées sur écran mobile et tablette sont inchangées. */
.site-footer .footer-project-team-logos .footer-company-logo-link picture {
  display: block;
  width: 100%;
}
.site-footer .footer-project-team-logos .footer-company-logo-link picture img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}


/* V5.69 — Alignement ordinateur : les icônes sociales sont positionnées
   sur la ligne du bas des trois logos « Un projet réalisé par ».
   La distance exacte est recalculée lorsque le contenu ou la largeur évolue.
   Aucun déplacement sur mobile (<= 820px). */
@media (min-width: 821px) {
  .site-footer .footer-socials {
    transform: translateY(var(--nvtb-social-align, 0px));
  }
}
/* À la jonction de la mise en page à trois colonnes, libérer la place
   nécessaire au-dessus des icônes sans chevaucher le numéro de téléphone. */
@media (min-width: 1181px) and (max-width: 1250px) {
  .site-footer .footer-column-brand { gap: 16px; }
  .site-footer .footer-info-blocks { gap: 18px; }
}


/* V5.70 — Alignement du bord VISIBLE de Facebook sur le bord gauche
   du numéro de téléphone (les 13px compensent le centrage du SVG dans
   son bouton de 34px et l’espace vide intégré au dessin Facebook). */
.site-footer .footer-socials {
  margin-inline-start: -13px;
}
/* Le numéro de version figure sous « Site web : Groupe GDI », à droite
   sur PC et à gauche dans la pile mobile du pied de page. */
.site-footer .footer-version {
  display: block;
  font-family: var(--nevea-font, Inter, Arial, sans-serif);
  font-size: .78em;
  line-height: 1.55;
  color: #b6c1b7;
  margin-top: 2px;
  white-space: nowrap;
}


/* V5.71 — Centre seulement le numéro de version dans le pied de page
   responsive; la mention de création du site reste alignée comme avant. */
@media (max-width: 820px) {
  .site-footer .footer-bottom > span:last-child {
    width: 100%;
    max-width: none;
  }
  .site-footer .footer-bottom .footer-version {
    width: 100%;
    text-align: center;
  }
}


/* V5.72 — Centre aussi le lien « Site web créé par : Groupe GDI »
   sous les écrans mobiles/tablettes; conserve le rendu PC intact. */
@media (max-width: 820px) {
  .site-footer .footer-bottom > span:last-child {
    text-align: center;
  }
}


/* ============================================================
   NEVEA TERREBONNE V5.74 — SECTION "ESPACE COMMUN" / "COMMON AREAS"
   Nouvelle section ajoutée au-dessus de Services sur la page d'accueil.
   Pastilles harmonisées avec le style existant du site.
   ============================================================ */
.common-areas-section {
  background: #eff3ee;
  color: #29352f;
  padding: clamp(44px, 5vw, 72px) clamp(12px, 2.8vw, 42px) clamp(18px, 2.2vw, 30px);
}
.common-areas-container {
  max-width: 1360px;
  margin-inline: auto;
}
.common-areas-section h2 {
  text-align: center;
  font-size: clamp(2.15rem, 3.2vw, 3.45rem);
  font-weight: 420;
  letter-spacing: -.018em;
  line-height: 1.15;
  color: #29352f;
  margin: 0 0 clamp(26px, 3.2vw, 42px);
}
.common-areas-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px clamp(10px, 1.2vw, 22px);
  list-style: none;
  padding: 0;
  margin: 0;
}
.common-area-item {
  flex: 0 1 clamp(180px, 20.5%, 230px);
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  text-align: center;
}
.common-area-icon {
  flex: none;
  width: clamp(86px, 7.8vw, 116px);
  height: clamp(86px, 7.8vw, 116px);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #faf8f0;
  color: #47786d;
  border: 1px solid rgba(255,255,255,.45);
}
.common-area-icon svg {
  display: block;
  width: 61%;
  height: 61%;
}
.common-area-label {
  display: block;
  min-width: 0;
  max-width: 18ch;
  font-size: clamp(.94rem, 1.02vw, 1.08rem);
  line-height: 1.28;
  font-weight: 440;
  color: #35473d;
  text-wrap: balance;
}
.community-services-section {
  padding-top: clamp(20px, 2vw, 28px);
}
@media (max-width: 980px) {
  .common-area-item { flex-basis: clamp(160px, 30%, 210px); }
}
@media (max-width: 700px) {
  .common-areas-section {
    padding: 40px 10px 16px;
  }
  .common-areas-section h2 {
    margin-bottom: 25px;
    font-size: clamp(1.85rem, 6.4vw, 2.45rem);
  }
  .common-areas-grid {
    gap: 24px 8px;
  }
  .common-area-item {
    flex: 0 1 calc(33.333% - 8px);
    gap: 9px;
  }
  .common-area-icon {
    width: clamp(59px, 18.5vw, 88px);
    height: clamp(59px, 18.5vw, 88px);
  }
  .common-area-label {
    max-width: 11ch;
    font-size: clamp(.76rem, 3vw, .93rem);
    line-height: 1.26;
  }
  .community-services-section { padding-top: 18px; }
}


/* V5.75 — Icônes du visuel validé, détourées avec transparence.
   Section « Espace commun » sur blanc pur; la section « Services » demeure inchangée. */
.common-areas-section {
  background: #fff;
  padding-top: clamp(42px, 4.3vw, 66px);
  padding-bottom: clamp(40px, 4.2vw, 62px);
}
.common-areas-container {
  max-width: 1320px;
}
.common-areas-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  column-gap: clamp(8px, 1.2vw, 18px);
  row-gap: clamp(28px, 3.2vw, 48px);
  justify-items: center;
  align-items: start;
  max-width: 1200px;
  margin-inline: auto;
}
.common-area-item {
  flex: none;
  grid-column: span 2;
  width: 100%;
  max-width: 250px;
  min-width: 0;
  gap: clamp(8px, 1vw, 12px);
}
/* Original illustration layout, after dropping coworking and rooftop terrace: 4 / 3 / 2. */
.common-area-item:nth-child(5) { grid-row: 2; grid-column: 2 / span 2; }
.common-area-item:nth-child(6) { grid-row: 2; grid-column: 4 / span 2; }
.common-area-item:nth-child(7) { grid-row: 2; grid-column: 6 / span 2; }
.common-area-item:nth-child(8) { grid-row: 3; grid-column: 3 / span 2; }
.common-area-item:nth-child(9) { grid-row: 3; grid-column: 5 / span 2; }
.common-area-icon {
  background: transparent;
  color: inherit;
  border: 0;
  width: clamp(108px, 9.1vw, 132px);
  height: clamp(108px, 9.1vw, 132px);
  padding: 0;
  overflow: visible;
}
.common-area-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.common-area-label {
  color: #29352f;
  font-size: clamp(0.98rem, 1.13vw, 1.1rem);
  line-height: 1.35;
  max-width: 20ch;
  hyphens: none;
  overflow-wrap: normal;
  text-wrap: balance;
}
@media (max-width: 980px) {
  .common-areas-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .common-area-item,
  .common-area-item:nth-child(n) { grid-column: span 2; grid-row: auto; }
}
@media (max-width: 700px) {
  .common-areas-section { background: #fff; padding: 40px 10px 36px; }
  .common-areas-grid {
    grid-template-columns: repeat(6,minmax(0,1fr));
    column-gap: 8px;
    row-gap: 27px;
  }
  .common-area-item,
  .common-area-item:nth-child(n) {
    flex: none;
    grid-column: span 2;
    grid-row: auto;
    gap: 9px;
  }
  .common-area-icon {
    width: clamp(72px, 20vw, 92px);
    height: clamp(72px, 20vw, 92px);
  }
  .common-area-label { font-size: clamp(.79rem, 3vw, .95rem); max-width: 12ch; }
}


/* V5.77 — Retour à l'apparence V5.75 (pastilles vertes, traits blancs),
   mais sur deux rangées 5 + 4 pour les écrans d'ordinateur seulement. */
@media (min-width: 901px) {
  .common-areas-grid {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .common-areas-grid > .common-area-item {
    grid-column: span 2;
    grid-row: auto;
  }
  /* Rangée du bas centrée sur la même grille que les cinq du haut. */
  .common-areas-grid > .common-area-item:nth-child(6) { grid-column: 2 / span 2; grid-row: 2; }
  .common-areas-grid > .common-area-item:nth-child(7) { grid-column: 4 / span 2; grid-row: 2; }
  .common-areas-grid > .common-area-item:nth-child(8) { grid-column: 6 / span 2; grid-row: 2; }
  .common-areas-grid > .common-area-item:nth-child(9) { grid-column: 8 / span 2; grid-row: 2; }
}


/* V5.78 — Libellés de TOUTES les pastilles agrandis, harmonisés :
   « Inclus dans le loyer », « Espaces communs » et « Services ».
   Aucune modification des dimensions, visuels et couleurs des pastilles. */
.rent-inclusion-label,
.common-area-label,
.community-service-label {
  font-size: clamp(1.15rem, 1.35vw, 1.27rem);
  line-height: 1.34;
  font-weight: 440;
  text-wrap: balance;
}
@media (max-width: 1180px) {
  .rent-inclusion-label,
  .common-area-label,
  .community-service-label {
    font-size: 1.16rem;
    line-height: 1.34;
  }
}
@media (max-width: 700px) {
  .rent-inclusion-label,
  .common-area-label,
  .community-service-label {
    font-size: 1.08rem;
    line-height: 1.3;
  }
}
@media (max-width: 360px) {
  .rent-inclusion-label,
  .common-area-label,
  .community-service-label {
    font-size: 1.02rem;
  }
}
@media (max-width: 700px) {
  /* Les légendes longues utilisent toute la largeur de leur cellule. */
  .common-area-label { max-width: 100%; overflow-wrap: anywhere; }
}
@media (min-width: 361px) and (max-width: 700px) {
  /* Évite de couper « communautaires » au milieu sur téléphone. */
  .common-area-item:nth-child(8) .common-area-label { min-width: 140px; }
}


/* V5.79 — Renforcer la lisibilité des trois mentions tout en bas du site :
   copyright, crédit de création du site et numéro de version. Les positions
   restent inchangées : alignement de part et d'autre sur ordinateur, lien et
   numéro de version centrés sur mobile. */
.site-footer .footer-bottom {
  font-size: 1.4rem;
  line-height: 1.55;
}
.site-footer .footer-bottom .footer-version {
  font-size: .88em;
  line-height: 1.5;
  margin-top: 3px;
}
@media (max-width: 820px) {
  .site-footer .footer-bottom {
    font-size: 1.18rem;
  }
}
@media (max-width: 420px) {
  .site-footer .footer-bottom {
    font-size: 1.1rem;
  }
}


/* V5.80 — Assortir le fond du bandeau d’inscription au vert des pastilles ESPACES COMMUNS (#517c6b). Conserver le motif et la disposition. */


/* V5.81 — Frise de progression Névéa Terrebonne dans le bandeau d'inscription.
   La trame et la couleur vert #517c6b sont conservées; forme inspirée du visuel fourni.
   4 jalons, sur une rangée desktop, puis 2 par rangée sur tablette/mobile. */
.cta-band.cta-with-timeline .cta-grid {
  padding-bottom: clamp(24px, 3vw, 42px);
}
.cta-band.cta-with-timeline .cta-timeline {
  position: relative;
  z-index: 1;
  padding-bottom: clamp(65px, 5.5vw, 90px);
}
.cta-timeline-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(16px, 2.5vw, 36px);
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  isolation: isolate;
}
.cta-timeline-track::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 7%;
  right: 7%;
  top: 50%;
  border-top: 1px solid rgba(255,255,255,.64);
  pointer-events: none;
}
.cta-timeline-step {
  min-width: 0;
  width: 100%;
  aspect-ratio: 1.17 / 1;
  display: grid;
  place-items: center;
  padding: 18px;
  background: #4b7666;
  border: 1.2px solid rgba(255,255,255,.73);
  border-radius: 3% 47% 47% 46%;
  box-shadow: 10px -6px 0 rgba(17,51,40,.095);
  color: #fff;
  text-align: center;
  position: relative;
}
.cta-timeline-step:nth-child(2) {
  border-radius: 48% 48% 3% 48%;
}
.cta-timeline-step:nth-child(3) {
  border-radius: 4% 47% 47% 47%;
}
.cta-timeline-step:nth-child(4) {
  border: 9px solid #fffdf8;
  border-radius: 47% 4% 47% 4%;
  background: #4b7666;
  box-shadow: none;
}
.cta-timeline-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 100%;
  position: relative;
  z-index: 1;
}
.cta-timeline-date {
  display: block;
  font-weight: 750;
  font-size: clamp(1.1rem, 1.48vw, 1.42rem);
  line-height: 1.26;
  color: #fff;
  text-wrap: balance;
}
.cta-timeline-label {
  display: block;
  font-size: clamp(1rem, 1.25vw, 1.24rem);
  line-height: 1.37;
  color: #f6fbf6;
  font-weight: 400;
  max-width: 18ch;
  text-wrap: balance;
}
@media (max-width: 1100px) {
  .cta-timeline-step { padding: 13px; }
  .cta-timeline-date { font-size: clamp(.99rem, 1.52vw, 1.18rem); }
  .cta-timeline-label { font-size: clamp(.92rem, 1.32vw, 1.05rem); }
}
@media (max-width: 800px) {
  .cta-timeline-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 25px 22px;
    max-width: 625px;
    margin-inline: auto;
  }
  .cta-timeline-track::before { display: none; }
  .cta-timeline-step { aspect-ratio: 1.14 / 1; }
  .cta-timeline-date { font-size: clamp(1.03rem, 2.7vw, 1.27rem); }
  .cta-timeline-label { font-size: clamp(.95rem, 2.4vw, 1.14rem); }
  .cta-timeline-step:nth-child(4) {border-width: 7px;}
}
@media (max-width: 420px) {
  .cta-timeline-track { gap: 15px 13px; }
  .cta-timeline-step {
    padding: 9px;
    aspect-ratio: 1.03 / 1;
  }
  .cta-timeline-date { font-size: clamp(.9rem, 4vw, 1.05rem); }
  .cta-timeline-label { font-size: clamp(.83rem, 3.3vw, .97rem); }
  .cta-timeline-step:nth-child(4) { border-width: 6px; }
}
@media (max-width: 340px) {
  .cta-timeline-step { aspect-ratio: .95 / 1; padding: 6px; }
  .cta-timeline-date { font-size: .84rem; }
  .cta-timeline-label { font-size: .8rem; }
}


/* V5.82 — Frise compacte dans le bandeau CTA : conserver la hauteur du bandeau,
   compresser la frise à gauche et placer le texte/CTA à droite. */
.cta-band.cta-with-timeline .cta-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(340px, .92fr) minmax(0, 1.08fr);
  gap: clamp(32px, 4vw, 68px);
  align-items: center;
  padding: clamp(46px, 5vw, 64px) 0;
}
.cta-band.cta-with-timeline .cta-timeline-panel {
  min-width: 0;
}
.cta-band.cta-with-timeline .cta-timeline-panel .eyebrow {
  display: block;
  margin-bottom: 18px;
}
.cta-band.cta-with-timeline .cta-copy-panel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.cta-band.cta-with-timeline .cta-copy-panel h2 {
  margin-bottom: 12px;
}
.cta-band.cta-with-timeline .cta-copy-panel p {
  max-width: 30ch;
  margin-bottom: 24px;
}
.cta-band.cta-with-timeline .cta-copy-panel .btn {
  min-width: 230px;
}
.cta-band.cta-with-timeline .cta-timeline-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(10px, 1.25vw, 18px);
  width: min(100%, 740px);
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  isolation: isolate;
}
.cta-band.cta-with-timeline .cta-timeline-track::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 11%;
  right: 11%;
  top: 50%;
  border-top: 1px solid rgba(255,255,255,.62);
  transform: translateY(-50%);
  pointer-events: none;
}
.cta-band.cta-with-timeline .cta-timeline-step {
  min-width: 0;
  width: 100%;
  aspect-ratio: 1.02 / 1;
  display: grid;
  place-items: center;
  padding: 12px 10px;
  background: #4b7666;
  border: 1.2px solid rgba(255,255,255,.72);
  border-radius: 3% 47% 47% 46%;
  box-shadow: 8px -5px 0 rgba(17,51,40,.09);
  color: #fff;
  text-align: center;
  position: relative;
}
.cta-band.cta-with-timeline .cta-timeline-step:nth-child(2) { border-radius: 48% 48% 3% 48%; }
.cta-band.cta-with-timeline .cta-timeline-step:nth-child(3) { border-radius: 4% 47% 47% 47%; }
.cta-band.cta-with-timeline .cta-timeline-step:nth-child(4) {
  border: 7px solid #fffdf8;
  border-radius: 47% 4% 47% 4%;
  background: #4b7666;
  box-shadow: none;
}
.cta-band.cta-with-timeline .cta-timeline-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  position: relative;
  z-index: 1;
}
.cta-band.cta-with-timeline .cta-timeline-date {
  display: block;
  font-weight: 750;
  font-size: clamp(1.12rem, 1.42vw, 1.36rem);
  line-height: 1.18;
  color: #fff;
  text-wrap: balance;
}
.cta-band.cta-with-timeline .cta-timeline-label {
  display: block;
  font-size: clamp(1.03rem, 1.22vw, 1.24rem);
  line-height: 1.25;
  color: #f6fbf6;
  font-weight: 400;
  max-width: 15ch;
  text-wrap: balance;
}
@media (max-width: 1200px) {
  .cta-band.cta-with-timeline .cta-layout {
    grid-template-columns: minmax(300px, .95fr) minmax(0, 1fr);
    gap: 28px 40px;
  }
  .cta-band.cta-with-timeline .cta-timeline-step { padding: 10px 8px; }
  .cta-band.cta-with-timeline .cta-timeline-date { font-size: clamp(1.03rem, 1.52vw, 1.25rem); }
  .cta-band.cta-with-timeline .cta-timeline-label { font-size: clamp(.97rem, 1.23vw, 1.16rem); }
}
@media (max-width: 980px) {
  .cta-band.cta-with-timeline .cta-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cta-band.cta-with-timeline .cta-copy-panel { order: 0; }
  .cta-band.cta-with-timeline .cta-copy-panel p { max-width: 40ch; }
  .cta-band.cta-with-timeline .cta-timeline-track {
    max-width: 760px;
  }
}
@media (max-width: 800px) {
  .cta-band.cta-with-timeline .cta-layout { padding: 54px 0; }
  .cta-band.cta-with-timeline .cta-timeline-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 18px;
    max-width: 560px;
    margin-inline: auto;
  }
  .cta-band.cta-with-timeline .cta-timeline-track::before { display: none; }
  .cta-band.cta-with-timeline .cta-timeline-step {
    aspect-ratio: 1.12 / 1;
    padding: 12px 10px;
  }
  .cta-band.cta-with-timeline .cta-timeline-date { font-size: clamp(1.18rem, 3.45vw, 1.42rem); }
  .cta-band.cta-with-timeline .cta-timeline-label { font-size: clamp(1.09rem, 2.95vw, 1.30rem); }
  .cta-band.cta-with-timeline .cta-timeline-step:nth-child(4) { border-width: 7px; }
}
@media (max-width: 420px) {
  .cta-band.cta-with-timeline .cta-copy-panel .btn { min-width: 0; width: 100%; justify-content: center; }
  .cta-band.cta-with-timeline .cta-timeline-track { gap: 15px 13px; }
  .cta-band.cta-with-timeline .cta-timeline-step {
    padding: 9px;
    aspect-ratio: 1.03 / 1;
  }
  .cta-band.cta-with-timeline .cta-timeline-date { font-size: clamp(1.08rem, 4.98vw, 1.28rem); }
  .cta-band.cta-with-timeline .cta-timeline-label { font-size: clamp(.99rem, 4.05vw, 1.18rem); }
  .cta-band.cta-with-timeline .cta-timeline-step:nth-child(4) { border-width: 6px; }
}

/* V5.83 — Bandeau : texte et bouton à gauche, frise à droite sur PC. Sur mobile, texte suivi de la frise. */

/* V5.84 — Texte des quatre jalons agrandi d’environ 10 %, sans toucher aux cadres. */

/* V5.85 — Augmentation additionnelle d’environ 15 % des dates et descriptions de la frise, sans changer ses formes ni le bandeau. */


/* V5.88 : Photo panoramique insérée uniquement dans la page Projet, entre
   les pastilles « Inclus dans le loyer » et « Espaces communs ». */
.project-courtyard-photo {
  display: block;
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
  overflow: hidden;
  background: #e9eeeb;
}
.project-courtyard-photo > img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 820px;
  aspect-ratio: 1672 / 941;
  object-fit: cover;
  object-position: center center;
}
@media (max-width: 700px) {
  .project-courtyard-photo > img {
    height: clamp(255px, 73vw, 450px);
    max-height: none;
    aspect-ratio: auto;
    object-position: 40% center;
  }
}


/* V5.89 : Agrandissement du texte de la frise UNIQUEMENT sur ordinateur. */
@media (min-width: 1201px) {
  .cta-band.cta-with-timeline .cta-timeline-date {
    font-size: clamp(1.28rem, 1.62vw, 1.52rem);
    line-height: 1.12;
  }
  .cta-band.cta-with-timeline .cta-timeline-label {
    font-size: clamp(1.13rem, 1.38vw, 1.3rem);
    line-height: 1.14;
  }
  .cta-band.cta-with-timeline .cta-timeline-copy {gap: 3px;}
  .cta-band.cta-with-timeline .cta-timeline-step {padding: 8px 5px;}
}


/* V5.92 — Chiffres et libellés du tableau d'estimation des inclusions
   nettement agrandis sur PC uniquement. Les règles mobile sont inchangées. */
@media (min-width: 1025px) {
  .rent-value-table {
    font-size: 1.42rem;
  }
  .rent-value-table thead th {
    font-size: 1.05rem;
    line-height: 1.35;
    padding: 23px 12px;
    font-weight: 750;
  }
  .rent-value-table tbody th,
  .rent-value-table tbody td {
    padding: 24px 12px;
    line-height: 1.3;
  }
  .rent-value-table tbody th[scope="row"] {
    font-weight: 600;
  }
}
@media (min-width: 1200px) {
  .rent-value-table {
    font-size: 1.65rem;
  }
  .rent-value-table thead th {
    font-size: 1.17rem;
    padding: 25px 12px;
  }
  .rent-value-table tbody th,
  .rent-value-table tbody td {
    padding: 26px 12px;
  }
}


/* V5.93 — Titres de colonnes plus gros que les chiffres du tableau.
   Seulement sur ordinateur : aucun impact sur les formats <= 1024px. */
@media (min-width: 1025px) {
  .rent-value-table thead th {
    font-size: 1.78rem;
    line-height: 1.18;
    font-weight: 800;
    letter-spacing: -.015em;
    padding: 24px 7px;
    overflow-wrap: normal;
    word-break: normal;
  }
  .rent-value-table thead th:nth-child(1) { width: 13%; }
  .rent-value-table thead th:nth-child(2) { width: 21%; }
  .rent-value-table thead th:nth-child(3) { width: 17%; }
  .rent-value-table thead th:nth-child(4) { width: 16%; }
  .rent-value-table thead th:nth-child(5) { width: 12%; }
  .rent-value-table thead th:nth-child(6) { width: 21%; }
}
@media (min-width: 1200px) {
  .rent-value-table thead th {
    font-size: 2.05rem;
    padding: 25px 7px;
  }
}


/* V5.94 — Tableau PC : police réduite pour les lettres et les chiffres,
   tout en gardant les titres de colonnes plus gros que les valeurs. */
@media (min-width: 1025px) {
  .rent-value-table {
    font-size: 1.16rem;
  }
  .rent-value-table thead th {
    font-size: 1.42rem;
    line-height: 1.16;
    font-weight: 790;
    letter-spacing: -.012em;
    padding: 21px 8px;
  }
  .rent-value-table tbody th,
  .rent-value-table tbody td {
    padding: 20px 10px;
    line-height: 1.24;
  }
}
@media (min-width: 1200px) {
  .rent-value-table {
    font-size: 1.22rem;
  }
  .rent-value-table thead th {
    font-size: 1.56rem;
    padding: 22px 8px;
  }
  .rent-value-table tbody th,
  .rent-value-table tbody td {
    padding: 21px 10px;
  }
}


/* V5.98 — Consentement explicite du formulaire des nouvelles (FR/EN). */
.site-footer .footer-signup-form .footer-signup-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 20px;
  color: #e2ebe2;
  font-size: .88rem;
  line-height: 1.48;
  cursor: pointer;
}
.site-footer .footer-signup-form .footer-signup-consent input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: #bdd6c2;
  cursor: pointer;
}
.site-footer .footer-signup-form .footer-signup-consent span {flex: 1; min-width: 0;}
@media (max-width: 600px) {
  .site-footer .footer-signup-form .footer-signup-consent {font-size: .91rem;}
}


/* V5.99 — Bilingual newsletter language preference, matching footer input styles. */
.site-footer .footer-signup-grid .footer-signup-language select {
  display: block;
  width: 100%;
  box-sizing: border-box;
  min-height: 50px;
  padding: 13px 40px 13px 16px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 0;
  background: #343a35;
  color: #f7f9f5;
  font: inherit;
  font-size: 1.14rem;
  line-height: 1.4;
  cursor: pointer;
  color-scheme: dark;
}
.site-footer .footer-signup-grid .footer-signup-language select:focus-visible {
  outline: 2px solid #c9dfd2;
  outline-offset: 2px;
}
.site-footer .footer-signup-grid .footer-signup-language select option {
  color: #fff;
  background: #343a35;
}
@media (max-width: 600px) {
  .site-footer .footer-signup-grid .footer-signup-language select { font-size: 1rem; }
}
