/*
Theme Name: Piprod
Theme URI: www.piprod.com
Description: Thème enfant Piprod
Author: Florent Jamet
Author URI: www.piprod.com
Template: hello-elementor
Version: 2.1.0
*/

/* ......................................................................
   01 — ROOT · RÉGLAGES GÉNÉRAUX
   ......................................................................
   Valeurs communes aux pages PHP. Les adaptations tablette et mobile
   se trouvent en fin de fichier. Les tailles de texte sont en rem.
   ...................................................................... */
:root {
    /* COULEURS — marque, textes, titres et bandeau */
    --napso-brand: #06748b;
    --napso-text: #7d7d7d;
    --napso-heading: #3e3e3e;
    --napso-on-brand: #fff;
    --napso-outline-color: #ffffff33;

    /* POLICES — familles et polices de secours */
    --napso-font-body: "napso", Arial, sans-serif;
    --napso-font-heading: "Gordita", Arial, sans-serif;
    /* Chargement : les fichiers de police existants restent utilisés.
       Les déclarations @font-face se placent hors de :root. */

    /* TAILLES — texte courant, rubriques, titre et contour */
    --napso-size-body: .9375rem;
    --napso-size-section: 1.078125rem;
    --napso-size-title: 2.84375rem;
    --napso-size-outline: 6.25rem;

    /* GRAISSES — texte léger, liens, rubriques et titre */
    --napso-weight-body: 300;
    --napso-weight-link: 400;
    --napso-weight-section: 600;
    --napso-weight-field: 600;
    --napso-weight-title: 800;

    /* INTERLIGNES — texte et titres */
    --napso-leading-body: 1.4;
    --napso-leading-section: 1.3;
    --napso-leading-title: 1.2;

    /* ESPACEMENTS — marges latérales, colonnes et rubriques */
    --napso-content-inset: 10%;
    --napso-content-padding: 100px;
    --napso-content-gap: 51px;
    --napso-section-title-gap: 20px;

    /* BANDEAU — hauteur d’écran et marge intérieure verticale */
    --napso-hero-start-height: 100dvh;
    --napso-hero-height: 60dvh;
    /* Courbe temporaire du bord inférieur pendant le retrait. */
    --napso-hero-curve: 0px;
    --napso-hero-padding: 50px;
    /* Même espace sous le titre et au-dessus du contenu suivant. */
    --napso-section-join-gap: var(--napso-hero-padding);

    /* CONTACT — composition originale de la page */
    --napso-contact-inset: 80px;
    --napso-contact-hero-background: #7a6ba8;
    /* TITRES DE HÉROS — référence Débouchés : contour 30 % plus grand que le plein */
    --napso-hero-outline-ratio: 1.3;
    --napso-size-hero-outline: calc(var(--napso-size-hero-solid) * var(--napso-hero-outline-ratio));
    --napso-size-hero-solid: 4.6875rem;
    --napso-size-hero-mobile: clamp(1.375rem, 7.8vw, 2.625rem);
    --napso-leading-hero-title: 1.3;
    --napso-weight-hero-title: 800;
    --napso-contact-font-copy: "dm-sans", Arial, sans-serif;
    --napso-contact-background: #f0f0f0;
    --napso-contact-ink: #2b464d;
    --napso-contact-details-background: #514451;

    /* LIENS — position et vitesse du soulignement animé */
    --napso-link-offset: 3px;
    --napso-link-duration: .3s;
}

/* 02 — Base des pages natives */
.napso-native{--napso-section-join-gap:var(--napso-hero-padding);font-family:var(--napso-font-body);color:var(--napso-text)}
.napso-native *,.napso-native *::before,.napso-native *::after{box-sizing:border-box}

