/* Great — styles communs des pages secondaires (catering tournage, traiteur entreprise, 404) */
.ct-top { position: absolute; inset: 0 0 auto 0; z-index: 5; }
.ct-top .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 84px; }
.ct-top img { height: 34px; width: auto; display: block; }
.ct-top nav { display: flex; align-items: center; gap: 22px; font-size: .9375rem; }
.ct-top nav a.ct-link { opacity: .82; white-space: nowrap; }
.ct-top nav a.ct-link:hover, .ct-top nav a.ct-link[aria-current] { opacity: 1; }
.ct-top .btn { --bg: var(--white); --fg: var(--black); }
.ct-hero { position: relative; min-height: 88svh; display: grid; align-items: end; padding-block: 140px 72px; overflow: hidden; }
.ct-hero__media { position: absolute; inset: 0; }
.ct-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); }
.ct-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.45) 35%, rgba(0,0,0,.88) 100%), linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 70%); }
.ct-hero .container { position: relative; }
.ct-hero h1 { font-size: clamp(2.6rem, 1rem + 6vw, 6.5rem); line-height: .92; max-width: 14ch; margin: 14px 0 22px; }
.ct-hero p { max-width: 52ch; font-size: 1.125rem; opacity: .9; }
.ct-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.ct-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: clamp(16px, 2vw, 28px); }
.ct-card { border-top: 1px solid currentColor; padding-top: 18px; }
.ct-card h3 { font-family: var(--display); font-weight: 400; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem); line-height: 1; margin-bottom: 10px; }
.ct-card p { opacity: .78; }
.ct-card .ct-from { display: block; margin-top: 10px; font-weight: 600; opacity: 1; }
.ct-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.ct-split img { width: 100%; height: auto; max-height: 720px; object-fit: cover; border-radius: 4px; }
.ct-split h2 { font-size: clamp(2.2rem, 1.2rem + 3vw, 4.2rem); line-height: .95; margin-top: 14px; }
.ct-list { display: grid; gap: 14px; margin-top: 24px; }
.ct-list li { padding-left: 22px; position: relative; }
.ct-list li::before { content: "→"; position: absolute; left: 0; }
.ct-case { display: grid; gap: 10px; padding: 26px 0; border-top: 1px solid rgba(255,255,255,.18); }
.ct-case:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.ct-case__tag { font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }
.ct-case__t { font-family: var(--display); font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); line-height: 1; }
.ct-case p { opacity: .8; max-width: 70ch; }
.ct-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 24px; }
.ct-price strong { font-family: var(--display); font-weight: 400; font-size: clamp(3rem, 2rem + 4vw, 6rem); line-height: 1; }
.ct-prices { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; margin-top: 18px; }
.ct-prices div { border-top: 1px solid currentColor; padding-top: 14px; }
.ct-prices strong { display: block; font-family: var(--display); font-weight: 400; font-size: clamp(2.2rem, 1.6rem + 2vw, 3.4rem); line-height: 1; margin-top: 6px; }
.ct-faq details { border-top: 1px solid rgba(0,0,0,.14); padding: 20px 0; }
.ct-faq details:last-child { border-bottom: 1px solid rgba(0,0,0,.14); }
.ct-faq summary { cursor: pointer; font-weight: 600; font-size: 1.125rem; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.ct-faq summary::-webkit-details-marker { display: none; }
.ct-faq summary::after { content: "+"; font-size: 1.5rem; line-height: 1; }
.ct-faq details[open] summary::after { content: "–"; }
.ct-faq details p { margin-top: 12px; opacity: .8; max-width: 70ch; }
.ct-cta h2 { font-size: clamp(2.4rem, 1.2rem + 5vw, 5.5rem); line-height: .95; margin: 14px 0 18px; }
.ct-contact { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 8px 28px; opacity: .85; }
/* Formulaire de devis */
.dv { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(28px, 5vw, 80px); align-items: start; }
.dv-form { background: var(--white); color: var(--black); border-radius: 6px; padding: clamp(20px, 3vw, 36px); display: grid; gap: 16px; }
.dv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dv-form label { display: grid; gap: 6px; font-size: .875rem; font-weight: 600; }
.dv-form input, .dv-form select, .dv-form textarea { font: inherit; font-weight: 400; font-size: 1rem; color: inherit; background: #fff; border: 1px solid rgba(0,0,0,.22); border-radius: 4px; padding: 11px 12px; width: 100%; }
.dv-form textarea { min-height: 110px; resize: vertical; }
.dv-form input:focus, .dv-form select:focus, .dv-form textarea:focus { outline: 2px solid var(--black); outline-offset: 1px; }
.dv-form fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.dv-form legend { font-size: .875rem; font-weight: 600; margin-bottom: 4px; }
.dv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-chips label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; border: 1px solid rgba(0,0,0,.22); border-radius: 999px; padding: 8px 14px; cursor: pointer; }
.dv-chips input { width: auto; }
.dv-check { display: flex !important; grid-template-columns: none; align-items: flex-start; gap: 10px !important; font-weight: 400 !important; }
.dv-check input { width: auto; margin-top: 3px; }
.dv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dv-status { font-size: .9375rem; min-height: 1.4em; }
.dv-status.is-error { color: #b3261e; }
.dv-ok { text-align: center; padding: 32px 8px; }
.dv-ok h3 { font-family: var(--display); font-weight: 400; font-size: 2.4rem; margin-bottom: 8px; }
@media (max-width: 900px) {
  .ct-top nav a.ct-link { display: none; }
  .dv { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ct-split { grid-template-columns: 1fr; }
  .ct-hero { min-height: 80svh; padding-bottom: 48px; }
  .ct-hero__media img { object-position: var(--pos-m, var(--pos, 50% 50%)); }
  .dv-row { grid-template-columns: 1fr; }
}
