/* ============================================================
   KEVIN CHINELLI — sub-page styles
   (prestations, à propos, contact). Loaded after kc.css.
   ============================================================ */

/* nav active marker — accent colour */
.nav-links .is-active > a, .nav-links a.is-active{ color:var(--accent); }
.nav-links .nav-cta.is-active{ border-color:var(--accent); color:var(--accent) !important; }
.nav-links .is-active > a::after{ content:""; }

/* ---------- REASSURANCE BAR ---------- */
.reassure{ border-bottom:1px solid var(--hair); }
.reassure-row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(16px,3vw,46px); padding:20px clamp(20px,4vw,56px); }
.reassure-item{ display:flex; align-items:center; gap:11px; font-size:11.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }
.reassure-item .rdot{ width:5px; height:5px; border-radius:50%; background:var(--accent); flex:0 0 auto; opacity:.85; }
@media(max-width:640px){ .reassure-row{ gap:12px 22px; padding:16px 20px; } .reassure-item{ font-size:10.5px; gap:8px; } }

/* ---------- VILLES BAND ---------- */
.villes-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.ville-chip{ display:inline-flex; align-items:center; gap:10px; border:1px solid var(--hair); padding:14px 26px;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg); transition:border-color .4s, color .4s; }
.ville-chip .ar{ color:var(--accent); transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.ville-chip:hover{ border-color:var(--accent); } .ville-chip:hover .ar{ transform:translateX(6px); }

/* ---------- TARIFS PAGE ---------- */
.tarif-intro{ max-width:60ch; color:var(--muted); font-size:clamp(15px,1.2vw,18px); line-height:1.7; margin:clamp(16px,2vw,24px) 0 0; }
.tarif-row{ display:grid; grid-template-columns:300px 1fr; gap:clamp(24px,4vw,64px); padding:clamp(34px,4vw,56px) 0; border-top:1px solid var(--hair); align-items:start; }
.tarif-row:last-of-type{ border-bottom:1px solid var(--hair); }
.tr-head h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(26px,3vw,40px); color:var(--fg); margin:0 0 14px; }
.tr-from{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.tr-from b{ font-family:var(--font-display); font-weight:400; color:var(--accent); font-size:18px; letter-spacing:0; margin-left:6px; }
.tr-head .link-arrow{ margin-top:22px; }
.tr-formules{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.tr-card{ border:1px solid var(--hair); padding:clamp(18px,1.8vw,26px); display:flex; flex-direction:column; gap:10px; transition:border-color .4s; }
.tr-card.feature{ border-color:color-mix(in oklab,var(--accent),transparent 45%); }
.tr-card:hover{ border-color:var(--accent); }
.tr-tag{ font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.tr-card h4{ font-family:var(--font-display); font-weight:400; font-size:clamp(17px,1.5vw,21px); color:var(--fg); margin:0; }
.tr-price{ font-family:var(--font-display); font-size:clamp(19px,1.8vw,24px); color:var(--accent); }
@media(max-width:880px){ .tarif-row{ grid-template-columns:1fr; gap:24px; } .tr-formules{ grid-template-columns:1fr; } }


.reassure-row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(16px,3vw,46px); padding:20px clamp(20px,4vw,56px); }
.reassure-item{ display:flex; align-items:center; gap:11px; font-size:11.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }
.reassure-item .rdot{ width:5px; height:5px; border-radius:50%; background:var(--accent); flex:0 0 auto; opacity:.85; }
@media(max-width:640px){ .reassure-row{ gap:12px 22px; padding:16px 20px; } .reassure-item{ font-size:10.5px; gap:8px; } }

/* ---------- PAGE HERO (toggle: centre / bas) ---------- */
.phero{ position:relative; min-height:86svh; display:flex; overflow:hidden; }
.phero .bg{ position:absolute; inset:0; z-index:0; }
.phero .bg image-slot{ width:100%; height:100%; }
.phero .scrim{ position:absolute; inset:0; z-index:1;
  background:radial-gradient(circle at center, rgba(0,0,0,.25) 0%, rgba(0,0,0,.25) 45%, rgba(0,0,0,.60) 100%),
  linear-gradient(to bottom, rgba(0,0,0,.46) 0%, rgba(0,0,0,.18) 40%, rgba(0,0,0,.34) 72%, rgba(0,0,0,.66) 100%); }
.phero .phero-content{ position:relative; z-index:3; width:100%; display:flex; flex-direction:column; gap:24px; }
.phero h1{ font-family:var(--font-display); font-weight:400; color:#fff; line-height:1.05;
  font-size:clamp(40px,7vw,96px); margin:0; text-shadow:0 2px 40px rgba(0,0,0,.4); }
.phero .crumb{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.7); display:flex; align-items:center; gap:10px; }
.phero .crumb a{ color:rgba(255,255,255,.7); } .phero .crumb a:hover{ color:#fff; }
.phero .hint{ color:rgba(255,255,255,.82); font-size:clamp(15px,1.4vw,19px); font-weight:300; max-width:46ch; }
/* centre */
.phero.centre{ align-items:center; justify-content:center; text-align:center; }
.phero.centre .phero-content{ align-items:center; width:min(900px,90vw); }
/* bas-gauche */
.phero.bas{ align-items:flex-end; }
.phero.bas .phero-content{ align-items:flex-start; text-align:left; max-width:1280px; margin:0 auto; padding:0 clamp(20px,4vw,56px) clamp(54px,7vw,96px); }

/* ---------- INTRO / APPROCHE ---------- */
.intro-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(36px,6vw,90px); align-items:start; }
.intro-grid .lead{ font-family:var(--font-display); font-weight:400; font-size:clamp(22px,2.4vw,34px); line-height:1.4; color:var(--fg); }
.intro-grid .body p{ margin:0 0 18px; color:var(--muted); max-width:52ch; font-size:clamp(15px,1.05vw,17px); }
.intro-grid .body p:last-child{ margin-bottom:0; }
.intro-quote{ font-family:var(--font-display); font-style:italic; font-size:clamp(20px,2vw,28px); color:var(--accent); margin-top:26px; line-height:1.5; }
@media(max-width:780px){ .intro-grid{ grid-template-columns:1fr; } }

/* ---------- MOSAIC GALLERY ---------- */
.mosaic{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:clamp(108px,12.5vw,196px); grid-auto-flow:dense; gap:14px; }
.mosaic image-slot{ width:100%; height:100%; }
.mosaic .cell{ overflow:hidden; }
.m-big{ grid-column:span 2; grid-row:span 2; }
.m-wide{ grid-column:span 2; }
.m-tall{ grid-row:span 2; }
@media(max-width:760px){
  .mosaic{ grid-template-columns:repeat(2,1fr); grid-auto-rows:38vw; }
  .m-big{ grid-column:span 2; grid-row:span 1; }
  .m-wide{ grid-column:span 2; } .m-tall{ grid-row:span 1; }
}

/* ---------- FORMULES & TARIFS ---------- */
.formules{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch; }
.formule{ border:1px solid var(--hair); padding:clamp(28px,2.6vw,40px); display:flex; flex-direction:column; gap:20px; position:relative; transition:border-color .4s, transform .4s; }
.formule:hover{ border-color:var(--accent); transform:translateY(-4px); }
.formule.feature{ border-color:color-mix(in oklab,var(--accent),transparent 40%); }
.formule .tag{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); }
.formule h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(22px,2vw,28px); margin:0; color:var(--fg); }
.formule .price{ font-family:var(--font-display); font-size:clamp(28px,3vw,40px); color:var(--fg); }
.formule .price small{ font-family:var(--font-body); font-size:13px; color:var(--muted); letter-spacing:.04em; }
.formule ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; flex:1; }
.formule li{ display:flex; gap:12px; color:var(--muted); font-size:14.5px; line-height:1.5; }
.formule li::before{ content:""; flex:0 0 auto; width:6px; height:6px; margin-top:8px; background:var(--accent); border-radius:50%; opacity:.8; }
.formule .pick{ margin-top:6px; display:inline-flex; align-items:center; gap:12px; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  border:1px solid var(--hair); padding:14px 22px; transition:border-color .4s,color .4s; align-self:flex-start; }
.formule .pick .ar{ color:var(--accent); transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.formule .pick:hover{ border-color:var(--accent); } .formule .pick:hover .ar{ transform:translateX(7px); }
.tarif-note{ margin-top:26px; text-align:center; color:var(--muted); font-size:13px; letter-spacing:.02em; }
@media(max-width:880px){ .formules{ grid-template-columns:1fr; } }

/* ---------- PROCESS / DÉROULÉ ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(24px,3vw,46px); }
.steps.three{ grid-template-columns:repeat(3,1fr); }
.step{ display:flex; flex-direction:column; gap:16px; }
.step .sn{ font-family:var(--font-display); font-size:14px; letter-spacing:.16em; color:var(--accent); padding-bottom:16px; border-bottom:1px solid var(--hair); }
.step h4{ font-family:var(--font-display); font-weight:400; font-size:clamp(19px,1.7vw,24px); margin:0; color:var(--fg); }
.step p{ margin:0; color:var(--muted); font-size:14.5px; line-height:1.6; }
@media(max-width:780px){ .steps, .steps.three{ grid-template-columns:1fr 1fr; gap:30px; } }
@media(max-width:480px){ .steps, .steps.three{ grid-template-columns:1fr; } }

/* ---------- INCLUS ---------- */
.inclus-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(36px,5vw,80px); align-items:center; }
.inclus-list{ list-style:none; margin:0; padding:0; columns:2; column-gap:48px; }
.inclus-list li{ break-inside:avoid; display:flex; gap:14px; padding:13px 0; border-bottom:1px solid var(--hair); color:var(--fg); font-size:15px; }
.inclus-list li .ck{ color:var(--accent); flex:0 0 auto; }
@media(max-width:780px){ .inclus-grid{ grid-template-columns:1fr; } .inclus-list{ columns:1; } }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--hair); }
.faq details{ border-bottom:1px solid var(--hair); }
.faq summary{ list-style:none; cursor:pointer; padding:26px 0; display:flex; align-items:center; justify-content:space-between; gap:24px;
  font-family:var(--font-display); font-weight:400; font-size:clamp(17px,1.5vw,22px); color:var(--fg); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary .pm{ flex:0 0 auto; width:22px; height:22px; position:relative; }
.faq summary .pm::before, .faq summary .pm::after{ content:""; position:absolute; background:var(--accent); transition:transform .35s; }
.faq summary .pm::before{ inset:10px 0; width:100%; height:1.5px; }
.faq summary .pm::after{ inset:0 10px; width:1.5px; height:100%; }
.faq details[open] summary .pm::after{ transform:scaleY(0); }
.faq .ans{ padding:0 0 28px; color:var(--muted); max-width:64ch; line-height:1.7; font-size:15.5px; }

/* ---------- CTA BAND ---------- */
.cta-band{ position:relative; }

/* ---------- À PROPOS PAGE ---------- */
.ap-hero{ display:grid; grid-template-columns:1fr 1fr; min-height:92svh; }
.ap-hero .portrait{ position:relative; }
.ap-hero .portrait image-slot{ width:100%; height:100%; min-height:60svh; }
.ap-hero .intro{ display:flex; flex-direction:column; justify-content:center; gap:26px; padding:clamp(60px,8vw,120px); }
.ap-hero h1{ font-family:var(--font-display); font-weight:400; font-size:clamp(40px,5vw,76px); margin:0; color:var(--fg); line-height:1.05; }
.ap-hero p{ margin:0; color:var(--muted); max-width:46ch; font-size:clamp(15px,1.1vw,17px); }
@media(max-width:860px){ .ap-hero{ grid-template-columns:1fr; } .ap-hero .portrait{ min-height:90vw; } }
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,3vw,56px); }
.value h4{ font-family:var(--font-display); font-weight:400; font-size:clamp(20px,1.8vw,26px); margin:0 0 14px; color:var(--fg); }
.value p{ margin:0; color:var(--muted); font-size:14.5px; line-height:1.6; }
.value .vn{ font-family:var(--font-display); color:var(--accent); font-size:13px; letter-spacing:.18em; display:block; margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--hair); }
@media(max-width:780px){ .values{ grid-template-columns:1fr; } }
.ap-quote{ font-family:var(--font-display); font-style:italic; font-weight:400; font-size:clamp(26px,3.6vw,52px); line-height:1.35; color:var(--fg); text-align:center; max-width:20ch; margin:0 auto; }