/* 03 — Bandeau : hauteur d’écran, titre et texte en contour */
.napso-native__hero{position:relative;display:flex;align-items:flex-end;min-height:0;height:100vh;height:var(--napso-hero-start-height);overflow:hidden;padding:var(--napso-hero-padding) var(--napso-content-inset);padding-bottom:var(--napso-section-join-gap);background:var(--napso-brand)}
.napso-native__hero[data-napso-animation="complete"]{height:60vh;height:var(--napso-hero-height)}
.napso-native__title-mask{position:relative;z-index:1;max-width:100%;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.napso-native__hero h1{position:relative;z-index:1;margin:0;font-family:var(--napso-font-heading);font-size:var(--napso-size-title);font-weight:var(--napso-weight-title);line-height:var(--napso-leading-title);color:var(--napso-on-brand)}
.napso-native__hero-outline{position:absolute;bottom:-30px;left:299px;white-space:nowrap;font-family:var(--napso-font-heading);font-size:var(--napso-size-outline);font-weight:var(--napso-weight-title);line-height:.9;color:transparent;-webkit-text-stroke:1px var(--napso-outline-color);pointer-events:none}

/* 04 — Contenu : deux colonnes, rubriques et paragraphes */
.napso-native__content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--napso-content-gap);width:100%;margin:0 auto;padding:var(--napso-content-padding) var(--napso-content-inset);padding-top:var(--napso-section-join-gap);font-size:var(--napso-size-body);font-weight:var(--napso-weight-body);line-height:var(--napso-leading-body);overflow-wrap:anywhere}
.napso-native__section{min-width:0}
/* Alternative réutilisable : bloc long occupant toutes les colonnes de la grille. */
.napso-native__section--wide{grid-column:1/-1}
.napso-native__section h2{margin:0 0 var(--napso-section-title-gap);font-family:var(--napso-font-heading);font-size:var(--napso-size-section);font-weight:var(--napso-weight-section);line-height:var(--napso-leading-section);color:var(--napso-heading)}
.napso-native__section p{margin:0 0 1em}
.napso-native__section p:last-child{margin-bottom:0}
.napso-native__intro{grid-column:1/-1;margin:0;font-size:var(--napso-size-body)}

/* 05 — Liens : même couleur, graisse supérieure et trait animé à 3 px */
.napso-native__section a{color:var(--napso-text);font-weight:var(--napso-weight-link);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;padding-bottom:var(--napso-link-offset);background-position:left bottom;background-size:0% 1px;transition:background-size var(--napso-link-duration) ease,color .2s ease}
.napso-native__section a:hover,.napso-native__section a:focus-visible{color:var(--napso-text);background-size:100% 1px}
.napso-native__section a:focus-visible{outline:2px solid var(--napso-brand);outline-offset:3px}

/* 06 — Mentions légales : crédits, coordonnées et droits d’auteur */
.napso-native--legal .napso-native__section:last-child{grid-column:1/-1}
.napso-native--legal .napso-native__section:nth-child(-n+2) p{margin:0}
.napso-native--legal .napso-native__section:nth-child(2) p+p{margin-top:1em}
.napso-native--legal .napso-native__section:nth-child(-n+2) p:first-of-type br:nth-of-type(even){display:none}

/* 07 — Tablette : marges réduites */
@media(max-width:1024px){
.napso-native{--napso-content-inset:80px;--napso-hero-padding:40px}
.napso-native__hero{padding-block:var(--napso-hero-padding);padding-bottom:var(--napso-section-join-gap)}
.napso-native__content{padding:80px var(--napso-content-inset);padding-top:var(--napso-section-join-gap)}
}

/* 08 — Mobile : une colonne et titre centré */
@media(max-width:767px){
.napso-native{--napso-content-inset:30px;--napso-hero-padding:30px;--napso-size-title:clamp(2.1125rem,9.1vw,2.84375rem);--napso-size-outline:4.5rem}
.napso-native__hero{padding:var(--napso-hero-padding) var(--napso-content-inset);padding-bottom:var(--napso-section-join-gap);justify-content:center;text-align:center}
.napso-native__hero-outline{left:-4px;bottom:-20px}
.napso-native__content{grid-template-columns:1fr;gap:42px;padding:60px var(--napso-content-inset);padding-top:var(--napso-section-join-gap);line-height:1.5}
.napso-native--legal .napso-native__section:last-child{grid-column:auto}
}

