/*
Theme Name: XT Cycles
Theme URI: https://xtcycles.fr
Author: Maneep
Author URI: https://maneep.com
Description: Thème sur-mesure pour XT Cycles, magasin atelier vélo à Montauban-de-Bretagne. Pages en Gutenberg, blocs dynamiques maison, WooCommerce en mode catalogue.
Version: 1.0.4
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: xtcycles
License: Propriétaire
*/

/* ==========================================================================
   Polices (auto-hébergées)
   ========================================================================== */

/* ==========================================================================
   Tokens
   ========================================================================== */
:root{
  --xt-cream:#F5F0E6;
  --xt-ink:#1E1F18;
  --xt-orange:#E8512A;
  --xt-olive:#4B4E2B;
  --xt-sand:#EDE6D8;
  --xt-muted:#8A8570;
  --xt-stone:#C9C4B0;
  --xt-light:#E9E3D6;
  --xt-line:#D9D2C2;
  --xt-white:#FFFFFF;
  --xt-whatsapp:#25D366;
  --xt-whatsapp-hover:#1EBE5D;
  --xt-whatsapp-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M17.472%2014.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94%201.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198%200-.52.074-.792.372-.272.297-1.04%201.016-1.04%202.479%200%201.462%201.065%202.875%201.213%203.074.149.198%202.096%203.2%205.077%204.487.709.306%201.262.489%201.694.625.712.227%201.36.195%201.871.118.571-.085%201.758-.719%202.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421%207.403h-.004a9.87%209.87%200%2001-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86%209.86%200%2001-1.51-5.26c.001-5.45%204.436-9.884%209.888-9.884%202.64%200%205.122%201.03%206.988%202.898a9.825%209.825%200%20012.893%206.994c-.003%205.45-4.437%209.884-9.885%209.884m8.413-18.297A11.815%2011.815%200%200012.05%200C5.495%200%20.16%205.335.157%2011.892c0%202.096.547%204.142%201.588%205.945L.057%2024l6.305-1.654a11.882%2011.882%200%20005.683%201.448h.005c6.554%200%2011.89-5.335%2011.893-11.893a11.821%2011.821%200%2000-3.48-8.413Z%22%2F%3E%3C%2Fsvg%3E");
  --xt-display:'Big Shoulders Display',sans-serif;
  --xt-script:'Yellowtail',cursive;
  --xt-body:'Work Sans',sans-serif;
  --xt-max:1280px;
  --xt-stripes:repeating-linear-gradient(-45deg,var(--xt-olive) 0 4px,transparent 4px 18px);
  --xt-hatch:repeating-linear-gradient(-45deg,var(--xt-sand) 0 10px,var(--xt-cream) 10px 20px);
}

/* ==========================================================================
   Base
   ========================================================================== */
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;background:var(--xt-cream);color:var(--xt-ink);font-family:var(--xt-body);-webkit-font-smoothing:antialiased}
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto}
a{color:var(--xt-orange);text-decoration:none}
a:hover{color:var(--xt-olive)}
input,textarea,select,button{font-family:var(--xt-body)}
.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!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:var(--xt-cream);clip:auto!important;clip-path:none;color:var(--xt-ink);display:block;font-size:14px;height:auto;left:8px;padding:12px 16px;top:8px;width:auto;z-index:100000}
:focus-visible{outline:3px solid var(--xt-orange);outline-offset:2px}
.xt-site{min-height:100vh;background:var(--xt-cream);display:flex;flex-direction:column}
.xt-main{flex:1}
/* Thème classique : WordPress enveloppe le contenu des groupes dans un conteneur ; on le neutralise pour que nos grilles/flex s'appliquent aux blocs enfants. */
.wp-block-group__inner-container{display:contents}

/* Reset des marges des blocs Gutenberg : le design gère les espacements par gap */
body :where(p,h1,h2,h3,h4,h5,h6,ul,ol,figure,blockquote){margin:0}
body :where(.wp-block-group,.wp-block-buttons,.wp-block-image,.wp-block-list,.wp-block-paragraph){margin-block:0}
body :where(.is-layout-flow,.is-layout-constrained) > *{margin-block:0}
.wp-block-image img{display:block}

/* Conteneurs */
.xt-wrap{max-width:var(--xt-max);margin:0 auto;padding-left:20px;padding-right:20px}
.xt-stripes{height:28px;background:var(--xt-stripes)}

/* Typo commune */
.xt-kicker{font-family:var(--xt-script);font-size:32px;color:var(--xt-orange);line-height:1}
.xt-h2,
.xt-section h2,
.xt-sechead h2,
.xt-head-gap h2,
.xt-contact__info h2{font-family:var(--xt-display);font-weight:800;font-size:clamp(34px,5vw,60px);line-height:.95;text-transform:uppercase}
.xt-label{font-family:var(--xt-display);font-weight:700;font-size:20px;letter-spacing:.1em;text-transform:uppercase;color:var(--xt-orange)}
.xt-label--sm{font-size:18px}

/* Lien souligné */
.xt-link,
.xt-links a{display:inline-block;color:var(--xt-ink);font-family:var(--xt-display);font-weight:700;font-size:20px;letter-spacing:.06em;text-transform:uppercase;border-bottom:3px solid var(--xt-orange);padding-bottom:2px;line-height:1.15}
.xt-link:hover,.xt-links a:hover{color:var(--xt-orange)}
.xt-link--olive{border-bottom-color:var(--xt-olive)}
.xt-links{display:flex;gap:16px;flex-wrap:wrap}

