
:root{
  --beige:#e0e0db;
  --navy:#273b5c;
  --black:#080808;
  --white:#fff;
  --border:#111;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--beige);color:var(--black);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:18.5px;line-height:1.45}
button,a{font:inherit}
a{color:inherit}
.site-header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 4.1vw;background:var(--beige);position:sticky;top:0;z-index:20}
.brand{font-size:33px;font-weight:700;color:var(--navy);text-decoration:none;letter-spacing:-1.5px}
.site-header nav{display:flex;align-items:center;gap:38px}
.site-header nav a{text-decoration:none;font-size:20px}
.pill{border:0;background:var(--navy);color:#fff;border-radius:999px;padding:17px 34px;min-height:54px;cursor:pointer;font-size:17px;font-weight:500}
.site-header .pill{padding:14px 31px}
.hero{padding:0 4.1vw;background:var(--beige);position:relative}
.hero img{display:block;width:100%;height:auto;aspect-ratio:1.934/1;object-fit:cover}
.hero-content{position:absolute;inset:0 4.1vw 0 4.1vw;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 30px;box-sizing:border-box}
.hero-kicker{position:absolute;top:24px;left:0;right:0;color:#fff;font-size:clamp(12px,1.1vw,17px);font-weight:600;letter-spacing:1.4px;margin:0;text-shadow:0 2px 10px rgba(0,0,0,.38);white-space:nowrap}
.hero-content h1{color:#fff;font-size:clamp(42px,4.7vw,72px);line-height:1.05;letter-spacing:-3px;font-weight:500;margin:0;white-space:nowrap;text-shadow:0 2px 14px rgba(0,0,0,.38)}
.hero-subtitle{color:#fff;font-size:clamp(14px,1.35vw,20px);line-height:1.35;max-width:900px;margin-top:20px;text-shadow:0 2px 10px rgba(0,0,0,.38)}
.hero-services{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);text-decoration:none;white-space:nowrap;padding:15px 30px;min-height:auto;font-size:17px}

.section-beige{background:var(--beige)}
.services{padding:58px 3.5vw 52px}
.section-title-wrap h1{font-size:54px;letter-spacing:-2.5px;margin:0 0 72px 0;font-weight:500}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4.1vw}
.service-card{text-align:center}
.service-card img{width:100%;aspect-ratio:.78/1;object-fit:cover;display:block;margin-bottom:15px}
.service-card h2{font-size:23px;line-height:1.1;margin:0 0 13px;font-weight:700}
.service-card strong{font-size:18px;display:block;margin-bottom:20px}
.service-card p{font-size:17px;line-height:1.42;margin:0 0 18px}
.bold{font-weight:700}
.centered{display:block;margin:40px auto 0}
.enterprise{display:grid;grid-template-columns:50% 50%;min-height:700px}
.enterprise-image img{width:100%;height:100%;object-fit:cover;display:block}
.enterprise-copy{padding:84px 8vw 72px;text-align:center}
.enterprise-photo{width:100%;max-width:660px;aspect-ratio:1.77;object-fit:cover;display:block;margin:0 auto 25px}
.enterprise-copy h2{font-size:25px;margin:0 0 40px}
.enterprise-copy strong{font-size:19px}
.enterprise-copy p{font-size:18.5px;line-height:1.45;margin:24px auto;max-width:620px}
.reviews{background:#fff;padding:95px 3.7vw 78px}
.reviews-inner{max-width:1900px;margin:auto}
.stars{font-size:33px;letter-spacing:6px;line-height:1;margin-bottom:20px}
.reviews h2{font-size:39px;letter-spacing:-1.6px;margin:0 0 62px;font-weight:500}
.review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4.2vw}
.review-grid article{display:flex;flex-direction:column;min-height:310px}
.review-grid p{font-size:20px;line-height:1.48;margin:0}
.review-grid small{font-size:15px;margin-top:auto;padding-top:30px}
.wide-photo img{display:block;width:100%;height:auto;max-height:360px;object-fit:cover}
.about{background:#fff;display:grid;grid-template-columns:50% 50%;padding:52px 3.7vw 78px;gap:3.7vw}
.about-image img{display:block;width:100%;height:680px;object-fit:cover}
.about-copy{padding:0 3vw}
.about-copy h2{font-size:44px;letter-spacing:-1.8px;font-weight:500;margin:0 0 48px}
.about-copy h3{font-size:21px;margin:0 0 58px}
.about-copy p{font-size:19px;line-height:1.5;margin:0 0 58px}
.request{display:grid;grid-template-columns:50% 50%;padding:70px 3.7vw 88px;gap:3.7vw}
.request-image img{display:block;width:100%;height:950px;object-fit:cover}
.request-copy{padding:0 1.8vw}
.request-copy h2{font-size:40px;letter-spacing:-1.8px;font-weight:500;margin:0 0 30px}
.request-copy>p{font-size:18.5px;margin:0 0 62px}
form label{display:block;font-size:18px;margin-bottom:20px}
form label span{color:#4a4a4a}
input,select,textarea{font:inherit;background:transparent;border:2px solid var(--border);border-radius:30px;width:100%;padding:13px 16px;display:block;margin-top:5px;outline:none}
textarea{height:160px;border-radius:26px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.phone{grid-template-columns:1fr 1.35fr}
select{appearance:auto}
.footer{background:var(--beige);display:grid;grid-template-columns:1fr 1fr;padding:60px 7.2vw 48px;min-height:230px}
.footer-brand{font-size:40px;font-weight:500;letter-spacing:-2px}
.footer p{font-size:18.5px;margin-top:20px}
.footer-contact{font-size:19px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.footer-contact a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.footer-contact>a:first-child{font-size:28px;font-weight:500;text-decoration:none}
.modal-backdrop,.contact-choice{position:fixed;inset:0;background:rgba(0,0,0,.35);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:35px 20px;overflow:auto}
.modal-backdrop.open,.contact-choice.open{display:flex}
.modal{background:#fff;width:min(760px,100%);max-height:calc(100vh - 70px);overflow:auto;padding:55px 42px 45px;position:relative}
.modal h2,.contact-choice h2{font-size:42px;letter-spacing:-1.5px;font-weight:500;margin:0 0 52px}
.modal-close{position:absolute;right:22px;top:13px;border:0;background:none;font-size:31px;line-height:1;cursor:pointer}
.check{display:flex;align-items:center;gap:10px}
.check input{width:21px;height:21px;margin:0}
.contact-choice{align-items:center}
.contact-choice-card{background:#fff;width:min(470px,100%);padding:50px;position:relative;text-align:center}
.contact-choice-card h2{margin-bottom:12px}
.contact-choice-card p{margin-bottom:30px}
.choice{display:block;text-decoration:none;margin:12px 0}
@media(max-width:900px){
  .site-header{height:88px;padding:0 22px}
  .brand{font-size:28px}
  .site-header nav{gap:14px}
  .site-header nav a{font-size:16px}
  .site-header .pill{padding:12px 18px;min-height:46px;font-size:15px}
  .section-title-wrap h1{font-size:42px}
  .service-grid,.review-grid{grid-template-columns:repeat(2,1fr)}
  .enterprise,.about,.request{grid-template-columns:1fr}
  .enterprise-image{height:520px}
  .about-image img{height:600px}
  .request-image img{height:700px}
  .footer{grid-template-columns:1fr;gap:35px}
}
@media(max-width:600px){
  .site-header nav a{display:none}
  .hero-content{padding:0 16px}
  .hero-kicker{top:12px;font-size:10px;letter-spacing:.7px}
  .hero-content h1{font-size:clamp(30px,8vw,44px);letter-spacing:-1.5px;white-space:nowrap}
  .hero-subtitle{font-size:13px;line-height:1.3;margin-top:12px;max-width:95%}
  .hero-services{bottom:20px;font-size:15px;padding:13px 22px}

  .service-grid,.review-grid,.two{grid-template-columns:1fr}
  .services,.reviews,.about,.request{padding-left:22px;padding-right:22px}
  .section-title-wrap h1{font-size:35px}
}

/* Desktop refinement requested after the initial build */
@media(min-width:901px){
  /* Un cran de recul : typographie et espacements légèrement allégés. */
  body{font-size:18px}
  .site-header{height:104px}
  .brand{font-size:34px}
  .site-header nav a{font-size:21px}
  .section-title-wrap h1{font-size:52px;margin-bottom:70px}
  .service-card img{aspect-ratio:4 / 3;object-fit:cover}
  .service-card h2{font-size:23px}
  .service-card p{font-size:17px}
  .reviews{padding-top:90px}
  .reviews h2{font-size:38px;margin-bottom:60px}
  .review-grid p{font-size:20px}
  .about-copy h2{font-size:44px}
  .about-copy h3{font-size:22px;margin-bottom:52px}
  .about-copy p{font-size:19px;margin-bottom:48px}
  .request-copy h2{font-size:40px}
  .request-copy>p{font-size:19px;margin-bottom:58px}
}

.service-card img{aspect-ratio:4 / 3;object-fit:cover}
.about-image{overflow:hidden}
.about-image img{object-position:center center}
.request-image{align-self:start}
.request-image img{object-position:center center}
.phone-input{position:relative}
.phone-input .dial-code{position:absolute;left:17px;top:50%;transform:translateY(-20%);z-index:2;color:#111;font-size:17px;pointer-events:none}
.phone-input input{padding-left:68px}
.footer{align-items:end}
.footer-contact{justify-content:flex-end;align-items:flex-end;text-align:right}

@media(max-width:900px){
  .service-card img{aspect-ratio:4 / 3}
  .footer-contact{align-items:flex-end;text-align:right}
}

/* Dernières corrections demandées */
@media(min-width:901px){
  /* Les quatre photos des offres sont désormais en 4:5. */
  .service-card img{aspect-ratio:4 / 5;object-fit:cover}

  /* Séance entreprise : les deux photos commencent au même niveau.
     Le haut de la photo de gauche est rogné en la positionnant en bas. */
  .enterprise-image{padding-top:95px;overflow:hidden}
  .enterprise-image img{height:100%;object-position:center bottom}

}

@media(max-width:900px){
  .service-card img{aspect-ratio:4 / 5;object-fit:cover}
  .enterprise-image{padding-top:55px;overflow:hidden}
  .enterprise-image img{height:100%;object-position:center bottom}
  .review-grid-three{grid-template-columns:1fr}
}

/* Photo insérée entre les avis et la section À propos. */
.wide-photo{background:#fff;overflow:hidden}
.wide-photo img{width:100%;height:auto;max-height:none;display:block;object-fit:cover}


/* Responsive mobile layout — desktop V10 remains unchanged above 901px. */
.mobile-menu-toggle,.mobile-menu{display:none}
@media(max-width:900px){
  .site-header{position:sticky;top:0;height:76px;padding:0 18px}
  .brand{font-size:27px}
  .site-header nav{display:none}
  .mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:var(--navy);font-size:29px;line-height:1;cursor:pointer;padding:0}
  .mobile-menu{position:absolute;top:76px;left:0;right:0;background:var(--beige);padding:12px 18px 20px;box-shadow:0 8px 20px rgba(0,0,0,.08);flex-direction:column;gap:8px;z-index:30}
  .mobile-menu.open{display:flex}
  .mobile-menu a{padding:13px 8px;text-decoration:none;font-size:18px;border-bottom:1px solid rgba(0,0,0,.12)}
  .mobile-menu .pill{margin-top:8px;width:100%}

  .hero{padding:0}
  .hero img{aspect-ratio:0.82/1;object-fit:cover;object-position:center center}
  .hero-content{inset:0;padding:0 18px}
  .hero-kicker{top:18px;font-size:9px;letter-spacing:.55px;white-space:nowrap}
  .hero-content h1{font-size:clamp(25px,7.6vw,43px);letter-spacing:-1.5px;line-height:1.05;white-space:nowrap;max-width:none}
  .hero-subtitle{font-size:13px;line-height:1.35;max-width:92%;margin-top:13px}
  .hero-services{bottom:22px;font-size:14px;padding:12px 19px}

  .services{padding:48px 20px 46px}
  .section-title-wrap h1{font-size:34px;line-height:1.08;letter-spacing:-1.5px;margin-bottom:42px}
  .service-grid{grid-template-columns:1fr;gap:48px}
  .service-card img{width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:16px}
  .service-card h2{font-size:23px;margin-bottom:9px}
  .service-card strong{font-size:17px;margin-bottom:14px}
  .service-card p{font-size:16px;line-height:1.45}
  .centered{margin-top:38px}

  .enterprise{display:flex;flex-direction:column;min-height:0}
  .enterprise-image{height:auto;padding-top:0!important}
  .enterprise-image img{height:auto;aspect-ratio:1/1.02;object-fit:cover;object-position:center center}
  .enterprise-copy{padding:42px 22px 50px}
  .enterprise-photo{max-width:none;aspect-ratio:1.55;object-fit:cover;margin-bottom:22px}
  .enterprise-copy h2{font-size:24px;margin-bottom:24px}
  .enterprise-copy strong{font-size:18px}
  .enterprise-copy p{font-size:16px;line-height:1.5;margin:19px auto}

  .reviews{padding:58px 22px 52px}
  .stars{font-size:27px;letter-spacing:4px;margin-bottom:16px}
  .reviews h2{font-size:32px;line-height:1.1;letter-spacing:-1.1px;margin-bottom:40px}
  .review-grid{grid-template-columns:1fr;gap:40px}
  .review-grid article{min-height:0}
  .review-grid p{font-size:17px;line-height:1.5}
  .review-grid small{font-size:14px;margin-top:16px;padding-top:0}
  .wide-photo img{height:230px;object-fit:cover;object-position:center}

  .about{display:flex;flex-direction:column;padding:0 22px 54px;gap:34px}
  .about-image img{height:auto;aspect-ratio:0.9/1;object-fit:cover}
  .about-copy{padding:0}
  .about-copy h2{font-size:36px;margin-bottom:28px}
  .about-copy h3{font-size:20px;line-height:1.3;margin-bottom:32px}
  .about-copy p{font-size:17px;line-height:1.5;margin-bottom:28px}

  .request{display:flex;flex-direction:column;padding:0 22px 58px;gap:34px}
  .request-image{order:0}
  .request-image img{height:auto;aspect-ratio:.9/1;object-fit:cover}
  .request-copy{padding:0}
  .request-copy h2{font-size:34px;line-height:1.1;letter-spacing:-1.3px;margin-bottom:20px}
  .request-copy>p{font-size:17px;line-height:1.45;margin-bottom:34px}
  form label{font-size:16px;margin-bottom:17px}
  input,select,textarea{font-size:16px;padding:12px 14px}
  textarea{height:140px}
  .two,.phone{grid-template-columns:1fr;gap:0}

  .footer{display:flex;flex-direction:column;padding:46px 22px 38px;gap:30px;min-height:0}
  .footer-brand{font-size:34px}
  .footer p{font-size:16px;margin-top:12px}
  .footer-contact{font-size:17px;align-items:flex-start!important;text-align:left!important;gap:14px}
  .footer-contact>a:first-child{font-size:23px}

  .modal-backdrop,.contact-choice{padding:18px 14px}
  .modal{padding:44px 20px 28px;max-height:calc(100vh - 36px)}
  .modal h2,.contact-choice h2{font-size:32px;line-height:1.1;margin-bottom:30px}
  .contact-choice-card{padding:36px 22px}
}
@media(max-width:380px){
  .brand{font-size:24px}
  .hero-kicker{font-size:8px;letter-spacing:.35px}
  .hero-content h1{font-size:24px}
  .hero-subtitle{font-size:12px}
  .section-title-wrap h1{font-size:31px}
}