/* 09 — Contact : template PHP dédié, composition originale */
.napso-contact{--napso-surface-text:var(--napso-text);--napso-surface-heading:var(--napso-heading);font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-body);line-height:var(--napso-leading-body);color:var(--napso-surface-text);background:var(--napso-contact-background)}
/* Alternative réutilisable : textes et sous-titres blancs sur fond foncé. */
.napso-surface--dark{--napso-surface-text:var(--napso-on-brand);--napso-surface-heading:var(--napso-on-brand);color:var(--napso-surface-text)}
.napso-contact *,.napso-contact *::before,.napso-contact *::after{box-sizing:border-box}
/* Contact — héros FAQ : motif, personnage et titre sur deux lignes */
.napso-contact__hero{position:relative;z-index:1;height:520px;overflow:hidden;background:var(--napso-contact-hero-background);display:flex;flex-direction:column}
.napso-contact__hero-inner{position:relative;width:100%;max-width:1140px;height:100%;margin:0 auto;padding:40px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.napso-contact__hero h1{position:relative;z-index:1;width:70%;margin:0 0 12px -326px;white-space:nowrap;font-family:var(--napso-font-heading);font-weight:var(--napso-weight-hero-title);line-height:var(--napso-leading-hero-title);color:var(--napso-on-brand)}
.napso-contact__hero-outline{display:inline-block;font-size:calc(var(--napso-size-hero-solid) * var(--napso-contact-title-ratio,var(--napso-hero-outline-ratio)));color:var(--napso-on-brand);-webkit-text-fill-color:var(--napso-contact-title-fill,transparent);-webkit-text-stroke:1.3px var(--napso-on-brand)}
.napso-contact__hero-solid{display:inline-block;font-size:var(--napso-size-hero-solid)}
.napso-contact__hero-copy{position:relative;z-index:3;margin:0 0 0 -60px;font-family:var(--napso-contact-font-copy);font-size:1.125rem;font-weight:600;line-height:1.25;color:var(--napso-on-brand)}
.napso-contact__hero-pattern{position:absolute;left:117px;bottom:-191px;width:100%;text-align:center;pointer-events:none}
.napso-contact__hero-pattern img{width:686px;height:900px;object-fit:cover;object-position:center;opacity:.65}
.napso-contact__hero-person,.napso-contact__hero-silhouette{position:absolute;z-index:2;right:-249px;top:20px;width:100%;text-align:center;pointer-events:none}
.napso-contact__hero-person img,.napso-contact__hero-silhouette canvas{width:640px;max-width:none;height:560px;object-fit:contain;object-position:center}
.napso-contact__layout{position:relative;z-index:2;display:grid;grid-template-columns:70% 30%;width:calc(100% - 2*var(--napso-contact-inset));max-width:1140px;margin:-55px auto 0;align-items:stretch}
.napso-contact__form-panel{margin-top:-105px;padding:70px 60px 40px;background:#fff;min-width:0}
.napso-contact__form-panel h2{margin:0;font-family:var(--napso-font-heading);font-size:var(--napso-size-section);font-weight:var(--napso-weight-section);line-height:var(--napso-leading-section);color:var(--napso-surface-heading)}
.napso-contact__form-panel hr{height:1px;border:0;background:#dadada;margin:15px 0}
.napso-contact__intro{margin:0;font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-body);line-height:var(--napso-leading-body);color:var(--napso-surface-text)}
.napso-contact #form_contact>.elementor-widget-container{padding:33px 0 0}
/* Contact — champs PHP : deux colonnes, objet et message en pleine largeur. */
.napso-contact .elementor-form-fields-wrapper{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0}
.napso-contact .elementor-field-group{display:flex;flex-wrap:wrap;align-content:start;align-items:start;width:100%;max-width:100%;min-width:0;padding:0;margin:0}
.napso-contact .elementor-field-group-subject,.napso-contact .elementor-field-group-message,.napso-contact .elementor-field-type-submit{grid-column:1/-1}
.napso-contact .elementor-field-type-hidden{display:none}
.napso-contact .elementor-select-wrapper{width:100%;min-width:0}
.napso-contact #form_contact .elementor-field-label{width:100%;padding-bottom:9px;font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-field);line-height:var(--napso-leading-body);color:var(--napso-surface-text)}
.napso-contact .elementor-mark-required .elementor-field-label:after{content:" *";color:#ef5815}
.napso-contact #form_contact .elementor-field-textual{width:100%;min-height:54px;padding:13px 16px;font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-field);line-height:var(--napso-leading-body);color:var(--napso-surface-text);background:#f8fafb;border:1px solid #27364d26;border-radius:8px;transition:border-color .2s,box-shadow .2s,background .2s}
.napso-contact #form_contact .elementor-field-textual:focus{outline:0;border-color:var(--napso-brand);background:#fff;box-shadow:0 0 0 3px #06748b14}
.napso-contact #form_contact .elementor-field-textual::placeholder{font-weight:var(--napso-weight-body);color:var(--napso-text);opacity:.7}
.napso-contact #form_contact select.elementor-field-textual{padding-right:38px;text-overflow:ellipsis}
.napso-contact textarea.elementor-field-textual{height:160px;min-height:160px;resize:vertical}
.napso-contact .elementor-button[type=submit]{display:inline-flex;justify-content:center;width:auto;min-height:49px;padding:15px 25px;border:2px solid var(--napso-brand);border-radius:25px;background:transparent;color:var(--napso-brand);font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-field);line-height:1;cursor:pointer}
.napso-contact .elementor-button[type=submit]:hover{color:var(--napso-contact-ink);border-color:var(--napso-contact-ink)}
.napso-contact__aside{position:relative;min-width:0;z-index:2}
.napso-contact__details{padding:50px;background:var(--napso-contact-details-background);color:var(--napso-surface-text)}
.napso-contact__details h2{margin:0 0 var(--napso-section-title-gap);font-family:var(--napso-font-heading);font-size:var(--napso-size-section);font-weight:var(--napso-weight-section);line-height:var(--napso-leading-section);color:var(--napso-surface-heading)}
.napso-contact__details p{margin:0 0 20px;font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-body);line-height:var(--napso-leading-body);color:var(--napso-surface-text)}
.napso-contact__details strong{font-weight:var(--napso-weight-body)}
.napso-contact__details ul{padding:0;margin:0;list-style:none}
.napso-contact__details li{margin:0;padding:0}
.napso-contact__details a{display:flex;align-items:center;gap:6px;color:var(--napso-surface-text);font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-body);line-height:var(--napso-leading-body);text-decoration:none}
.napso-contact__details svg{flex:0 0 14px;width:14px;height:14px;fill:currentColor}
.napso-contact__map{width:100%;height:300px;position:relative;overflow:hidden}
.napso-contact__map .spinner{position:absolute;top:50%;left:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border:6px solid transparent;border-top-color:var(--napso-brand);border-right-color:var(--napso-brand);border-radius:50%;animation:napso-contact-spin .8s linear infinite}
@keyframes napso-contact-spin{to{transform:rotate(360deg)}}
.napso-contact__signup{position:relative;display:flex;align-items:center;justify-content:center;min-height:300px;padding:35px;text-align:center;color:#fff;overflow:hidden;text-decoration:none}
.napso-contact__signup-bg,.napso-contact__signup-overlay{position:absolute;inset:0;transition:transform 1.5s,background-color 1.5s}
.napso-contact__signup-bg{background:url("https://www.napso-therapie.org/wp-content/uploads/2022/08/push_inscrire.jpg") center/cover no-repeat}
.napso-contact__signup-overlay{background:#ffe50073;mix-blend-mode:multiply}
.napso-contact__signup:hover .napso-contact__signup-bg{transform:scale(1.1)}
.napso-contact__signup:hover .napso-contact__signup-overlay{background:#f6bd00e0}
.napso-contact__signup-copy{position:relative;display:block;color:#fff}
.napso-contact__signup-copy strong{display:block;margin-bottom:var(--napso-section-title-gap);font-family:var(--napso-font-heading);font-size:var(--napso-size-section);font-weight:var(--napso-weight-section);line-height:var(--napso-leading-section)}
.napso-contact__signup-copy>span{display:block;font-family:var(--napso-font-body);font-size:var(--napso-size-body);font-weight:var(--napso-weight-body);line-height:var(--napso-leading-body)}
/* 10 — Contact : adaptations tablette et mobile */
@media(max-width:1024px){
.napso-contact__hero-inner{justify-content:flex-end;padding:100px 0 200px}
.napso-contact__hero-copy{font-size:1.03125rem;line-height:1.2}
.napso-contact__hero-person,.napso-contact__hero-silhouette{top:71px}
.napso-contact__layout{width:100%;grid-template-columns:64% 36%}
.napso-contact__details{padding:30px}

}
@media(max-width:767px){
.napso-contact__hero{height:500px;padding:0 20px}
.napso-contact__hero-inner{padding:0 0 150px;align-items:flex-start}
.napso-contact__hero h1{position:relative;z-index:3;width:100%;margin-left:0}
.napso-contact__hero-outline{font-size:calc(var(--napso-size-hero-mobile) * var(--napso-contact-title-ratio,var(--napso-hero-outline-ratio)))}
.napso-contact__hero-solid{font-size:var(--napso-size-hero-mobile)}
.napso-contact__hero-copy{width:100%;margin-left:0;font-size:.875rem}
.napso-contact__hero-pattern{left:83px;bottom:-134px}
.napso-contact__hero-pattern img{height:1200px}
.napso-contact__hero-person,.napso-contact__hero-silhouette{right:0;top:auto;bottom:-80px;height:448px}
.napso-contact__hero-person img,.napso-contact__hero-silhouette canvas{width:100vw;max-width:128vw;height:448px;object-fit:contain}
.napso-contact{--napso-size-title:clamp(2.1125rem,9.1vw,2.84375rem);--napso-leading-body:1.5}
.napso-contact__layout{grid-template-columns:1fr;margin-top:-55px}
.napso-contact .elementor-form-fields-wrapper{grid-template-columns:minmax(0,1fr);gap:20px}
.napso-contact__form-panel{margin-top:0;margin-left:20px;margin-right:20px;padding:50px 20px 30px}

.napso-contact__details{padding:40px}

.napso-contact__signup{min-height:202px;padding:30px}

}

/* 11 — Carte OpenStreetMap : fond et repère identiques à LGMN */
.napso-contact__map{background:#dfe8ec}
.napso-contact__map-marker{width:20px;height:24px}
.napso-contact__map-pin{display:block;width:20px;height:20px;border-radius:50% 50% 50% 0;background:var(--napso-brand);transform:rotate(-45deg);position:relative}
.napso-contact__map-pin:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;background:#fff;border-radius:50%;transform:translate(-50%,-50%)}
.napso-contact__map .maplibregl-ctrl-group{display:flex}
.napso-contact__map .maplibregl-ctrl-group button{background:#fff!important;color:#333!important}
.napso-contact__map .maplibregl-ctrl-group button+button{border-top:0;border-left:1px solid #ddd}
.napso-contact__map .maplibregl-ctrl-group button:hover{background:#e8e6de!important}
.napso-contact__map .maplibregl-ctrl-group button:focus-visible{outline:2px solid #777252;outline-offset:-2px}
.napso-contact__map .maplibregl-ctrl-attrib{font-size:10px}
.napso-contact__map-fallback{display:flex;align-items:center;justify-content:center;height:100%;padding:20px;color:var(--napso-contact-ink);text-align:center}
@media(max-width:767px){.napso-contact__map .maplibregl-canvas-container,.napso-contact__map .maplibregl-canvas{touch-action:pan-y}}


/* Contact — silhouette temporaire de révélation et mots du sous-titre */
.napso-contact__hero-silhouette{visibility:hidden}
.napso-contact__hero-word{display:inline-block}

/* Contact — anti-FOUC : état initial avant le JS, secours visible après 4 s sans JS */
.napso-contact__hero:not([data-napso-animation]) h1>span,.napso-contact__hero:not([data-napso-animation]) .napso-contact__hero-person,.napso-contact__hero:not([data-napso-animation]) .napso-contact__hero-pattern,.napso-contact__hero:not([data-napso-animation]) .napso-contact__hero-copy{opacity:0;animation:napso-contact-visible .01s linear 4s forwards}
@keyframes napso-contact-visible{to{opacity:1}}

/* Contact — Lenis : règles recommandées, limitées à cette page */
html[data-napso-scroll="lenis"].lenis,html[data-napso-scroll="lenis"].lenis body{height:auto}
html[data-napso-scroll="lenis"].lenis.lenis-smooth{scroll-behavior:auto!important}
html[data-napso-scroll="lenis"].lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
html[data-napso-scroll="lenis"].lenis.lenis-stopped{overflow:hidden}