/* ==========================================================================
   Boutons (bloc Bouton Gutenberg + liens maison)
   ========================================================================== */
.wp-block-buttons{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.wp-block-buttons .wp-block-button{margin:0}
.xt-btn,
.wp-block-button .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--xt-display);font-weight:700;font-size:22px;letter-spacing:.06em;text-transform:uppercase;line-height:1.2;padding:16px 28px;border-radius:4px;border:0;background:var(--xt-orange);color:var(--xt-cream);text-decoration:none;transition:background-color .15s,color .15s;cursor:pointer}
.xt-btn:hover,
.wp-block-button .wp-block-button__link:hover{background:var(--xt-ink);color:var(--xt-cream)}
/* Orange, survol crème (sur fond sombre) */
.wp-block-button.xt-btn--orange-light .wp-block-button__link:hover{background:var(--xt-cream);color:var(--xt-ink)}
/* Contour clair (sur fond sombre) */
.wp-block-button.xt-btn--outline-light .wp-block-button__link{background:transparent;border:2px solid var(--xt-cream);color:var(--xt-cream);padding:14px 28px}
.wp-block-button.xt-btn--outline-light .wp-block-button__link:hover{background:var(--xt-cream);color:var(--xt-ink)}
/* Contour encre */
.xt-btn.xt-btn--outline,
.wp-block-button.xt-btn--outline .wp-block-button__link{background:transparent;border:2px solid var(--xt-ink);color:var(--xt-ink);padding:14px 28px}
.xt-btn.xt-btn--outline:hover,
.wp-block-button.xt-btn--outline .wp-block-button__link:hover{background:var(--xt-ink);color:var(--xt-cream)}
/* Encre, survol orange */
.wp-block-button.xt-btn--ink .wp-block-button__link{background:var(--xt-ink);color:var(--xt-cream)}
.wp-block-button.xt-btn--ink .wp-block-button__link:hover{background:var(--xt-orange);color:var(--xt-cream)}
/* Encre, survol crème (bandeaux orange) */
.wp-block-button.xt-btn--ink-light .wp-block-button__link{background:var(--xt-ink);color:var(--xt-cream)}
.wp-block-button.xt-btn--ink-light .wp-block-button__link:hover{background:var(--xt-cream);color:var(--xt-ink)}
/* Vert officiel WhatsApp (#25D366) avec icône WhatsApp (Simple Icons, CC0) */
.wp-block-button.xt-btn--whatsapp .wp-block-button__link{background:var(--xt-whatsapp);color:var(--xt-white);padding:16px 24px;white-space:nowrap}
.wp-block-button.xt-btn--whatsapp .wp-block-button__link::before{content:"";width:24px;height:24px;background:currentColor;-webkit-mask:var(--xt-whatsapp-icon) center/contain no-repeat;mask:var(--xt-whatsapp-icon) center/contain no-repeat;display:inline-block;flex:none}
.wp-block-button.xt-btn--whatsapp .wp-block-button__link:hover{background:var(--xt-whatsapp-hover);color:var(--xt-white)}

/* ==========================================================================
   En-tête
   ========================================================================== */
.xt-header{position:sticky;top:0;z-index:30;background:var(--xt-cream);border-bottom:2px solid var(--xt-ink);font-family:var(--xt-body)}
body.admin-bar .xt-header{top:32px}
@media (max-width:782px){body.admin-bar .xt-header{top:46px}}
@media (max-width:600px){body.admin-bar .xt-header{top:0}}
.xt-header__bar{max-width:var(--xt-max);margin:0 auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.xt-brand{display:flex;align-items:center;gap:10px;color:var(--xt-ink);min-height:44px}
.xt-brand:hover{color:var(--xt-ink)}
.xt-brand img{width:48px;height:48px;display:block}
.xt-brand__name{font-family:var(--xt-display);font-weight:800;font-size:26px;letter-spacing:.02em;line-height:1}
.xt-nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.xt-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.xt-nav li{margin:0}
.xt-nav a{display:block;font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.06em;text-transform:uppercase;color:var(--xt-ink);padding:8px 10px;border-bottom:3px solid transparent}
.xt-nav a:hover{color:var(--xt-orange)}
.xt-nav .current-menu-item > a,
.xt-nav .current-menu-ancestor > a,
.xt-nav .current_page_item > a,
.xt-nav .xt-current > a{color:var(--xt-orange);border-bottom-color:var(--xt-orange)}
.xt-nav .xt-nav__wa{font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.06em;text-transform:uppercase;color:var(--xt-cream);background:var(--xt-ink);padding:10px 16px;border-radius:4px;margin-left:8px}
.xt-nav .xt-nav__wa:hover{background:var(--xt-orange);color:var(--xt-cream)}
.xt-header__mobile{display:none;gap:8px;align-items:center}
.xt-header__wa{font-family:var(--xt-display);font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--xt-cream);background:var(--xt-ink);padding:0 14px;height:44px;display:flex;align-items:center;border-radius:4px}
.xt-header__wa:hover{color:var(--xt-cream);background:var(--xt-orange)}
.xt-burger{width:44px;height:44px;border:2px solid var(--xt-ink);border-radius:4px;background:transparent;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}
.xt-burger span{width:20px;height:3px;background:var(--xt-ink);display:block;border-radius:2px}
.xt-burger[aria-expanded="true"]{background:var(--xt-ink)}
.xt-burger[aria-expanded="true"] span{background:var(--xt-cream)}
.xt-mnav{display:none;border-top:2px solid var(--xt-ink);background:var(--xt-ink);flex-direction:column;padding:12px 20px 20px;max-height:calc(100vh - 68px);overflow-y:auto}
.xt-mnav ul{list-style:none;margin:0;padding:0}
.xt-mnav a{font-family:var(--xt-display);font-weight:800;font-size:32px;letter-spacing:.04em;text-transform:uppercase;color:var(--xt-cream);padding:12px 0;border-bottom:1px solid var(--xt-olive);display:block;min-height:44px}
.xt-mnav a:hover,
.xt-mnav .current-menu-item > a,
.xt-mnav .current_page_item > a,
.xt-mnav .xt-current > a{color:var(--xt-orange)}
.xt-mnav__meta{display:flex;gap:16px;margin-top:20px;font-size:14px;color:var(--xt-stone);flex-wrap:wrap}
.xt-mnav__meta a{color:var(--xt-stone)}
@media (max-width:1023.98px){
  .xt-nav{display:none}
  .xt-header__mobile{display:flex}
  .xt-mnav.is-open{display:flex}
}

