/*
Theme Name: COCAP AUTO
Theme URI: https://dcmedia.fr/
Author: DC Media
Author URI: https://dcmedia.fr/
Description: Thème WordPress Gutenberg sur mesure pour COCAP AUTO. Mise en page centrée, bandes horizontales, visuels automobiles et gestes de detailing, formulaires de demande et configuration automatisée.
Version: 2.3.1
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: cocap-auto
License: GNU General Public License v2 or later
*/

:root {
  --ca-petrol: #0a232d;
  --ca-petrol-2: #123b40;
  --ca-petrol-3: #194b50;
  --ca-copper: #c47b4e;
  --ca-copper-light: #d49468;
  --ca-copper-dark: #9f5932;
  --ca-silver: #e9e8e8;
  --ca-offwhite: #f7f7f4;
  --ca-white: #fff;
  --ca-smoke: #5b6365;
  --ca-anthracite: #1b2328;
  --ca-border: #dedcd6;
  --ca-soft-border: rgba(10,35,45,.1);
  --ca-shadow: 0 22px 58px rgba(10,35,45,.12);
  --ca-shadow-hover: 0 28px 74px rgba(10,35,45,.18);
  --ca-radius: 22px;
  --ca-radius-sm: 14px;
  --ca-max: 1180px;
  --ca-reading: 790px;
  --ca-transition: .28s cubic-bezier(.2,.7,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 118px; }
body {
  margin: 0;
  color: var(--ca-anthracite);
  background: var(--ca-offwhite);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.admin-bar .ca-site-header { top: 32px; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--ca-petrol-2); text-decoration-thickness: .075em; text-underline-offset: .18em; transition: color var(--ca-transition); }
a:hover { color: var(--ca-copper); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { color: #fff; background: var(--ca-copper); }

.ca-container,
.entry-content > *:not(.alignfull):not(.alignwide),
.wp-site-blocks > *:not(.alignfull) {
  width: min(calc(100% - 40px), var(--ca-max));
  margin-inline: auto;
}
.entry-content > .alignwide { width: min(calc(100% - 40px), var(--ca-max)); margin-inline: auto; }
.entry-content > .alignfull { width: 100%; }
.ca-reading { width: min(100%, var(--ca-reading)); margin-inline: auto; }
.ca-main { min-height: 55vh; }
.entry-content { overflow: clip; }

/* Barre haute */
.ca-utility-bar { color: #fff; background: var(--ca-petrol); font-size: .78rem; }
.ca-utility-inner { min-height: 34px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; }
.ca-utility-group { display: flex; align-items: center; gap: 16px; min-width: 0; }
.ca-utility-group:last-child { justify-content: flex-end; }
.ca-utility-bar a { color: #fff; text-decoration: none; }
.ca-utility-bar a:hover { color: var(--ca-copper-light); }
.ca-utility-center { color: #dbe5e7; white-space: nowrap; }
.ca-utility-location { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ca-mini-icon { width: 16px; height: 16px; display: inline-block; vertical-align: -3px; margin-right: 6px; }

/* En-tête */
.ca-site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  background: #f1f1f0;
  border-bottom: 1px solid rgba(10,35,45,.08);
  backdrop-filter: blur(16px);
  box-shadow: 0 8px 24px rgba(10,35,45,.035);
}
.ca-header-inner { min-height: 86px; display: flex; align-items: center; gap: 28px; }
.ca-brand { display: inline-flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.ca-brand img, .custom-logo { width: clamp(290px, 28vw, 395px); max-height: 84px; object-fit: contain; }
.ca-primary-nav { margin-left: auto; }
.ca-primary-nav ul { display: flex; align-items: center; gap: 21px; list-style: none; margin: 0; padding: 0; }
.ca-primary-nav a {
  position: relative;
  color: var(--ca-anthracite);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-decoration: none;
  text-transform: uppercase;
}
.ca-primary-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 2px;
  background: var(--ca-copper);
  transition: right var(--ca-transition);
}
.ca-primary-nav a:hover::after,
.ca-primary-nav .current-menu-item > a::after { right: 0; }
.ca-primary-nav a:hover,
.ca-primary-nav .current-menu-item > a { color: var(--ca-copper-dark); }
.ca-header-cta,
.ca-button,
.wp-block-button__link,
.ca-form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 24px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg,var(--ca-copper),var(--ca-copper-dark));
  box-shadow: 0 10px 26px rgba(196,123,78,.24);
  font-weight: 850;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--ca-transition), box-shadow var(--ca-transition), background var(--ca-transition);
}
.ca-header-cta { min-height: 44px; padding: 11px 20px; white-space: nowrap; }
.ca-header-cta:hover,
.ca-button:hover,
.wp-block-button__link:hover,
.ca-form-submit:hover {
  color: #fff;
  background: linear-gradient(135deg,var(--ca-copper-light),var(--ca-copper));
  box-shadow: 0 16px 34px rgba(196,123,78,.32);
  transform: translateY(-2px) scale(1.01);
}
.ca-button--ghost,
.wp-block-button.is-style-outline .wp-block-button__link {
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255,255,255,.5);
  box-shadow: none;
}
.ca-button--ghost:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover { color: #fff; background: rgba(255,255,255,.1); border-color: #fff; }
.ca-menu-toggle { display: none; width: 46px; height: 46px; padding: 10px; border: 0; border-radius: 50%; background: #f1f3f1; color: var(--ca-petrol); cursor: pointer; }
.ca-menu-toggle span { display: block; width: 24px; height: 2px; margin: 5px auto; background: currentColor; transition: transform var(--ca-transition), opacity var(--ca-transition); }
.ca-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ca-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ca-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Typographie */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.ca-page-hero h1 {
  margin-top: 0;
  color: var(--ca-petrol);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.028em;
}
.entry-content h1 { font-size: clamp(2.55rem,5vw,4.75rem); }
.entry-content h2 { font-size: clamp(2.05rem,3.5vw,3.25rem); }
.entry-content h3 { font-size: clamp(1.35rem,2vw,1.7rem); }
.ca-kicker {
  margin: 0 0 12px;
  color: var(--ca-copper) !important;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
  font-size: .77rem !important;
  font-weight: 900 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}
.ca-section-heading { width: min(100%,var(--ca-reading)); margin: 0 auto 48px; text-align: center; }
.ca-section-heading h2 { margin-bottom: 18px; }
.ca-section-heading p { margin: 0 auto; color: var(--ca-smoke); font-size: 1.06rem; }
.ca-section-heading::after {
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin: 24px auto 0;
  background: linear-gradient(90deg,transparent,var(--ca-copper),transparent);
}
.ca-section-heading--left { margin-inline: 0; text-align: left; }
.ca-section-heading--left::after { margin-left: 0; }

/* Hero contenu, pas pleine largeur textuelle */
.ca-hero {
  position: relative;
  color: #fff;
  background:
    radial-gradient(circle at 12% 15%,rgba(212,148,104,.14),transparent 28%),
    linear-gradient(112deg,#071b24 0%,var(--ca-petrol) 54%,var(--ca-petrol-2) 100%);
  isolation: isolate;
}
.ca-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 4px;
  z-index: 2;
  background: linear-gradient(90deg,var(--ca-copper),var(--ca-copper-light),var(--ca-petrol-3));
}
.ca-hero-inner {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 40px),var(--ca-max));
  min-height: 575px;
  margin-inline: auto;
  padding: 72px 0;
  display: grid;
  grid-template-columns: minmax(0,.92fr) minmax(420px,1.08fr);
  align-items: center;
  gap: clamp(42px,6vw,82px);
}
.ca-hero-copy { position: relative; z-index: 3; max-width: 620px; }
.ca-hero h1 { margin: 0 0 24px; color: #fff; font-size: clamp(2.7rem,5.2vw,4.9rem); }
.ca-hero h1 em { color: var(--ca-copper-light); font-style: normal; }
.ca-hero-lead { max-width: 590px; margin: 0; color: #e1eaeb; font-size: clamp(1.03rem,1.45vw,1.2rem); }
.ca-hero-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 32px; }
.ca-hero-reassurance { display: flex; align-items: center; gap: 10px; margin-top: 25px; color: #dce7e8; font-size: .9rem; }
.ca-hero-reassurance::before { content: "✓"; display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; color: var(--ca-petrol); background: var(--ca-copper-light); font-weight: 900; }
.ca-hero-media { position: relative; z-index: 2; min-height: 425px; isolation: isolate; }
.ca-hero-photo {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 34px 8px 34px 8px;
  box-shadow: 0 35px 80px rgba(0,0,0,.28);
}
.ca-hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,35,45,.18),transparent 34%); pointer-events:none; }
.ca-hero-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.ca-hero-media:hover .ca-hero-photo img { transform: scale(1.035); }
.ca-detail-bubble {
  position: absolute;
  left: 24px;
  bottom: 24px;
  width: 182px;
  aspect-ratio: 1;
  z-index: 3;
  overflow: hidden;
  border: 5px solid rgba(255,255,255,.96);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 20px 50px rgba(0,0,0,.28);
  transition: transform var(--ca-transition), box-shadow var(--ca-transition);
}
.ca-detail-bubble:hover { transform: translateY(-3px); box-shadow: 0 24px 58px rgba(0,0,0,.32); }
.ca-detail-bubble img { width: 100%; height: 100%; object-fit: cover; }

/* Bandes horizontales */
.ca-trust-strip { color: #fff; background: linear-gradient(90deg,var(--ca-petrol),var(--ca-petrol-2)); border-bottom: 1px solid rgba(255,255,255,.1); }
 .ca-trust-grid { min-height: 120px; display: grid; grid-template-columns: repeat(4,1fr); align-items: stretch; }
.ca-trust-item { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; padding: 24px 18px; text-align: center; border-right: 1px solid rgba(255,255,255,.15); }
.ca-trust-item:last-child { border-right: 0; }
.ca-trust-icon { display: grid; place-items: center; width: 58px; height: 58px; flex: 0 0 auto; border: 1px solid rgba(212,148,104,.55); border-radius: 50%; color: var(--ca-copper-light); font-size: 1.45rem; line-height: 1; font-weight: 900; }
.ca-trust-copy strong { display: block; font-size: .84rem; letter-spacing: .07em; text-transform: uppercase; }
.ca-trust-copy span { display: block; color: #cfdbdd; font-size: .88rem; }
.ca-copper-strip { height: 6px; background: linear-gradient(90deg,var(--ca-petrol),var(--ca-copper),var(--ca-copper-light),var(--ca-petrol)); }

/* Sections */
.ca-section { padding: clamp(76px,8vw,112px) 0; }
.ca-section--white { background: #fff; }
.ca-section--soft { background: var(--ca-offwhite); }
.ca-section--dark { color: #fff; background: var(--ca-petrol); }
.ca-section--dark h2, .ca-section--dark h3 { color: #fff; }
.ca-section--dark .ca-section-heading p { color: #d9e3e4; }
.ca-section--dark .ca-section-heading::after { background: linear-gradient(90deg,transparent,var(--ca-copper-light),transparent); }

/* Cartes prestations */
.ca-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.ca-service-card,
.ca-hover-card {
  height: 100%;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(10,35,45,.08);
  border-radius: var(--ca-radius);
  box-shadow: 0 14px 38px rgba(10,35,45,.07);
  transition: transform var(--ca-transition), box-shadow var(--ca-transition), border-color var(--ca-transition);
}
.ca-service-card:hover,
.ca-hover-card:hover { transform: translateY(-6px); border-color: rgba(196,123,78,.45); box-shadow: var(--ca-shadow-hover); }
.ca-service-media { position: relative; height: 230px; overflow: hidden; background: #dfe5e5; }
.ca-service-media::after { content:""; position:absolute; inset:auto 0 0; height:42%; background:linear-gradient(transparent,rgba(10,35,45,.22)); opacity:.6; transition:opacity var(--ca-transition); }
.ca-service-card:hover .ca-service-media::after { opacity:.2; }
.ca-service-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1); }
.ca-service-card:hover .ca-service-media img { transform: scale(1.055); }
.ca-service-body { padding: 28px 28px 31px; }
.ca-service-title-row { display: flex; align-items: center; gap: 12px; }
.ca-service-mark { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; border-radius: 50%; color: var(--ca-copper-dark); background: rgba(196,123,78,.12); font-weight: 900; transition: color var(--ca-transition), background var(--ca-transition), transform var(--ca-transition); }
.ca-service-card:hover .ca-service-mark { color: #fff; background: var(--ca-copper); transform: rotate(6deg); }
.ca-service-card h3 { margin: 0; transition: color var(--ca-transition); }
.ca-service-card:hover h3 { color: var(--ca-copper-dark); }
.ca-service-card p { color: var(--ca-smoke); }
.ca-service-link { display: inline-flex; align-items: center; gap: 8px; color: var(--ca-petrol); font-size: .78rem; font-weight: 900; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.ca-service-link::after { content:"→"; transition: transform var(--ca-transition); }
.ca-service-link:hover::after { transform: translateX(5px); }

/* Vacanciers */
.ca-vacation-band { position: relative; overflow: hidden; color: #fff; background: var(--ca-petrol); }
.ca-vacation-inner { min-height: 460px; display: grid; grid-template-columns: minmax(0,.85fr) minmax(430px,1.15fr); align-items: center; gap: 65px; padding-block: 72px; }
.ca-vacation-copy { max-width: min(100%, var(--ca-reading)); }
.ca-vacation-copy h2 { color: #fff; }
.ca-vacation-copy p { color: #dce6e7; }
.ca-vacation-media { position: relative; height: 330px; overflow: hidden; border-radius: 20px; box-shadow: 0 25px 60px rgba(0,0,0,.25); }
.ca-vacation-media img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.ca-vacation-media:hover img { transform:scale(1.05); }
.ca-vacation-media::after { content:""; position:absolute; inset:0; border:1px solid rgba(255,255,255,.2); border-radius:inherit; pointer-events:none; }
.ca-vacation-band::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,27,36,.24),transparent 45%); pointer-events:none; }

/* Tarifs */
.ca-pricing-wrap { overflow-x: auto; margin-top: 38px; border-radius: var(--ca-radius); box-shadow: var(--ca-shadow); }
.ca-pricing-table { width: 100%; min-width: 820px; border-collapse: collapse; background: #fff; }
.ca-pricing-table th, .ca-pricing-table td { padding: 19px 17px; border-bottom: 1px solid #e9e6e1; text-align: center; }
.ca-pricing-table th:first-child, .ca-pricing-table td:first-child { text-align: left; }
.ca-pricing-table thead th { color: #fff; background: var(--ca-petrol); font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; }
.ca-pricing-table tbody tr { transition: background var(--ca-transition), transform var(--ca-transition); }
.ca-pricing-table tbody tr:hover { background: #fcf8f4; }
.ca-pricing-table strong { color: var(--ca-petrol); }
.ca-price { color: var(--ca-copper-dark); font-size: 1.12rem; font-weight: 900; white-space: nowrap; }
.ca-pricing-note { margin-top: 16px; color: var(--ca-smoke); font-size: .9rem; text-align: center; }

/* Retour de plage */
.ca-beach-band { position: relative; min-height: 380px; display: grid; align-items: center; color: #fff; background: #07161d; isolation: isolate; }
.ca-beach-band::before { content:""; position:absolute; inset:0; z-index:-2; background-image:linear-gradient(90deg,rgba(5,17,22,.96) 0%,rgba(5,17,22,.84) 39%,rgba(5,17,22,.2) 78%),var(--ca-beach-image); background-position:center; background-size:cover; }
.ca-beach-band::after { content:""; position:absolute; inset:0; z-index:-1; border-top:5px solid var(--ca-copper); border-bottom:5px solid var(--ca-petrol-2); pointer-events:none; }
.ca-beach-copy { width: min(100%,620px); padding-block: 70px; }
.ca-beach-copy h2 { color:#fff; }
.ca-beach-copy p { color:#e1e9ea; }
.ca-beach-price { margin: 22px 0 28px; color: var(--ca-copper-light); font-weight: 800; }

/* Suppléments */
.ca-supplements { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 32px 0 0; padding: 0; list-style: none; }
.ca-supplements li { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:140px; padding:24px; overflow:hidden; background:#fff; border:1px solid var(--ca-border); border-radius:16px; transition:transform var(--ca-transition),box-shadow var(--ca-transition),border-color var(--ca-transition); }
.ca-supplements li::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--ca-copper); transform:scaleY(.35); transform-origin:center; transition:transform var(--ca-transition); }
.ca-supplements li:hover { transform:translateY(-4px); border-color:rgba(196,123,78,.5); box-shadow:0 18px 42px rgba(10,35,45,.1); }
.ca-supplements li:hover::before { transform:scaleY(1); }
.ca-supplements strong { margin-top: 16px; color: var(--ca-copper-dark); font-size: 1.03rem; }

/* Fonctionnement */
.ca-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; counter-reset: ca-step; }
.ca-step { position:relative; min-height:190px; padding:30px 26px 27px 80px; background:#fff; border:1px solid var(--ca-border); border-radius:18px; transition:transform var(--ca-transition),box-shadow var(--ca-transition),border-color var(--ca-transition); }
.ca-step::before { counter-increment:ca-step; content:counter(ca-step); position:absolute; left:24px; top:28px; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; color:#fff; background:var(--ca-petrol); box-shadow:0 0 0 7px rgba(10,35,45,.07); font-weight:900; transition:background var(--ca-transition),transform var(--ca-transition); }
.ca-step:hover { transform:translateY(-4px); border-color:rgba(196,123,78,.5); box-shadow:0 18px 44px rgba(10,35,45,.1); }
.ca-step:hover::before { background:var(--ca-copper); transform:scale(1.06); }
.ca-step h3 { margin-bottom: 9px; font-family: Inter,ui-sans-serif,system-ui,sans-serif; font-size: 1.02rem; letter-spacing: 0; }
.ca-step p { margin: 0; color: var(--ca-smoke); font-size: .92rem; }

/* Zone */
.ca-zone-panel { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:48px; align-items:center; }
.ca-zone-map { overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:24px; background:#eef2f1; box-shadow:0 20px 50px rgba(0,0,0,.16); }
.ca-zone-map iframe { display:block; width:100%; height:380px; border:0; filter:grayscale(.1) saturate(.95) contrast(1.02); }
.ca-zone-map a { display:inline-flex; align-items:center; gap:8px; padding:14px 18px; color:#fff; text-decoration:none; font-size:.85rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; background:rgba(10,35,45,.96); }
.ca-zone-map a:hover { color:#fff; background:var(--ca-copper-dark); }

/* FAQ */
.ca-faq { display:grid; gap:12px; width:min(100%,900px); margin-inline:auto; }
.ca-faq details { overflow:hidden; background:#fff; border:1px solid var(--ca-border); border-radius:14px; transition:border-color var(--ca-transition),box-shadow var(--ca-transition),transform var(--ca-transition); }
.ca-faq details:hover { border-color:rgba(196,123,78,.5); box-shadow:0 12px 32px rgba(10,35,45,.08); transform:translateY(-1px); }
.ca-faq summary { position:relative; padding:21px 64px 21px 23px; color:var(--ca-petrol); font-weight:850; cursor:pointer; list-style:none; }
.ca-faq summary::-webkit-details-marker { display:none; }
.ca-faq summary::after { content:"+"; position:absolute; right:21px; top:50%; display:grid; place-items:center; width:31px; height:31px; border-radius:50%; color:var(--ca-copper-dark); background:rgba(196,123,78,.11); font-size:1.35rem; transform:translateY(-50%); transition:transform var(--ca-transition),background var(--ca-transition),color var(--ca-transition); }
.ca-faq details[open] summary::after { content:"−"; color:#fff; background:var(--ca-copper); transform:translateY(-50%) rotate(180deg); }
.ca-faq-answer { padding:0 23px 22px; color:var(--ca-smoke); }
.ca-faq-answer p:last-child { margin-bottom:0; }

/* CTA final */
.ca-final-cta { color:#fff; background:linear-gradient(120deg,var(--ca-petrol),var(--ca-petrol-2)); }
.ca-final-cta-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:center; padding-block:65px; }
.ca-final-cta h2 { margin:0 0 12px; color:#fff; }
.ca-final-cta p { margin:0; color:#dbe5e6; }
.ca-final-actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end; }

/* Formulaire */
.ca-form-shell { margin:36px 0; padding:clamp(24px,4vw,48px); background:#fff; border:1px solid rgba(10,35,45,.07); border-radius:var(--ca-radius); box-shadow:var(--ca-shadow); }
.ca-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.ca-form-field--full { grid-column:1/-1; }
.ca-form-field label,.ca-form-field legend { display:block; margin-bottom:7px; color:var(--ca-petrol); font-weight:800; }
.ca-form-field fieldset { border:0; }
.ca-form-field input[type=text],.ca-form-field input[type=email],.ca-form-field input[type=tel],.ca-form-field input[type=date],.ca-form-field input[type=time],.ca-form-field select,.ca-form-field textarea { width:100%; min-height:52px; padding:12px 14px; border:1px solid #c9cdcc; border-radius:11px; background:#fff; color:var(--ca-anthracite); transition:border-color var(--ca-transition),box-shadow var(--ca-transition); }
.ca-form-field textarea { min-height:135px; resize:vertical; }
.ca-form-field input:focus,.ca-form-field select:focus,.ca-form-field textarea:focus { outline:0; border-color:var(--ca-copper); box-shadow:0 0 0 4px rgba(196,123,78,.17); }
.ca-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 20px; }
.ca-check { display:flex !important; align-items:flex-start; gap:9px; font-weight:500 !important; }
.ca-check input { margin-top:.38em; }
.ca-form-help { color:var(--ca-smoke); font-size:.88rem; }
.ca-form-submit { margin-top:24px; }
.ca-alert { margin:0 0 25px; padding:16px 18px; border-radius:12px; }
.ca-alert--success { color:#185d35; background:#e5f5eb; border:1px solid #a9d9b9; }
.ca-alert--error { color:#8b2b1b; background:#fff0ed; border:1px solid #efb7ad; }
.ca-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

/* Pages secondaires */
.ca-page-hero { padding:88px 0 66px; color:#fff; background:linear-gradient(120deg,var(--ca-petrol),var(--ca-petrol-2)); border-bottom:5px solid var(--ca-copper); }
.ca-page-hero h1 { max-width:900px; margin:0; color:#fff; font-size:clamp(2.4rem,4.7vw,4rem); }
.ca-breadcrumbs { padding:20px 0 0; color:var(--ca-smoke); font-size:.86rem; }
.ca-breadcrumbs a { text-decoration:none; }
.ca-breadcrumbs span { margin:0 7px; }
.ca-page-content { width:min(calc(100% - 40px),900px); margin-inline:auto; padding:55px 0 95px; }
.ca-page-content h2 { margin-top:2.2em; font-size:clamp(1.75rem,3vw,2.45rem); }
.ca-page-content h3 { margin-top:1.8em; }
.ca-page-content li { margin:.35em 0; }

/* Footer */
.ca-site-footer { color:#dce5e6; background:#071b24; }
.ca-footer-main { display:grid; grid-template-columns:1.35fr .8fr 1fr; gap:55px; padding:64px 0 40px; }
.ca-footer-brand .custom-logo-link, .ca-footer-brand-mark { display:inline-flex; align-items:center; padding:14px 18px; border-radius:16px; background: #f1f1f0; }
.ca-footer-brand img, .ca-footer-brand .custom-logo { width: clamp(290px, 28vw, 395px); max-height:84px; object-fit:contain; }
.ca-footer-brand p { max-width:440px; }
.ca-footer-title { margin:0 0 14px; color:#fff; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.ca-footer-links { list-style:none; margin:0; padding:0; }
.ca-footer-links li { margin:8px 0; }
.ca-footer-links a,.ca-cookie-link { color:#dce5e6; text-decoration:none; }
.ca-footer-links a:hover,.ca-cookie-link:hover { color:var(--ca-copper-light); }
.ca-cookie-link { padding:0; border:0; background:none; cursor:pointer; }
.ca-footer-bottom { display:flex; justify-content:space-between; gap:20px; padding:22px 0; border-top:1px solid rgba(255,255,255,.13); font-size:.85rem; }
.ca-footer-bottom a { color:#fff; }

/* Révélations discrètes */
.ca-reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease,transform .7s ease; }
.ca-reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .ca-reveal { opacity:1; transform:none; }
}

/* Responsive */
@media (max-width: 1080px) {
  .ca-brand img,.custom-logo { width:310px; max-width:100%; }
  .ca-primary-nav ul { gap:14px; }
  .ca-primary-nav a { font-size:.71rem; }
  .ca-header-cta { display:none; }
  .ca-hero-inner { grid-template-columns:minmax(0,.95fr) minmax(380px,1.05fr); gap:42px; }
  .ca-detail-bubble { left:18px; bottom:18px; width:160px; }
  .ca-trust-item { padding-inline:14px; }
  .ca-service-media { height:205px; }
  .ca-supplements { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  body.admin-bar .ca-site-header { top:46px; }
  .ca-utility-inner { grid-template-columns:1fr auto; }
  .ca-utility-center { display:none; }
  .ca-header-inner { min-height:74px; }
  .ca-menu-toggle { display:block; margin-left:auto; }
  .ca-primary-nav { position:absolute; left:0; right:0; top:100%; display:none; margin:0; padding:16px 20px 24px; background:#fff; border-top:1px solid var(--ca-border); box-shadow:0 22px 40px rgba(10,35,45,.14); }
  .ca-primary-nav.is-open { display:block; }
  .ca-primary-nav ul { display:grid; gap:0; }
  .ca-primary-nav li { border-bottom:1px solid #ecebe7; }
  .ca-primary-nav a { display:block; padding:13px 4px; font-size:.86rem; }
  .ca-primary-nav a::after { display:none; }
  .ca-hero-inner { min-height:0; grid-template-columns:1fr; padding:62px 0 84px; }
  .ca-hero-copy { max-width:720px; }
  .ca-hero-media { min-height:390px; width:min(100%,720px); }
  .ca-detail-bubble { left:18px; right:auto; bottom:18px; }
  .ca-trust-grid { grid-template-columns:repeat(2,1fr); }
  .ca-trust-item:nth-child(2) { border-right:0; }
  .ca-trust-item:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.15); }
  .ca-service-grid { grid-template-columns:1fr; max-width:680px; margin-inline:auto; }
  .ca-service-card { display:grid; grid-template-columns:260px 1fr; }
  .ca-service-media { height:100%; min-height:260px; }
  .ca-vacation-inner,.ca-zone-panel { grid-template-columns:1fr; }
  .ca-vacation-media { order:-1; }
  .ca-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ca-final-cta-inner { grid-template-columns:1fr; }
  .ca-final-actions { justify-content:flex-start; }
  .ca-footer-main { grid-template-columns:1fr 1fr; }
  .ca-footer-brand { grid-column:1/-1; }
}
@media (max-width: 650px) {
  .ca-container,.entry-content > *:not(.alignfull):not(.alignwide),.entry-content > .alignwide,.ca-hero-inner { width:min(calc(100% - 28px),var(--ca-max)); }
  .ca-utility-inner { grid-template-columns:1fr; min-height:38px; }
  .ca-utility-group:last-child,.ca-utility-location { display:none; }
  .ca-brand img,.custom-logo { width:245px; max-width:100%; }
  .ca-hero h1 { font-size:2.55rem; }
  .ca-hero-actions { display:grid; }
  .ca-button,.wp-block-button__link { width:100%; }
  .ca-hero-media { min-height:300px; }
  .ca-detail-bubble { width:122px; left:12px; right:auto; bottom:12px; border-width:4px; }
  .ca-trust-grid { grid-template-columns:1fr; }
  .ca-trust-item { border-right:0; border-bottom:1px solid rgba(255,255,255,.15); }
  .ca-trust-item:last-child { border-bottom:0; }
  .ca-section { padding:68px 0; }
  .ca-service-card { display:block; }
  .ca-service-media { height:210px; min-height:0; }
  .ca-vacation-inner { gap:35px; padding-block:58px; }
  .ca-vacation-media { height:260px; }
  .ca-supplements,.ca-steps { grid-template-columns:1fr; }
  .ca-form-grid,.ca-check-grid { grid-template-columns:1fr; }
  .ca-final-actions { display:grid; }
  .ca-footer-main { grid-template-columns:1fr; gap:34px; }
  .ca-footer-brand { grid-column:auto; }
  .ca-footer-bottom { flex-direction:column; }
  .ca-page-content { width:min(calc(100% - 28px),900px); }
}
