/* ===== RÉGLAGES HERO — modifier uniquement ces valeurs ===== */
:root {
  --hero-size: 3.1rem;        /* taille max des 3 lignes (desktop) */
  --hero-size-mobile: 1.9rem; /* taille sur mobile */
  --hero-weight: 800;         /* 500 / 700 / 800 */
  --hero-spacing: 0.07em;     /* espacement des lettres */
  --hero-lineheight: 0.98;
  --hero-sub-size: 0.9rem;
  --hero-sub-spacing: 0.22em;
  --hero-gap: 1.25rem;        /* espace entre les 3 lignes et la sous-ligne */
  --hero-overlay: 0.5;        /* assombrissement du fond 0 à 1 */
}
/* ===== FIN RÉGLAGES ===== */

/* Sprint 2 : ajouts uniquement, composants préfixés. */
.tarifs-section { background: #FAFAF8; color: #0A0A0A; padding: 72px 24px; scroll-margin-top: 96px; font-family: 'DM Sans', sans-serif; }
.tarifs-container { max-width: 1000px; margin: 0 auto; }
.tarifs-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(30px, 4vw, 44px); line-height: 1.2; margin-bottom: 24px; font-weight: 700; }
.tarifs-intro { line-height: 1.7; margin-bottom: 48px; }
.tarifs-intro a { text-decoration: underline; }
.tarifs-block { margin-bottom: 48px; }
.tarifs-subtitle { font-family: 'Cormorant Garamond', serif; font-size: 28px; font-weight: 600; margin-bottom: 16px; }
.tarifs-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.tarifs-table th, .tarifs-table td { padding: 16px 12px; text-align: left; border-bottom: 1px solid #D4A89A; vertical-align: top; overflow-wrap: anywhere; }
.tarifs-head th:first-child { width: 65%; }
.tarifs-head th:nth-child(2) { width: 17%; }
.tarifs-table .tarifs-price { text-align: right; color: #D4A89A; font-weight: 700; }
.tarifs-name { font-weight: 500; }
.tarifs-description { display: block; font-size: 14px; line-height: 1.6; font-weight: 400; margin-top: 6px; }
.tarifs-category th { padding-top: 24px; font-weight: 700; }
.tarifs-note { margin-top: 16px; font-size: 14px; line-height: 1.6; }
.tarifs-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.tarifs-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 1px solid #D4A89A; background: #FAFAF8; color: #0A0A0A; font-family: 'DM Sans', sans-serif; font-size: 16px; text-align: center; text-decoration: none; }
.tarifs-button:hover { background: #D4A89A; }
.tarifs-button:focus-visible, .header-tel-link:focus-visible, .sticky-cta-link:focus-visible { outline: 2px solid #0A0A0A; outline-offset: 3px; }
.header-tel-link { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-height: 48px; padding: 8px; font-family: 'DM Sans', sans-serif; font-size: 16px; font-weight: 600; color: #0A0A0A; white-space: nowrap; }
.header-tel-layout { gap: 16px; }
.header-tel-nav { position: fixed; top: 0; left: 0; width: 100%; z-index: 50; background: #FAFAF8; }
.header-tel-page { padding-top: 80px; }
.sticky-cta-bar { display: none; }
@media (max-width: 768px) {
  .sticky-cta-page { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  .sticky-cta-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 55; display: flex; gap: 8px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: #FAFAF8; border-top: 1px solid #D4A89A; }
  .sticky-cta-link { display: flex; flex: 1; align-items: center; justify-content: center; min-height: 48px; background: #D4A89A; color: #0A0A0A; font-family: 'DM Sans', sans-serif; font-size: 16px; font-weight: 600; text-decoration: none; }
}
@media (max-width: 599px) {
  .tarifs-section { padding: 48px 20px; }
  .tarifs-head { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tarifs-table, .tarifs-table tbody { display: block; }
  .tarifs-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 16px 0; border-bottom: 1px solid #D4A89A; }
  .tarifs-table .tarifs-name { grid-column: 1 / -1; padding: 0 0 12px; border: 0; }
  .tarifs-table .tarifs-duration, .tarifs-table .tarifs-price { padding: 0; border: 0; }
  .tarifs-duration::before, .tarifs-row .tarifs-price::before { content: attr(data-label) ' : '; font-weight: 400; }
  .tarifs-category { display: block; }
  .tarifs-category th { display: block; border: 0; padding-left: 0; }
  .tarifs-actions { flex-direction: column; }
}

/* Sprint 3 : ajouts mariage et FAQ uniquement. */
.mariee-section { padding: 56px 24px; background: #FAFAF8; color: #0A0A0A; }
.mariee-container { max-width: 1100px; margin: 0 auto; }
.mariee-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.mariee-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(34px, 4vw, 52px); line-height: 1.15; font-weight: 700; margin-bottom: 24px; }
.mariee-heading { font-family: 'Cormorant Garamond', serif; font-size: clamp(28px, 3vw, 38px); line-height: 1.25; font-weight: 600; margin-bottom: 24px; }
.mariee-text { font-family: 'DM Sans', sans-serif; font-size: 16px; line-height: 1.8; margin: 16px 0 24px; }
.mariee-photo { display: block; width: 100%; height: auto; }
.mariee-steps { list-style: decimal; padding-left: 24px; }
.mariee-step-title { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 600; }
.faq-item { border-bottom: 1px solid #D4A89A; padding: 20px 0; }
.faq-question { font-family: 'DM Sans', sans-serif; font-size: 16px; font-weight: 600; cursor: pointer; line-height: 1.6; }
.faq-question:focus-visible { outline: 2px solid #0A0A0A; outline-offset: 4px; }
.faq-answer { font-family: 'DM Sans', sans-serif; font-size: 16px; line-height: 1.8; padding-top: 16px; }
@media (max-width: 768px) {
  .mariee-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .mariee-section { padding: 40px 20px; }
}

/* Hero Avant-Garde : surcharges additionnelles uniquement. */
#hero .hero-ag-title { text-align: center; color: #FFFFFF; font-style: normal; margin: 0 0 2rem; }
#hero .hero-ag-line { display: block; font-family: 'DM Sans', sans-serif; font-weight: var(--hero-weight); text-transform: uppercase; letter-spacing: var(--hero-spacing); line-height: var(--hero-lineheight); font-size: clamp(var(--hero-size-mobile), 7vw, var(--hero-size)); }
#hero .hero-ag-sub { display: block; margin-top: var(--hero-gap); font-family: 'DM Sans', sans-serif; font-weight: 500; font-size: var(--hero-sub-size); letter-spacing: var(--hero-sub-spacing); text-transform: uppercase; color: #D4A89A; }
#hero .hero-ag-overlay { background-image: linear-gradient(to bottom, rgba(10,10,10,var(--hero-overlay)), rgba(10,10,10,calc(var(--hero-overlay) * 0.7))); }

/* Prestations : trois tuiles univers et ancres sous le header de 80 px. */
.presta-anchor { scroll-margin-top: 80px; }
.presta-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.presta-tile { position: relative; display: block; overflow: hidden; border-radius: 4px; color: #FFFFFF; text-decoration: none; }
.presta-tile::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,10,10,0.55), transparent); pointer-events: none; }
.presta-tile:focus-visible { outline: 2px solid #D4A89A; outline-offset: 4px; }
.presta-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.presta-portrait { object-position: center 25%; }
.presta-caption { position: absolute; right: 1.25rem; bottom: 1.25rem; left: 1.25rem; z-index: 1; }
.presta-title { margin: 0 0 8px; color: #FFFFFF; font-family: 'DM Sans', sans-serif; font-weight: 800; font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.2; text-transform: uppercase; letter-spacing: 0.06em; }
.presta-link { color: #FFFFFF; font-family: 'DM Sans', sans-serif; font-weight: 500; font-size: 0.8rem; letter-spacing: 0.15em; }
.presta-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 768px) {
  .presta-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .presta-photo { aspect-ratio: 4 / 5; }
}
@media (min-width: 1024px) and (hover: hover) {
  .presta-photo { transition: transform 0.4s; }
  .presta-tile:hover .presta-photo { transform: scale(1.03); }
}