/* ==========================================================================
   Pied de page
   ========================================================================== */
.xt-footer{background:var(--xt-ink);color:var(--xt-stone);font-family:var(--xt-body)}
.xt-footer__grid{max-width:var(--xt-max);margin:0 auto;padding:64px 24px 32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px}
.xt-footer__brand{display:flex;flex-direction:column;gap:16px}
.xt-footer__brand img{width:96px;height:96px;display:block;border-radius:12px;background:var(--xt-cream)}
.xt-footer__brand p{margin:0;font-size:14px;line-height:1.6;max-width:32ch}
.xt-footer__title{font-family:var(--xt-display);font-weight:700;font-size:20px;letter-spacing:.1em;text-transform:uppercase;color:var(--xt-cream);margin:0 0 12px}
.xt-footer__links,.xt-footer__links ul{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}
.xt-footer__links a{color:var(--xt-stone);font-size:15px}
.xt-footer__links a:hover,.xt-footer__contact a:hover,.xt-footer__bottom a:hover{color:var(--xt-orange)}
.xt-footer__contact{display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:1.5}
.xt-footer__contact a{color:var(--xt-stone)}
.xt-footer__hours{font-size:15px;line-height:1.7}
.xt-footer__bottom{max-width:var(--xt-max);margin:0 auto;padding:16px 24px 32px;border-top:1px solid var(--xt-olive);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--xt-muted)}
.xt-footer__bottom a{color:var(--xt-muted)}

/* ==========================================================================
   Accueil : hero
   ========================================================================== */
.xt-hero{position:relative;background:var(--xt-ink);color:var(--xt-cream);overflow:hidden}
.xt-hero .wp-block-image{position:absolute;inset:0;margin:0}
.xt-hero .wp-block-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.55}
.xt-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,31,24,.92) 0%,rgba(30,31,24,.55) 55%,rgba(30,31,24,.15) 100%);z-index:1;pointer-events:none}
.xt-hero::after{content:"";position:relative;z-index:2;display:block;height:28px;background:var(--xt-stripes)}
.xt-hero__inner{position:relative;z-index:2;max-width:var(--xt-max);margin:0 auto;padding:clamp(72px,12vw,120px) 20px clamp(56px,9vw,96px);display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.xt-hero .xt-kicker{font-size:clamp(28px,5vw,38px)}
.xt-hero h1{font-family:var(--xt-display);font-weight:800;font-size:clamp(42px,6vw,88px);line-height:1.02;letter-spacing:.01em;text-transform:uppercase;max-width:20ch;text-wrap:balance}
.xt-hero__text{font-size:20px;line-height:1.5;max-width:72ch;color:var(--xt-light)}
.xt-hero .wp-block-buttons{margin-top:8px}

/* Bandeau défilant */
.xt-marquee{background:var(--xt-orange);color:var(--xt-cream);overflow:hidden;padding:14px 0}
.xt-marquee__track{display:flex;width:max-content;white-space:nowrap;flex-wrap:nowrap;font-family:var(--xt-display);font-weight:700;font-size:22px;letter-spacing:.12em;text-transform:uppercase;animation:xt-marquee 28s linear infinite}
.xt-marquee__item{display:inline-flex;align-items:center;gap:40px;padding-right:40px;flex:none}
.xt-marquee__dot{width:8px;height:8px;border-radius:50%;background:var(--xt-cream);display:inline-block;opacity:.7}
@keyframes xt-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.xt-marquee__track{animation-duration:120s}}

/* ==========================================================================
   Sections génériques
   ========================================================================== */
