/* ================================================================
   KERLAN V16.2 — GLOBAL INNER PAGES + RESPONSIVE SYSTEM
   Reference: compact local-artisan homepage V16.1
   ================================================================ */

/* Global rhythm -------------------------------------------------- */
.inner-page{background:#fff}
.inner-page .section{padding:64px 0}
.inner-page .section-intro{gap:42px;margin-bottom:28px}
.inner-page .section-intro h2{font-size:clamp(32px,3.6vw,48px);line-height:.98}
.inner-page .section-intro>p{font-size:15px;line-height:1.6}
.inner-page h2{font-size:clamp(32px,3.8vw,50px);line-height:1}
.inner-page h3{font-size:20px}
.inner-page .eyebrow{margin-bottom:8px;font-size:10px;letter-spacing:.13em}
.inner-page .btn{min-height:46px}

/* Header --------------------------------------------------------- */
.inner-page .site-header{height:92px;gap:22px}
.inner-page .brand{width:250px;height:66px}
.inner-page .site-header.is-scrolled{height:66px}
.inner-page .site-header.is-scrolled .brand{width:188px;height:48px}
.inner-page .desktop-nav{gap:22px}
.inner-page .desktop-nav a{font-size:12px}
.inner-page .header-cta{min-height:42px;padding-inline:17px;font-size:12px}

/* Unified internal hero ----------------------------------------- */

/* Service index -------------------------------------------------- */
.services-index-page .service-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.services-index-page .service-card-premium{min-height:250px;padding:22px 20px;border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;justify-content:flex-start;gap:20px}
.services-index-page .service-card-premium:last-child{border-right:0}
.services-index-page .service-card-premium:hover{transform:none;background:#f5f9fc;box-shadow:none}
.services-index-page .service-icon{width:68px;height:68px;border-radius:14px}
.services-index-page .service-icon img{width:54px;height:54px}
.services-index-page .service-card-premium h3{margin:0 0 8px;font-size:19px}
.services-index-page .service-card-premium p{font-size:13px;line-height:1.5}
.services-index-page .card-link{margin-top:14px}
.services-index-page .method-section{padding:58px 0!important}
.services-index-page .faq-section{padding:58px 0}

/* Service detail pages ------------------------------------------ */
.service-detail-page .service-story{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:48px}
.service-detail-page .service-story h2{max-width:13ch;margin-bottom:14px}
.service-detail-page .lead-copy{font-size:16px;line-height:1.65}
.service-detail-page .service-highlight{padding:28px;background:var(--navy);border-radius:8px}
.service-detail-page .service-highlight h3{margin:14px 0 22px;font-size:26px;line-height:1.05}
.service-detail-page .feature-grid{grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #cfdce7;border-bottom:1px solid #cfdce7}
.service-detail-page .feature-card{min-height:178px;padding:23px 20px;border:0;border-right:1px solid #cfdce7;border-radius:0;background:transparent}
.service-detail-page .feature-card:last-child{border-right:0}
.service-detail-page .feature-card h3{margin:0 0 9px;font-size:18px}
.service-detail-page .feature-card p{font-size:13px;line-height:1.55}
.service-detail-page .related-project{background:var(--navy);color:#fff}
.service-detail-page .related-grid{grid-template-columns:1.05fr .95fr;gap:48px}
.service-detail-page .related-grid figure{height:360px;border-radius:8px}
.service-detail-page .related-grid h2{color:#fff;max-width:11ch}
.service-detail-page .related-grid p{color:#c8d8e5;font-size:14px;line-height:1.65}
.service-detail-page .related-grid .btn-dark{background:var(--blue)}
.service-detail-page .faq-section{padding:58px 0}
.service-detail-page .service-local-links{padding:54px 0}

/* FAQ system ----------------------------------------------------- */
.inner-page .faq-grid{grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:52px}
.inner-page .faq-grid>div:first-child h2{max-width:11ch}
.inner-page .faq-item summary{padding:16px 0;font-size:15px}
.inner-page .faq-item div{padding:0 28px 16px 0}
.inner-page .faq-item p{font-size:13px;line-height:1.6}

/* Local landing pages ------------------------------------------- */
.local-page .local-context-section{padding:58px 0;background:#fff}
.local-page .local-editorial-grid{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:54px}
.local-page .local-editorial-grid h2{font-size:clamp(34px,4vw,52px);max-width:12ch}
.local-page .local-editorial-copy p{font-size:15px;line-height:1.7;color:var(--muted)}
.local-page .local-editorial-copy h3{margin:24px 0 10px}
.local-page .local-editorial-copy ul{padding-left:19px;color:var(--muted);font-size:14px}
.local-page .local-grid{grid-template-columns:.8fr 1.2fr;gap:46px}
.local-page .local-grid>div:first-child p{font-size:15px;line-height:1.65}
.local-page .local-service-list{gap:8px}
.local-page .local-service-list a{min-height:58px;padding:0 17px;border-radius:7px;font-size:14px}
.local-page main>.section.section-soft:not(.faq-section){background:var(--navy);color:#fff}
.local-page main>.section.section-soft:not(.faq-section) h2,.local-page main>.section.section-soft:not(.faq-section) h3{color:#fff}
.local-page main>.section.section-soft:not(.faq-section) .eyebrow{color:#69b7ff}
.local-page .local-proof>div:first-child{margin-bottom:24px}
.local-page .process-grid.three{gap:1px;background:rgba(255,255,255,.15)}
.local-page .process-grid.three article{min-height:148px;padding:22px;background:#08263f;border:0}
.local-page .process-grid.three h3{margin:0 0 8px;color:#fff}
.local-page .process-grid.three p{color:#c8d7e3;font-size:13px;line-height:1.55}

/* About ---------------------------------------------------------- */
.about-page .about-story-grid{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)!important;gap:58px!important;align-items:center!important}
.about-page .about-story-copy{position:static!important}
.about-page .about-story-copy h2{font-size:clamp(36px,4vw,52px)!important;line-height:.98!important;max-width:12ch}
.about-page .about-story-copy p{font-size:15px;line-height:1.68}
.about-page .about-portrait img{height:510px!important;border-radius:8px!important}
.about-page .section-dark{padding:58px 0}
.about-page .value-grid{gap:1px;background:rgba(255,255,255,.14)}
.about-page .value-grid article{min-height:180px;padding:24px;border:0;border-radius:0;background:#08263f}
.about-page .value-grid h3{margin:0 0 10px;font-size:22px}
.about-page .about-area-grid{grid-template-columns:.85fr 1.15fr;gap:46px}
.about-page .about-area-grid p{font-size:15px;line-height:1.65}
.about-page .about-area-grid figure{height:330px;border-radius:8px!important}

/* Zones page ----------------------------------------------------- */
.zones-page .inner-area{min-height:300px;padding-bottom:28px}
.zones-page .inner-area .area-grid{min-height:300px;grid-template-columns:.8fr 1.2fr}
.zones-page .inner-area .area-copy{padding:44px 0}
.zones-page .inner-area .area-copy h2{font-size:clamp(30px,3.4vw,44px);max-width:12ch}
.zones-page .truck-track{height:245px}
.zones-page .truck{width:min(620px,92%)}
.zones-page .location-grid{grid-template-columns:repeat(4,1fr);gap:8px}
.zones-page .location-grid a{min-height:58px;border-radius:7px;font-size:14px;padding:0 16px}

/* Contact -------------------------------------------------------- */
.contact-page .quick-recall-section{padding:58px 0;background:var(--navy);color:#fff}
.contact-page .quick-recall-layout{grid-template-columns:.72fr 1.28fr;gap:48px;align-items:start}
.contact-page .quick-recall-layout>div h2{color:#fff;font-size:clamp(34px,3.8vw,48px);max-width:10ch}
.contact-page .quick-recall-layout>div>p:not(.eyebrow){color:#c7d6e2;font-size:14px;line-height:1.65;max-width:440px}
.contact-page .quick-recall-form{padding:24px;background:#fff;color:var(--ink);border-radius:8px}
.contact-page .quick-recall-form label>span{font-size:10px}
.contact-page .quick-recall-form input,.contact-page .quick-recall-form select,.contact-page .quick-recall-form textarea{min-height:44px}
.contact-page .quick-recall-form textarea{min-height:90px}
.contact-page .quote-section{padding:62px 0;background:#f4f7fa}
.contact-page .quote-layout{grid-template-columns:minmax(280px,.68fr) minmax(0,1.32fr);gap:34px}
.contact-page .quote-aside{top:86px;padding:25px;border-radius:8px}
.contact-page .quote-aside h2{font-size:30px;line-height:1}
.contact-page .form-shell{padding:28px;border-radius:8px}
.contact-page .choice-grid{gap:9px}
.contact-page .choice{min-height:76px}
.contact-page .form-step h2{font-size:34px}
.contact-page .faq-section{padding:56px 0}

/* Realisations page responsive normalization ------------------- */
.realisations-page .v16-project-detail{padding:56px 0}
.realisations-page .v16-gallery-section{padding:58px 0 62px}
.realisations-page .v16-blueprint-section{min-height:450px;padding:58px 0}

/* Final CTA + Footer -------------------------------------------- */
.inner-page .final-cta{padding:36px 0}
.inner-page .final-cta-grid{grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center}
.inner-page .final-cta h2{margin-bottom:8px;font-size:clamp(28px,3.2vw,42px)}
.inner-page .final-cta p:not(.eyebrow){margin-bottom:0;max-width:620px;font-size:13px;line-height:1.5}
.inner-page .final-cta-actions{display:flex;gap:9px;justify-content:flex-end}
.inner-page .site-footer{padding-top:42px}
.inner-page .footer-grid{gap:30px}
.inner-page .footer-logo{width:205px;max-height:66px}
.inner-page .site-footer p,.inner-page .site-footer a,.inner-page .site-footer span{font-size:12px}
.inner-page .footer-bottom{margin-top:24px}

/* Legal / 404 ---------------------------------------------------- */
.legal-body .legal-hero{padding:calc(92px + 34px) 0 34px;background:var(--navy);color:#fff}
.legal-body .legal-hero h1{color:#fff;font-size:clamp(36px,4vw,50px)}
.legal-body .section{padding:54px 0}
.legal-body .legal-page .prose{max-width:820px}
.error-body .error-page{padding:calc(92px + 55px) 0 60px}

/* Desktop medium ------------------------------------------------ */
@media(max-width:1180px){
  .inner-page .site-header{padding-inline:22px}
  .inner-page .brand{width:225px}
  .inner-page .desktop-nav{gap:17px}
  .inner-page .desktop-nav a{font-size:11px}

  .services-index-page .service-cards,.service-detail-page .feature-grid{grid-template-columns:repeat(2,1fr)}
  .services-index-page .service-card-premium:nth-child(2),.service-detail-page .feature-card:nth-child(2){border-right:0}
  .services-index-page .service-card-premium:nth-child(-n/**/+2),.service-detail-page .feature-card:nth-child(-n/**/+2){border-bottom:1px solid var(--line)}
  .zones-page .location-grid{grid-template-columns:repeat(3,1fr)}
}

/* Tablet --------------------------------------------------------- */
@media(max-width:980px){
  .inner-page .site-header{height:82px}
  .inner-page .brand{width:215px;height:58px}
  .inner-page .site-header.is-scrolled{height:64px}
  .inner-page .desktop-nav,.inner-page .header-cta{display:none}
  .inner-page .menu-toggle{display:block;justify-self:end}
  .inner-page .mobile-panel{top:82px}

  .inner-page .section{padding:52px 0}
  .inner-page .section-intro,.inner-page .faq-grid,.service-detail-page .service-story,.service-detail-page .related-grid,.local-page .local-editorial-grid,.local-page .local-grid,.about-page .about-story-grid,.about-page .about-area-grid,.contact-page .quick-recall-layout,.contact-page .quote-layout{grid-template-columns:1fr!important;gap:28px!important}
  .inner-page .section-intro{align-items:start}
  .inner-page .faq-grid>div:first-child h2{max-width:15ch}

  .service-detail-page .service-highlight{max-width:620px}
  .service-detail-page .related-grid figure{height:330px;order:0}
  .service-detail-page .related-grid>div{padding-bottom:2px}
  .local-page .local-editorial-grid h2{max-width:16ch}
  .local-page .local-service-list{grid-template-columns:1fr 1fr}
  .about-page .about-story-copy h2{max-width:15ch}
  .about-page .about-portrait{order:-1;max-width:620px}
  .about-page .about-portrait img{height:430px!important}
  .about-page .about-area-grid figure{height:300px}
  .zones-page .inner-area .area-grid{grid-template-columns:1fr;min-height:360px}
  .zones-page .inner-area{min-height:360px}
  .zones-page .inner-area .area-copy{padding:36px 0 0;max-width:620px}
  .zones-page .truck-track{height:190px;justify-content:flex-end}
  .zones-page .truck{width:min(520px,76vw)}
  .contact-page .quick-recall-form{max-width:720px}
  .contact-page .quote-aside{position:static;max-width:680px}
  .contact-page .form-shell{max-width:820px}

  .inner-page .final-cta-grid{grid-template-columns:1fr;gap:18px}
  .inner-page .final-cta-actions{justify-content:flex-start}
  .inner-page .footer-grid{grid-template-columns:1fr 1fr}
  .inner-page .footer-grid>div:last-child{grid-column:auto}
}

/* Mobile landscape / large phone -------------------------------- */
@media(max-width:760px){
  .container{width:calc(100% - 30px)}
  .inner-page .section{padding:44px 0}
  .inner-page h2{font-size:34px}
  .inner-page .section-intro{gap:12px;margin-bottom:22px}

  .services-index-page .service-cards,.service-detail-page .feature-grid{grid-template-columns:1fr}
  .services-index-page .service-card-premium,.services-index-page .service-card-premium:nth-child(2),.service-detail-page .feature-card,.service-detail-page .feature-card:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}
  .services-index-page .service-card-premium:last-child,.service-detail-page .feature-card:last-child{border-bottom:0}
  .services-index-page .service-card-premium{min-height:0;padding:17px 0;display:grid;grid-template-columns:58px 1fr;gap:14px}
  .services-index-page .service-icon{width:54px;height:54px}
  .services-index-page .service-icon img{width:44px;height:44px}
  .service-detail-page .feature-card{min-height:0;padding:18px 0}
  .service-detail-page .related-grid figure{height:300px}

  .local-page .local-service-list{grid-template-columns:1fr}
  .local-page .process-grid.three{grid-template-columns:1fr}
  .local-page .process-grid.three article{min-height:0;padding:18px}
  .zones-page .location-grid{grid-template-columns:1fr 1fr}

  .about-page .value-grid{grid-template-columns:1fr}
  .about-page .value-grid article{min-height:0}
  .about-page .about-portrait img{height:380px!important}

  .contact-page .quick-recall-section{padding:44px 0}
  .contact-page .quick-recall-form{grid-template-columns:1fr}
  .contact-page .quick-recall-wide,.contact-page .quick-recall-form .consent{grid-column:1}
  .contact-page .quote-section{padding:46px 0}
  .contact-page .form-shell{padding:20px 15px}
  .contact-page .choice-grid,.contact-page .field-grid{grid-template-columns:1fr}
  .contact-page .field-wide{grid-column:auto}
  .contact-page .form-step h2{font-size:29px}

  .realisations-page .v16-gallery-grid{display:flex!important;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;padding-bottom:12px}
  .realisations-page .v16-gallery-card,.realisations-page .v16-gallery-featured{flex:0 0 82vw!important;height:330px!important;scroll-snap-align:start}

  .inner-page .final-cta{padding:30px 0}
  .inner-page .final-cta-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .inner-page .footer-grid{grid-template-columns:1fr;gap:24px}
}

/* Small phone ---------------------------------------------------- */
@media(max-width:560px){
  :root{--header-lg:72px;--header-sm:62px}
  .inner-page .site-header{height:72px;padding-inline:12px}
  .inner-page .brand{width:185px;height:52px}
  .inner-page .site-header.is-scrolled{height:62px}
  .inner-page .site-header.is-scrolled .brand{width:150px;height:42px}
  .inner-page .mobile-panel{top:72px;padding-inline:15px}
  .inner-page .mobile-panel-actions{grid-template-columns:1fr 1fr}

  .inner-page .section{padding:38px 0}
  .inner-page h2{font-size:31px}
  .inner-page h3{font-size:18px}
  .service-detail-page .service-highlight{padding:22px}
  .service-detail-page .service-highlight h3{font-size:23px}
  .service-detail-page .related-grid figure{height:250px}
  .local-page .local-context-section{padding:40px 0}
  .local-page .local-editorial-grid h2{font-size:31px}
  .zones-page .location-grid{grid-template-columns:1fr}
  .zones-page .inner-area{min-height:330px}
  .zones-page .inner-area .area-grid{min-height:330px}
  .zones-page .truck-track{height:150px}
  .zones-page .truck{width:min(390px,92vw)}
  .about-page .about-portrait img{height:330px!important}
  .about-page .about-area-grid figure{height:240px}
  .contact-page .quick-recall-form{padding:18px 14px}

  .inner-page .faq-item summary{font-size:14px;line-height:1.35}
  .inner-page .final-cta-actions{grid-template-columns:1fr}
  .inner-page .final-cta-actions .btn{width:100%}
  .inner-page .site-footer{padding-bottom:76px}
  .inner-page .footer-zones{gap:7px 11px}
  .inner-page .mobile-cta{display:grid;grid-template-columns:1fr 1fr;position:fixed;z-index:950;left:0;right:0;bottom:0;padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:rgba(4,22,38,.96);backdrop-filter:blur(10px)}
  .inner-page .mobile-cta a{display:grid;place-items:center;min-height:44px;border-radius:6px;font-size:12px;font-weight:850}
  .inner-page .mobile-cta a:first-child{background:var(--blue);color:#fff}
  .inner-page .mobile-cta a:last-child{border:1px solid rgba(255,255,255,.4);color:#fff}
  .inner-page .back-top{bottom:70px}
}

/* Narrow phone --------------------------------------------------- */
@media(max-width:390px){
  .container{width:calc(100% - 24px)}
  .inner-page .brand{width:168px}

  .inner-page .section{padding:34px 0}
  .inner-page h2{font-size:29px}
  .realisations-page .v16-gallery-card,.realisations-page .v16-gallery-featured{flex-basis:88vw!important;height:300px!important}
}

/* Reduced motion ------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  .inner-page *{scroll-behavior:auto!important}
  .inner-page [data-reveal],.inner-page [data-stagger]>*{transition:none!important;transform:none!important;opacity:1!important}
}

/* ===== V16.7 — full-bleed internal hero override ===== */

/* V35 — un seul accès téléphonique visible sur mobile : barre d'action fixe. */
@media (max-width: 820px) {
  .home-page .final-cta-phone-link,
  .site-footer.footer-v17-1 .footer-ref-phone { display: none !important; }
}

/* V36 — Logo d'accueil mobile XXL puis compact au scroll. */
@media (max-width:820px){
  .home-page .site-header.home-header{
    height:112px;
    grid-template-columns:minmax(0,1fr) 48px;
    gap:12px;
    padding-inline:clamp(14px,3.2vw,22px);
    transition:height .3s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s;
  }
  .home-page .home-header .brand,
  .home-page .home-header:not(.is-scrolled) .brand{
    width:min(330px,calc(100vw - 92px));
    min-width:0;
    height:90px;
    transition:width .3s cubic-bezier(.2,.8,.2,1),height .3s cubic-bezier(.2,.8,.2,1);
  }
  .home-page .home-header .brand-logo{max-width:none;width:100%;height:100%;object-fit:contain;object-position:left center}
  .home-page .home-header .menu-toggle{grid-column:2;justify-self:end;min-width:44px;min-height:44px}
  .home-page .home-header.is-scrolled{height:68px}
  .home-page .home-header.is-scrolled .brand{width:min(185px,calc(100vw - 90px));height:52px}
  .home-page .home-header:not(.is-scrolled) + .mobile-panel{top:112px}
  .home-page .home-header.is-scrolled + .mobile-panel{top:68px}
  .home-page .home-hero{padding-top:112px}
}
@media (max-width:390px){
  .home-page .site-header.home-header{height:100px}
  .home-page .home-header .brand,.home-page .home-header:not(.is-scrolled) .brand{width:min(280px,calc(100vw - 86px));height:82px}
  .home-page .home-header.is-scrolled{height:64px}
  .home-page .home-header.is-scrolled .brand{width:170px;height:48px}
  .home-page .home-header:not(.is-scrolled) + .mobile-panel{top:100px}
  .home-page .home-header.is-scrolled + .mobile-panel{top:64px}
  .home-page .home-hero{padding-top:100px}
}
@media (prefers-reduced-motion:reduce){
  .home-page .home-header,.home-page .home-header .brand{transition:none!important}
}
