/* Compléments propres à WordPress */
.skip-link{position:absolute;left:-9999px;top:8px;z-index:300;background:#fff;color:#0b1510;padding:.6rem 1rem;border-radius:8px;font-weight:700}
.skip-link:focus{left:12px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.mobile-menu .mm-cta{margin-top:1.4rem;align-self:flex-start;font-size:1rem!important;border-bottom:0!important;padding:.9rem 1.4rem!important;color:#fff}
.form-msg{grid-column:1/-1}

/* Pages simples, articles, blog */
.ph-simple .ph-in{max-width:900px}
.entry{max-width:800px;font-size:1.05rem;line-height:1.8}
.entry h2,.entry h3{margin:2rem 0 .8rem}
.entry p,.entry ul,.entry ol{margin:0 0 1.1rem}
.entry a{color:var(--accent)}
.entry img,.entry-img{max-width:100%;height:auto;border-radius:16px}
.entry-img{margin-bottom:1.6rem}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1.4rem}
.post-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .35s,box-shadow .35s}
.post-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(13,26,13,.12)}
.post-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;height:auto}
.pc-body{display:grid;gap:.4rem;padding:1.2rem}
.pc-body small{color:var(--accent);font:500 .75rem var(--mono)}
.pc-body b{font-size:1.15rem}
.pc-body span{color:var(--text2);font-size:.93rem}
.pagination{margin-top:2rem}
.pagination .nav-links{display:flex;gap:.5rem;flex-wrap:wrap}
.pagination .page-numbers{padding:.5rem .9rem;border-radius:10px;border:1px solid var(--line);text-decoration:none}
.pagination .current{background:var(--g2);color:#fff;border-color:var(--g2)}

/* Barre d'administration WordPress visible : décale l'en-tête */
body.admin-bar .mobile-menu{top:var(--wp-admin--admin-bar--height,32px)}
@media (max-width:600px){#wpadminbar{position:fixed}}

/* Contact Form 7 : même design que le formulaire Safaya */
.contact-form.cf7-wrap{display:block}
.cf7-wrap .wpcf7{margin:0}
.cf7-wrap .cf7-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.cf7-wrap .cf7-grid .full{grid-column:1/-1}
.cf7-wrap .wpcf7-form-control-wrap{display:block;margin-top:.35rem}
.cf7-wrap label br,.cf7-wrap .cf7-grid>br,.cf7-wrap .cf7-grid>p:empty{display:none}
.cf7-wrap input.wpcf7-not-valid,.cf7-wrap textarea.wpcf7-not-valid,.cf7-wrap select.wpcf7-not-valid{border-color:#d64545;box-shadow:0 0 0 3px rgba(214,69,69,.12)}
.cf7-wrap .wpcf7-not-valid-tip{color:#d64545;font-size:.8rem;font-weight:500;margin-top:.3rem}
.cf7-wrap input:focus,.cf7-wrap select:focus,.cf7-wrap textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(45,138,45,.15)}
.cf7-wrap .wpcf7-submit{cursor:pointer;border:0;width:auto}
.cf7-wrap .wpcf7-spinner{margin:0 0 0 .8rem;vertical-align:middle}
.cf7-wrap .wpcf7 form .wpcf7-response-output{margin:1rem 0 0;padding:.85rem 1rem;border-radius:12px;border:2px solid #2d8a2d;background:rgba(45,138,45,.08);font-size:.92rem;font-weight:500}
.cf7-wrap .wpcf7 form.invalid .wpcf7-response-output,.cf7-wrap .wpcf7 form.unaccepted .wpcf7-response-output,.cf7-wrap .wpcf7 form.failed .wpcf7-response-output,.cf7-wrap .wpcf7 form.spam .wpcf7-response-output{border-color:#d64545;background:rgba(214,69,69,.07)}
.cf7-wrap .screen-reader-response{position:absolute;left:-9999px}
@media (max-width:480px){.cf7-wrap .cf7-grid{grid-template-columns:1fr}}

/* Page Merci */
.merci{min-height:78vh;display:grid;place-items:center;padding:9rem 1.2rem 5rem;text-align:center}
.merci-card{max-width:640px;background:var(--surface);border:2px solid #2d8a2d;border-radius:26px;padding:2.6rem 1.8rem;box-shadow:0 30px 60px rgba(13,26,13,.10)}
.merci-ic{width:78px;height:78px;margin:0 auto 1.3rem;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#1a5c1a,#2d8a2d);color:#fff;animation:merciPop .6s cubic-bezier(.2,1.4,.4,1) both}
.merci-ic svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;animation:merciTick .5s .45s forwards}
.merci h1{font-size:clamp(1.8rem,4.5vw,2.7rem);line-height:1.15;margin:0 0 .8rem}
.merci p.lead{color:var(--text2);font-size:1.05rem;line-height:1.7;margin:0 auto 1.6rem;max-width:520px}
.merci-steps{list-style:none;padding:0;margin:0 0 1.8rem;display:grid;gap:.7rem;text-align:left}
.merci-steps li{display:flex;gap:.8rem;align-items:flex-start;padding:.85rem 1rem;border:1px solid var(--line);border-left:4px solid #2d8a2d;border-radius:14px;background:var(--bg)}
.merci-steps b{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#2d8a2d;color:#fff;font:600 .8rem var(--mono)}
.merci-btns{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}
@keyframes merciPop{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}
@keyframes merciTick{to{stroke-dashoffset:0}}
.merci-btns .btn:not(.primary){border-color:#2d8a2d;color:#1a5c1a;background:transparent}
.merci-btns .btn:not(.primary):hover{background:rgba(45,138,45,.08)}
.cf7-wrap .wpcf7-submit{font:700 1rem var(--body)}

/* Menu : « Services » est un lien vers la page, la liste s'ouvre au survol */
.dd > .dd-link{position:relative;display:inline-block;background:none;border:0;color:inherit;font:600 .95rem var(--body);padding:.6rem .85rem;border-radius:999px;cursor:pointer;text-decoration:none}
.dd > .dd-link:hover{background:rgba(255,255,255,.1)}
.dd > .dd-link::after{content:"";display:inline-block;width:.42rem;height:.42rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg);margin-left:.5rem;transition:transform .25s}
.dd.open > .dd-link::after{transform:translateY(1px) rotate(-135deg)}
.dd > .dd-link::before{content:"";position:absolute;left:50%;bottom:4px;width:0;height:2px;border-radius:2px;background:var(--saffron);transform:translateX(-50%);transition:width .3s}
.dd.active > .dd-link::before{width:22px}
.dd.active > .dd-link{color:var(--g5)}
.dd:focus-within .dd-panel{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1);transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1)}

/* Menu mobile : liens plus petits, coordonnées fixées en bas */
.mobile-menu{justify-content:flex-start;padding-bottom:calc(1.4rem + env(safe-area-inset-bottom,0px))}
.mobile-menu > a:not(.mm-cta){font-size:clamp(1.2rem,5.4vw,1.55rem);padding-block:.8rem}
.mobile-menu .mm-cta{margin-top:1.2rem}
.mobile-menu .mm-foot{margin-top:auto;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.12);display:grid;gap:.5rem;opacity:0;transform:translateY(14px);transition:opacity .4s,transform .4s}
.mobile-menu.open .mm-foot{opacity:1;transform:none;transition-delay:.55s}
.mobile-menu .mm-foot a{font:500 .95rem/1.4 var(--body);padding:0;border:0;opacity:1;transform:none;color:rgba(238,246,238,.85)}
.mobile-menu .mm-foot a:hover{color:#8de08d}
.mobile-menu .mm-foot small{color:rgba(238,246,238,.5);font-size:.78rem;margin-top:.3rem}
body:has(.mobile-menu.open) .wa-fab,body:has(.mobile-menu.open) .to-top{opacity:0;visibility:hidden;pointer-events:none}

/* Phrase qui se colore : plus rapide sur mobile */
@media (max-width:760px){.gw-sec{height:130vh}.gw-sticky{height:100svh}.gw{transition:color .2s}}

/* Chargement : logo Safaya animé */
.preloader{background:radial-gradient(circle at 50% 46%,rgba(45,138,45,.13),transparent 55%),var(--bg);gap:1.6rem;transition:opacity .9s ease .2s,visibility .9s .2s}
.preloader .pl-logo{position:relative;width:min(340px,74vw);aspect-ratio:2/1;animation:plFloat 4s 3.6s ease-in-out infinite;transition:transform .9s cubic-bezier(.7,0,.3,1),opacity .8s}
.preloader .pl-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:none}
.preloader .pl-logo .pl-mark{clip-path:inset(0 55.8% 0 0);transform-origin:23% 50%;animation:plMark 2.1s cubic-bezier(.2,.9,.3,1.15) both}
.preloader .pl-logo .pl-word{clip-path:inset(0 0 0 44.2%);animation:plWord 1.6s 1.5s cubic-bezier(.65,0,.25,1) both}
.preloader .pl-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.9) 50%,transparent 58%) no-repeat;background-size:260% 100%;-webkit-mask:var(--logo) center/contain no-repeat;mask:var(--logo) center/contain no-repeat;animation:plShine 2.6s 3.1s ease-in-out infinite;background-position:160% 0}
.preloader .pl-bar{width:170px;height:3px;background:rgba(45,138,45,.15);opacity:0;animation:plIn .7s 1.7s forwards}
.preloader .pl-bar i{width:0;background:linear-gradient(90deg,#1a5c1a,#4cbf4c);animation:plFill 3.2s 1.7s cubic-bezier(.3,.7,.4,1) forwards;transform:none}
.preloader.done .pl-bar i{width:100%;animation:none;transition:width .5s ease}
.preloader.hide .pl-logo{transform:scale(1.12);opacity:0}
.preloader.hide .pl-bar{opacity:0}
@keyframes plMark{0%{opacity:0;transform:scale(.5) rotate(-30deg);filter:blur(10px)}60%{opacity:1;filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
@keyframes plWord{0%{clip-path:inset(0 100% 0 44.2%);transform:translateX(-18px);opacity:.2}100%{clip-path:inset(0 0 0 44.2%);transform:none;opacity:1}}
@keyframes plShine{0%{background-position:160% 0}70%,100%{background-position:-60% 0}}
@keyframes plFloat{50%{transform:translateY(-6px)}}
@keyframes plFill{to{width:88%}}
@keyframes plIn{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.preloader .pl-logo,.preloader .pl-mark,.preloader .pl-word,.preloader .pl-shine{animation:none!important}.preloader .pl-bar{opacity:1;animation:none}}