.xt-section{max-width:var(--xt-max);margin:0 auto;padding:clamp(56px,9vw,96px) 20px}
.xt-section--md{padding:clamp(48px,8vw,80px) 20px}
.xt-section--list{padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px)}
.xt-inner{max-width:var(--xt-max);margin:0 auto;padding:clamp(56px,9vw,96px) 20px}
.xt-inner--md{padding:clamp(48px,8vw,80px) 20px}
.xt-bg-ink{background:var(--xt-ink);color:var(--xt-cream)}
.xt-bg-olive{background:var(--xt-olive);color:var(--xt-cream)}

.xt-sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:48px!important}
.xt-sechead h2{margin-top:8px}
.xt-sechead__text{max-width:44ch;font-size:17px;line-height:1.55;color:var(--xt-olive)}
.xt-sechead--solo{display:block}

/* Cartes services (accueil) */
.xt-scards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px}
.xt-scard{background:var(--xt-cream);border:2px solid var(--xt-ink);border-radius:6px;padding:32px 28px;display:flex;flex-direction:column;gap:14px;min-height:280px;transition:background-color .15s}
.xt-scard:hover{background:var(--xt-sand)}
.xt-scard__price{font-family:var(--xt-display);font-weight:800;font-size:56px;line-height:1;color:var(--xt-orange)}
.xt-scard h3{font-family:var(--xt-display);font-weight:700;font-size:28px;line-height:1;text-transform:uppercase;letter-spacing:.02em}
.xt-scard__desc{font-size:15px;line-height:1.55;color:var(--xt-olive);flex:1}
.xt-scard__note{font-size:13px;color:var(--xt-muted);font-weight:500}

/* Atelier photo + texte */
.xt-split__inner{max-width:var(--xt-max);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));align-items:stretch}
.xt-split__img{position:relative;min-height:380px}
.xt-split__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.xt-split__body{padding:clamp(40px,6vw,64px) clamp(20px,4vw,48px);display:flex;flex-direction:column;justify-content:center;gap:20px}
.xt-split__body h2{font-family:var(--xt-display);font-weight:800;font-size:clamp(32px,4.5vw,52px);line-height:.95;text-transform:uppercase}
.xt-split__body p:not(.xt-kicker):not(.xt-stat__num):not(.xt-stat__label){font-size:17px;line-height:1.6;color:var(--xt-light)}
.xt-stats{display:flex;gap:32px;flex-wrap:wrap;margin-top:8px!important}
.xt-stat__num{font-family:var(--xt-display);font-weight:800;font-size:44px;line-height:1}
.xt-stat__label{font-size:14px;color:var(--xt-stone)}

/* ==========================================================================
   Cartes vélos
   ========================================================================== */
.xt-bikes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:24px}
.xt-bikes--catalogue{gap:28px}
.xt-bike{display:flex;flex-direction:column;gap:14px}
.xt-bike[hidden]{display:none}
.xt-bike__media{position:relative;display:block;aspect-ratio:4/3;border:2px solid var(--xt-ink);border-radius:6px;overflow:hidden;background:var(--xt-sand)}
.xt-bikes--catalogue .xt-bike__media{background:var(--xt-hatch)}
.xt-bike__media img{width:100%;height:100%;object-fit:cover;display:block}
.xt-badge{position:absolute;top:12px;left:12px;background:var(--xt-olive);color:var(--xt-cream);font-family:var(--xt-display);font-weight:700;font-size:15px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:3px;line-height:1.25}
.xt-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.xt-ph span,
.xt-ph__label{font-family:monospace;font-size:12px;color:var(--xt-muted);background:var(--xt-cream);padding:4px 8px;border:1px dashed var(--xt-muted);white-space:nowrap}
.xt-bike__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.xt-brandline{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--xt-muted);font-weight:600}
.xt-bike__name{margin:2px 0 0;font-family:var(--xt-display);font-weight:700;font-size:26px;line-height:1;text-transform:uppercase}
.xt-bike__name a{color:var(--xt-ink)}
.xt-bike__name a:hover{color:var(--xt-orange)}
.xt-bike__price{font-family:var(--xt-display);font-weight:800;font-size:28px;color:var(--xt-orange);white-space:nowrap}
.xt-bike__spec{font-size:14px;color:var(--xt-olive)}
.xt-bikes--catalogue .xt-bike__spec{line-height:1.5}
.xt-bike__more{align-self:flex-start;color:var(--xt-ink);font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.06em;text-transform:uppercase;border-bottom:3px solid var(--xt-orange)}
.xt-bike__more:hover{color:var(--xt-orange)}

/* Catalogue */
.xt-catalogue{max-width:var(--xt-max);margin:0 auto;padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px)}
.xt-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:40px}
.xt-filter{cursor:pointer;border:2px solid var(--xt-ink);border-radius:999px;padding:10px 18px;font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.06em;text-transform:uppercase;background:transparent;color:var(--xt-ink);line-height:1.2}
.xt-filter:hover{background:var(--xt-orange);color:var(--xt-cream);border-color:var(--xt-orange)}
.xt-filter.is-active{background:var(--xt-ink);color:var(--xt-cream);border-color:var(--xt-ink)}
.xt-filter.is-active:hover{background:var(--xt-orange);border-color:var(--xt-orange)}
.xt-empty{font-size:17px;color:var(--xt-olive)}

