/*
Theme Name: Pétanque 101 Corporate
Theme URI: https://petanque101.com
Author: Pétanque 101
Description: Conversion-focused block theme for Pétanque 101 corporate events and 5 à 7 bookings.
Version: 1.4.10
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: p101
*/

:root {
  --p101-navy:#0a2d5e;
  --p101-gold:#e9c46a;
  --p101-cream:#f7f4ed;
  --p101-ink:#102238;
  --p101-muted:#5d6b7b;
  --p101-white:#ffffff;
}

html { scroll-behavior:smooth; }
body { margin:0; }
a { text-underline-offset:.18em; }

.p101-card { transition:transform .2s ease, box-shadow .2s ease; }
.p101-card:hover { transform:translateY(-4px); box-shadow:0 18px 42px rgba(10,45,94,.12); }
.p101-kicker { letter-spacing:.12em; text-transform:uppercase; font-weight:700; }
.p101-shadow { box-shadow:0 18px 50px rgba(10,45,94,.10); }
.p101-rounded { border-radius:24px; overflow:hidden; }
.p101-pill { border-radius:999px; }
.p101-sticky-cta { position:fixed; left:16px; right:16px; bottom:16px; z-index:50; display:none; }
.p101-sticky-cta a { display:block; text-align:center; padding:14px 18px; border-radius:999px; background:var(--p101-gold); color:var(--p101-navy); font-weight:800; text-decoration:none; box-shadow:0 10px 28px rgba(10,45,94,.22); }

