/* Version 61 — pages séparées, fond blanc cassé et pied de page commun. */
:root{--site-ivory:#f6f3eb;--site-ivory-soft:#fbfaf5;--site-ink:#173126;--footer-ink:#020b07;--footer-green:#baff47}

/* Light surfaces must not inherit the former dark theme's white text. */
body.farhan-v54{color:var(--site-ink);--readable-copy:#43564a;--readable-accent:#285e3c}
body.farhan-v54 :is(.about-section,.appointment-section,.reviews-section,.solutions-section){color:var(--site-ink)}
body.farhan-v54 :is(.about-section,.appointment-section,.reviews-section,.solutions-section) h2{color:var(--site-ink)}
body.farhan-v54 :is(.about-section,.appointment-section,.reviews-section) h3{color:var(--site-ink)}
body.farhan-v54 :is(.about-section,.appointment-section,.reviews-section,.solutions-section) h2 em{color:var(--readable-accent)}
body.farhan-v54 .about-section>div>p,
body.farhan-v54 .about-section .large-copy,
body.farhan-v54 .about-facts p,
body.farhan-v54 .appointment-copy>p,
body.farhan-v54 .review-proof p,
body.farhan-v54 .google-rating small,
body.farhan-v54 .google-rating strong span{color:var(--readable-copy)}
body.farhan-v54 .about-facts>div>span,
body.farhan-v54 :is(.about-section,.appointment-section,.reviews-section,.solutions-section) .eyebrow{color:var(--readable-accent)}
body.farhan-v54 .solutions-section .section-top p{color:var(--readable-copy)}
body.farhan-v54 .solutions-section .service-card{color:var(--site-ink)}
body.farhan-v54 .solutions-section .service-card p{color:var(--readable-copy)}
body.farhan-v54 .solutions-section .service-card .service-icon{color:var(--readable-accent)}
body.farhan-v54 .solutions-section .service-how{color:var(--readable-copy);border-top-color:#c6d0c5}
body.farhan-v54 .solutions-section .service-how>strong{color:var(--readable-accent)}
body.farhan-v54 .about-section .text-link{color:var(--readable-accent)}
body.farhan-v54 .appointment-copy .appointment-contact>a,
body.farhan-v54 .appointment-copy .appointment-contact>p{color:var(--site-ink);background:#fbfaf5;border-color:#c6d0c5}
body.farhan-v54 .appointment-copy .appointment-contact .ui-icon{color:var(--readable-accent);flex-shrink:0}
body.farhan-v54 .appointment-copy .appointment-contact>a:hover{background:#e6eddf}
body.farhan-v54 .appointment-copy .appointment-phone{color:var(--readable-accent);border-color:currentColor}
body.farhan-v54 .google-rating{background:#fbfaf5;border-color:#c6d0c5}
body.farhan-v54 .google-rating strong,
body.farhan-v54 .review-proof strong{color:var(--site-ink)}
body.farhan-v54 .review-proof{background:#fbfaf5;border-color:#c6d0c5}
body.farhan-v54 .reviews-section{background-image:none}
body.farhan-v54 .reviews-section:before{display:none}

html,body{background:var(--site-ivory)!important}
body.farhan-v54 main,
body.farhan-v54 .hero,
body.farhan-v54 .section,
body.farhan-v54 .solutions-section,
body.farhan-v54 .story-section,
body.farhan-v54 .about-section,
body.farhan-v54 .realisations-section,
body.farhan-v54 .reviews-section,
body.farhan-v54 .faq-section,
body.farhan-v54 .quote-section,
body.farhan-v54 .appointment-section{background-color:var(--site-ivory)!important}

body.farhan-v54 .service-card,
body.farhan-v54 .quote-section form,
body.farhan-v54 .appointment-card,
body.farhan-v54 details{background-color:var(--site-ivory-soft)}

.page-shell{min-height:58vh;padding-top:clamp(94px,8vw,122px)}
.page-shell.page-home{padding-top:0}
.page-shell>.section:first-child,.page-shell>.story-section:first-child{padding-top:70px}

/* Accueil visible immédiatement : slogan et maison partagent le premier écran. */
body.farhan-v54 .page-home>.hero{
  min-height:clamp(640px,calc(100svh - 18px),860px);
  padding-top:90px;
  background:var(--site-ivory)!important;
}
body.farhan-v54 .page-home .hero-copy{
  min-height:clamp(570px,calc(100svh - 90px),780px);
  padding-top:clamp(74px,10vh,118px);
  padding-bottom:72px;
}
body.farhan-v54 .page-home .hero-photo-panel{
  width:64%;
  height:calc(100% - 66px);
  background:var(--site-ivory)!important;
}
body.farhan-v54 .page-home .hero-photo-panel::before{
  background:
    linear-gradient(90deg,#f6f3eb 0%,rgba(246,243,235,.92) 5%,rgba(246,243,235,.54) 14%,rgba(246,243,235,.14) 24%,rgba(246,243,235,0) 33%),
    linear-gradient(0deg,#f6f3eb 0%,rgba(246,243,235,0) 10%)!important;
}
body.farhan-v54 .page-home .hero-bottom{background:var(--site-ivory)!important}

/* Contraste v64 : menu clair, photo visible et chatbot entièrement lisible. */
body.farhan-v54 .site-header .mega-menu{
  color:#101814;
  background:rgba(252,252,248,.94);
  border-color:rgba(46,70,53,.18);
}
body.farhan-v54 .site-header .mega-intro .eyebrow{color:#486255}
body.farhan-v54 .site-header .mega-intro h2{color:#101814}
body.farhan-v54 .site-header .mega-intro .text-link{color:#173d2b}
body.farhan-v54 .site-header #mega-links button{
  color:#111915;
  background:#edf2e9;
  border-color:#dce5da;
}
body.farhan-v54 .site-header #mega-links button:hover{color:#101814;background:#caff68}

body.farhan-v54 .chat-panel{color:#111915;background:#fffdf8;border-color:#cbd6cb}
body.farhan-v54 .chat-panel>header{color:#111915;background:#edf3e8}
body.farhan-v54 .chat-panel strong{color:#0b1510}
body.farhan-v54 .chat-panel small{color:#45564c}
body.farhan-v54 .chat-panel .chat-message.assistant{color:#111915;background:#edf2e9}
body.farhan-v54 .chat-panel .chat-message.user{color:#fff;background:#173d2b}
body.farhan-v54 .chat-panel .chat-suggestions button{color:#111915;background:#fff;border-color:#cbd6cb}
body.farhan-v54 .chat-panel .chat-links,
body.farhan-v54 .chat-panel .chat-links button,
body.farhan-v54 .chat-panel .chat-links a{color:#173d2b}
body.farhan-v54 .chat-panel textarea{color:#000;background:#fff}
body.farhan-v54 .chat-panel textarea::placeholder{color:#606b64;opacity:1}
body.farhan-v54 .chat-panel .chat-disclaimer{color:#4f5b53}

/* Rendez-vous : conserver un contraste net sur le fond ivoire. */
body.farhan-v54 .appointment-card{
  color:#111915;
  background:#fffdf8;
  border-color:#d3dcd2;
  box-shadow:0 24px 70px rgba(17,35,25,.14);
}
body.farhan-v54 .appointment-card h3{color:#111915}
body.farhan-v54 .appointment-card .field{color:#263b30}
body.farhan-v54 .appointment-card .field input,
body.farhan-v54 .appointment-card .field select,
body.farhan-v54 .appointment-card .field textarea{
  color:#111915;
  background:#fff;
  border-color:#bdc9be;
}
body.farhan-v54 .appointment-card .field input::placeholder,
body.farhan-v54 .appointment-card .field textarea::placeholder{color:#657168;opacity:1}
body.farhan-v54 .appointment-card .check-consent,
body.farhan-v54 .appointment-card .appointment-note{color:#4f5b53}

/* Les repères restent attachés à la maison 3D, même après les effets tactiles globaux. */
body.farhan-v54 .house-map .hotspot{
  position:absolute!important;
  left:var(--x)!important;
  top:var(--y)!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
}

/* Les deux actions flottantes restent séparées sur ordinateur. */
@media(min-width:801px){
  body.farhan-v54 .appointment-fab{
    left:24px;
    right:auto;
    width:auto;
    max-width:min(260px,calc(50vw - 40px));
    bottom:24px;
    padding:15px 22px;
  }
  body.farhan-v54 .chat-launcher{
    left:auto;
    right:24px;
    width:auto;
    max-width:min(260px,calc(50vw - 40px));
    bottom:24px;
  }
}

/* Pied de page inspiré de la référence fournie. */
body.farhan-v54 footer#contact{
  position:relative;
  z-index:3;
  padding:76px 0 24px;
  border-top:0;
  background:var(--footer-ink)!important;
  color:#eef6ef;
}
body.farhan-v54 footer#contact .footer-top{grid-template-columns:1.05fr 1fr .72fr;gap:clamp(48px,8vw,135px)}
body.farhan-v54 footer#contact .wordmark{color:#fff}
body.farhan-v54 footer#contact .brand-name b:nth-child(2){color:var(--footer-green)}
body.farhan-v54 footer#contact .brand-name small{color:#839489}
body.farhan-v54 footer#contact p{color:#87988d}
body.farhan-v54 footer#contact h3{color:#f7fbf8;font-size:13px}
body.farhan-v54 footer#contact .contact-number{
  display:block;
  margin:27px 0 9px;
  color:var(--footer-green);
  font-size:clamp(25px,2.2vw,34px);
  font-weight:800;
  line-height:1.1;
  letter-spacing:.02em;
}
body.farhan-v54 footer#contact .footer-email{display:block;width:max-content;color:#fff;font-size:13px;font-weight:750}
body.farhan-v54 footer#contact #footer-services{grid-template-columns:1fr 1fr;gap:12px 42px;color:#8d9e93}
body.farhan-v54 footer#contact #footer-services button:hover{color:var(--footer-green)}
body.farhan-v54 footer#contact .text-link{color:#fff;border-bottom-color:#fff}
body.farhan-v54 footer#contact .footer-bottom{border-color:#1b2a22;color:#708078}
body.farhan-v54 footer#contact .scene-credits{color:#617067}

@media(max-width:800px){
  .page-shell{padding-top:calc(82px + env(safe-area-inset-top))}
  .page-shell.page-home{padding-top:0}
  .page-shell>.section:first-child,.page-shell>.story-section:first-child{padding-top:52px}
  body.farhan-v54 .page-home>.hero{padding-top:calc(78px + env(safe-area-inset-top));min-height:0}
  body.farhan-v54 .page-home .hero-copy{min-height:0;padding:25px 14px 18px}
  body.farhan-v54 .page-home .hero-photo-panel{height:clamp(285px,42svh,410px)!important}
  body.farhan-v54 .page-home .hero-photo-panel::before{
    background:linear-gradient(180deg,#f6f3eb 0%,rgba(246,243,235,.48) 5%,rgba(246,243,235,0) 14%,rgba(246,243,235,0) 94%,#f6f3eb 100%)!important;
  }
  body.farhan-v54 .appointment-fab{
    left:9px!important;
    right:calc(50% + 4px)!important;
    width:auto!important;
  }
  body.farhan-v54 .chat-launcher{
    left:calc(50% + 4px)!important;
    right:9px!important;
    width:auto!important;
  }
  body.farhan-v54.nav-open .appointment-fab,
  body.farhan-v54.nav-open .chat-launcher{opacity:0;pointer-events:none;transform:translateY(80px)}
  body.farhan-v54.route-contact .appointment-fab{display:none!important}
  body.farhan-v54.route-contact .chat-launcher{
    left:auto!important;
    right:9px!important;
    width:min(190px,calc(100vw - 18px))!important;
  }
  body.farhan-v54.route-contact .appointment-section{padding-bottom:calc(105px + env(safe-area-inset-bottom))}
  body.farhan-v54.route-contact .appointment-card h3{font-size:clamp(27px,8vw,38px);line-height:1.06}

  body.farhan-v54 #maison{padding-top:40px}
  body.farhan-v54 #maison .section-top h2{font-size:clamp(39px,11vw,52px);line-height:.96}
  body.farhan-v54 #maison .house-map{aspect-ratio:1206/815;min-height:0!important}
  body.farhan-v54 #maison .house-map>img.house-view-image{
    width:100%;height:100%;min-height:0;object-fit:contain;object-position:center;
  }
  body.farhan-v54 #maison .house-view-switch{
    z-index:8;top:8px;left:50%;right:auto;max-width:calc(100% - 16px);transform:translateX(-50%);
  }
  body.farhan-v54 #maison .house-map .hotspot>span{width:29px;height:29px}
  body.farhan-v54 footer#contact{padding:58px 0 calc(98px + env(safe-area-inset-bottom))}
  body.farhan-v54 footer#contact .footer-top{grid-template-columns:1fr;gap:42px}
  body.farhan-v54 footer#contact #footer-services{grid-template-columns:1fr 1fr;gap:11px 20px}
  body.farhan-v54 footer#contact .footer-bottom{margin-top:45px}
}

@media(max-width:1180px){
  body.farhan-v54 .site-header nav>.mega-menu{
    position:static!important;
    order:initial;
    width:100%;
    margin:0 0 8px;
    padding:10px;
    border-radius:16px;
    background:#f2f5ef;
    box-shadow:none;
  }
  body.farhan-v54 .site-header nav>.mega-menu[hidden]{display:none!important}
  body.farhan-v54 .site-header nav>.mega-menu #mega-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  body.farhan-v54 .site-header nav>.mega-menu #mega-links button{
    min-width:0;min-height:48px;padding:9px 8px;border-radius:12px;font-size:11px;line-height:1.2;
  }
}

@media(max-width:430px){
  body.farhan-v54 .page-home .hero h1{font-size:clamp(38px,11.7vw,49px)}
  body.farhan-v54 .page-home .hero-copy>p{font-size:13px}
  body.farhan-v54 .page-home .hero-photo-panel{height:300px!important}
  body.farhan-v54 footer#contact #footer-services{grid-template-columns:1fr}
}

/* Match Energy in the header wordmark to the green hero lettering. */
body.farhan-v54 .site-header .wordmark .brand-name b:nth-child(2){color:#4d7942}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
  body.farhan-v54 .site-header .wordmark .brand-name b:nth-child(2){
    background:linear-gradient(110deg,#173d2b 5%,#4d7942 55%,#86a850 100%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    -webkit-text-fill-color:transparent;
  }
}
@media(forced-colors:active){
  body.farhan-v54 .site-header .wordmark .brand-name b:nth-child(2){background:none;color:CanvasText;-webkit-text-fill-color:CanvasText}
}