/* Bandeau CTA orange */
.xt-band{background:var(--xt-orange);color:var(--xt-cream)}
.xt-band__inner{max-width:var(--xt-max);margin:0 auto;padding:clamp(40px,6vw,56px) 20px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.xt-band h2{font-family:var(--xt-display);font-weight:800;font-size:clamp(28px,3.5vw,40px);line-height:1;text-transform:uppercase}

/* ==========================================================================
   Actualités
   ========================================================================== */
.xt-news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:0;border-top:1px solid var(--xt-olive)}
.xt-news-card{padding:32px 24px 32px 0;border-bottom:1px solid var(--xt-olive);display:flex;flex-direction:column;gap:12px}
.xt-news-card__date{font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.1em;text-transform:uppercase;color:var(--xt-orange)}
.xt-news-card h3{margin:0;font-family:var(--xt-display);font-weight:700;font-size:30px;line-height:1;text-transform:uppercase}
.xt-news-card h3 a{color:inherit}
.xt-news-card h3 a:hover{color:var(--xt-orange)}
.xt-news-card p{margin:0;font-size:15px;line-height:1.6;color:var(--xt-stone)}
.xt-head-gap{margin-bottom:48px!important}
.xt-head-gap h2{margin-top:8px}

.xt-news-list{max-width:900px;margin:0 auto;padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px);display:flex;flex-direction:column}
.xt-news-item{display:grid;grid-template-columns:minmax(90px,160px) minmax(0,1fr);gap:clamp(16px,4vw,32px);padding:40px 0;border-bottom:2px solid var(--xt-ink)}
.xt-news-item__date{font-family:var(--xt-display);font-weight:700;font-size:20px;letter-spacing:.1em;text-transform:uppercase;color:var(--xt-orange);line-height:1.3}
.xt-news-item__body{display:flex;flex-direction:column;gap:14px}
.xt-news-item h2{margin:0;font-family:var(--xt-display);font-weight:800;font-size:clamp(26px,3.5vw,38px);line-height:.95;text-transform:uppercase}
.xt-news-item h2 a{color:var(--xt-ink)}
.xt-news-item h2 a:hover{color:var(--xt-orange)}
.xt-news-item__text{font-size:17px;line-height:1.65;color:var(--xt-olive)}
.xt-news-item__text p{margin:0 0 1em}
.xt-news-item__text p:last-child{margin-bottom:0}
.xt-pagination{display:flex;gap:8px;flex-wrap:wrap;padding-top:32px;font-family:var(--xt-display);font-weight:700;font-size:20px;text-transform:uppercase;letter-spacing:.06em}
.xt-pagination a,.xt-pagination span{padding:6px 12px;border:2px solid var(--xt-ink);border-radius:4px;color:var(--xt-ink)}
.xt-pagination .current{background:var(--xt-ink);color:var(--xt-cream)}

/* ==========================================================================
   Contact (accueil + page)
   ========================================================================== */
.xt-contact{max-width:var(--xt-max);margin:0 auto;padding:clamp(56px,9vw,96px) 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(32px,5vw,64px)}
.xt-contact--page{padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px);align-items:start}
.xt-contact__info{display:flex;flex-direction:column;gap:24px}
.xt-contact--page .xt-contact__info{gap:32px}
.xt-contact__info h2{margin-top:8px}
.xt-contact__text{font-size:17px;line-height:1.6;color:var(--xt-olive);max-width:44ch}
.xt-contact--page .xt-contact__text{font-size:18px}
.xt-contact__info .wp-block-buttons{align-self:flex-start}
.xt-infos{border-top:2px solid var(--xt-ink);padding-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:24px}
.xt-infos p:not(.xt-label){font-size:16px;line-height:1.6;margin-top:6px}
.xt-contact--page .xt-infos p:not(.xt-label){font-size:17px;line-height:1.5}
.xt-infos a{color:var(--xt-ink)}
.xt-infos a:hover{color:var(--xt-orange)}

.xt-wa-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--xt-whatsapp);color:var(--xt-white);padding:24px 28px;border-radius:6px;border:2px solid var(--xt-ink);transition:background-color .15s}
.xt-wa-card:hover{background:var(--xt-whatsapp-hover);color:var(--xt-white)}
.xt-wa-card__title{font-family:var(--xt-display);font-weight:800;font-size:32px;line-height:1;text-transform:uppercase}
.xt-wa-card__sub{font-size:15px;margin-top:6px;color:var(--xt-white)}
.xt-wa-card__arrow{font-family:var(--xt-display);font-weight:800;font-size:40px;line-height:1}