/* ---------- CONTACT PAGE ---------- */
.contact-page .grid2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,100px); align-items:start; }
.contact-aside{ display:flex; flex-direction:column; gap:30px; }
.contact-aside .blk h4{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 10px; }
.contact-aside .blk a, .contact-aside .blk p{ margin:0; color:var(--fg); font-size:clamp(16px,1.4vw,19px); font-family:var(--font-display); }
.contact-aside .blk a:hover{ color:var(--accent); }
.contact-aside .map{ margin-top:6px; }
.contact-aside .map image-slot{ width:100%; height:240px; }
@media(max-width:860px){ .contact-page .grid2{ grid-template-columns:1fr; } }

/* ---------- PORTFOLIO PAGE ---------- */
.pf-head{ padding-top:clamp(140px,15vw,200px); padding-bottom:clamp(38px,5vw,60px); }
.pf-head h1{ font-size:clamp(40px,6vw,84px); margin-top:20px; }
.pf-head p{ color:var(--muted); max-width:54ch; margin:22px 0 0; font-size:clamp(15px,1.1vw,17px); }
.pf-filters{ display:flex; flex-wrap:wrap; gap:10px; margin-top:clamp(30px,4vw,46px); }
.pf-filter{ appearance:none; cursor:pointer; background:transparent; border:1px solid var(--hair);
  color:var(--muted); font-family:var(--font-body); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  padding:11px 22px; border-radius:999px; transition:border-color .35s, color .35s, background .35s; }
