/* Planche principale — les encres et familles appartiennent à base.css. */
nav { position:sticky; top:0; z-index:100; min-height:88px; padding:12px var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:20px; background:var(--paper); border-bottom:1px solid var(--ink); }
.nav-logo { display:flex; align-items:center; gap:12px; font:400 25px/1.1 var(--serif); letter-spacing:-.04em; white-space:nowrap; }
.nav-links { display:flex; align-items:center; gap:28px; font:400 12px/1.4 var(--sans); text-transform:uppercase; letter-spacing:.12em; }
.nav-links>a { display:flex; align-items:center; min-height:44px; }
.nav-links a:hover { color:var(--accent-ink); }
.nav-contact { border-bottom:1px solid var(--ink-soft); }
.lang-toggle { display:flex; border-left:1px solid var(--rule); padding-left:14px; }
.lang-toggle button { min-width:44px; min-height:44px; border:0; background:var(--clear); font:400 12px var(--sans); color:var(--ink-soft); }
.lang-toggle button.active { color:var(--accent-ink); text-decoration:underline; text-underline-offset:6px; }
.burger { display:none; width:44px; height:44px; border:0; background:var(--clear); flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.burger span { width:22px; height:1px; background:var(--ink); }
.burger.open span:nth-child(2) { visibility:hidden; }
main { counter-reset:plate; }
section { padding:72px var(--gutter) 88px; counter-increment:plate; }
section+section { border-top:1px solid var(--rule); }
.plate-tag { display:flex; align-items:center; gap:18px; margin-bottom:34px; font:400 11px/1.5 var(--sans); letter-spacing:.16em; color:var(--ink-soft); }
.plate-tag::before { content:counter(plate,upper-roman); border:1px solid var(--ink-soft); padding:4px 12px; color:var(--ink); min-width:46px; text-align:center; }
.plate-tag::after { content:''; flex:1; border-top:1px solid var(--rule); }
.hero { padding-top:30px; padding-bottom:0; }
.hero-layout { display:grid; grid-template-columns:1.04fr 1fr; gap:clamp(32px,4vw,68px); align-items:center; }
.hero-content { padding-block:20px; }
.eyebrow { font:400 11px/1.6 var(--sans); letter-spacing:.15em; text-transform:uppercase; margin-bottom:23px; color:var(--ink-soft); }
.status-dot { display:none; }
.hero h1 { font-size:clamp(43px,4.8vw,76px); line-height:1.04; letter-spacing:-.045em; margin-bottom:26px; }
.gradient-text { font-style:italic; }
.hero p { max-width:49ch; font-size:18px; color:var(--ink-soft); margin-bottom:28px; }
.hero-buttons { display:flex; align-items:center; gap:8px 20px; flex-wrap:wrap; }
.hero-buttons .btn-outline { border:0; padding-inline:0; border-bottom:1px solid var(--ink-soft); }
.hero-visual { background:var(--night); color:var(--paper); width:100%; aspect-ratio:1 / 1.08; }
.sky-chart { display:block; width:100%; height:100%; }
.sky-chart text { fill:currentColor; font:400 13px var(--sans); letter-spacing:.07em; }
.sky-chart .chart-title { font-size:16px; letter-spacing:.27em; }
.sky-chart .star-label { font:400 18px var(--serif); letter-spacing:0; }
.sky-chart .graticule { fill:none; stroke:var(--night-rule); stroke-width:1; }
.sky-chart .chart-frame { fill:none; stroke:var(--paper); stroke-opacity:.55; stroke-width:1; }
.sky-chart .boundary { fill:none; stroke:var(--paper); stroke-opacity:.35; stroke-dasharray:4 6; }
.sky-chart .field { fill:var(--paper); opacity:.5; }
.sky-chart .constellation { stroke:var(--paper); stroke-width:1.2; fill:none; }
.constellation path { stroke-dasharray:1; stroke-dashoffset:0; animation:trace .75s both; }
.constellation path:nth-child(2) { animation-delay:.2s; }
.constellation path:nth-child(3) { animation-delay:.4s; }
.constellation path:nth-child(4) { animation-delay:.6s; }
.constellation path:nth-child(5) { animation-delay:.85s; }
.sky-chart .star { fill:var(--paper); animation:appear .65s both; }
.sky-chart .magnitude-2 { animation-delay:.25s; }
.sky-chart .magnitude-3 { animation-delay:.45s; }
.sky-chart .magnitude-4 { animation-delay:.7s; }
.sky-chart .twinkle { animation:twinkle 8s 1.6s ease-in-out infinite; }
.sky-chart .twinkle-late { animation-delay:3.6s; }
.sky-chart .landmark { fill:var(--accent); }
.sky-chart .landmark-lines { stroke:var(--accent); stroke-width:1; fill:none; }
.sky-chart .legend { fill:var(--paper); }
@keyframes trace { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes appear { from { opacity:0; } to { opacity:1; } }
@keyframes twinkle { 0%,100% { opacity:1; } 50% { opacity:.65; } }
.hero-foot { display:flex; justify-content:space-between; gap:20px; margin-top:35px; padding:20px 0; border-top:1px solid var(--rule); font:400 12px/1.6 var(--sans); color:var(--ink-soft); }
.hero-foot a { min-height:44px; display:flex; align-items:center; }
.hero-foot>span { align-self:center; }
.section-title { font-size:clamp(35px,3.3vw,52px); letter-spacing:-.035em; max-width:790px; margin-bottom:20px; }
.section-subtitle { max-width:65ch; color:var(--ink-soft); margin-bottom:42px; }
.services-grid { border-top:1px solid var(--ink); counter-reset:expertise; }
.service-card { display:grid; grid-template-columns:52px minmax(160px,.85fr) 1.5fr; column-gap:30px; padding:28px 0; border-bottom:1px solid var(--rule); counter-increment:expertise; }
.service-top { grid-row:1 / 3; }
.service-top::before { content:counter(expertise,lower-greek); font:italic 36px/1 var(--serif); }
.service-top>span { display:block; font:400 10px var(--sans); color:var(--ink-soft); margin-top:14px; }
.service-card h3 { font-size:28px; max-width:16ch; }
.service-card p { color:var(--ink-soft); font-size:17px; }
.service-link { display:flex; align-items:center; min-height:44px; font:700 12px/1.5 var(--sans); letter-spacing:.03em; text-decoration:underline; text-underline-offset:5px; }
.service-link:hover { color:var(--accent-ink); }
.service-card .service-link { grid-column:3; margin-top:10px; }
.prestations-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 64px; counter-reset:entry; }
.prestation { position:relative; padding:26px 0 30px 48px; border-top:1px solid var(--ink); counter-increment:entry; }
.prestation::before { content:counter(entry,decimal-leading-zero); position:absolute; left:0; top:30px; font:400 12px var(--sans); color:var(--ink-soft); }
.prestation-index { display:none; }
.prestation h3 { font-size:26px; margin-bottom:12px; }
.prestation h3 a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.2em; }
.prestation h3 a:hover { color:var(--accent-ink); }
.prestation p { color:var(--ink-soft); font-size:17px; }
.prestation .service-link { margin-top:12px; }
#about { background:var(--paper-2); }
.about-content { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:start; }
.about-text p { margin-bottom:22px; max-width:65ch; }
.about-stats { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--ink); }
.stat-card { padding:20px 0 24px; border-bottom:1px solid var(--rule); }
.stat-card:nth-child(even) { padding-left:25px; border-left:1px solid var(--rule); }
.stat-number { font:400 clamp(40px,4vw,61px)/1.1 var(--sans); font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
.stat-label { font:400 10px/1.6 var(--sans); letter-spacing:.12em; text-transform:uppercase; margin-top:12px; }
.faq-layout { display:grid; grid-template-columns:1fr 1.5fr; gap:70px; align-items:start; }
.faq-list { border-top:1px solid var(--ink); }
.faq-item { border-bottom:1px solid var(--rule); }
.faq-item summary { position:relative; cursor:pointer; list-style:none; padding:24px 40px 24px 0; min-height:44px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::before,.faq-item summary::after { content:''; position:absolute; top:34px; right:8px; width:14px; height:1px; background:var(--ink); }
.faq-item summary::after { transform:rotate(90deg); }
.faq-item[open] summary::after { display:none; }
.faq-item h3 { font-size:22px; line-height:1.35; }
.faq-item summary:hover h3 { color:var(--accent-ink); }
.faq-item p { padding:0 35px 24px 0; font-size:17px; color:var(--ink-soft); }
.contact-wrapper { display:grid; grid-template-columns:1fr 1.2fr; gap:90px; }
.contact-info h3 { font-size:29px; margin-bottom:18px; }
.contact-info p { color:var(--ink-soft); max-width:40ch; margin-bottom:28px; }
.contact-links { border-top:1px solid var(--rule); }
.contact-link { padding:12px 0; border-bottom:1px solid var(--rule); font:400 15px/1.6 var(--sans); overflow-wrap:anywhere; }
.contact-link a { display:inline-flex; align-items:center; min-height:44px; }
.contact-form { border-top:1px solid var(--ink); padding-top:24px; display:flex; flex-direction:column; gap:22px; }
.form-group label { display:block; font:400 11px/1.6 var(--sans); text-transform:uppercase; letter-spacing:.13em; }
.form-group input,.form-group textarea { display:block; width:100%; min-height:48px; background:var(--clear); border:0; border-bottom:1px solid var(--ink-soft); border-radius:0; padding:12px 0; font:400 17px/1.5 var(--serif); }
.form-group input::placeholder,.form-group textarea::placeholder { color:var(--ink-soft); opacity:1; }
.form-group textarea { resize:vertical; min-height:120px; }
.contact-form .btn { align-self:flex-start; }
.form-note { font:400 12px/1.5 var(--sans); color:var(--ink-soft); }
.form-status { font:400 15px/1.5 var(--sans); }
.form-status:empty { display:none; }
.form-status[data-state=error] { color:var(--accent-ink); }
footer { background:var(--night); color:var(--paper); padding:40px var(--gutter); display:grid; grid-template-columns:1fr 1fr; gap:24px; font:400 12px/1.6 var(--sans); }
.footer-links { display:flex; flex-wrap:wrap; gap:8px 26px; }
.footer-links a { display:flex; align-items:center; min-height:44px; }
footer p { justify-self:end; align-self:center; }
footer :focus-visible { outline-color:var(--paper); }
.colophon { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--night-rule); padding-top:24px; letter-spacing:.12em; }
.scale-bar { width:160px; height:8px; border:1px solid var(--paper); display:flex; }
.scale-bar i { flex:1; border-right:1px solid var(--paper); }
.scale-bar i:nth-child(odd) { background:var(--paper); }
@media(min-width:1600px) { .hero-layout { gap:80px; } }
@media(max-width:1050px) {
 .nav-links { gap:18px; } .hero-layout { grid-template-columns:1fr 1fr; gap:30px; }
 .hero h1 { font-size:clamp(40px,4.8vw,55px); }
 .about-content,.faq-layout { gap:35px; } .contact-wrapper { gap:50px; }
 .service-card { column-gap:20px; grid-template-columns:40px .85fr 1.5fr; }
}
@media(max-width:768px) {
 nav { min-height:72px; padding-block:10px; } .nav-logo { font-size:23px; }
 .burger { display:flex; }
 .nav-links { display:none; position:absolute; top:71px; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--ink); padding:20px var(--gutter); gap:8px; }
 .nav-links.open { display:flex; flex-direction:column; align-items:stretch; }
 .lang-toggle { align-self:flex-start; border:0; padding:0; }
 section { padding-block:48px 56px; }
 .hero { padding-top:22px; padding-bottom:0; }
 .hero-layout { grid-template-columns:1fr; gap:28px; }
 .hero-content { padding:0; }
 .hero h1 { font-size:clamp(44px,8vw,64px); max-width:650px; }
 .hero p { font-size:18px; max-width:60ch; }
 .hero-visual { max-width:620px; margin-inline:auto; }
 .plate-tag { margin-bottom:28px; }
 .hero-foot { flex-wrap:wrap; gap:4px; margin-top:26px; }
 .hero-foot>span { width:100%; }
 .section-title { font-size:38px; }
 .service-card { grid-template-columns:38px 1fr; padding-block:24px; gap:12px 18px; }
 .service-top { grid-row:1 / 4; }
 .service-card h3 { max-width:none; }
 .service-card p,.service-card .service-link { grid-column:2; }
 .service-card .service-link { margin:0; }
 .prestations-grid { column-gap:28px; }
 .about-content,.faq-layout,.contact-wrapper { grid-template-columns:1fr; gap:28px; }
 .section-subtitle { margin-bottom:30px; }
 .stat-number { font-size:52px; }
 footer { grid-template-columns:1fr; gap:16px; }
 footer p { justify-self:start; }
}
@media(max-width:480px) {
 .eyebrow { font-size:10px; letter-spacing:.1em; }
 .hero h1 { font-size:44px; }
 .hero-buttons { align-items:flex-start; flex-direction:column; }
 .hero-buttons .btn { font-size:13px; }
 .prestations-grid { grid-template-columns:1fr; }
 .sky-chart .star-label { font-size:20px; }
 .sky-chart .chart-small { font-size:18px; }
 .sky-chart .chart-title { font-size:18px; letter-spacing:.16em; }
 .sky-chart .minor-label { display:none; }
 .colophon { font-size:10px; gap:16px; }
 .scale-bar { width:90px; }
}