/* Formulaire */
.xt-form{background:var(--xt-white);border:2px solid var(--xt-ink);border-radius:6px;padding:clamp(20px,4vw,32px);display:flex;flex-direction:column;gap:16px;box-shadow:8px 8px 0 var(--xt-orange);scroll-margin-top:100px}
.xt-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:16px}
.xt-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--xt-olive)}
.xt-form input,.xt-form textarea,.xt-form select{padding:12px 14px;border:2px solid var(--xt-line);border-radius:4px;font-size:16px;background:var(--xt-cream);color:var(--xt-ink);width:100%;font-weight:400;letter-spacing:0;text-transform:none}
.xt-form input:focus,.xt-form textarea:focus,.xt-form select:focus{border-color:var(--xt-orange);outline:none}
.xt-form textarea{resize:vertical}
.xt-form__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.xt-form button[type=submit]{background:var(--xt-orange);color:var(--xt-cream);border:none;cursor:pointer;font-family:var(--xt-display);font-weight:700;font-size:22px;letter-spacing:.06em;text-transform:uppercase;padding:16px 24px;border-radius:4px}
.xt-form button[type=submit]:hover{background:var(--xt-ink)}
.xt-form__msg{font-size:15px;line-height:1.5;padding:12px 14px;border-radius:4px}
.xt-form__msg--ok{background:#E4E9D3;color:var(--xt-olive)}
.xt-form__msg--err{background:#FBE3DB;color:#9A2E12}
.xt-form__legal{font-size:12px;line-height:1.5;color:var(--xt-muted);margin:0}

/* ==========================================================================
   En-tête des pages intérieures
   ========================================================================== */
.xt-pagehead{background:var(--xt-ink);color:var(--xt-cream)}
.xt-pagehead::after{content:"";display:block;height:28px;background:var(--xt-stripes)}
.xt-pagehead--olive{background:var(--xt-olive)}
.xt-pagehead--olive::after{background:repeating-linear-gradient(-45deg,var(--xt-ink) 0 4px,transparent 4px 18px)}
.xt-pagehead__inner{max-width:var(--xt-max);margin:0 auto;padding:clamp(48px,8vw,80px) 20px clamp(40px,6vw,64px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:40px;align-items:end}
.xt-pagehead--stack .xt-pagehead__inner{display:block}
.xt-pagehead .xt-kicker{font-size:clamp(28px,5vw,36px)}
.xt-pagehead h1{margin-top:8px!important;font-family:var(--xt-display);font-weight:800;font-size:clamp(44px,6.5vw,92px);line-height:.92;text-transform:uppercase}
.xt-pagehead__lead{font-size:18px;line-height:1.6;color:var(--xt-stone);max-width:48ch}
.xt-pagehead--olive .xt-pagehead__lead{color:var(--xt-light)}

/* ==========================================================================
   Prestations
   ========================================================================== */
.xt-forfaits-title{margin-bottom:40px!important;font-family:var(--xt-display);font-weight:800;font-size:clamp(32px,4.5vw,54px)!important;line-height:.95;text-transform:uppercase}
.xt-forfaits{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:24px}
.xt-forfait{background:var(--xt-white);border:2px solid var(--xt-ink);border-radius:6px;padding:36px 32px;display:flex;flex-direction:column;gap:20px}
.xt-forfait--featured{box-shadow:8px 8px 0 var(--xt-orange)}
.xt-forfait__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.xt-forfait h3{font-family:var(--xt-display);font-weight:700;font-size:32px;line-height:1;text-transform:uppercase;max-width:12ch}
.xt-forfait__price{font-family:var(--xt-display);font-weight:800;font-size:clamp(36px,6vw,52px);line-height:1;color:var(--xt-orange);white-space:nowrap}
.xt-forfait__note{font-size:14px;color:var(--xt-muted);font-weight:500}
.xt-dots{list-style:none;padding:0!important;display:flex;flex-direction:column;gap:10px}
.xt-dots li{position:relative;padding-left:20px;font-size:15px;line-height:1.45}
.xt-dots li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--xt-olive)}
.xt-forfait .xt-dots{border-top:1px solid var(--xt-line);padding-top:20px!important}

.xt-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:48px}
.xt-step{display:flex;flex-direction:column;gap:12px}
.xt-step__n{font-family:var(--xt-display);font-weight:800;font-size:64px;line-height:1;color:var(--xt-orange)}
.xt-step h3{font-family:var(--xt-display);font-weight:700;font-size:30px;line-height:1;text-transform:uppercase}
.xt-step p:not(.xt-step__n){font-size:16px;line-height:1.6;color:var(--xt-light)}

.xt-photocta{max-width:var(--xt-max);margin:0 auto;padding:clamp(48px,8vw,80px) 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:48px;align-items:center}
.xt-photocta .wp-block-image img{width:100%;aspect-ratio:3/2;object-fit:cover;border:2px solid var(--xt-ink);border-radius:6px;display:block}
.xt-photocta__body{display:flex;flex-direction:column;gap:20px}
.xt-photocta__body h2{font-family:var(--xt-display);font-weight:800;font-size:clamp(32px,4.5vw,52px);line-height:.95;text-transform:uppercase}
.xt-photocta__body p:not(.xt-kicker){font-size:17px;line-height:1.6;color:var(--xt-olive)}

/* ==========================================================================
   Occasions
   ========================================================================== */
.xt-deals{max-width:var(--xt-max);margin:0 auto;padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px);display:flex;flex-direction:column;gap:24px}
.xt-deal{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:32px;background:var(--xt-white);border:2px solid var(--xt-ink);border-radius:6px;padding:24px;align-items:center}
.xt-deal__media{position:relative;display:block;aspect-ratio:16/10;border-radius:4px;overflow:hidden;background:var(--xt-hatch);border:1px solid var(--xt-line)}
.xt-deal__media img{width:100%;height:100%;object-fit:cover;display:block}
.xt-deal__body{display:flex;flex-direction:column;gap:14px}
.xt-deal h2{margin:0;font-family:var(--xt-display);font-weight:800;font-size:clamp(28px,3.5vw,38px);line-height:.95;text-transform:uppercase}
.xt-deal h2 a{color:var(--xt-ink)}
.xt-deal h2 a:hover{color:var(--xt-orange)}
.xt-deal__text{margin:0;font-size:15px;line-height:1.55;color:var(--xt-olive)}
.xt-deal__prices{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;border-top:1px solid var(--xt-line);padding-top:14px}
.xt-deal__price{font-family:var(--xt-display);font-weight:800;font-size:clamp(36px,6vw,48px);line-height:1;color:var(--xt-orange)}
.xt-was{font-size:15px;color:var(--xt-muted)}
.xt-deal__pct{margin-left:auto;background:var(--xt-ink);color:var(--xt-cream);font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.06em;padding:6px 12px;border-radius:3px}
.xt-deal__links{display:flex;gap:20px;flex-wrap:wrap}