.pf-filter:hover{ color:var(--fg); border-color:color-mix(in oklab,var(--accent),transparent 40%); }
.pf-filter.active{ color:var(--bg); background:var(--accent); border-color:var(--accent); }
.pf-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.pf-cell{ position:relative; aspect-ratio:4/5; overflow:hidden; }
.pf-cell image-slot{ width:100%; height:100%; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.pf-cell:hover image-slot{ transform:scale(1.04); }
.pf-cell.hide{ display:none; }
@media(max-width:880px){ .pf-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .pf-grid{ grid-template-columns:1fr; } }

/* ---------- RELATED PRESTATIONS ---------- */
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.6vw,22px); }
.related-card{ display:block; text-decoration:none; }
.related-card .rc-img{ position:relative; aspect-ratio:4/5; overflow:hidden; }
.related-card .rc-img image-slot{ width:100%; height:100%; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.related-card:hover .rc-img image-slot{ transform:scale(1.05); }
.related-card .rc-meta{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-top:16px; }
.related-card h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(18px,1.6vw,24px); color:var(--fg); margin:0; }
.related-card .ar{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); transition:transform .4s cubic-bezier(.2,.7,.2,1); white-space:nowrap; }
.related-card:hover .ar{ transform:translateX(5px); }
@media(max-width:780px){ .related-grid{ grid-template-columns:1fr; gap:30px; } .related-card{ display:grid; grid-template-columns:96px 1fr; gap:18px; align-items:center; } .related-card .rc-img{ aspect-ratio:1; } .related-card .rc-meta{ margin:0; flex-direction:column; align-items:flex-start; gap:8px; } }

