/*
Theme Name: Claude Tiran
Theme URI: https://claudetiran.fr
Author: Claude Tiran Informatique
Description: Thème bloc (édition complète du site) pour claudetiran.fr : léger, accessible, sans constructeur de pages ni jQuery.
Version: 1.1.2
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: claudetiran
*/

/* ---------- Base ---------- */
:root{--ct-orange-on-dark:#F28F45;--ct-navy:#12315E;--ct-night:#0F1922;--ct-orange:#E47A30;--ct-ink:#0F1922;--ct-line:#E2E8F0;--ct-sand:#EDF1F5;--ct-muted:#4A5568;--ct-success:#2F855A}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.skip-link:focus{box-shadow:none;clip:auto;clip-path:none;height:auto;width:auto;margin:0;left:1rem;top:1rem;background:var(--ct-ink);color:#fff;padding:.75rem 1.25rem;border-radius:.6rem;z-index:100}
/* Focus : anneau bleu du logo (≥ 3:1 sur fond clair) doublé d'un liseré blanc ; blanc sur fond sombre. */
:where(a,button,input,select,textarea,summary,video,[tabindex]):focus-visible{outline:3px solid var(--ct-navy);outline-offset:3px;box-shadow:0 0 0 6px #fff;border-radius:4px}
.ct-on-dark :focus-visible,.ct-footer :focus-visible,.ct-cta :focus-visible,.ct-tarif :focus-visible,.ct-card__link:focus-visible{outline-color:#fff;box-shadow:0 0 0 6px var(--ct-navy)}
.ct-footer :focus-visible{box-shadow:0 0 0 6px var(--ct-night)}
img{max-width:100%;height:auto}
.ct-eyebrow{font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#9E480A;margin:0}
.has-navy-background-color .ct-eyebrow,.ct-on-dark .ct-eyebrow{color:var(--ct-orange-on-dark)}
.ct-lead{font-size:var(--wp--preset--font-size--lead);line-height:1.6;color:var(--ct-muted)}

/* ---------- Boutons ---------- */
.ct-btn,.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.1rem;padding:0 1.6rem;border-radius:999px;font-weight:600;font-size:1rem;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,transform .2s,border-color .2s;box-sizing:border-box;border:1.5px solid transparent}
.ct-btn--primary,.wp-block-button__link{background:var(--ct-orange);color:var(--ct-ink)}
.ct-btn--primary:hover,.wp-block-button__link:hover{background:#EE9550;color:var(--ct-ink);transform:translateY(-1px)}
.is-style-outline>.wp-block-button__link,.ct-btn--ghost{background:transparent;color:var(--ct-ink);border-color:var(--ct-ink)}
.is-style-outline>.wp-block-button__link:hover,.ct-btn--ghost:hover{background:var(--ct-ink);color:#fff}
.ct-on-dark .is-style-outline>.wp-block-button__link,.ct-on-dark .ct-btn--ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.ct-on-dark .is-style-outline>.wp-block-button__link:hover{background:#fff;color:var(--ct-navy)}
.ct-icon{flex:none}

/* ---------- En-tête ---------- */
.ct-header{position:sticky;top:0;z-index:50;background:#F8F9FA;border-bottom:1px solid var(--ct-line)}
/* Pas de backdrop-filter ici : il ferait de l'en-tête le bloc conteneur du menu mobile (position:fixed) et l'écraserait à 68 px de haut. */
.admin-bar .ct-header{top:32px}
.ct-header__inner{min-height:5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.ct-brand{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:inherit;margin:0}
.ct-brand__logo{display:block;height:3.25rem;width:auto}
.ct-brand__name{font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:1.2rem}
.ct-header .wp-block-navigation{font-weight:500;font-size:1rem}
.ct-header .wp-block-navigation-item__content{text-decoration:none;padding:.5rem .15rem;border-bottom:2px solid transparent}
.ct-header .wp-block-navigation-item__content:hover,.ct-header .current-menu-item>.wp-block-navigation-item__content{border-bottom-color:var(--ct-orange)}
.ct-header .wp-block-navigation__submenu-container{border-radius:1rem;border:1px solid var(--ct-line);padding:.5rem;box-shadow:0 24px 50px -24px rgba(10,27,61,.35);min-width:16rem}
.ct-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:.6rem .9rem;border-radius:.6rem;border-bottom:0}
.ct-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--ct-sand)}
.ct-header .ct-brand{min-height:2.75rem}
.ct-tel-btn{min-height:2.85rem;padding:0 1.2rem;white-space:nowrap}
.ct-tel{font-weight:600;color:inherit}
.ct-tel--big{font-family:var(--wp--preset--font-family--display);font-size:clamp(1.6rem,1.3rem + 1.3vw,2.1rem);font-weight:600;letter-spacing:-.02em;text-decoration:none;border-bottom:3px solid var(--ct-orange);padding-bottom:2px;color:var(--ct-ink)}
@media (max-width:1279px){.ct-header .ct-tel-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ct-tel-btn{padding:0;width:2.85rem}}
@media (max-width:782px){.admin-bar .ct-header{top:46px}.ct-header__inner{min-height:4.25rem}.ct-brand__logo{height:2.5rem}}
/* Menu principal : bouton burger sous 1100 px (7 entrées + sous-menus ne tiennent pas sur une ligne), ligne unique au-dessus. */
@media (max-width:599px){.ct-header .ct-tel-btn{display:none}}
@media (max-width:1099px){.ct-header .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex;min-width:3.25rem;min-height:3.25rem;border-radius:.9rem;background:var(--ct-sand);color:var(--ct-navy)}.ct-header .wp-block-navigation__responsive-container-open svg{width:2rem;height:2rem}.ct-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){display:none}}
@media (min-width:1100px){.ct-header .wp-block-navigation__container{flex-wrap:nowrap}.ct-header .wp-block-navigation-item__content{white-space:nowrap}}

/* ---------- Fil d'Ariane ---------- */
.ct-crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem .6rem;padding:0;margin:0;font-size:.9375rem;color:var(--ct-muted)}
.ct-crumb li+li::before{content:"/";margin-right:.6rem}
.ct-crumb a{color:var(--ct-muted);text-decoration:none}
.ct-crumb a:hover{color:#9E480A;text-decoration:underline}
.ct-crumb [aria-current]{color:var(--ct-ink);font-weight:600}

/* ---------- Accueil : héros ---------- */
.ct-hero{padding-block:clamp(2rem,4vw,3.5rem) clamp(3rem,6vw,5.5rem)}
.ct-hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.ct-hero__badge{display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;padding:.45rem 1rem;border-radius:999px;background:var(--wp--preset--color--peach);color:#7C2D06;font-size:.875rem;font-weight:600;margin:0}
.ct-hero h1{margin:0}
.ct-hero__visual{position:relative;min-height:28rem}
.ct-hero__visual figure{margin:0;border-radius:1rem;background:#fff;border:1px solid var(--ct-line);overflow:hidden;box-shadow:0 40px 80px -40px rgba(10,27,61,.5)}
.ct-hero__visual figure::before{content:"";display:block;height:1.9rem;background:#EDF1F5 radial-gradient(circle,#CBD5E0 0 .3rem,transparent .32rem) .9rem 50%/1.1rem 1.1rem repeat-x}
.ct-hero__visual img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;object-position:top;border-radius:0}
.ct-hero__shot-a{position:absolute;right:0;top:0;width:92%}
.ct-hero__shot-b{position:absolute;left:0;bottom:0;width:58%;box-shadow:0 40px 80px -30px rgba(10,27,61,.55)!important}
.ct-hero__chip{position:absolute;right:.5rem;bottom:2.2rem;display:inline-flex;align-items:center;gap:.6rem;padding:.75rem 1.1rem;border-radius:.9rem;background:var(--ct-ink);color:#FAF8F4;font-size:.875rem;font-weight:600;margin:0;box-shadow:0 20px 40px -20px rgba(10,27,61,.7)}
.ct-hero__chip::before{content:"";width:1.1rem;height:1.1rem;background:var(--ct-orange);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
@media (max-width:900px){.ct-hero__grid{grid-template-columns:1fr}.ct-hero__visual{min-height:0;margin-top:1rem}.ct-hero__shot-b,.ct-hero__chip{display:none}.ct-hero__shot-a{position:static;width:100%}}

/* ---------- Sections ---------- */
.ct-section{padding-block:clamp(3.5rem,7vw,7rem)}
.ct-section__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3.5rem)}
.ct-section__head>*{margin:0}
.ct-section__head>div{display:flex;flex-direction:column;gap:1rem}
.ct-section__head h2{max-width:60ch;margin:0;text-wrap:balance}
.ct-section__head p:not(.ct-eyebrow){flex:1 1 26rem;max-width:42rem;color:var(--ct-muted);text-wrap:pretty}
.ct-on-dark{color:#E6ECF7}
.ct-on-dark h1,.ct-on-dark h2,.ct-on-dark h3{color:#fff}
.ct-on-dark a:not(.wp-block-button__link):not(.ct-btn){color:var(--ct-orange-on-dark)}
.ct-on-dark .ct-lead,.ct-on-dark p{color:#C9D2E6}
.ct-sites__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.ct-features{display:flex;flex-direction:column}
.ct-feature{position:relative;padding:1.4rem 0 1.4rem 4rem;border-bottom:1px solid rgba(255,255,255,.16);margin:0}
.ct-feature:last-child{border-bottom:0}
.ct-feature::before{content:"";position:absolute;left:0;top:1.35rem;width:2.75rem;height:2.75rem;border-radius:50%;background:rgba(228,122,48,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E47A30' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/1.35rem no-repeat}
.ct-feature h3{font-family:var(--wp--preset--font-family--body);font-size:1.2rem;font-weight:600;letter-spacing:0;margin:0 0 .2rem}
.ct-feature p{margin:0;font-size:1rem}
@media (max-width:900px){.ct-sites__grid{grid-template-columns:1fr}}

/* ---------- Cartes (services, logiciels) ---------- */
.ct-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.ct-cards--compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.ct-card{margin:0;display:flex}
.ct-card__link{position:relative;display:flex;flex-direction:column;gap:.75rem;width:100%;padding:1.75rem 1.5rem 1.5rem;background:linear-gradient(155deg,var(--ct-navy),#0B2142);border:1px solid rgba(255,255,255,.08);border-radius:var(--wp--custom--radius--card);text-decoration:none;color:#E6ECF7;transition:transform .25s,box-shadow .25s,border-color .25s;box-sizing:border-box}
.ct-badge{display:inline-flex;align-items:center;background:var(--wp--preset--color--peach);color:#9E480A;font-size:.75rem;font-weight:700;letter-spacing:.01em;padding:.3rem .65rem;border-radius:999px;line-height:1;white-space:nowrap}
.ct-card__link .ct-badge{position:absolute;top:1rem;right:1rem}
.ct-tarifs th .ct-badge{margin-left:.6rem;vertical-align:middle}
@media (max-width:640px){.ct-services .ct-badge{display:none}}
.ct-guarantee{display:flex;align-items:flex-start;gap:1rem;background:var(--wp--preset--color--peach);border-radius:1.25rem;padding:1.1rem 1.4rem;margin-top:2rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.ct-guarantee__icon{flex:0 0 auto;width:2.25rem;height:2.25rem;border-radius:50%;background:#fff;color:#9E480A;display:flex;align-items:center;justify-content:center}
.ct-guarantee p{margin:0;font-size:.9375rem;line-height:1.55;color:var(--ct-ink)}
.ct-guarantee strong{color:#9E480A}
.ct-guarantee a{color:inherit;font-weight:600}
@media (max-width:480px){.ct-guarantee{flex-direction:column}}
.ct-card__link:hover{transform:translateY(-4px);box-shadow:0 20px 44px -24px rgba(10,27,61,.55);border-color:var(--ct-orange-on-dark)}
.ct-card__icon{width:3rem;height:3rem;border-radius:.9rem;background:rgba(255,255,255,.12);color:var(--ct-orange-on-dark);display:flex;align-items:center;justify-content:center}
.ct-card__title{font-family:var(--wp--preset--font-family--display);font-size:1.2rem;font-weight:600;letter-spacing:-.015em;line-height:1.2;margin:.35rem 0 0;color:#fff}
.ct-card__text{font-size:.9375rem;line-height:1.55;color:#C9D2E6;margin:0;flex-grow:1}
.ct-card__price{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;border-top:1px solid rgba(255,255,255,.18);padding-top:1rem;margin-top:.25rem;font-size:.875rem;color:#C9D2E6}
.ct-card__price strong{font-family:var(--wp--preset--font-family--display);font-size:1.3rem;font-weight:600;color:#fff;letter-spacing:-.01em}
.ct-cards+.wp-block-buttons{margin-top:clamp(2rem,4vw,3.5rem)}
@media (max-width:1100px){.ct-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-cards--compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
	.ct-services{grid-template-columns:1fr;gap:0;background:#fff;border:1px solid var(--ct-line);border-radius:var(--wp--custom--radius--card);overflow:hidden}
	.ct-services .ct-card__link{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;border:0;border-bottom:1px solid rgba(255,255,255,.14);border-radius:0;padding:1.1rem 1.1rem;min-height:4.75rem}
	.ct-services .ct-card__link:hover{transform:none;box-shadow:none}
	.ct-services .ct-card:last-child .ct-card__link{border-bottom:0}
	.ct-services .ct-card__icon{width:2.75rem;height:2.75rem}
	.ct-services .ct-card__title{font-size:1.15rem;margin:0;flex:1 1 0}
	.ct-services .ct-card__text{display:none}
	.ct-services .ct-card__price{border:0;padding:0;margin:0;flex-direction:column;align-items:flex-end;gap:0;text-align:right}
	.ct-services .ct-card__price strong{font-size:1.15rem}
	.ct-cards--compact{grid-template-columns:1fr}
}

/* ---------- Réalisations ---------- */
.ct-realisations{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));gap:2.25rem 2rem}
.ct-real,.ct-real__link,.ct-real__body{min-width:0}
.ct-real{margin:0;display:flex;perspective:1600px}
.ct-real__link{display:flex;flex-direction:column;width:100%;background:#fff;border:1px solid var(--ct-line);border-radius:1.25rem;overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s,border-color .25s}
@media (hover:hover){.ct-real__link{transform:rotateY(15deg);transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .25s,border-color .25s}}
a.ct-real__link:hover,a.ct-real__link:focus-visible{transform:translateY(-4px);box-shadow:0 20px 44px -24px rgba(10,27,61,.45);border-color:var(--ct-orange)}
@media (hover:hover){a.ct-real__link:hover,a.ct-real__link:focus-visible{transform:rotateY(0deg) translateY(-4px)}}
.ct-real__media{display:block;background:var(--ct-sand)}
.ct-real__media img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:top}
.ct-real__body{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem 1.75rem 1.75rem}
.ct-real__tag{font-size:.8125rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#9E480A}
.ct-real__title{font-family:var(--wp--preset--font-family--display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;margin:0}
.ct-real__text{margin:0;color:var(--ct-muted);font-size:1rem}
.ct-real__url{display:inline-flex;align-items:center;gap:.5rem;margin-top:.5rem;font-weight:600;font-size:.9375rem}
.ct-real__url{overflow-wrap:anywhere}

/* ---------- Logiciels ---------- */
.ct-logiciels--chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem 3rem}
.ct-logiciels--cards .ct-famille+.ct-famille{margin-top:3rem}
.ct-famille__title{font-family:var(--wp--preset--font-family--body);font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ct-muted);margin:0 0 .9rem}
.ct-logiciels--cards .ct-famille__title{font-family:var(--wp--preset--font-family--display);font-size:1.6rem;letter-spacing:-.015em;text-transform:none;color:var(--ct-ink)}
.ct-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.ct-chip{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1.1rem;border-radius:999px;border:1px solid #CBD5E0;background:#fff;font-weight:500;font-size:.9375rem;text-decoration:none;color:var(--ct-ink);transition:border-color .2s,background-color .2s}
.ct-chip:hover{border-color:var(--ct-orange);background:var(--wp--preset--color--peach);color:var(--ct-ink)}
@media (max-width:700px){.ct-logiciels--chips{grid-template-columns:1fr}}

/* ---------- Tarif / fiche ---------- */
.ct-page-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,26rem);gap:clamp(2rem,6vw,6rem);align-items:center;padding-block:1.5rem clamp(2.5rem,5vw,4.5rem)}
.ct-page-head h1{margin:.6rem 0 1.25rem}
.ct-page-head .ct-lead{margin:0}
.ct-tarif{background:var(--ct-navy);color:#fff;border-radius:1.5rem;padding:2.25rem;display:flex;flex-direction:column;gap:1rem}
.ct-tarif__label{font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ct-orange-on-dark)}
.ct-tarif__amount{margin:0;display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;color:#C9D2E6;font-size:1.1rem}
.ct-tarif__amount strong{font-family:var(--wp--preset--font-family--display);font-size:clamp(2.6rem,2.2rem + 2vw,3.8rem);line-height:1;font-weight:600;letter-spacing:-.03em;color:#fff}
.ct-tarif__note{margin:0;color:#C9D2E6;font-size:1rem;line-height:1.55}
.ct-tarif .ct-btn{margin-top:.5rem}
.ct-officiel{background:#fff;border:1px solid var(--ct-line);border-radius:1.5rem;padding:2rem;display:flex;flex-direction:column;gap:1rem}
.ct-officiel p{margin:0;color:var(--ct-muted)}
@media (max-width:900px){.ct-page-head{grid-template-columns:1fr}}
.ct-entry>*+*{margin-top:1.25rem}
.ct-entry h2{font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem);margin-top:2.25rem}
.ct-entry h3{margin-top:1.75rem}
.ct-entry .wp-block-columns{gap:1.5rem}
.ct-entry .wp-block-column{background:#fff;border:1px solid var(--ct-line);border-radius:1.25rem;padding:1.5rem 1.75rem}
.ct-entry .wp-block-column>*+*{margin-top:.75rem}
.ct-entry .wp-block-column h2,.ct-entry .wp-block-column h3{margin-top:0;font-size:1.4rem}
.ct-entry blockquote.wp-block-quote{border:0}
.ct-entry ul,.ct-entry ol{padding-left:1.4rem}
.ct-entry li+li{margin-top:.4rem}
.ct-entry .wp-block-columns.alignwide{margin-left:0;margin-right:0}
.ct-entry .wp-block-gallery{gap:.75rem}
.ct-entry .wp-block-gallery figure.wp-block-image{margin:0}
/* Le CSS natif de la galerie ne fixe la largeur des vignettes (50%/33%/25%…) qu'à partir de 600px de VIEWPORT, pas de la largeur du conteneur : dans une colonne étroite (bloc columns), columns-2 s'écrasait en 1 seule colonne. Grille explicite, fiable à toute largeur. */
.wp-block-gallery.has-nested-images.columns-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.wp-block-gallery.has-nested-images.columns-2 figure.wp-block-image:not(#individual-image){width:100%;margin:0}
.wp-block-gallery.has-nested-images.columns-6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:100%;margin:0}
@media (max-width:999px){.wp-block-gallery.has-nested-images.columns-6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:499px){.wp-block-gallery.has-nested-images.columns-6{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ct-entry .wp-block-gallery img{transition:transform .25s,box-shadow .25s}
.ct-entry .wp-block-gallery .wp-block-image:hover img{transform:translateY(-4px);box-shadow:0 16px 32px -18px rgba(10,27,61,.4)}

/* ---------- Coodyssée ---------- */
.ct-coodyssee{background:var(--ct-sand);border-radius:1.75rem;padding:clamp(2.75rem,7vw,5rem) clamp(2rem,7vw,5.5rem);margin-top:clamp(2rem,5vw,4rem);display:flex;align-items:center;justify-content:space-between;gap:clamp(2rem,5vw,3.5rem)}
.ct-coodyssee__content{flex:1 1 20rem;margin:0}
.ct-coodyssee h2{font-size:clamp(1.6rem,1.3rem + 1.2vw,2.1rem);margin:0 0 1.25rem}
.ct-coodyssee p{margin:0;max-width:44rem;color:var(--ct-muted)}
.ct-coodyssee__brand{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;width:9rem;height:9rem;border-radius:50%;background:#fff;border:1px solid var(--ct-line);box-shadow:0 16px 32px -20px rgba(10,27,61,.35);padding:.75rem;text-decoration:none;transition:transform .2s,box-shadow .2s;box-sizing:border-box}
.ct-coodyssee__brand:hover{transform:translateY(-3px);box-shadow:0 20px 40px -20px rgba(10,27,61,.45)}
.ct-coodyssee__logo{display:block;width:clamp(2.5rem,6vw,3.25rem);height:auto;margin:0}
.ct-coodyssee__caption{margin:0;font-size:.8125rem;font-weight:600;line-height:1.25;color:var(--ct-navy);text-align:center}
@media (max-width:900px){
	.ct-coodyssee{flex-direction:column}
	.ct-coodyssee__brand{flex-direction:row;width:auto;height:auto;border-radius:1.5rem;padding:.85rem 1.5rem;gap:.85rem}
	.ct-coodyssee__caption{white-space:nowrap}
}

/* ---------- Contact ---------- */
.ct-contact__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.ct-contact__grid>div>*+*{margin-top:1.4rem}
#orgcontact form,.ct-form{background:#fff;border:1px solid var(--ct-line);border-radius:1.5rem;padding:clamp(1.5rem,3vw,2.5rem);display:flex;flex-direction:column;gap:1.1rem}
#orgcontact p{margin:0;display:flex;flex-direction:column;gap:.4rem}
#orgcontact label{font-weight:600;font-size:.9375rem}
#orgcontact input[type=text],#orgcontact input[type=email],#orgcontact input[type=tel],#orgcontact textarea{font:inherit;color:var(--ct-ink);min-height:3.25rem;padding:.7rem 1rem;border:1.5px solid #718096;border-radius:.75rem;background:#fff;width:100%;box-sizing:border-box}
#orgcontact textarea{min-height:9rem;resize:vertical}
#orgcontact input:focus,#orgcontact textarea:focus{border-color:var(--ct-navy)}
#orgcontact input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--ct-navy);margin-right:.6rem;flex:none}
#orgcontact p:has(input[type=checkbox]){flex-direction:row;align-items:flex-start}
#orgcontact p:has(input[type=checkbox]) label{font-weight:400;font-size:.875rem;color:var(--ct-muted)}
#orgcontact button[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:0 1.8rem;border:0;border-radius:999px;background:var(--ct-orange);color:var(--ct-ink);font:inherit;font-weight:600;cursor:pointer;align-self:flex-start;transition:background-color .2s}
#orgcontact button[type=submit]:hover{background:#EE9550}
@media (max-width:900px){.ct-contact__grid{grid-template-columns:1fr}}

/* ---------- Appel à l'action ---------- */
.ct-cta{background:var(--ct-navy);color:#fff;border-radius:1.75rem;padding:clamp(2rem,4vw,3.5rem) clamp(1.5rem,4vw,4rem);display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.ct-cta h2{color:#fff;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);margin:0 0 .5rem;max-width:22ch}
.ct-cta p{margin:0;color:#C9D2E6}
.ct-cta__actions{display:flex;flex-direction:column;gap:.75rem;align-items:stretch;min-width:14rem}
.ct-cta__actions .ct-btn{width:100%}

/* ---------- Pied de page ---------- */
.ct-footer{background:var(--ct-night);color:#C9D2E6;padding-block:clamp(3rem,5vw,4.5rem) 2rem;margin-top:clamp(3rem,6vw,6rem)}
.ct-footer a{color:#C9D2E6;text-decoration:none}
.ct-footer a:hover{color:var(--ct-orange)}
.ct-footer .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:#C9D2E6}
.ct-footer .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover{color:var(--ct-orange);text-decoration:underline}
.ct-footer h2{font-family:var(--wp--preset--font-family--body);font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ct-orange);margin:0 0 .75rem}
.ct-footer__grid{display:grid;grid-template-columns:1fr;gap:2.5rem}
.ct-footer__brand{display:flex;flex-direction:column;gap:.9rem;max-width:32rem}
.ct-footer__brand{border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:1.75rem}
.ct-footer__brand .ct-brand__logo{height:3rem}
.ct-footer__brand p{margin:0;font-size:.9375rem}
@media (min-width:1100px){.ct-footer__brand{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;column-gap:2rem;max-width:none}.ct-footer__brand .ct-reseaux{grid-column:1/-1}}
.ct-footer .wp-block-navigation{font-size:.9375rem}
.ct-footer .wp-block-navigation__container{gap:.15rem!important;align-items:flex-start}
.ct-footer .wp-block-navigation-item__content{padding:.7rem 0;display:inline-block}
.ct-footer__legal-nav{justify-content:center;margin-top:.75rem}
.ct-footer__legal-nav .wp-block-navigation__container{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:0 1.5rem!important}
.ct-footer__legal-nav+.ct-legal{margin-top:.75rem}
.ct-reseaux{list-style:none;padding:0;margin:0;display:flex;gap:1rem}
.ct-legal{border-top:1px solid rgba(255,255,255,.16);margin-top:2.5rem;padding-top:1.5rem;font-size:.875rem;color:#AEB9D3;display:grid;gap:.4rem}
.ct-legal p{margin:0}
.ct-legal a{text-decoration:underline}
@media (min-width:783px){.ct-footer .ct-callbar{margin-top:2rem;padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.16)}}
@media (max-width:1099px){.ct-footer__brand{max-width:none}.ct-footer__brand .ct-brand{align-self:center}}
@media (max-width:480px){.ct-footer__grid{grid-template-columns:1fr}}

/* ---------- Mobile : barre d'appel collante ---------- */
@media (max-width:782px){
	body{padding-bottom:4.25rem}
	.ct-callbar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(248,249,250,.96);border-top:1px solid var(--ct-line)}
	.ct-callbar .ct-btn{width:100%}
}
@media (min-width:783px){.ct-callbar{display:none}}

/* ---------- Liste de questions (accueil) ---------- */
.ct-questions{list-style:none;padding:0;margin:0 0 2.5rem;columns:2;column-gap:3rem}
.ct-questions li{break-inside:avoid;padding:.7rem 0 .7rem 1.9rem;border-bottom:1px solid var(--ct-line);position:relative;margin:0}
.ct-questions li::before{content:"";position:absolute;left:0;top:1.05rem;width:1rem;height:1rem;background:var(--ct-orange);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat}
@media (max-width:700px){.ct-questions{columns:1}}

/* ---------- Menu mobile : cible tactile ≥ 44 px ---------- */
.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close{min-width:2.75rem;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--wp--preset--color--ground);padding:1.5rem}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:1.25rem;padding:.6rem 0}
.ct-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{position:static;min-width:0;width:auto;border:0;box-shadow:none;background:transparent;padding:0 0 .75rem;opacity:1;visibility:visible;height:auto;overflow:visible}
.ct-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:1.0625rem;font-weight:400;color:var(--ct-muted);padding:.55rem .9rem}
.ct-header .ct-brand{flex-shrink:0}
.ct-page-head+.ct-entry{margin-top:0}
.ct-entry .ct-contact__grid .wp-block-quote{margin-left:0}


.ct-footer .ct-btn--primary,.ct-footer .ct-btn--primary:hover{color:var(--ct-ink)}
.ct-callbar .ct-btn--primary{color:var(--ct-ink)}
.wp-block-post-content>.ct-section:first-child{padding-top:0}
.ct-entry>.ct-section{padding-left:0!important;padding-right:0!important}

/* ---------- Cartes : appel discret ---------- */
.ct-card__more{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;color:var(--ct-orange-on-dark);margin-top:.15rem}
.ct-card__link:hover .ct-card__more{text-decoration:underline}
@media (max-width:640px){.ct-services .ct-card__more{display:none}}

/* ---------- Grille tarifaire ---------- */
.ct-tarifs{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--ct-line);border-radius:1.25rem;overflow:hidden;font-size:1rem}
.ct-tarifs caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ct-tarifs th,.ct-tarifs td{padding:1.15rem 1.4rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--ct-line)}
.ct-tarifs thead th{font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ct-muted);background:var(--ct-sand)}
.ct-tarifs tbody tr:last-child>*{border-bottom:0}
.ct-tarifs tbody th{font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:1.05rem;color:var(--ct-navy);width:22%}
.ct-tarifs tbody th a{color:inherit;text-decoration:none}.ct-tarifs tbody th a:hover{text-decoration:underline;color:#9E480A}
.ct-tarifs__prix{white-space:nowrap;width:16%}
.ct-tarifs__prix strong{font-family:var(--wp--preset--font-family--display);font-size:1.35rem;font-weight:700;color:var(--ct-navy)}
.ct-tarifs__prix span{display:block;font-size:.8125rem;color:var(--ct-muted)}
.ct-tarifs td p{margin:0;color:var(--ct-muted);font-size:.9375rem;line-height:1.55}
.ct-tarifs__action{width:1%;white-space:nowrap}
.ct-tarifs .ct-btn{min-height:2.75rem;padding:0 1.1rem;font-size:.9375rem}
@media (max-width:820px){
	.ct-tarifs,.ct-tarifs tbody,.ct-tarifs tr,.ct-tarifs th,.ct-tarifs td{display:block;width:auto!important}
	.ct-tarifs thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
	.ct-tarifs{border:0;background:transparent;border-radius:0}
	.ct-tarifs tbody tr{background:#fff;border:1px solid var(--ct-line);border-radius:1.25rem;padding:1.25rem 1.25rem 1.4rem;margin-bottom:1rem;display:grid;gap:.5rem}
	.ct-tarifs th,.ct-tarifs td{border:0;padding:0}
	.ct-tarifs__prix{white-space:normal}.ct-tarifs__prix span{display:inline;margin-left:.4rem}
}
.ct-note{font-size:.9375rem;color:var(--ct-muted);margin-top:1rem}

/* ---------- Barre d'appel mobile : téléphone + devis ---------- */
.ct-callbar{display:flex;gap:.6rem}
.ct-callbar .ct-btn{flex:1 1 0;min-height:3rem;padding:0 .75rem;font-size:.9375rem}
.ct-callbar .ct-btn--ghost{background:#fff}

/* ---------- Messages de succès ---------- */
.ct-success{color:var(--ct-success);font-weight:600}
.ct-footer .ct-callbar .ct-btn--ghost,.ct-callbar .ct-btn--ghost{color:var(--ct-ink)}

html.has-modal-open .ct-callbar{display:none}

/* ---------- Plan du site ---------- */
.ct-plan h2{font-size:1.25rem;margin:2rem 0 .75rem}
.ct-plan ul{list-style:none;padding:0;margin:0;columns:2;column-gap:3rem}
.ct-plan li{break-inside:avoid;padding:.45rem 0;border-bottom:1px solid var(--ct-line)}
@media (max-width:640px){.ct-plan ul{columns:1}}

/* ---------- Contenus tiers en deux temps ---------- */
.ct-embed{background:#fff;border:1px solid var(--ct-line);border-radius:1.25rem;padding:1.5rem;display:flex;flex-direction:column;gap:.9rem;align-items:flex-start;aspect-ratio:auto;min-height:11rem;justify-content:center}
.ct-embed__text{margin:0;color:var(--ct-muted);font-size:.9375rem}
.ct-embed__title{margin:0;font-size:.875rem;color:var(--ct-muted)}
.ct-embed__frame{width:100%;aspect-ratio:16/9;border:0;border-radius:1rem;display:block}

/* ---------- Carte (OpenStreetMap / Leaflet) ---------- */
.ct-carte-wrap{display:flex;flex-direction:column;gap:.6rem}
.ct-carte{width:100%;aspect-ratio:16/9;border-radius:1.25rem;border:1px solid var(--ct-line);background:var(--ct-sand);overflow:hidden;font-family:var(--wp--preset--font-family--body)}
.ct-carte__lien{margin:0;font-size:.875rem}
.leaflet-popup-content{font-family:var(--wp--preset--font-family--body);font-size:.9375rem;line-height:1.5;color:var(--ct-ink)}
.leaflet-popup-content a{color:var(--ct-navy);font-weight:600}
.leaflet-container{font-family:var(--wp--preset--font-family--body)}

/* ---------- Cibles tactiles ≥ 24 px, focus des médias ---------- */
.wp-block-file a:not(.wp-block-file__button){display:inline-block;padding:.35rem 0;min-height:1.5rem;overflow-wrap:anywhere}
.wp-block-file__button{min-height:2.5rem;display:inline-flex;align-items:center}
.wp-block-navigation-submenu__toggle,.wp-block-navigation__submenu-icon{min-width:1.5rem;min-height:1.5rem}
.wp-block-navigation-submenu__toggle{display:inline-flex;align-items:center;justify-content:center}
.wp-block-video video{max-width:100%;height:auto;border-radius:1rem}

#orgcontact select{min-height:3rem}

/* ---------- Bande de mots clés défilante ---------- */
ul.ct-marquee{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin:0 0 1.5rem;padding:1rem 1.25rem;background:var(--ct-navy);color:#fff;border-radius:1rem;font-weight:600;font-size:1.0625rem}
ul.ct-marquee li{margin:0;padding:0;white-space:nowrap}
.ct-marquee-wrap{position:relative;overflow:hidden;margin:0 0 1.5rem;background:var(--ct-navy);color:#fff;border-radius:1rem}
.ct-marquee-wrap ul.ct-marquee{flex-wrap:nowrap;justify-content:flex-start;gap:0;margin:0;padding:1rem 0;border-radius:0;background:none;flex:0 0 auto}
.ct-marquee-wrap ul.ct-marquee li{display:flex;align-items:center}
.ct-marquee-wrap ul.ct-marquee li::after{content:"";width:.45rem;height:.45rem;margin:0 1.5rem;border-radius:50%;background:var(--ct-orange-on-dark)}
.ct-marquee__track{display:flex;width:max-content;animation:ct-marquee var(--ct-marquee-dur,40s) linear infinite}
.ct-marquee-wrap:hover .ct-marquee__track,.ct-marquee-wrap:focus-within .ct-marquee__track,.ct-marquee-wrap.is-paused .ct-marquee__track{animation-play-state:paused}
.ct-marquee-wrap::before,.ct-marquee-wrap::after{content:"";position:absolute;top:0;bottom:0;width:2.5rem;z-index:1;pointer-events:none}
.ct-marquee-wrap::before{left:0;background:linear-gradient(90deg,var(--ct-navy),transparent)}
.ct-marquee-wrap::after{right:0;background:linear-gradient(270deg,var(--ct-navy),transparent)}
.ct-marquee__pause{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:2;width:2.75rem;height:2.75rem;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.5);border-radius:50%;background:var(--ct-navy);color:#fff;cursor:pointer;padding:0}
.ct-marquee__pause:hover{background:#fff;color:var(--ct-navy)}
.ct-marquee-wrap.is-paused .ct-marquee__pause svg{opacity:.6}
@keyframes ct-marquee{to{transform:translateX(-50%)}}

/* Variante pleine largeur (accueil) : fond transparent, texte bleu, bords estompés par masque. */
.ct-marquee__view{overflow:hidden}
.ct-marquee-band{margin:0 0 .75rem;padding:0}
.ct-marquee-band ul.ct-marquee,.ct-marquee-band .ct-marquee-wrap{background:none;color:var(--ct-navy);border-radius:0;margin:0}
.ct-marquee-band .ct-marquee-wrap::before,.ct-marquee-band .ct-marquee-wrap::after{display:none}
.ct-marquee-band .ct-marquee__view{-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.ct-marquee-band .ct-marquee-wrap ul.ct-marquee li::after{background:var(--ct-orange)}
.ct-marquee-band .ct-marquee__pause{background:var(--wp--preset--color--ground,#F8F9FA);border-color:var(--ct-navy);color:var(--ct-navy);right:1rem}
.ct-marquee-band .ct-marquee__pause:hover{background:var(--ct-navy);color:#fff}
