/*
Theme Name: DOMUDIA
Theme URI: https://www.domudia.fr
Author: DOMUDIA
Description: Thème vitrine sur-mesure pour DOMUDIA, cabinet de diagnostics immobiliers à Rambouillet. Recrée le design du site d'origine avec les outils standards de WordPress (pages, articles, menus, widgets).
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: domudia
*/

:root{
  --pink: #e11457;
  --pink-bg: #fce7ee;
  --teal: #1a5b79;
  --teal-dark: #0b445e;
  --card-teal: #326c88;
  --dark: #1c1c1c;
  --body-text: #484848;
  --bg-light: #e8eef1;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } html{scroll-behavior:auto;} }

body{
  margin:0;
  font-family: 'Roboto', Arial, Helvetica, sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: var(--body-text);
  background:#fff;
}
img{ max-width:100%; display:block; }
a{ text-decoration:none; color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }
:focus-visible{ outline: 2px solid var(--pink); outline-offset: 2px; }

h1,h2,h3,h4{ font-family:'Roboto',Arial,Helvetica,sans-serif; font-weight:600; margin:0 0 15px; color: var(--dark); }
h1{ font-size: clamp(24px,3.6vw,40px); line-height:1.2; }
h2{ font-size: clamp(20px,2.6vw,30px); line-height:1.25; }

.container{ max-width: 1200px; margin:0 auto; padding:0 20px; }

/* ================= TOP BAR ================= */
.head-top{ font-size:15px; border-bottom: 1px solid #eee; }
.head-top .row{ display:flex; align-items:center; justify-content: space-between; flex-wrap: wrap; padding: 30px 0; gap: 20px; }
.head-top .logo img{ width: 270px; }
.head-coord{ display:flex; align-items:center; gap: 22px; flex-wrap: wrap; }

.phone-pill{ position:relative; display:flex; align-items:center; gap:16px; border:1.5px solid var(--teal); padding: 16px 32px 16px 38px; }
.phone-pill .ic{ position:absolute; left:-22px; top:50%; transform:translateY(-50%); width:44px; height:44px; flex-shrink:0; border-radius:50%; overflow:hidden; box-shadow:0 0 0 3px #fff; }
.phone-pill .ic img{ width:100%; height:100%; object-fit:cover; }
.phone-pill .desc{ font-size:15px; color:var(--dark); white-space:nowrap; }
.phone-pill .desc a{ color: var(--teal); font-weight:bold; font-size:19px; margin-left:4px; }

.btn-fb{ display:inline-flex; align-items:center; gap:10px; background: var(--pink); color:#fff; padding: 18px 26px; border-radius:3px; font-weight:600; font-size:16px; white-space:nowrap; }
.btn-fb:hover{ background: var(--teal); }

.btn-1{ padding: 0 20px; line-height:45px; height:45px; background: var(--pink); color:#fff; display:inline-flex; align-items:center; gap:6px; justify-content:center; font-weight:500; min-width:150px; font-size:16px; border:none; cursor:pointer; }
.btn-1:hover{ background: var(--teal); color:#fff; }
.btn-2{ padding:0 20px; line-height:45px; height:45px; background: var(--pink-bg); color: var(--pink); display:inline-flex; align-items:center; gap:6px; justify-content:center; font-weight:bold; min-width:130px; font-size:16px; }
.btn-2:hover{ background:#fff; }

/* ================= HEADER / NAV (teal bar) ================= */
header.site-header{ background: var(--teal); position: sticky; top:0; z-index:80; }
.nav-wrap{ display:flex; align-items:stretch; justify-content:space-between; min-height:64px; padding: 0 30px; }
.mobile-logo{ display:none; align-items:center; padding:10px 20px; }
.mobile-logo img{ width:160px; }

#primary-menu{ display:flex; align-items:stretch; flex-wrap:wrap; flex-grow:1; }
#primary-menu li{ position:relative; display:flex; align-items:center; }
#primary-menu li a{ display:block; padding: 22px 16px; color:#fff; font-weight:700; font-size:15px; white-space:nowrap; }
#primary-menu li a:hover{ color: var(--pink); }
#primary-menu .current-menu-item > a{ color: var(--pink); }

#primary-menu ul.sub-menu{ position:absolute; top:100%; left:0; background:#fff; min-width:300px; box-shadow:0 10px 25px rgba(0,0,0,0.18); padding:8px 0; display:none; z-index:50; }
#primary-menu li.menu-item-has-children:hover > ul.sub-menu,
#primary-menu li.menu-item-has-children.open > ul.sub-menu{ display:block; }
#primary-menu ul.sub-menu li a{ display:block; padding:10px 22px; font-size:13.5px; color:var(--dark); font-weight:400; }
#primary-menu ul.sub-menu li a:hover{ background: var(--pink-bg); color: var(--pink); }

.burger{ display:none; width:38px; height:32px; position:relative; background:none; border:none; cursor:pointer; margin:auto 16px; }
.burger span, .burger span::before, .burger span::after{ content:''; position:absolute; left:0; right:0; height:3px; background:#fff; }
.burger span{ top:14px; } .burger span::before{ top:-10px; } .burger span::after{ top:10px; }

/* ================= HERO CAROUSEL ================= */
.hero-section{ position:relative; }
.home-slide{ position:relative; height: 560px; overflow:hidden; }
.slide{ position:absolute; top:0; left:0; right:0; bottom:0; background-size:cover; background-position:center; opacity:0; transition: opacity .7s ease; }
.slide.active{ opacity:1; z-index:2; }
.slide::after{ content:''; position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, rgba(10,20,30,0.55) 0%, rgba(10,20,30,0.18) 55%, rgba(10,20,30,0.05) 100%); }
.slide .container{ position:relative; height:100%; display:flex; align-items:center; z-index:2; }
.slide-content{ max-width:560px; color:#fff; }
.slide-content .text{ font-size:16px; font-weight:700; text-transform:uppercase; letter-spacing:2px; margin-bottom:18px; }
.slide-content .title{ font-size: clamp(26px,4vw,44px); font-weight:bold; line-height:1.25; margin-bottom:28px; text-transform:none; color:#fff;}

.home-slide .owl-nav{ position:absolute; display:flex; height:0; top:50%; transform:translateY(-50%); justify-content:space-between; align-items:center; width:100%; left:0; z-index:5; }
.home-slide .owl-nav button{ padding:0; display:flex; justify-content:center; align-items:center; width:60px; height:114px; font-size:30px; border:0; position:relative; color:#fff; background:transparent; cursor:pointer; }
.home-slide .owl-nav button svg{ position:relative; z-index:2; }
.home-slide .owl-nav .owl-prev::before{ position:absolute; left:0; top:0; border-left:57px solid var(--pink); border-top:57px solid transparent; border-right:57px solid transparent; border-bottom:57px solid transparent; content:''; transition:.2s; }
.home-slide .owl-nav .owl-next::before{ position:absolute; right:0; top:0; border-right:57px solid var(--pink); border-top:57px solid transparent; border-left:57px solid transparent; border-bottom:57px solid transparent; content:''; transition:.2s; }
.home-slide .owl-nav .owl-prev:hover::before{ border-left-color: var(--teal); }
.home-slide .owl-nav .owl-next:hover::before{ border-right-color: var(--teal); }

/* ================= GENERIC SECTION TITLE ================= */
.sect-title{ margin-bottom:40px; position:relative; }
.sect-title.center{ text-align:center; }
.sub-title{ display:inline-flex; align-items:center; gap:12px; color: var(--dark); font-weight:bold; font-size:14px; text-transform:uppercase; letter-spacing:1px; margin-bottom:8px; }
.sub-title img{ width:26px; height:26px; }

/* ================= BANNER (inner pages) ================= */
.ban{ height:220px; background-size:cover; background-position:center; width:100%; position:relative; display:flex; justify-content:center; align-items:center; background-color: var(--teal); background-image: linear-gradient(rgba(26,91,121,.6), rgba(11,68,93,.78)), url('assets/images/slide-1.jpg'); }
.ban .title-ban{ font-size:34px; font-weight:bold; color:#fff; text-transform:uppercase; text-align:center; padding:0 20px; }

/* ================= PRESENTATION / GENERIC PAGE CONTENT ================= */
.presentation{ padding: 70px 0 60px; }
.presentation .wrap{ display:grid; grid-template-columns: 380px 1fr; gap:50px; align-items:start; }
.presentation .imgbox-wrap{ position:relative; }
.presentation .imgbox-wrap::before{
  content:'';
  position:absolute;
  top:-22px; left:-22px;
  width:62%; height:42%;
  background: var(--pink);
  z-index:0;
}
.presentation .imgbox{ width:100%; aspect-ratio: 4/5; overflow:hidden; position:relative; z-index:1; }
.presentation .imgbox img{ width:100%; height:100%; object-fit:cover; }
.presentation .bloc-text p{ margin:0 0 14px; }
.presentation .bloc-text strong{ color: var(--dark); }
.presentation .bloc-text img{ height:auto !important; }
.presentation h2.commune{ margin-top:30px; font-size:24px; text-transform:none; }

.page-content-sect{ padding:60px 0; }
.page-content-sect .bloc-text{ max-width:880px; }
.page-content-sect .bloc-text img{ height:auto !important; margin-bottom:20px; }
.page-content-sect .bloc-text h2{ margin-top:30px; }

/* ================= EXPERTISES ================= */
.expertises{ background: var(--bg-light); padding: 70px 0 80px; position:relative; }
.exp-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap: 30px; margin-top:10px; }
.exp-item{ width:230px; margin-bottom: 30px; }
.exp-item .imgwrap{ position:relative; height:200px; }
.exp-item .imgwrap .bgimg{ position:absolute; top:0;left:0;right:0;bottom:0; background-size:cover; background-position:center; }
.exp-item .imgwrap .bgimg::after{ content:''; position:absolute; top:0;left:0;right:0;bottom:0; background:linear-gradient(rgba(0,0,0,0.2),rgba(0,0,0,0.4)); }
.exp-item .icon{ width:60px; height:60px; position:absolute; left:65px; top:40px; z-index:3; }
.exp-item .icon img{ width:100%; filter: brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,.4)); }
.exp-item .content{ background: var(--card-teal); color:#fff; text-align:center; padding:14px; margin-top:-39px; position:relative; z-index:2; transition: background .25s ease; }
.exp-item:hover .content{ background: var(--pink); }
.exp-item .content a{ color:#fff; font-weight:400; font-size:16px; text-transform:uppercase; }

/* ================= REACTIVITE/RIGUEUR ================= */
.avt-sect{ background: var(--teal); padding: 60px 0; }
.avt-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.avt-item{ display:flex; align-items:flex-start; gap:22px; color:#fff; padding: 0 20px; }
.avt-item img{ width:54px; height:54px; flex-shrink:0; filter: brightness(0) invert(1); }
.avt-item .title{ font-size:19px; font-weight:bold; text-transform:uppercase; margin-bottom:8px; letter-spacing:0.5px; }
.avt-item .desc{ opacity:.92; font-size:14.5px; }
.avt-grid > .avt-item:first-child{ border-right:1px solid rgba(255,255,255,0.25); }

/* ================= ACTUS ================= */
.actus{ background: var(--bg-light); padding:70px 0 80px; }
.actu-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:10px; }
.actu-card{ background:#fff; display:flex; flex-direction:column; }
.actu-card .imgwrap{ position:relative; height:170px; overflow:hidden; }
.actu-card .imgwrap img{ width:100%; height:100%; object-fit:cover; }
.actu-card .date{ position:absolute; left:14px; bottom:-14px; background: var(--pink); color:#fff; font-size:12px; font-weight:600; padding:6px 12px; display:flex; align-items:center; gap:6px; letter-spacing:.5px; }
.actu-card .body{ padding:26px 18px 20px; flex-grow:1; display:flex; flex-direction:column; }
.actu-card .title{ font-size:17px; font-weight:bold; color:var(--dark); margin-bottom:10px; line-height:1.3; }
.actu-card .desc{ color:#777; font-size:14px; margin-bottom:14px; flex-grow:1; }
.actu-card .link{ color: var(--pink); font-weight:600; font-size:14px; }

/* single article page */
.single-actu{ padding:60px 0; max-width:880px; margin:0 auto; }
.single-actu .date-badge{ display:inline-flex; align-items:center; gap:6px; background:var(--pink); color:#fff; font-size:12px; font-weight:600; padding:6px 14px; margin-bottom:18px; }
.single-actu .content img{ height:auto !important; margin:10px 0; }
.single-actu .back-link{ display:inline-block; margin-top:30px; color:var(--pink); font-weight:600; }

/* ================= CONTACT PAGE ================= */
.contact-cards{ display:grid; grid-template-columns:1fr 1fr; gap:0; }
.item-cont{ position:relative; color:#fff; padding:50px 20px; text-align:center; }
.item-cont img{ display:inline-block; margin-bottom:18px; width:46px; filter:brightness(0) invert(1); }
.item-cont .title{ font-size:16px; text-transform:uppercase; letter-spacing:2px; font-weight:700; margin-bottom:10px; }
.item-cont .desc a{ color:#fff; font-size:19px; font-weight:bold; }
.contact-form-sect{ padding:70px 0 0; }
.text-cont{ line-height:1.5; font-size:15px; color:#1c1c1c; text-align:center; margin-bottom:20px; }
.map-box{ height:380px; margin-top:50px; }
.map-box iframe{ width:100%; height:100%; border:0; }
@media (max-width:768px){ .contact-cards{ grid-template-columns:1fr; } }

/* Contact Form 7 styling to match the site */
.wpcf7-form{ max-width:900px; margin:0 auto; }
.wpcf7-form p{ margin:0 0 18px; }
.wpcf7-form .form-row2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel], .wpcf7-form textarea{
  width:100%; font-size:15px; outline:none; border-radius:5px; padding:15px 20px; color:#1c1c1c; height:54px; border:none; background:#f3f3f3; font-family:'Roboto';
}
.wpcf7-form textarea{ height:160px; resize:vertical; }
.wpcf7-form input[type=submit]{
  padding: 0 30px; line-height:50px; height:50px; background: var(--pink); color:#fff; border:none; border-radius:0;
  font-weight:500; font-size:16px; cursor:pointer; display:block; margin:0 auto;
}
.wpcf7-form input[type=submit]:hover{ background: var(--teal); }
.wpcf7-form .wpcf7-not-valid-tip{ color: var(--pink); font-size:12.5px; margin-top:4px; }
.wpcf7-response-output{ text-align:center; border-radius:5px; margin-top:20px !important; }
@media (max-width:768px){ .wpcf7-form .form-row2{ grid-template-columns:1fr; } }

/* ================= FOOTER ================= */
.foot-top{ background: var(--teal); color:#fff; padding: 60px 0 30px; }
.foot-grid{ display:grid; grid-template-columns: 1.3fr 1fr; gap:40px; }
.foot-logo img{ width:230px; margin-bottom:22px; }
.text-foot{ display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:15px; }
.text-foot img{ width:20px; height:20px; filter:brightness(0) invert(1); }
.text-foot a:hover{ color: var(--pink); }
.foot-links{ margin: 14px 0 18px; }
.foot-links a{ display:block; margin-bottom:6px; font-size:14.5px; }
.foot-links a:hover{ color: var(--pink); }
.foot-copy{ font-size:12.5px; opacity:.85; line-height:1.7; }
.foot-copy a{ text-decoration:underline; }
.title-foot{ color:#fff; font-weight:bold; text-transform:uppercase; letter-spacing:1.5px; font-size:18px; padding-bottom:10px; margin-bottom:18px; position:relative; }
.title-foot::before{ content:''; position:absolute; left:0; bottom:0; width:48px; height:3px; background: var(--pink); }
.foot-certifs img{ background:#fff; padding:14px 18px; margin-bottom:18px; max-width:220px; }

/* widget area fallback */
.footer-widgets{ margin-top: 10px; }
.footer-widgets .widget{ margin-bottom: 20px; }
.footer-widgets .widget-title{ color:#fff; font-weight:bold; text-transform:uppercase; letter-spacing:1px; font-size:15px; margin-bottom:14px; }
.footer-widgets ul{ }
.footer-widgets li{ margin-bottom:8px; font-size:14px; }
.footer-widgets a{ color: rgba(255,255,255,0.85); }
.footer-widgets a:hover{ color:#fff; }

/* ================= RESPONSIVE ================= */
@media (max-width: 1100px){
  #primary-menu li a{ padding: 18px 10px; font-size:13.5px; }
}
@media (max-width: 991px){
  .presentation .wrap{ grid-template-columns:1fr; }
  .presentation .imgbox{ max-width:320px; aspect-ratio:4/3; }
  .avt-grid{ grid-template-columns:1fr; }
  .avt-grid > .avt-item:first-child{ border-right:none; border-bottom:1px solid rgba(255,255,255,.25); padding-bottom:24px; margin-bottom:10px; }
  .actu-grid{ grid-template-columns:1fr 1fr; }
  .foot-grid{ grid-template-columns:1fr; }
}
@media (max-width: 768px){
  .mobile-logo{ display:flex; }
  .head-top .logo{ display:none; }
  .head-top .row{ justify-content:center; }
  #primary-menu{ position:absolute; top:100%; left:0; right:0; background: var(--teal); box-shadow:0 10px 20px rgba(0,0,0,.2); display:none; flex-direction:column; }
  #primary-menu.open{ display:flex; }
  #primary-menu li{ display:block; }
  #primary-menu li a{ padding:14px 22px; border-bottom:1px solid rgba(255,255,255,0.12); }
  #primary-menu ul.sub-menu{ position:static; box-shadow:none; min-width:0; padding-left:14px; background:rgba(255,255,255,0.06); }
  #primary-menu ul.sub-menu li a{ color:#fff; }
  .burger{ display:block; }
  .home-slide{ height:480px; }
  .exp-item{ width:160px; }
  .exp-item .imgwrap{ height:150px; }
  .exp-item .icon{ left:50px; }
  .actu-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; }
}