/* ==========================================================================
   Localisation
   ========================================================================== */
.xt-locgrid{max-width:var(--xt-max);margin:0 auto;padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:48px;align-items:start}
.xt-map{border:2px solid var(--xt-ink);border-radius:6px;overflow:hidden;background:var(--xt-white)}
.xt-map iframe{width:100%;height:clamp(280px,50vw,440px);border:0;display:block}
.xt-map__caption{padding:14px 18px;font-size:13px;color:var(--xt-muted);border-top:1px solid var(--xt-line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.xt-map__caption a{font-weight:600}
.xt-locinfo{display:flex;flex-direction:column;gap:32px}
.xt-locinfo .xt-label{margin-bottom:12px!important}
.xt-locinfo .xt-label--tight{margin-bottom:0!important}
.xt-addr-big{font-family:var(--xt-display);font-weight:800;font-size:36px;line-height:1;margin-top:8px!important;text-transform:uppercase}
.xt-addr-city{font-size:18px;margin-top:6px!important}
.xt-hours{display:flex;flex-direction:column;border-top:2px solid var(--xt-ink)}
.xt-hours__row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--xt-line);font-size:16px}
.xt-hours__day{font-weight:600}
.xt-hours__closed{color:var(--xt-orange)}
.xt-plainlist{list-style:none;padding:0!important;display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:1.5;color:var(--xt-olive)}
.xt-locinfo .wp-block-buttons{align-self:flex-start}
.xt-fullphoto{background:var(--xt-ink)}
.xt-fullphoto img{width:100%;max-height:520px;object-fit:cover;object-position:center 25%;display:block}

/* ==========================================================================
   Tourisme
   ========================================================================== */
.xt-spots{max-width:var(--xt-max);margin:0 auto;padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px);display:flex;flex-direction:column;gap:32px}
.xt-spot{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:40px;align-items:center;padding-bottom:32px;border-bottom:2px solid var(--xt-ink)}
.xt-spot .xt-spot__ph,
.xt-spot .wp-block-image{aspect-ratio:3/2;border:2px solid var(--xt-ink);border-radius:6px;overflow:hidden;order:0}
.xt-spot .xt-spot__ph{background:repeating-linear-gradient(-45deg,#E4E9D3 0 10px,var(--xt-cream) 10px 20px);display:flex;align-items:center;justify-content:center}
.xt-spot .wp-block-image img{width:100%;height:100%;object-fit:cover}
.xt-spot--reverse .xt-spot__ph,
.xt-spot--reverse .wp-block-image{order:1}
.xt-spot__body{display:flex;flex-direction:column;gap:14px}
.xt-tags{display:flex;gap:10px;flex-wrap:wrap}
.xt-tag{background:var(--xt-olive);color:var(--xt-cream);font-family:var(--xt-display);font-weight:700;font-size:15px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:3px;line-height:1.25}
.xt-tag--outline{background:transparent;border:2px solid var(--xt-ink);color:var(--xt-ink);padding:2px 10px}
.xt-spot h2{font-family:var(--xt-display);font-weight:800;font-size:clamp(28px,3.5vw,44px);line-height:.95;text-transform:uppercase}
.xt-spot__body p:not(.xt-links):not(.xt-tag){font-size:16px;line-height:1.65;color:var(--xt-olive)}

/* ==========================================================================
   Fiche vélo
   ========================================================================== */
.xt-fiche{max-width:var(--xt-max);margin:0 auto;padding:clamp(24px,4vw,40px) 20px clamp(56px,9vw,96px)}
.xt-crumbs{display:flex;gap:8px;flex-wrap:wrap;font-family:var(--xt-display);font-weight:700;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--xt-muted);margin-bottom:24px}
.xt-crumbs a{color:var(--xt-muted)}
.xt-crumbs a:hover{color:var(--xt-orange)}
.xt-crumbs [aria-current]{color:var(--xt-ink)}
.xt-fiche__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(24px,4vw,56px);align-items:start}
.xt-gallery{display:flex;flex-direction:column;gap:12px}
.xt-gallery__main{position:relative;aspect-ratio:4/3;border:2px solid var(--xt-ink);border-radius:6px;overflow:hidden;background:var(--xt-sand)}
.xt-gallery__main > img{width:100%;height:100%;object-fit:cover;display:block}
.xt-gallery__main .xt-ph{background:var(--xt-hatch)}
.xt-gallery__main .xt-badge{top:14px;left:14px;font-size:16px;padding:5px 12px}
.xt-thumbs{display:flex;gap:10px;flex-wrap:wrap}
.xt-thumb{width:96px;height:72px;padding:0;border:2px solid var(--xt-ink);border-radius:4px;overflow:hidden;cursor:pointer;background:var(--xt-sand)}
.xt-thumb.is-active{border-color:var(--xt-orange)}
.xt-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.xt-fiche__info{display:flex;flex-direction:column;gap:20px}
.xt-fiche__brand{font-family:var(--xt-script);font-size:clamp(26px,4vw,32px);color:var(--xt-orange);line-height:1}
.xt-fiche h1{margin:6px 0 0;font-family:var(--xt-display);font-weight:800;font-size:clamp(44px,6.5vw,84px);line-height:.95;text-transform:uppercase}
.xt-fiche__intro{margin:0;font-size:17px;line-height:1.6;color:var(--xt-olive)}
.xt-fiche__intro p{margin:0 0 .8em}
.xt-fiche__intro p:last-child{margin:0}
.xt-fiche__price{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;border-top:2px solid var(--xt-ink);border-bottom:2px solid var(--xt-ink);padding:16px 0}
.xt-fiche__amount{font-family:var(--xt-display);font-weight:800;font-size:clamp(36px,5vw,52px);line-height:1;color:var(--xt-orange)}
.xt-fiche__avail{margin-left:auto;font-size:14px;color:var(--xt-muted)}
.xt-sizes{display:flex;gap:8px;flex-wrap:wrap}
.xt-size{border:2px solid var(--xt-ink);border-radius:4px;padding:8px 14px;font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.04em}
.xt-fiche__btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
.xt-fiche__note{font-size:14px;color:var(--xt-muted);line-height:1.5}

