/* V12 — Harmonisation editoriale globale, sans changement des contenus. */
/* Les paragraphes longs sont justifies, la derniere ligne reste alignee a gauche. */
@media(min-width:701px){
  .hero-copy p,.page-hero .lead,.section-head p,.split-copy p,
  .tile-body p,.benefit p,.price-card p,.notice-box p,
  .feature-copy p:not(.privacy-note),.archi-process-step p,
  .archi-process-footnote,.archi-case-section p,.local-support p,
  .contact-intro p,.legal-section p,.cta-row p,
  #immobilier .section p,#architectes .section p,#commerces .section p,
  #apropos .section p,#contact .section p{
    text-align:justify;text-align-last:left;
    hyphens:none;-webkit-hyphens:none;overflow-wrap:normal;word-break:normal;
  }
}
/* Une longueur de ligne constante limite les fins de ligne isolees. */
.section-head p,.section-head .lead{max-width:74ch;}
.tile-body p,.notice-box p,.benefit p,.price-card p{line-height:1.85;}
.section-head p,.tile-body p,.feature-copy p,.local-support p{margin-bottom:0;}
.section-head h2 + p{margin-top:20px;}
/* Les titres ne subissent jamais la justification. */
h1,h2,h3,h4,.eyebrow,.micro,.portfolio-card-category,.text-link,.btn{hyphens:none;text-align-last:auto;}
/* Cartes metiers : les lignes de titres, paragraphes et liens restent paralleles. */
#accueil .grid3:has(> .tile){align-items:stretch;}
#accueil .grid3 > .tile{height:100%;}
#accueil .grid3 > .tile .tile-body{grid-template-rows:18px minmax(118px,auto) 1fr auto;}
#accueil .grid3 > .tile .tile-body p{max-width:none;margin:0;}
#accueil .grid3 > .tile .tile-body .text-link{align-self:end;}
/* Boutons : tailles uniformes par groupe, texte et fleches sans decrochage. */
.btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.4;min-height:52px;gap:9px;}
.btn span[aria-hidden="true"],.text-link span[aria-hidden="true"]{display:inline-block;flex:none;white-space:nowrap;}
.hero-copy .btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px;max-width:780px;}
.hero-copy .btn-row .btn{width:100%;height:100%;min-width:0;max-width:none;margin:0;}
.portfolio-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;align-items:stretch;}
.portfolio-buttons>.btn{box-sizing:border-box;width:100%;height:100%;margin:0;min-height:54px;padding:12px 10px;font-size:10px;letter-spacing:.025em;}
/* Quand il n'y a qu'un seul bouton, eviter un bouton artificiellement gigantesque. */
.portfolio-buttons:has(> :only-child){grid-template-columns:minmax(0,1fr);max-width:310px;}
.local-support-grid{align-items:stretch;}
.local-support-grid>article{min-width:0;display:flex;flex-direction:column;}
.local-support-grid>article p{flex:1;}
.local-support-grid>article>.btn{margin-top:24px;align-self:flex-start;min-height:54px;min-width:250px;width:250px;max-width:100%;padding:12px 15px;white-space:normal;}
/* CTA : boutons alignes au sein des rangees et largeur stable sur petits ecrans. */
.cta-row .btn,.commercial-example-inner .btn{min-width:215px;min-height:54px;}
#architectes .archi-process-step{height:100%;}
#architectes .archi-process-step p{min-height:0;}
@media(max-width:1000px){
  .hero-copy .btn-row{grid-template-columns:1fr;max-width:450px;}
  .hero-copy .btn-row .btn{min-height:58px;}
  .portfolio-buttons{grid-template-columns:1fr;}
  .portfolio-buttons>.btn{min-height:52px;}
}
@media(max-width:700px){
  .hero-copy p,.page-hero .lead,.section-head p,.split-copy p,.tile-body p,
  .feature-copy p,.notice-box p,.local-support p,.archi-process-step p{
    text-align:left;hyphens:none;overflow-wrap:normal;word-break:normal;
  }
  #accueil .grid3 > .tile .tile-body{grid-template-rows:auto auto auto auto;}
  .local-support-grid>article>.btn{width:100%;min-width:0;}
  .cta-row .btn,.commercial-example-inner .btn{width:100%;min-width:0;}
}

/* V12 — Ajustements éditoriaux demandés, sans coupures typographiques. */
:where(.page,.local-support) p, :where(.page,.local-support) li {
  hyphens:none !important;
  -webkit-hyphens:none !important;
  word-break:normal;
  overflow-wrap:normal;
  text-wrap:pretty;
}
/* Largeur des textes contrôlée par celle de la composition, pas de justification forcée des phrases courtes. */
.section-head > p, .section-head > .lead {max-width: min(100%, 72ch);}
@media (min-width: 701px) {
  .section-head > p, .section-head > .lead,
  .tile-body p, .benefit p, .price-card p, .notice-box p,
  .page-hero .lead, .split-copy p, .quote-strong p,
  .archi-process-footnote, .local-support p {
    text-align:justify;
    text-align-last:left;
  }
}
/* Présentation autonome et accessible de la publication Street View par Home3D&Co. */
#commerces .commercial-example-inner {align-items:center;gap:28px;}
#commerces .commercial-example-copy {min-width:0;flex:1;}
#commerces .commercial-example-inner h2 {max-width:100%;}
#commerces .commercial-example-inner > .btn {width:235px;min-width:235px;min-height:54px;flex:0 0 235px;}
#commerces .commercial-streetview {margin-top:24px;padding-top:18px;border-top:1px solid rgba(210,170,57,.35);}
#commerces .commercial-streetview .eyebrow {font-size:10px;letter-spacing:.11em;line-height:1.5;display:block;}
#commerces .commercial-streetview p {color:#f2eee7;opacity:1;line-height:1.8;margin:10px 0 13px;max-width:72ch;}
#commerces .commercial-streetview strong {color:#fff;}
#commerces .commercial-google-link {color:#e0b43f;display:inline-flex;align-items:baseline;gap:8px;font-weight:700;text-decoration:underline;text-underline-offset:4px;line-height:1.7;}
#commerces .commercial-google-link:hover, #commerces .commercial-google-link:focus-visible {color:#fff;}
#commerces .commercial-google-link span {flex:none;}
@media (max-width:760px) {
 #commerces .commercial-example-inner {display:flex;flex-direction:column;align-items:stretch;}
 #commerces .commercial-example-inner > .btn {width:100%;min-width:0;flex:0 0 auto;margin:0;}
 #commerces .commercial-streetview p {text-align:left;}
}
