/* Local review version. Desktop composition at 1400 px and above is untouched. */
@media (max-width:1399px) {
  html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  body .page { max-width:1180px; padding:28px 20px; margin-inline:auto; gap:24px; }
  body .page *, body .ep-nav *, body .ep-footer * { min-width:0; }
  body .page h1 { font-size:clamp(30px,4.4vw,44px); line-height:1.15; margin:12px 0 20px; }
  body .page .eyebrow { font-size:13px; line-height:1.5; }
  body .page .intro, body .page .intro p.body, body .page .lead, body .page .entete .lead { font-size:16px; line-height:1.6; }
  body .ep-nav { padding:12px max(20px,calc((100vw - 1140px)/2)); min-height:72px; }
  body .ep-nav > nav { display:none; }
  body .ep-mobile-menu { display:block; }
  body .ep-mobile-menu summary, body[data-page="index"] .mobile-menu summary { display:list-item; font:16px/24px Arial,sans-serif; cursor:pointer; padding:12px; min-height:48px; color:#394729; }
  body .ep-mobile-menu nav, body[data-page="index"] .mobile-menu nav { position:absolute; left:0; right:0; top:100%; width:auto; padding:12px 20px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; background:#f5f2ec; box-shadow:0 8px 16px #0002; }
  body .ep-mobile-menu nav a, body[data-page="index"] .mobile-menu nav a { display:flex; align-items:center; min-height:48px; padding:12px 6px; font:16px/1.4 Arial,sans-serif; color:#465232; }
  body .ep-footer { max-width:none; padding:24px max(20px,calc((100vw - 1140px)/2)); font-size:15px; }
  body .ep-footer nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 20px; width:100%; }
  body .ep-footer nav a { display:flex; align-items:center; min-height:48px; padding:12px 0; }
  body .ep-footer small { font-size:13px; }

  body[data-page="index"] .page { max-width:1180px; padding:0 0 28px; }
  body[data-page="index"] .page > header { position:relative; padding:20px; min-height:108px; z-index:5; }
  body[data-page="index"] .mobile-menu { position:static; }
  body[data-page="index"] .mobile-menu summary { position:absolute; top:18px; right:20px; }
  body[data-page="index"] .tagline { font-size:13px; line-height:1.4; }
  body[data-page="index"] .mobile-photo { height:clamp(210px,32vw,310px); background-size:auto max(520px,66vw); background-position:right top; }
  body[data-page="index"] #contenu { padding:24px 20px; }
  body[data-page="index"] h1 { font-size:clamp(32px,4.4vw,44px); }
  body[data-page="index"] .steps { margin:8px 20px 0; gap:24px; }
  body[data-page="index"] .step h2 { font-size:17px; }
  body[data-page="index"] .step p { font-size:16px; line-height:1.5; }

  body[data-page="notre-approche"] .steps { max-width:none; gap:28px; margin-top:28px; }
  body[data-page="notre-approche"] .step { grid-template-columns:56px minmax(0,1fr); gap:6px 16px; align-content:start; }
  body[data-page="notre-approche"] .step h2 { font-size:18px; line-height:1.4; }
  body[data-page="notre-approche"] .step p { font-size:16px; line-height:1.5; margin:0 0 12px; }
  body[data-page="notre-approche"] .step-photo { width:100%; max-width:260px; }
  body[data-page="notre-approche"] .benefits { max-width:none; gap:20px; margin-top:32px; }
  body[data-page="notre-approche"] .benefit { font-size:16px; gap:12px; }

  body[data-page="ossature-bois"] .comparison { width:100%; max-width:860px; margin:28px auto; }
  body[data-page="ossature-bois"] .caption { font-size:15px; }
  body[data-page="ossature-bois"] .caption small { font-size:13px; }
  body[data-page="ossature-bois"] .statement { font-size:16px; }
  body[data-page="ossature-bois"] .benefits, body[data-page="ossature-bois"] .closing { max-width:none; }
  body[data-page="ossature-bois"] .benefits { gap:24px; }
  body[data-page="ossature-bois"] .benefit h2 { font-size:15px; line-height:1.4; }
  body[data-page="ossature-bois"] .benefit p, body[data-page="ossature-bois"] .closing p, body[data-page="ossature-bois"] .assurance { font-size:16px; line-height:1.55; }
  body[data-page="ossature-bois"] .closing h2 { font-size:25px; line-height:1.3; }

  body[data-page="nos-concepts"] .card { max-width:960px; margin:28px auto; padding-bottom:24px; }
  body[data-page="nos-concepts"] .card h2 { font-size:25px; margin:20px 20px 10px; }
  body[data-page="nos-concepts"] .tagline { font-size:20px; line-height:1.4; margin:0 20px 16px; }
  body[data-page="nos-concepts"] .description { font-size:16px; line-height:1.6; margin:20px; }
  body[data-page="nos-concepts"] .badge { font-size:13px; max-width:calc(100% - 40px); white-space:normal; margin:20px; }
  body[data-page="nos-concepts"] .progression { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 20px; }
  body[data-page="nos-concepts"] .stage-photo { width:100%; max-width:240px; margin:0 auto 12px; aspect-ratio:680/763; max-height:none; }
  body[data-page="nos-concepts"] .stage-number { font-size:13px; line-height:1.4; }
  body[data-page="nos-concepts"] .stage h3 { font-size:18px; line-height:1.4; margin:8px 0; }
  body[data-page="nos-concepts"] .stage p { font-size:15px; line-height:1.5; }
  body[data-page="nos-concepts"] .features { gap:24px 16px; margin:24px 20px; }
  body[data-page="nos-concepts"] .features h3 { font-size:14px; line-height:1.5; }
  body[data-page="nos-concepts"] .features p, body[data-page="nos-concepts"] .commitments p { font-size:16px; line-height:1.5; }
  body[data-page="nos-concepts"] .page > footer { max-width:960px; }
  body[data-page="nos-concepts"] .footer-title { font-size:25px; }
  body[data-page="nos-concepts"] .footer-copy { font-size:16px; line-height:1.6; }
  body[data-page="nos-concepts"] .commitments { gap:24px; }
  body[data-page="nos-concepts"] .commitments h3 { font-size:15px; }

  body[data-page="a-propos"] .bureau { width:100%; height:auto; max-height:none; object-fit:contain; object-position:center; }
  body[data-page="a-propos"] .values { grid-template-columns:1fr; gap:24px; }
  body[data-page="a-propos"] .values > div { grid-template-columns:44px minmax(0,1fr); gap:6px 14px; }
  body[data-page="a-propos"] .values h3 { font-size:16px; line-height:1.4; }
  body[data-page="a-propos"] .values p { font-size:16px; line-height:1.5; }
  body[data-page="a-propos"] .quote, body[data-page="a-propos"] .discussion { font-size:21px; line-height:1.5; padding:18px; }
  body[data-page="a-propos"] .contact-heading h2, body[data-page="a-propos"] .invitation h2 { font-size:28px; }
  body[data-page="a-propos"] .assurance { padding:18px; font-size:16px; line-height:1.55; }
  body[data-page="a-propos"] .assurance h3 { font-size:20px; }
  body[data-page="a-propos"] .reassurance, body[data-page="a-propos"] .details, body[data-page="a-propos"] .details small { font-size:16px; line-height:1.55; }
  body[data-page="a-propos"] .benefits { display:grid; grid-template-columns:1fr; gap:20px; font-size:15px; line-height:1.5; }
  body[data-page="a-propos"] .approach, body[data-page="a-propos"] .project { min-height:48px; font-size:15px; line-height:1.4; }

  body[data-page="votre-projet"] .piece { padding:20px; }
  body[data-page="votre-projet"] .benefit { margin:0; font-size:16px; line-height:1.5; }
  body[data-page="votre-projet"] .benefit h2 { font-size:15px; line-height:1.5; margin-bottom:6px; }
  body[data-page="votre-projet"] .engagements { display:grid; gap:20px; grid-template-columns:1fr; }
  body[data-page="votre-projet"] .field { font-size:16px; margin:8px 0; }
  body[data-page="votre-projet"] .field input { font-size:16px; height:48px; min-height:48px; }
  body[data-page="votre-projet"] .option, body[data-page="votre-projet"] .stage { font-size:16px; line-height:1.4; min-height:48px; padding:12px; }
  body[data-page="votre-projet"] .option input, body[data-page="votre-projet"] .stage input { flex:0 0 20px; width:20px; height:20px; }
  body[data-page="votre-projet"] .piece legend { font-size:16px; }
  body[data-page="votre-projet"] .message-label, body[data-page="votre-projet"] .response { font-size:15px; line-height:1.5; }
  body[data-page="votre-projet"] .description textarea { font-size:16px; height:180px; min-height:140px; resize:vertical; }
  body[data-page="votre-projet"] .submit { font-size:16px; min-height:48px; height:auto; padding:14px; }
  body[data-page="votre-projet"] .portrait { width:200px; max-width:100%; max-height:none; height:auto; align-self:center; margin-inline:auto; object-fit:contain; }
  body[data-page="votre-projet"] .presentation h2 { font-size:30px; }
  body[data-page="votre-projet"] .role, body[data-page="votre-projet"] .bio, body[data-page="votre-projet"] .contact, body[data-page="votre-projet"] .contact p, body[data-page="votre-projet"] .privacy, body[data-page="votre-projet"] .privacy h2, body[data-page="votre-projet"] .pied .foot p { font-size:16px; line-height:1.55; }
  body[data-page="votre-projet"] .foot h2 { font-size:15px; line-height:1.5; }
  body[data-page="votre-projet"] .closing { font-size:24px; line-height:1.4; }
}

@media (min-width:760px) and (max-width:1399px) {
  body .page { padding:36px 28px; }
  body .ep-footer nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body[data-page="index"] .page { display:grid; grid-template-columns:1fr 1fr; }
  body[data-page="index"] .page > header { grid-column:1/-1; }
  body[data-page="index"] .mobile-photo { grid-column:2; grid-row:2; height:auto; min-height:360px; background-size:auto 610px; background-position:right top; }
  body[data-page="index"] #contenu { grid-column:1; grid-row:2; }
  body[data-page="index"] .steps { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:32px 28px 0; }
  body[data-page="notre-approche"] .steps, body[data-page="notre-approche"] .benefits { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="ossature-bois"] .benefits { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="ossature-bois"] .assurances { grid-template-columns:repeat(4,minmax(0,1fr)); }
  body[data-page="nos-concepts"] .surmesure, body[data-page="nos-concepts"] .modulo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; }
  body[data-page="nos-concepts"] .card > .photo { grid-column:1; grid-row:1/5; align-self:start;  }
  body[data-page="nos-concepts"] .card > h2, body[data-page="nos-concepts"] .card > .tagline, body[data-page="nos-concepts"] .card > .description, body[data-page="nos-concepts"] .card > .badge { grid-column:2; }
  body[data-page="nos-concepts"] .features { grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); }
  body[data-page="nos-concepts"] .evolutiv .features, body[data-page="nos-concepts"] .modulo .features { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body[data-page="nos-concepts"] .commitments { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="a-propos"] .page { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  body[data-page="a-propos"] .bureau { order:0; grid-column:1; grid-row:1; }
  body[data-page="a-propos"] .intro { grid-column:2; grid-row:1; }
  body[data-page="a-propos"] .values { grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)); }
  body[data-page="a-propos"] .quote, body[data-page="a-propos"] .approach, body[data-page="a-propos"] .contact-heading, body[data-page="a-propos"] .reassurance, body[data-page="a-propos"] .discussion, body[data-page="a-propos"] .benefits, body[data-page="a-propos"] .project { grid-column:1/-1; }
  body[data-page="a-propos"] .assurance { height:100%; }
  body[data-page="a-propos"] .benefits { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body[data-page="votre-projet"] .page { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  body[data-page="votre-projet"] .entete, body[data-page="votre-projet"] .engagements, body[data-page="votre-projet"] .coordonnees, body[data-page="votre-projet"] .pied { grid-column:1/-1; }
  body[data-page="votre-projet"] .engagements { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="votre-projet"] .choix { display:block; }
  body[data-page="votre-projet"] .description { align-self:stretch; height:auto!important; }
  body[data-page="votre-projet"] #project-form { display:flex; flex-direction:column; height:100%; }
  body[data-page="votre-projet"] .description textarea { flex:1; min-height:240px; margin-bottom:16px; }
  body[data-page="votre-projet"] .portrait { width:200px; justify-self:center; align-self:start; }
  body[data-page="votre-projet"] .presentation { align-self:center; }
  body[data-page="votre-projet"] .coordonnees { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 28px; }
  body[data-page="votre-projet"] .pied { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
}

@media (min-width:760px) and (max-width:999px) {
  body[data-page="a-propos"] .values { grid-template-columns:1fr; }
}

@media (max-width:599px) {
  body[data-page="ossature-bois"] .assurances { grid-template-columns:1fr; }
  body[data-page="nos-concepts"] .progression { grid-template-columns:1fr; gap:24px; }
  body[data-page="nos-concepts"] .stage { display:grid; grid-template-columns:104px minmax(0,1fr); column-gap:16px; align-content:start; text-align:left; }
  body[data-page="nos-concepts"] .stage-photo { grid-column:1; grid-row:1/4; margin:0; }
  body[data-page="nos-concepts"] .stage-number, body[data-page="nos-concepts"] .stage h3, body[data-page="nos-concepts"] .stage p { grid-column:2; }
  body[data-page="votre-projet"] .project-stage { grid-template-columns:1fr; }
  body[data-page="votre-projet"] .piece { padding:16px; }
}
@media (max-width:359px) {
  body[data-page="nos-concepts"] .features { grid-template-columns:1fr; }
  body[data-page="votre-projet"] .project-types { grid-template-columns:1fr; }
}
@media (min-width:600px) and (max-width:1399px) and (max-height:500px) {
  body[data-page="index"] .mobile-photo { min-height:240px; }
}
@media(max-width:1399px){body[data-page="index"] .cta{max-width:100%;font-size:14px} .ep-mobile-menu nav,.mobile-menu nav{max-height:calc(100dvh - 90px);overflow-y:auto}}