.p101-form { background:#fff; border:1px solid #e8ebef; border-radius:24px; padding:clamp(22px,4vw,40px); box-shadow:0 18px 50px rgba(10,45,94,.08); }
.p101-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.p101-form-field { display:flex; flex-direction:column; gap:7px; }
.p101-form-field.full { grid-column:1/-1; }
.p101-form label { font-weight:700; color:var(--p101-ink); }
.p101-form input,.p101-form select,.p101-form textarea { width:100%; box-sizing:border-box; border:1px solid #cfd6df; border-radius:12px; padding:12px 14px; font:inherit; background:#fff; color:#142538; }
.p101-form input:focus,.p101-form select:focus,.p101-form textarea:focus { outline:3px solid rgba(233,196,106,.35); border-color:var(--p101-gold); }
.p101-form button { border:0; border-radius:999px; padding:14px 22px; background:var(--p101-gold); color:var(--p101-navy); font-weight:800; font-size:1rem; cursor:pointer; }
.p101-form-note { font-size:.9rem; color:var(--p101-muted); }
.p101-alert { padding:14px 16px; border-radius:12px; margin-bottom:18px; }
.p101-alert.success { background:#e9f7ef; color:#185c37; }
.p101-alert.error { background:#fff0f0; color:#8c1d1d; }

.p101-logo-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; align-items:center; }
.p101-logo-placeholder { min-height:54px; display:flex; align-items:center; justify-content:center; border:1px dashed #c9d0d9; border-radius:12px; color:#738194; font-size:.85rem; background:#fff; }
.p101-logo-row img { max-height:58px; width:100%; object-fit:contain; filter:grayscale(100%); opacity:.86; }
.p101-card-media img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:16px; }
.p101-wide-media img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.p101-portrait-media img { width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.p101-video-cover video { width:100%; height:100%; object-fit:cover; display:block; }

.p101-stat { font-size:clamp(2rem,4vw,3.5rem); font-weight:800; line-height:1; color:var(--p101-navy); }
.p101-faq details { border-top:1px solid #dfe4ea; padding:16px 0; }
.p101-faq details:last-child { border-bottom:1px solid #dfe4ea; }
.p101-faq summary { cursor:pointer; font-weight:750; color:var(--p101-navy); }
.p101-faq details p { color:var(--p101-muted); }
.p101-testimonial-quote { margin:0; }
.p101-testimonial-quote p { font-size:clamp(1.45rem,3vw,2.25rem); line-height:1.18; color:var(--p101-navy); font-weight:750; }
.p101-testimonial-quote cite { display:block; margin-top:18px; color:var(--p101-muted); font-style:normal; font-weight:700; }

.p101-carousel { width:100%; }
.p101-carousel-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.p101-carousel-head h2 { margin:0; max-width:720px; }
.p101-carousel-controls { display:flex; gap:10px; flex:0 0 auto; }
.p101-carousel-controls button { width:44px; height:44px; border:1px solid rgba(10,45,94,.18); border-radius:999px; background:#fff; color:var(--p101-navy); font-weight:900; cursor:pointer; box-shadow:0 10px 24px rgba(10,45,94,.08); }
.p101-carousel-controls button:hover { background:var(--p101-gold); }

.p101-case-track,.p101-testimonial-track { display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:2px; padding:4px 2px 22px; scrollbar-width:thin; }
.p101-case-card { position:relative; display:flex; flex-direction:column; flex:0 0 342px; height:520px; scroll-snap-align:start; overflow:hidden; border:1px solid #e6e9ee; border-radius:20px; background:#fff; color:var(--p101-ink); text-decoration:none; box-shadow:0 18px 50px rgba(10,45,94,.10); transition:transform .2s ease, box-shadow .2s ease; }
.p101-case-card:hover { transform:translateY(-4px); box-shadow:0 22px 56px rgba(10,45,94,.15); }
.p101-case-image { display:block; height:220px; background:var(--p101-cream); overflow:hidden; }
.p101-case-image img { width:100%; height:100%; object-fit:cover; display:block; }
.p101-case-body { display:flex; flex-direction:column; gap:12px; padding:22px; min-height:0; flex:1; }
.p101-case-title { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:3.1em; color:var(--p101-navy); font-size:1.24rem; line-height:1.24; font-weight:850; }
.p101-case-summary { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; color:var(--p101-muted); line-height:1.45; min-height:4.35em; }
.p101-case-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; font-size:.9rem; color:var(--p101-muted); }
.p101-case-meta span { border:1px solid #e6e9ee; border-radius:999px; padding:5px 10px; background:#fff; }
.p101-case-more { color:var(--p101-navy); font-weight:850; }
.p101-case-tag { position:absolute; z-index:2; top:14px; left:14px; display:inline-flex; align-items:center; max-width:calc(100% - 28px); padding:7px 11px; border-radius:999px; background:var(--p101-navy); color:#fff; font-size:.78rem; line-height:1; font-weight:850; text-transform:uppercase; letter-spacing:.04em; box-shadow:0 10px 24px rgba(10,45,94,.18); }
.p101-tag-5-a-7 { background:var(--p101-gold); color:var(--p101-navy); }
.p101-tag-team-building { background:var(--p101-navy); color:#fff; }
.p101-tag-tournoi-corporatif { background:#153b73; color:#fff; }
.p101-tag-grands-evenements { background:#102238; color:#fff; }
.p101-tag-entreprises { background:var(--p101-cream); color:var(--p101-navy); border:1px solid rgba(10,45,94,.18); }

/* Full-width, transparent testimonial section inspired by the supplied reference. */
.p101-testimonial-showcase { width:100%; max-width:none!important; min-width:0; box-sizing:border-box; background:transparent; color:var(--p101-ink); border:0; border-radius:0; padding:0; overflow:hidden; }
.p101-testimonial-heading { text-align:center; padding:0 16px; margin:0 auto 32px; max-width:760px; }
.p101-testimonial-heading .p101-kicker { color:var(--p101-muted); font-size:.8rem; margin:0 0 14px; }
.p101-testimonial-heading h2 { color:var(--p101-navy); font-size:clamp(2rem,3.5vw,3.5rem); margin:0; letter-spacing:-.03em; }
.p101-testimonial-tools { margin-top:18px; min-height:32px; }
.p101-testimonial-tools button { font:inherit; font-size:.8rem; color:var(--p101-muted); background:transparent; border:1px solid rgba(10,45,94,.2); border-radius:999px; padding:6px 14px; cursor:pointer; }
.p101-testimonial-tools button:hover { color:var(--p101-navy); border-color:var(--p101-navy); }
.p101-testimonial-rows { display:grid; gap:20px; min-width:0; }
.p101-testimonial-track { display:flex; gap:20px; padding:4px 2px; overflow-x:auto; scroll-snap-type:none; scrollbar-width:none; -ms-overflow-style:none; mask-image:linear-gradient(to right,transparent,#000 2%,#000 98%,transparent); }
.p101-testimonial-track::-webkit-scrollbar { display:none; height:0; }
.p101-testimonial-card { display:flex; flex-direction:column; flex:0 0 clamp(280px,27vw,380px); min-width:0; min-height:265px; box-sizing:border-box; border:1px solid rgba(10,45,94,.15); border-radius:18px; padding:26px; background:transparent; color:var(--p101-ink); box-shadow:none; }
.p101-quote-mark { display:block; color:var(--p101-navy); font-family:Georgia,serif; font-size:64px; font-weight:700; height:40px; line-height:1; }
.p101-testimonial-card blockquote { margin:18px 0 24px; border:0; padding:0; color:var(--p101-ink); }
.p101-testimonial-card blockquote p { margin:0; font-size:1.12rem; line-height:1.5; font-weight:550; overflow-wrap:anywhere; }
.p101-testimonial-card footer { display:flex; align-items:center; gap:12px; margin-top:auto; font-size:.87rem; }
.p101-testimonial-card footer strong { display:block; color:var(--p101-navy); font-weight:750; }
.p101-testimonial-card footer div > span { display:block; color:var(--p101-muted); font-size:.8rem; margin-top:3px; }
.p101-testimonial-avatar { display:flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; border-radius:50%; border:1px solid rgba(10,45,94,.18); object-fit:cover; color:var(--p101-navy); font-size:.65rem; font-weight:750; }
.p101-rating { display:flex; align-items:center; flex-wrap:wrap; gap:2px; color:var(--p101-gold); font-size:1rem; line-height:1.2; margin-top:8px; }
.p101-rating .is-empty { color:#d6dce4; }
.p101-rating strong { margin-left:8px; color:var(--p101-navy); font-size:.8rem; }
.p101-testimonial-cta { display:flex; justify-content:center; margin-top:30px; }
.p101-testimonial-cta a { display:inline-flex; gap:14px; align-items:center; padding:12px 20px; border-radius:999px; border:1px solid rgba(10,45,94,.2); background:transparent; color:var(--p101-navy); font-weight:750; text-decoration:none; }
.p101-testimonial-cta a:hover { border-color:var(--p101-navy); }
.p101-case-carousel { width:100%; max-width:none!important; min-width:0; }
.p101-case-carousel .p101-case-track { scrollbar-width:none; -ms-overflow-style:none; padding-bottom:14px; }
.p101-case-track::-webkit-scrollbar { display:none; height:0; }
.p101-case-carousel .p101-case-card { flex:0 0 calc((100% - 44px)/3); box-sizing:border-box; min-width:0; height:560px; }
.p101-case-image { flex:0 0 220px; }
.p101-case-meta { max-height:3.2rem; overflow:hidden; flex-wrap:nowrap; }
.p101-case-meta span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.p101-case-tag { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.p101-case-title,.p101-case-summary { overflow-wrap:anywhere; flex-shrink:0; }
.p101-case-title { min-height:2.48em; max-height:2.48em; }
.p101-case-summary { max-height:4.35em; }
.p101-carousel-controls button:disabled { opacity:.35; cursor:default; }
.p101-carousel-controls button:focus-visible,.p101-case-card:focus-visible,.p101-testimonial-tools button:focus-visible,.p101-testimonial-track:focus-visible,.p101-case-track:focus-visible { outline:3px solid var(--p101-gold); outline-offset:-3px; }
@media(max-width:1000px) { .p101-case-carousel .p101-case-card { flex-basis:calc((100% - 22px)/2); } }
@media(max-width:600px) { .p101-case-carousel .p101-case-card { flex-basis:100%; } .p101-testimonial-card { flex-basis:85%; padding:22px; } .p101-testimonial-track { mask-image:none; } }
@media(prefers-reduced-motion:reduce) { .p101-case-track,.p101-testimonial-track { scroll-behavior:auto; } .p101-case-card { transition:none; } }

.p101-case-detail { padding:0 24px 82px; }
.p101-case-detail-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,42%); gap:42px; align-items:center; max-width:1180px; margin:0 auto; padding:82px 0 58px; }
.p101-case-detail-hero h1 { margin:16px 0; font-size:clamp(2.5rem,6vw,5.2rem); }
.p101-case-detail-hero p { font-size:1.28rem; color:var(--p101-muted); }
.p101-case-detail-hero img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:24px; box-shadow:0 18px 50px rgba(10,45,94,.12); }
.p101-case-detail-hero .p101-case-tag { position:static; box-shadow:none; }
.p101-case-detail-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; max-width:1180px; margin:0 auto 44px; }
.p101-case-detail-meta div { border:1px solid #e6e9ee; border-radius:16px; padding:18px; background:#fff; }
.p101-case-detail-meta span { display:block; color:var(--p101-muted); font-size:.86rem; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
.p101-case-detail-meta strong { display:block; color:var(--p101-navy); font-size:1.1rem; margin-top:5px; }
.p101-case-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; max-width:1180px; margin:0 auto 54px; }
.p101-case-detail-grid div,.p101-case-detail-content { border-radius:20px; padding:26px; background:var(--p101-cream); }
.p101-case-detail-grid h2,.p101-case-gallery h2,.p101-case-detail-cta h2 { margin-top:0; }
.p101-case-gallery { max-width:1180px; margin:0 auto 58px; }
.p101-case-gallery > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.p101-case-gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:16px; }
.p101-case-detail-content { max-width:860px; margin:0 auto 54px; background:#fff; border:1px solid #e6e9ee; }
.p101-case-detail-cta { max-width:1180px; margin:0 auto; padding:32px; border-radius:24px; background:var(--p101-navy); color:#fff; display:flex; justify-content:space-between; align-items:center; gap:18px; }
.p101-case-detail-cta h2 { color:#fff; margin:0; }
.p101-case-detail-cta a { display:inline-flex; padding:13px 18px; border-radius:999px; background:var(--p101-gold); color:var(--p101-navy); font-weight:850; text-decoration:none; white-space:nowrap; }

@media (max-width: 780px) {
  .p101-form-grid { grid-template-columns:1fr; }
  .p101-form-field.full { grid-column:auto; }
  .p101-logo-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .p101-carousel-head { align-items:flex-start; flex-direction:column; }
  .p101-case-card { flex-basis:86vw; height:512px; }
  .p101-testimonial-cta { align-items:center; flex-direction:column; }
  .p101-case-detail-hero,.p101-case-detail-grid,.p101-case-gallery > div { grid-template-columns:1fr; }
  .p101-case-detail-meta { grid-template-columns:1fr 1fr; }
  .p101-case-detail-cta { align-items:flex-start; flex-direction:column; }
  .p101-sticky-cta { display:block; }
  body { padding-bottom:80px; }
}