/* ---------- DATE AVAILABILITY (mariage) ---------- */
.datecheck{ text-align:center; }
.datecheck .dc-sub{ color:var(--muted); max-width:48ch; margin:0 auto; font-size:clamp(14.5px,1.1vw,16.5px); line-height:1.6; }
.datecheck .dc-row{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:30px; }
.datecheck input[type=date]{ max-width:260px; color-scheme:dark; }
.dc-btn{ appearance:none; cursor:pointer; display:inline-flex; align-items:center; gap:12px;
  background:var(--accent); color:var(--bg); border:none; font-family:var(--font-body);
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; padding:0 28px;
  transition:filter .35s, transform .35s cubic-bezier(.2,.7,.2,1); }
.dc-btn:hover{ filter:brightness(1.07); } .dc-btn .ar{ transition:transform .4s cubic-bezier(.2,.7,.2,1); }
.dc-btn:hover .ar{ transform:translateX(5px); }
@media(max-width:560px){ .datecheck .dc-row{ flex-direction:column; align-items:stretch; } .dc-btn{ padding:16px 28px; justify-content:center; } }

/* ---------- GIFT CARD (couple) ---------- */
.gift-band{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(34px,5vw,80px); align-items:center; }
.gift-band .gb-text p{ color:var(--muted); max-width:46ch; font-size:clamp(14.5px,1.1vw,16.5px); line-height:1.65; margin:0; }
.gift-band .gb-img{ position:relative; aspect-ratio:5/4; overflow:hidden; }
.gift-band .gb-img image-slot{ width:100%; height:100%; }
@media(max-width:820px){ .gift-band{ grid-template-columns:1fr; } .gift-band .gb-img{ aspect-ratio:3/2; order:-1; } }