.xt-specs__grid{max-width:var(--xt-max);margin:0 auto;padding:clamp(48px,8vw,80px) 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:clamp(32px,5vw,64px);align-items:start}
.xt-specs .xt-kicker{font-size:clamp(26px,4vw,32px)}
.xt-specs h2{margin:8px 0 24px;font-family:var(--xt-display);font-weight:800;font-size:clamp(34px,5vw,60px);line-height:.95;text-transform:uppercase}
.xt-spectable{display:flex;flex-direction:column;border-top:1px solid var(--xt-olive);margin:0}
.xt-spectable__row{display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--xt-olive);font-size:15px;line-height:1.5}
.xt-spectable dt{font-family:var(--xt-display);font-weight:700;font-size:17px;letter-spacing:.06em;text-transform:uppercase;color:var(--xt-stone)}
.xt-spectable dd{margin:0}
.xt-specs__side{display:flex;flex-direction:column;gap:24px}
.xt-specs__side .xt-label{font-size:18px;margin-bottom:12px}
.xt-hl{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.xt-hl li{display:flex;gap:12px;font-size:16px;line-height:1.5;color:var(--xt-light)}
.xt-hl li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--xt-orange);flex:none;margin-top:8px}
.xt-specs__usage{margin:0;font-size:16px;line-height:1.6;color:var(--xt-light)}
.xt-included{background:var(--xt-olive);border-radius:6px;padding:20px 24px;display:flex;flex-direction:column;gap:6px}
.xt-included__title{font-family:var(--xt-display);font-weight:700;font-size:18px;letter-spacing:.1em;text-transform:uppercase}
.xt-included__text{font-size:15px;line-height:1.6;color:var(--xt-light)}

.xt-related{max-width:var(--xt-max);margin:0 auto;padding:clamp(48px,8vw,80px) 20px}
.xt-related h2{margin:0 0 28px;font-family:var(--xt-display);font-weight:800;font-size:clamp(30px,4vw,48px);line-height:.95;text-transform:uppercase}
.xt-related__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:20px}
.xt-related__card{display:flex;flex-direction:column;gap:10px;color:var(--xt-ink)}
.xt-related__card:hover{color:var(--xt-orange)}
.xt-related__img{aspect-ratio:4/3;border:2px solid var(--xt-ink);border-radius:6px;overflow:hidden;background:var(--xt-hatch)}
.xt-related__img img{width:100%;height:100%;object-fit:cover;display:block}
.xt-related__name{font-family:var(--xt-display);font-weight:700;font-size:24px;line-height:1;text-transform:uppercase;margin-top:-6px}

/* ==========================================================================
   Contenu libre (articles, mentions légales, pages simples)
   ========================================================================== */
.xt-prose{max-width:900px;margin:0 auto;padding:clamp(40px,6vw,64px) 20px clamp(56px,9vw,96px);font-size:17px;line-height:1.65;color:var(--xt-ink)}
.xt-prose > * + *{margin-top:1em}
.xt-prose :where(h2,h3,h4){font-family:var(--xt-display);font-weight:800;text-transform:uppercase;line-height:1;margin-top:1.6em}
.xt-prose h2{font-size:clamp(28px,3.5vw,38px)}
.xt-prose h3{font-size:26px}
.xt-prose ul,.xt-prose ol{padding-left:1.2em}
.xt-prose a{text-decoration:underline;text-underline-offset:3px}
.xt-prose .wp-block-image img{border:2px solid var(--xt-ink);border-radius:6px}
.xt-back{margin-top:40px!important}

/* Écran d'erreur 404 */
.xt-404{text-align:left}
