/*
Theme Name: Calliclès Serrurerie
Theme URI: https://serrurerie-callicles.com/
Author: Calliclès
Description: Thème WordPress vitrine pour Calliclès Serrurerie avec contenus modifiables dans le personnalisateur et carte interactive de la zone d'intervention.
Version: 27.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: callicles
*/

:root{--cal-ink:#111827;--cal-muted:#667085;--cal-line:#e5e7eb;--cal-paper:#fff;--cal-soft:#f6f7f9;--cal-accent:#e0a82e;--cal-accent2:#f3c85b}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--cal-ink);background:#fff}.cal-site a{transition:.18s ease}.cal-shell{width:min(1160px,calc(100% - 40px));margin:0 auto}.cal-topbar{background:#0b1019;color:#fff;border-bottom:1px solid #ffffff18}.cal-topbar-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.cal-brand{font-weight:900;font-size:24px;letter-spacing:-.03em;color:#fff;text-decoration:none}.cal-brand span{color:var(--cal-accent2)}.cal-nav{display:flex;align-items:center;gap:22px}.cal-nav a{color:#e5e7eb;text-decoration:none;font-weight:700;font-size:14px}.cal-nav-phone{padding:10px 14px;border-radius:9px;background:var(--cal-accent);color:#111!important}.cal-hero{padding:88px 0 70px;background-image:linear-gradient(90deg,rgba(8,15,27,.88) 0%,rgba(8,15,27,.76) 52%,rgba(8,15,27,.52) 100%),url("assets/hero-callicles.png");background-size:cover;background-position:center 42%;background-repeat:no-repeat;color:#fff;overflow:hidden}.cal-hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:64px;align-items:center}.cal-eyebrow,.cal-kicker{font-size:12px;letter-spacing:.16em;font-weight:800;color:var(--cal-accent2);margin-bottom:16px}.cal-hero h1,.cal-section h2,.cal-cta h2{font-size:clamp(36px,5.2vw,66px);line-height:1.01;letter-spacing:-.04em;margin:0 0 22px}.cal-section h2,.cal-cta h2{font-size:clamp(30px,4vw,48px)}.cal-lead,.cal-section-intro,.cal-map-copy>p,.cal-cta p{font-size:18px;line-height:1.7;color:#d5d9e1;max-width:760px}.cal-section-intro,.cal-map-copy>p{color:var(--cal-muted)}.cal-actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 20px}.cal-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:10px;text-decoration:none!important;font-weight:800;border:1px solid transparent}.cal-btn:hover{transform:translateY(-1px)}.cal-btn-primary{background:var(--cal-accent);color:#111!important}.cal-btn-ghost{border-color:#ffffff4d;color:#fff!important;background:#ffffff0d}.cal-btn-light{background:#fff;color:#111!important}.cal-availability{display:flex;gap:10px;align-items:center;font-weight:700;color:#f3f4f6}.cal-availability span{width:9px;height:9px;border-radius:50%;background:#31c36c;box-shadow:0 0 0 5px #31c36c22}.cal-hero-card{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:22px;padding:34px;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 28px 70px #0005}.cal-lock-icon{font-size:54px;line-height:1;margin-bottom:auto;color:var(--cal-accent2)}.cal-hero-card strong{font-size:25px}.cal-hero-card p{margin:8px 0;color:#c7ccd6}.cal-hero-card a{color:#fff;font-size:21px;font-weight:800}.cal-trust{padding:24px 0;background:#f4f6f8;border-bottom:1px solid var(--cal-line)}.cal-trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cal-trust-grid div{padding:22px 18px;text-align:center;font-weight:800;border-radius:14px;border:1px solid #0000000d;box-shadow:0 8px 20px #1118270a}.cal-trust-grid div:nth-child(1){background:#f3c85b;color:#111827}.cal-trust-grid div:nth-child(2){background:#e9eef5;color:#111827}.cal-trust-grid div:nth-child(3){background:#dce8e3;color:#111827}.cal-section{padding:92px 0}.cal-services-intro{display:grid;grid-template-columns:1fr .9fr;gap:46px;align-items:center}.cal-services-copy{min-width:0}.cal-team-photo{margin:0;border-radius:22px;overflow:hidden;box-shadow:0 25px 60px #1118271f;min-height:330px;background:#eef1f4}.cal-team-photo img{display:block;width:100%;height:100%;min-height:330px;max-height:430px;object-fit:cover}.cal-services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.cal-service-card{border:1px solid var(--cal-line);border-radius:18px;padding:28px;background:#fff;min-height:300px;display:flex;flex-direction:column}.cal-service-number{font-size:13px;font-weight:900;color:#9ca3af}.cal-service-card h3{font-size:24px;margin:30px 0 12px}.cal-service-card p{color:var(--cal-muted);line-height:1.65}.cal-price{margin-top:auto;padding-top:22px;font-weight:900;font-size:20px}.cal-dark{background:#0c1a2b;color:#fff}.cal-dark .cal-kicker{color:#f3c85b}.cal-dark h2{max-width:750px;color:#fff}.cal-dark .cal-step{color:#fff}.cal-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.cal-step{border-top:1px solid #ffffff33;padding-top:22px}.cal-step b{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--cal-accent);color:#111;margin-bottom:20px}.cal-step p{color:#d1d5db;line-height:1.7}.cal-map-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:50px;align-items:center}.cal-zone-badge{display:inline-block;padding:10px 12px;border-radius:999px;background:#f5ecd1;font-weight:800;margin:12px 0 24px}.cal-map{height:470px;border-radius:20px;overflow:hidden;border:1px solid var(--cal-line);box-shadow:0 25px 60px #11182718;background:#eef1f4}.cal-map-note{font-size:12px;color:var(--cal-muted);margin:9px 0 0}.cal-cta{padding:78px 0;background:var(--cal-accent);color:#111}.cal-cta .cal-kicker{color:#5b4513}.cal-cta p{color:#3b3425}.cal-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.cal-contact-card{background:#fff;border-radius:20px;padding:28px;box-shadow:0 20px 50px #4b370f22}.cal-contact-card h3{font-size:24px;margin-top:0}.cal-footer{background:#0d1320;color:#b9c0cc;padding:24px 0}.cal-footer a{color:#fff}.cal-content{padding:70px 0}.cal-content article{max-width:850px;margin:0 auto}.cal-site .leaflet-control-attribution{font-size:10px}
@media(max-width:900px){.cal-nav a:not(.cal-nav-phone){display:none}.cal-hero-grid,.cal-map-grid,.cal-cta-grid,.cal-services-intro{grid-template-columns:1fr}.cal-services,.cal-steps{grid-template-columns:1fr}.cal-trust-grid{grid-template-columns:1fr}.cal-trust-grid div{border-right:0;border-bottom:1px solid var(--cal-line)}.cal-hero{padding:62px 0 54px}.cal-section{padding:68px 0}.cal-map{height:400px}}
@media(max-width:560px){.cal-shell{width:min(100% - 26px,1160px)}.cal-topbar-inner{min-height:62px}.cal-brand{font-size:20px}.cal-nav-phone{font-size:13px;padding:9px 10px}.cal-hero h1{font-size:40px}.cal-btn{width:100%}.cal-hero-card{min-height:230px}.cal-map{height:340px}}

/* Version 1.2 — ajustements visuels */
.cal-hero{min-height:680px;background-color:#0b1422;background-image:linear-gradient(90deg,rgba(8,15,27,.97) 0%,rgba(8,15,27,.91) 43%,rgba(8,15,27,.48) 68%,rgba(8,15,27,.14) 100%),url("assets/hero-callicles.png");background-size:100% 100%,auto 100%;background-position:center,right center;background-repeat:no-repeat,no-repeat;display:flex;align-items:center}
.cal-hero-grid{grid-template-columns:minmax(0,680px) 1fr}
.cal-hero-photo-spacer{min-height:500px}
.cal-service-card{background:#0c1a2b;border-color:#1e3249;color:#fff;box-shadow:0 18px 38px #0c1a2b18}
.cal-service-number{color:#f3c85b}.cal-service-card h3{color:#fff}.cal-service-card p{color:#d8e0ea}.cal-price{color:#fff;border-top:1px solid #ffffff24;margin-top:auto;font-size:22px}
.cal-contact-hero{padding:78px 0;background:#0c1a2b;color:#fff}.cal-contact-hero h1{font-size:clamp(38px,5vw,62px);line-height:1.02;letter-spacing:-.04em;margin:0 0 18px}.cal-contact-hero p{font-size:18px;line-height:1.7;color:#d8e0ea;max-width:720px}.cal-contact-page-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:54px;align-items:start}.cal-contact-info h2{font-size:clamp(30px,4vw,46px);line-height:1.05;letter-spacing:-.035em;margin:0 0 18px}.cal-contact-info p{color:var(--cal-muted);line-height:1.7;margin-bottom:26px}.cal-form-card{background:#fff;border:1px solid var(--cal-line);border-radius:20px;padding:30px;box-shadow:0 24px 60px #11182714}.cal-contact-form{display:grid;gap:17px}.cal-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cal-contact-form label{display:grid;gap:8px;font-weight:800;font-size:14px}.cal-contact-form input,.cal-contact-form textarea{width:100%;border:1px solid #cfd5df;border-radius:10px;padding:13px 14px;font:inherit;color:var(--cal-ink);background:#fff}.cal-contact-form input:focus,.cal-contact-form textarea:focus{outline:2px solid #e0a82e55;border-color:#b9871e}.cal-contact-form textarea{resize:vertical}.cal-contact-form button{border:0;cursor:pointer;justify-self:start}.cal-form-success,.cal-form-error{padding:13px 15px;border-radius:10px;margin-bottom:18px;font-weight:700}.cal-form-success{background:#e8f6ec;color:#176b37}.cal-form-error{background:#fff0f0;color:#9d2424}.cal-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:900px){.cal-hero{min-height:640px;background-image:linear-gradient(rgba(8,15,27,.84),rgba(8,15,27,.91)),url("assets/hero-callicles.png");background-size:cover,auto 100%;background-position:center,right center}.cal-hero-grid{grid-template-columns:1fr}.cal-hero-photo-spacer{display:none}.cal-contact-page-grid{grid-template-columns:1fr}.cal-form-row{grid-template-columns:1fr}}
@media(max-width:560px){.cal-hero{min-height:620px;background-size:cover,auto 100%;background-position:center,70% center}.cal-form-card{padding:20px}}

/* Logo personnalisable WordPress */
.cal-brand-wrap { display:flex; align-items:center; flex-shrink:0; }
.cal-brand-wrap .custom-logo-link { display:flex; align-items:center; line-height:0; }
.cal-brand-wrap .custom-logo { width:auto; height:auto; max-height:58px; max-width:240px; object-fit:contain; }
@media (max-width: 700px) {
  .cal-brand-wrap .custom-logo { max-height:46px; max-width:180px; }
}


/* Version 2.0 — section avis Google */
.cal-reviews{background:#f5f7fa}.cal-reviews-head{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}.cal-google-score{min-width:230px;background:#fff;border:1px solid var(--cal-line);border-radius:20px;padding:24px;box-shadow:0 18px 42px #11182710}.cal-google-label{font-weight:900;font-size:18px}.cal-google-rating{font-weight:950;font-size:38px;letter-spacing:-.04em;margin:8px 0 1px}.cal-stars{color:#e0a82e;letter-spacing:.08em;font-size:20px}.cal-review-count{color:var(--cal-muted);font-weight:700;margin-top:5px}.cal-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px}.cal-review-card{background:#fff;border:1px solid var(--cal-line);border-radius:18px;padding:26px;box-shadow:0 14px 32px #1118270d}.cal-review-card blockquote{margin:18px 0 24px;font-size:16px;line-height:1.75;color:#374151}.cal-review-author{font-weight:900}.cal-reviews-btn{margin-top:32px}.cal-reviews-head+.cal-reviews-btn{margin-top:32px}
@media(max-width:900px){.cal-reviews-head{grid-template-columns:1fr}.cal-google-score{min-width:0}.cal-review-grid{grid-template-columns:1fr}}

/* Version 2.1 — avis déposés directement sur le site */
.cal-review-empty{margin-top:34px;color:var(--cal-muted);font-weight:700}.cal-review-author span{color:var(--cal-muted);font-weight:600}.cal-review-form-wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:42px;align-items:start;margin-top:52px;padding-top:46px;border-top:1px solid var(--cal-line)}.cal-review-form-copy h3{font-size:clamp(28px,3vw,40px);margin:0 0 14px}.cal-review-form-copy p{color:var(--cal-muted);line-height:1.7}.cal-contact-form select{width:100%;border:1px solid #cfd5df;border-radius:10px;padding:13px 14px;font:inherit;color:var(--cal-ink);background:#fff}.cal-review-consent{display:flex!important;grid-template-columns:20px 1fr!important;align-items:start!important;gap:10px!important;font-weight:600!important;line-height:1.5}.cal-review-consent input{width:auto!important;margin-top:4px}.cal-review-card blockquote{white-space:pre-line}
@media(max-width:900px){.cal-review-form-wrap{grid-template-columns:1fr}}

.cal-review-google-link{display:inline-block;margin-top:12px;font-weight:800;color:var(--cal-ink);text-decoration:underline;text-underline-offset:3px}.cal-contact-page+.cal-reviews{border-top:1px solid var(--cal-line)}

/* Version 2.4 — nettoyage visuel des avis */
.cal-review-card blockquote{overflow-wrap:anywhere;word-break:normal}

/* callicles-v16-header-navy */
.site-header,
header.site-header,
.c-header,
header[role="banner"] {
    background: #0d1b2a !important;
}

/* v17 — lien Google sous les avis */
.cal-google-cta-wrap{margin:32px 0 18px;}
.cal-google-cta{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}

/* v18 — accès visible aux avis Google */
.cal-review-google-link{color:#0d1b2a;font-weight:900;}
.cal-google-cta-wrap{display:flex;justify-content:flex-start;margin-top:32px;}


/* v20 — header marine + téléphone mobile sur une ligne */
.site-header,
header.site-header,
.c-header,
header[role="banner"],
.cal-header,
.cal-site-header {
    background-color: #0d1b2a !important;
    background: #0d1b2a !important;
}

/* Bouton téléphone : jamais de retour à la ligne */
.site-header a[href^="tel:"],
.c-header a[href^="tel:"],
.cal-header a[href^="tel:"],
.cal-site-header a[href^="tel:"],
header[role="banner"] a[href^="tel:"] {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

/* Mobile */
@media (max-width: 767px) {
    .site-header,
    header.site-header,
    .c-header,
    header[role="banner"],
    .cal-header,
    .cal-site-header {
        background-color: #0d1b2a !important;
        background: #0d1b2a !important;
    }

    .site-header a[href^="tel:"],
    .c-header a[href^="tel:"],
    .cal-header a[href^="tel:"],
    .cal-site-header a[href^="tel:"],
    header[role="banner"] a[href^="tel:"] {
        white-space: nowrap !important;
        font-size: clamp(14px, 3.8vw, 18px) !important;
        line-height: 1 !important;
        padding: 14px 16px !important;
        min-width: max-content !important;
        width: auto !important;
    }
}


/* v22 — Header mobile : logo centré + téléphone dessous */
@media (max-width: 767px) {

    .site-header .container,
    .site-header .wrap,
    .site-header .header-inner,
    .site-header .header-content,
    .c-header .container,
    .cal-site-header .container,
    .cal-site-header .wrap,
    .cal-site-header .header-inner,
    .cal-site-header .header-content,
    header[role="banner"] .container,
    header[role="banner"] .wrap {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 16px !important;
        width: 100% !important;
    }

    .site-header .custom-logo-link,
    .site-header .site-branding,
    .c-header .custom-logo-link,
    .c-header .site-branding,
    .cal-site-header .custom-logo-link,
    .cal-site-header .site-branding,
    header[role="banner"] .custom-logo-link,
    header[role="banner"] .site-branding {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        width: 100% !important;
        margin: 0 auto !important;
        text-align: center !important;
    }

    .site-header .custom-logo,
    .c-header .custom-logo,
    .cal-site-header .custom-logo,
    header[role="banner"] .custom-logo {
        display: block !important;
        margin: 0 auto !important;
        max-width: min(72vw, 320px) !important;
        height: auto !important;
    }

    .site-header nav,
    .c-header nav,
    .cal-site-header nav,
    header[role="banner"] nav {
        width: 100% !important;
    }

    .site-header nav ul,
    .c-header nav ul,
    .cal-site-header nav ul,
    header[role="banner"] nav ul {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .site-header a[href^="tel:"],
    .c-header a[href^="tel:"],
    .cal-header a[href^="tel:"],
    .cal-site-header a[href^="tel:"],
    header[role="banner"] a[href^="tel:"] {
        order: 99 !important;
        display: inline-flex !important;
        width: auto !important;
        max-width: calc(100vw - 40px) !important;
        margin: 0 auto !important;
        white-space: nowrap !important;
        text-align: center !important;
        justify-content: center !important;
        font-size: clamp(15px, 4.2vw, 18px) !important;
        padding: 14px 22px !important;
    }

    /* Si le menu desktop reste visible, le masquer sur petit écran
       pour conserver logo + téléphone propres et centrés. */
    .site-header nav a:not([href^="tel:"]),
    .c-header nav a:not([href^="tel:"]),
    .cal-site-header nav a:not([href^="tel:"]),
    header[role="banner"] nav a:not([href^="tel:"]) {
        display: none !important;
    }
}


/* v23 — correction réelle du header responsive */
@media (max-width: 767px) {

    .cal-topbar {
        padding: 18px 0 22px !important;
    }

    .cal-topbar-inner {
        min-height: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 16px !important;
        width: min(100% - 28px, 1160px) !important;
        margin: 0 auto !important;
    }

    .cal-brand-wrap {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto !important;
    }

    .cal-brand-wrap .custom-logo-link {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto !important;
    }

    .cal-brand-wrap .custom-logo {
        display: block !important;
        margin: 0 auto !important;
        width: auto !important;
        height: auto !important;
        max-width: min(78vw, 300px) !important;
        max-height: none !important;
    }

    .cal-nav {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        margin: 0 !important;
    }

    .cal-nav > a:not(.cal-nav-phone) {
        display: none !important;
    }

    .cal-nav-phone {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: calc(100vw - 44px) !important;
        margin: 0 auto !important;
        padding: 13px 20px !important;
        font-size: clamp(15px, 4.2vw, 18px) !important;
        line-height: 1 !important;
        white-space: nowrap !important;
        word-break: keep-all !important;
        overflow-wrap: normal !important;
        text-align: center !important;
    }
}


/* v24 — pied de page juridique */
.cal-legal-footer{
    background:#1d3267;
    color:#fff;
    padding:18px 20px;
}
.cal-legal-footer-inner{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    justify-content:center;
    font-size:15px;
}
.cal-legal-footer a{
    color:#fff;
    text-decoration:none;
}
.cal-legal-footer a:hover{
    text-decoration:underline;
}
@media (max-width:767px){
    .cal-legal-footer-inner{
        font-size:14px;
        line-height:1.6;
        text-align:center;
    }
}


/* v25 — Cloudflare Turnstile */
.cal-turnstile-wrap{
    margin:18px 0 20px;
    min-height:65px;
    display:flex;
    align-items:center;
}
@media (max-width:420px){
    .cal-turnstile-wrap{
        overflow-x:auto;
        max-width:100%;
    }
}


/* v26 — photos des prestations */
.cal-service-card{
    overflow:hidden;
}
.cal-service-card .cal-service-image{
    margin:-32px -32px 26px;
    width:calc(100% + 64px);
    aspect-ratio:16 / 9;
    overflow:hidden;
    background:#15283d;
}
.cal-service-card .cal-service-image-img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
@media (max-width:767px){
    .cal-service-card .cal-service-image{
        margin:-24px -24px 22px;
        width:calc(100% + 48px);
        aspect-ratio:16 / 10;
    }
}