/* ---------- JOURNAL ---------- */
.journal-list{ display:flex; flex-direction:column; gap:clamp(28px,4vw,56px); }
.jl-card{ display:grid; grid-template-columns:minmax(0,1.05fr) 1fr; gap:clamp(26px,4vw,60px); align-items:center; text-decoration:none; }
.jl-card:nth-child(even){ direction:rtl; }
.jl-card:nth-child(even) > *{ direction:ltr; }
.jl-img{ position:relative; aspect-ratio:3/2; overflow:hidden; }
.jl-img image-slot{ width:100%; height:100%; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.jl-card:hover .jl-img image-slot{ transform:scale(1.04); }
.jl-meta{ display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:18px; }
.jl-cat{ color:var(--accent); }
.jl-dot{ opacity:.5; }
.jl-body h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(24px,2.8vw,40px); line-height:1.12; color:var(--fg); margin:0 0 16px; }
.jl-body p{ color:var(--muted); font-size:clamp(14.5px,1.1vw,16.5px); line-height:1.65; margin:0 0 22px; max-width:46ch; }
.journal-list.two{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,3vw,44px); }
.journal-list.two .jl-card{ grid-template-columns:1fr; gap:20px; direction:ltr; }
.journal-list.two .jl-img{ aspect-ratio:3/2; }
.journal-list.two .jl-body h2{ font-size:clamp(20px,2vw,28px); }
@media(max-width:820px){ .jl-card, .jl-card:nth-child(even){ grid-template-columns:1fr; direction:ltr; gap:20px; } .journal-list.two{ grid-template-columns:1fr; } }

/* ---------- ARTICLE ---------- */
.art-hero{ position:relative; min-height:72svh; display:flex; align-items:flex-end; overflow:hidden; }
.art-hero .bg{ position:absolute; inset:0; }
.art-hero .bg image-slot{ width:100%; height:100%; }
.art-hero .scrim{ position:absolute; inset:0; background:linear-gradient(to top, rgba(10,9,8,.86) 0%, rgba(10,9,8,.45) 42%, rgba(10,9,8,.2) 100%); }
.art-hero-content{ position:relative; z-index:2; padding:0 clamp(22px,5vw,90px) clamp(46px,6vw,90px); max-width:24ch; }
.art-hero-content h1{ font-family:var(--font-display); font-weight:400; font-size:clamp(32px,4.6vw,68px); line-height:1.08; color:var(--cream); margin:20px 0 0; }
.art-meta{ display:flex; align-items:center; gap:10px; margin-top:20px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:color-mix(in oklab,var(--cream),transparent 32%); }
.art-body{ }
.art-lead{ font-family:var(--font-display); font-style:italic; font-size:clamp(20px,2.1vw,30px); line-height:1.4; color:var(--fg); margin:0 0 clamp(36px,5vw,64px); }
.art-section{ margin-bottom:clamp(34px,4.5vw,58px); }
.art-section h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(24px,2.6vw,38px); color:var(--fg); margin:0 0 22px; line-height:1.15; }
.art-section p{ color:var(--muted); font-size:clamp(15px,1.15vw,17.5px); line-height:1.78; margin:0 0 18px; }
.art-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:14px; }
.art-list li{ position:relative; padding-left:26px; color:var(--muted); font-size:clamp(15px,1.1vw,17px); line-height:1.6; }
.art-list li::before{ content:""; position:absolute; left:0; top:11px; width:7px; height:7px; background:var(--accent); border-radius:50%; }
.art-ilink{ color:var(--accent); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; text-decoration-color:color-mix(in oklab,var(--accent),transparent 55%); transition:text-decoration-color .3s; }
.art-ilink:hover{ text-decoration-color:var(--accent); }
.art-closing{ margin-top:clamp(34px,5vw,60px); padding-top:clamp(30px,4vw,48px); border-top:1px solid var(--hair); }
.art-closing p{ font-family:var(--font-display); font-size:clamp(18px,1.8vw,24px); line-height:1.5; color:var(--fg); margin:0 0 22px; }

/* ---------- AVIS ---------- */
.avis-stars{ display:flex; align-items:center; gap:14px; margin-top:26px; color:var(--muted); font-size:13.5px; letter-spacing:.04em; flex-wrap:wrap; }
.stars{ color:var(--accent); letter-spacing:.18em; font-size:15px; }
.avis-grid{ columns:3; column-gap:clamp(16px,2vw,26px); }
.avis-card{ break-inside:avoid; margin:0 0 clamp(16px,2vw,26px); padding:clamp(26px,2.4vw,38px);
  border:1px solid var(--hair); background:color-mix(in oklab,var(--fg),transparent 97%); display:flex; flex-direction:column; gap:16px; }
.avis-card .stars{ font-size:14px; }
.avis-card blockquote{ margin:0; font-family:var(--font-display); font-style:italic; font-size:clamp(17px,1.5vw,21px);
  line-height:1.5; color:var(--fg); }
.avis-card figcaption{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding-top:6px; border-top:1px solid var(--hair); }
.avis-card .who{ font-size:13px; letter-spacing:.04em; color:var(--muted); }
.avis-card .cat{ font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); white-space:nowrap; }
.avis-card .cat:hover{ text-decoration:underline; text-underline-offset:3px; }
@media(max-width:900px){ .avis-grid{ columns:2; } }
@media(max-width:600px){ .avis-grid{ columns:1; } }

/* ---------- QUOTE FUNNEL (contact) ---------- */
.funnel{ max-width:680px; margin:0 auto; }
.fn-steps{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 22px; margin-bottom:clamp(30px,4vw,46px); }
.fn-step{ display:flex; align-items:center; gap:9px; opacity:.4; transition:opacity .35s; }
.fn-step.current, .fn-step.done{ opacity:1; }
.fn-num{ width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font-size:12px;
  border:1px solid var(--hair); color:var(--muted); }
.fn-step.current .fn-num{ background:var(--accent); color:var(--bg); border-color:var(--accent); }
.fn-step.done .fn-num{ color:var(--accent); border-color:var(--accent); }
.fn-lbl{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg); }
.fn-panel{ border:1px solid var(--hair); padding:clamp(26px,3.4vw,48px); background:color-mix(in oklab,var(--fg),transparent 97.5%); }
.fn-q{ font-family:var(--font-display); font-weight:400; font-size:clamp(22px,2.4vw,32px); color:var(--fg); margin:0 0 clamp(22px,3vw,32px); line-height:1.2; }
.fn-q-sub{ display:inline; font-family:var(--font-body); font-size:13px; letter-spacing:.02em; color:var(--muted); text-transform:none; }
.fn-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fn-opt{ appearance:none; cursor:pointer; text-align:left; background:transparent; border:1px solid var(--hair);
  color:var(--fg); font-family:var(--font-display); font-size:clamp(15px,1.3vw,18px); padding:18px 22px;
  transition:border-color .3s, background .3s, color .3s; }
.fn-opt:hover{ border-color:color-mix(in oklab,var(--accent),transparent 40%); }
.fn-opt.sel{ border-color:var(--accent); background:color-mix(in oklab,var(--accent),transparent 88%); }
.fn-list{ display:flex; flex-direction:column; gap:10px; }
.fn-row{ appearance:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:transparent; border:1px solid var(--hair); color:var(--fg); font-family:var(--font-body); font-size:15px;
  padding:16px 22px; transition:border-color .3s, background .3s; text-align:left; }
.fn-row:hover{ border-color:color-mix(in oklab,var(--accent),transparent 40%); }
.fn-row.sel{ border-color:var(--accent); background:color-mix(in oklab,var(--accent),transparent 90%); }
.fn-price{ font-family:var(--font-display); color:var(--accent); white-space:nowrap; }
.fn-actions{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:clamp(26px,3.4vw,40px); }
.fn-back{ appearance:none; cursor:pointer; background:transparent; border:0; color:var(--muted); font-family:var(--font-body);
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; transition:color .3s; }
.fn-back:hover{ color:var(--fg); }
.fn-panel .field{ margin-bottom:18px; }
.fn-panel .opt{ color:var(--muted); text-transform:none; letter-spacing:0; font-size:12px; }
.fn-recap{ margin:0; display:flex; flex-direction:column; gap:0; }
.fn-recap > div{ display:flex; justify-content:space-between; gap:18px; padding:13px 0; border-bottom:1px solid var(--hair); }
.fn-recap dt{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.fn-recap dd{ margin:0; font-family:var(--font-display); font-size:clamp(15px,1.3vw,18px); color:var(--fg); text-align:right; }
.fn-note{ margin:22px 0 0; color:var(--muted); font-size:13.5px; line-height:1.6; }
.fn-aside{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 14px; margin-top:clamp(26px,3.4vw,40px);
  font-size:13px; color:var(--muted); }
.fn-aside a{ color:var(--fg); } .fn-aside a:hover{ color:var(--accent); }
@media(max-width:560px){ .fn-grid{ grid-template-columns:1fr; } .fn-lbl{ display:none; } .fn-steps{ gap:8px 14px; } }
