/* Polices chargées via <link rel="preconnect"/stylesheet> dans le <head> de chaque page (plus rapide qu'un @import CSS) */

:root{
  --ink:#0D2A57;
  --ink-2:#4A5C78;
  --paper:#FFFFFF;
  --paper-2:#EEF3FA;
  --white:#FFFFFF;
  --sky:#0B73D4;
  --sky-deep:#0A4E9C;
  --sky-soft:#DDEBFB;
  --sun:#E33A1E;
  --sun-deep:#B92A12;
  --sun-soft:#FCE2DB;
  --line:#D8E1EE;
  --verified:#2F8F6B;
  --shadow: 0 20px 50px -25px rgba(13,42,87,0.35);
  --radius: 2px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; font-family:'Inter',system-ui,sans-serif; color:var(--ink);
  background:var(--paper); line-height:1.6; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Sora',system-ui,sans-serif; font-weight:700; line-height:1.18; margin:0; color:var(--ink);}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
.mono{font-family:'IBM Plex Mono',monospace;}
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--sky-deep); display:flex; align-items:center; gap:10px;}
.eyebrow::before{content:""; width:28px; height:2px; background:var(--sun); display:inline-block;}
.section-pad{padding:88px 0;}
.bg-panel{background:var(--paper-2);}
.bg-ink{background:var(--ink); color:#EAF3F6;}
.section-head{max-width:680px; margin-bottom:52px;}
.section-head h2{font-size:clamp(28px,3.4vw,40px); margin-top:14px;}
.section-head p{color:var(--ink-2); margin-top:16px; font-size:16.5px;}

/* reveal animation */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.is-in{opacity:1; transform:translateY(0);}

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 26px; border-radius:3px; font-weight:600; font-size:15px; border:1px solid transparent; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; white-space:nowrap;}
.btn-primary{background:var(--sun); color:#fff;}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(232,116,44,.6);}
.btn-outline{background:transparent; color:var(--paper); border-color:rgba(255,255,255,.4);}
.btn-outline:hover{background:rgba(255,255,255,.1);}
.btn-whatsapp{background:#25D366; color:#fff;}
.btn-whatsapp:hover{transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(37,211,102,.6);}
.btn-ghost{background:var(--white); color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--sky);}

/* ---------- Top bar + header ---------- */
.topbar{background:var(--ink); color:#C9DEE6; font-size:13px;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; height:38px;}
.topbar a{color:#C9DEE6;}
header{position:sticky; top:0; z-index:100; background:rgba(255,255,255,.96); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
header .wrap{display:flex; align-items:center; justify-content:space-between; height:84px; gap:14px; max-width:1360px;}
.brand{display:flex; align-items:center; gap:12px; flex:none;}
.brand .logo-icon{flex:none; height:50px; width:auto; display:block;}
.brand-text{display:flex; flex-direction:column; line-height:1.15; white-space:nowrap;}
.brand-text .name{font-family:'Sora',sans-serif; font-weight:800; font-size:19px; letter-spacing:-.01em; white-space:nowrap;}
.brand-text .tag{font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.08em; color:var(--ink-2); text-transform:uppercase; white-space:nowrap;}
nav.main-nav{display:flex; align-items:center; gap:14px; flex:1; justify-content:center;}
nav.main-nav > a, nav.main-nav .dropdown > a{font-size:13.5px; font-weight:600; color:var(--ink); position:relative; white-space:nowrap;}
nav.main-nav > a:hover{color:var(--sky);}
.header-actions{display:flex; align-items:center; gap:10px; flex:none;}
.phone-link{display:flex; align-items:center; gap:6px; font-weight:700; font-size:14px; color:var(--ink); white-space:nowrap;}
.phone-link svg{color:var(--sun);}
.dropdown{position:relative; flex-shrink:0;}
nav.main-nav > a{flex-shrink:0;}
.dropdown-inner{position:absolute; top:100%; left:0; background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow); min-width:240px; padding:10px; display:none; border-radius:3px;}
.dropdown:hover .dropdown-inner{display:block;}
.dropdown-inner a{display:block; padding:9px 12px; font-size:14px; border-radius:2px;}
.dropdown-inner a:hover{background:var(--paper-2); color:var(--sky-deep);}
.mobile-toggle{display:none; background:none; border:1px solid var(--line); padding:8px 10px; border-radius:3px;}
@media (max-width:1180px){
  nav.main-nav, .header-actions .phone-link, .header-actions .btn{display:none;}
  .mobile-toggle{display:block;}
}

/* ---------- Hero ---------- */
.hero{position:relative; padding:76px 0 90px; overflow:hidden; background:
  radial-gradient(1000px 500px at 85% -10%, rgba(11,115,212,.14), transparent 60%),
  radial-gradient(700px 400px at 0% 110%, rgba(232,116,44,.10), transparent 60%),
  var(--paper);}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr;}}
.hero h1{font-size:clamp(34px,4.6vw,54px); max-width:700px;}
.hero h1 .accent{color:var(--sky);}
.hero p.lead{font-size:18px; color:var(--ink-2); max-width:560px; margin-top:20px;}
.hero-actions{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
.hero-badges{display:flex; gap:22px; margin-top:40px; flex-wrap:wrap;}
.hero-badges .b{display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink-2); font-weight:600;}
.hero-badges svg{color:var(--verified); flex:none;}
.hero-visual{background:var(--ink); border-radius:4px; padding:34px; color:#fff; position:relative; overflow:hidden;}
.hero-visual::after{content:""; position:absolute; inset:0; background:radial-gradient(400px 260px at 100% 0%, rgba(11,115,212,.35), transparent 60%);}
.hero-visual .price-tag{position:relative; z-index:1;}
.hero-visual .price-tag .mono{font-size:11px; letter-spacing:.1em; color:#A9C8F0; text-transform:uppercase;}
.hero-visual .price-tag .amt{font-family:'Sora',sans-serif; font-weight:800; font-size:40px; margin-top:8px;}
.hero-visual .price-tag .amt span{font-size:18px; font-weight:600; color:#A9C8F0;}
.hero-visual ul{list-style:none; margin:26px 0 0; padding:0; position:relative; z-index:1; display:flex; flex-direction:column; gap:12px;}
.hero-visual li{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:#DCE7F7;}
.hero-visual li svg{color:var(--sun); flex:none; margin-top:2px;}

/* ---------- Trust strip ---------- */
.trust-strip{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper-2);}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
@media (max-width:860px){.trust-grid{grid-template-columns:repeat(2,1fr);}}
.trust-item{display:flex; align-items:center; gap:12px; padding:22px 20px; border-right:1px solid var(--line);}
.trust-item:last-child{border-right:none;}
.trust-item svg{color:var(--sky); flex:none;}
.trust-item .t{font-weight:700; font-size:14px;}
.trust-item .d{font-size:12.5px; color:var(--ink-2);}

/* ---------- Service filter + grid ---------- */
.filter-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:34px;}
.filter-tab{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.04em; padding:9px 16px; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--ink-2); cursor:default;}
.filter-tab.active{background:var(--ink); color:#fff; border-color:var(--ink);}
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:980px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.services-grid{grid-template-columns:1fr;}}
.service-card{background:var(--white); border:1px solid var(--line); padding:26px 24px; display:block; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
.service-card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--sky);}
.service-card .icon{width:46px; height:46px; border-radius:3px; background:var(--sky-soft); display:flex; align-items:center; justify-content:center; color:var(--sky-deep); margin-bottom:16px;}
.service-card h3{font-size:18px; margin-bottom:8px;}
.service-card p{font-size:14px; color:var(--ink-2); margin-bottom:14px;}
.service-card .price{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--sun-deep); font-weight:600;}
.service-card .more{display:block; margin-top:14px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--sun); padding-bottom:2px; width:fit-content;}

/* ---------- Brands strip ---------- */
.brands-strip{display:flex; flex-wrap:wrap; gap:14px;}
.brand-chip{border:1px solid var(--line); background:var(--white); padding:12px 20px; font-family:'Sora',sans-serif; font-weight:700; font-size:14.5px; color:var(--ink-2); border-radius:3px;}

/* ---------- Process steps ---------- */
.process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; counter-reset:step;}
@media (max-width:860px){.process-grid{grid-template-columns:repeat(2,1fr);}}
.process-item{position:relative; padding-top:8px;}
.process-item .num{font-family:'Sora',sans-serif; font-weight:800; font-size:34px; color:var(--sky-soft); -webkit-text-stroke:1.5px var(--sky);}
.process-item h4{font-size:16.5px; margin:10px 0 8px;}
.process-item p{font-size:13.5px; color:var(--ink-2);}

/* ---------- Pricing table ---------- */
.price-table{width:100%; border-collapse:collapse; background:var(--white); border:1px solid var(--line);}
.price-table th{text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-2); padding:14px 20px; border-bottom:1px solid var(--line); background:var(--paper-2);}
.price-table td{padding:16px 20px; border-bottom:1px solid var(--line); font-size:14.5px;}
.price-table tr:last-child td{border-bottom:none;}
.price-table .amt{font-weight:700; color:var(--sky-deep); white-space:nowrap;}
.tarifs-disclaimer{font-size:12.5px; color:var(--ink-2);}

/* ---------- Zones grid ---------- */
.villes-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
@media (max-width:980px){.villes-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:640px){.villes-grid{grid-template-columns:repeat(2,1fr);}}
.ville-card{background:var(--white); border:1px solid var(--line); padding:18px 18px; display:block;}
.ville-card:hover{border-color:var(--sky);}
.ville-card .mono{font-size:10px; color:var(--sun-deep); display:block; margin-bottom:8px;}
.ville-card h3{font-size:16px; margin-bottom:6px;}
.ville-card p{font-size:12.5px; color:var(--ink-2); margin:0;}
.canton-tag{display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; padding:3px 9px; border-radius:999px; margin-bottom:10px;}
.canton-tag.ge{background:var(--sky-soft); color:var(--sky-deep);}
.canton-tag.vd{background:var(--sun-soft); color:var(--sun-deep);}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; background:none; border:none; text-align:left; padding:22px 4px; font-family:'Sora',sans-serif; font-weight:600; font-size:16px; color:var(--ink); cursor:pointer;}
.faq-item .plus{font-size:20px; color:var(--sun); flex:none;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-item.open .faq-a{max-height:400px;}
.faq-a p{padding:0 4px 22px; color:var(--ink-2); font-size:14.5px;}

/* ---------- Articles ---------- */
.articles-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:860px){.articles-grid{grid-template-columns:1fr;}}
.article-card{background:var(--white); border:1px solid var(--line); padding:24px; flex-direction:column; gap:14px;}
.article-card:hover{border-color:var(--sky); box-shadow:var(--shadow);}
.art-top .cat{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--sun-deep); text-transform:uppercase; letter-spacing:.05em;}
.art-top h3{font-size:18px; margin-top:8px;}
.article-card p{font-size:13.5px; color:var(--ink-2); flex:1;}
.art-foot{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-2);}

/* ---------- CTA band ---------- */
.cta-band{background:var(--ink); color:#fff;}
.cta-band-inner{display:flex; justify-content:space-between; align-items:center; padding:52px 0; gap:24px; flex-wrap:wrap;}
.cta-band h2{font-size:clamp(24px,3vw,32px); max-width:520px; color:#fff;}
.cta-band-actions{display:flex; gap:14px; flex-wrap:wrap;}

/* ---------- Footer ---------- */
footer{background:var(--ink); color:#A9C4CD; padding:64px 0 0;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:36px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.12);}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-logo{font-family:'Sora',sans-serif; font-weight:800; font-size:21px; color:#fff; margin-bottom:14px;}
.footer-logo .logo-icon{height:42px; width:auto; display:block;}
footer h4{color:#fff; font-size:13px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:16px; font-family:'IBM Plex Mono',monospace; font-weight:500;}
footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; font-size:14px;}
footer ul a:hover{color:#fff;}
.footer-bottom{display:flex; justify-content:space-between; padding:22px 0; font-size:12.5px; flex-wrap:wrap; gap:10px;}
.footer-bottom a{color:#A9C4CD;}
.payment-row{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px;}
.payment-row span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; border:1px solid rgba(255,255,255,.2); padding:4px 9px; border-radius:3px; color:#C9DEE6;}

/* ---------- Mobile menu ---------- */
.mobile-menu{position:fixed; inset:122px 0 0 0; background:var(--paper); z-index:99; display:none; overflow-y:auto; padding:24px;}
.mobile-menu.open{display:block;}
.mobile-menu a{display:block; padding:14px 6px; border-bottom:1px solid var(--line); font-weight:600;}
.mobile-menu .mm-actions{display:flex; flex-direction:column; gap:12px; margin-top:24px;}

/* ---------- Page hero (inner pages) ---------- */
.breadcrumb-bar{background:var(--paper-2); border-bottom:1px solid var(--line);}
.breadcrumb{display:flex; align-items:center; gap:8px; font-size:12.5px; padding:12px 0; color:var(--ink-2);}
.breadcrumb a:hover{color:var(--sky);}
.breadcrumb .sep{color:var(--line);}
.breadcrumb .current{color:var(--ink); font-weight:600;}
.page-hero{padding:56px 0 64px; background:radial-gradient(900px 420px at 90% -20%, rgba(11,115,212,.12), transparent 60%), var(--paper);}
.page-hero .eyebrow{margin-bottom:16px;}
.page-hero h1{font-size:clamp(30px,4vw,46px); max-width:760px;}
.page-hero p.lead{font-size:17px; color:var(--ink-2); max-width:620px; margin-top:18px;}
.page-hero .hero-actions{margin-top:28px;}

/* ---------- Content layout ---------- */
.content-layout{display:grid; grid-template-columns:1fr 320px; gap:56px; align-items:start;}
@media (max-width:960px){.content-layout{grid-template-columns:1fr;}}
.split-feature{display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center;}
@media (max-width:860px){.split-feature{grid-template-columns:1fr;}}
.prose h2{font-size:clamp(23px,2.5vw,28px); margin:44px 0 16px;}
.prose h2:first-child{margin-top:0;}
.prose p{color:var(--ink-2); font-size:15.5px; margin:0 0 16px;}
.prose ul{color:var(--ink-2); font-size:15.5px; padding-left:20px; margin:0 0 16px;}
.prose li{margin-bottom:8px;}
.callout{background:var(--sky-soft); border:1px solid #B9DCEB; padding:22px 24px; margin:28px 0;}
.callout h4{font-size:15px; margin-bottom:8px;}
.callout p{color:var(--ink-2); font-size:14px; margin:0;}
.content-figure{margin:28px 0; border:1px solid var(--line); overflow:hidden; background:var(--paper-2);}
.content-figure img{display:block; width:100%; height:auto;}
.content-figure figcaption{padding:10px 14px; font-size:12.5px; color:var(--ink-2); font-family:'IBM Plex Mono',monospace; letter-spacing:.02em; background:var(--paper-2); border-top:1px solid var(--line);}
.figure-pair{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:28px 0; align-items:start;}
.figure-pair .content-figure{margin:0;}
@media (max-width:640px){.figure-pair{grid-template-columns:1fr;}}
.sidebar-card{background:var(--ink); color:#fff; padding:30px 26px;}
.sidebar-card h3{color:#fff; font-size:20px; margin-bottom:12px;}
.sidebar-card p{color:#C3D4EC; font-size:14px; margin-bottom:18px;}
.sidebar-card .btn-primary{width:100%; margin-bottom:10px;}
.sidebar-card .btn-whatsapp{width:100%;}
.sidebar-links{background:var(--white); border:1px solid var(--line); padding:22px 24px; margin-top:20px;}
.sidebar-links h4{font-size:13px; letter-spacing:.06em; text-transform:uppercase; font-family:'IBM Plex Mono',monospace; color:var(--ink-2); margin-bottom:14px; font-weight:500;}
.sidebar-links ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; font-size:14.5px;}
.sidebar-links a:hover{color:var(--sky);}
.tile-card{background:var(--white); border:1px solid var(--line); padding:26px; transition:transform .25s ease, box-shadow .25s ease;}
.tile-card:hover{transform:translateY(-4px); box-shadow:var(--shadow);}
.tile-card .mono{font-size:11px; color:var(--sun-deep); margin-bottom:12px; display:block;}
.tile-card h3{font-size:18px; margin-bottom:10px;}
.tile-card p{color:var(--ink-2); font-size:14.4px; margin:0 0 16px;}
.tile-card a.more{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--sun-deep); padding-bottom:2px;}
.tiles-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:28px 0;}
@media (max-width:640px){.tiles-grid{grid-template-columns:1fr;}}
.toc{background:var(--paper-2); border:1px solid var(--line); padding:22px 26px; margin-bottom:10px;}
.article-meta{display:flex; gap:14px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-2); margin-top:14px;}

/* ---------- Whatsapp float ---------- */
.wa-float{position:fixed; bottom:24px; right:24px; z-index:90; background:#25D366; color:#fff; width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 14px 30px -10px rgba(0,0,0,.35);}
@media (max-width:640px){.wa-float{bottom:84px;}}
.mobile-bar{display:none;}
@media (max-width:640px){
  .mobile-bar{display:flex; position:fixed; bottom:0; left:0; right:0; z-index:95; background:var(--ink);}
  .mobile-bar a{flex:1; text-align:center; padding:14px 0; font-weight:700; font-size:14px; color:#fff;}
  .mobile-bar a:first-child{background:var(--sun);}
  .mobile-bar a:last-child{background:#25D366;}
}

/* ---------- Clim & Chauffage : ajouts ---------- */
.brand-text .name .n1{color:var(--ink);} .brand-text .name .n2{color:var(--sun);}
.brand-text .tag{text-transform:none; letter-spacing:.02em; font-size:11px;}
.hero-photo{position:relative; margin:0; border-radius:4px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:16/11; background:var(--paper-2);}
.hero-photo img{width:100%; height:100%; object-fit:cover; object-position:30% 30%;}
.hero-photo-card{position:absolute; right:16px; top:16px; background:var(--ink); color:#fff; padding:16px 20px; border-radius:3px; display:flex; flex-direction:column; gap:2px; max-width:calc(100% - 32px);}
.hero-photo-card .mono{font-family:'IBM Plex Mono',monospace; font-size:11px; color:#A9C8F0;}
.hero-photo-card .amt{font-family:'Sora',sans-serif; font-weight:800; font-size:30px; line-height:1.1;}
.hero-photo-card .amt span{font-size:15px; font-weight:600; color:#A9C8F0;}
.hero-photo-card .note{font-size:13px; color:#DCE7F7;}
.contact-form .form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.contact-form input,.contact-form select,.contact-form textarea{width:100%; padding:14px; border:1px solid var(--line); font:inherit; color:var(--ink); background:#fff; border-radius:2px;}
.contact-form select,.contact-form textarea{margin-bottom:16px;}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid var(--sky); outline-offset:1px;}
@media (max-width:640px){.contact-form .form-row{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1 !important; transform:none !important; transition:none !important;}}

/* ---------- Bandeau coordonnées défilant ---------- */
.topbar.ticker{position:sticky; top:0; z-index:101; height:38px; overflow:hidden; display:flex; align-items:center;
  background:linear-gradient(90deg,var(--ink) 0%,#123a78 50%,var(--ink) 100%); color:#fff; font-size:13.5px; font-weight:500;}
.topbar.ticker a{color:#fff; font-weight:700;}
.topbar.ticker a:hover{color:#FFD2C8;}
.tk-track{display:flex; width:max-content; white-space:nowrap; animation:tk-scroll 38s linear infinite;}
.tk-dup{display:flex;}
.tk-item{display:inline-flex; align-items:center; gap:8px; padding:0 34px; position:relative;}
.tk-item::after{content:""; position:absolute; right:0; top:50%; width:6px; height:6px; margin-top:-3px; border-radius:50%; background:var(--sun);}
.tk-item svg{width:15px; height:15px; color:#8FC0FF; flex:none;}
.topbar.ticker:hover .tk-track{animation-play-state:paused;}
@keyframes tk-scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
header{top:38px;}
@media (prefers-reduced-motion:reduce){.tk-track{animation:none;} .tk-dup{display:none;} .topbar.ticker{overflow-x:auto;}}

/* ---------- Galerie réalisations ---------- */
.gallery{display:grid; gap:14px; margin:22px 0 6px;}
.gallery.g-4{grid-template-columns:repeat(4,1fr);}
.gallery.g-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){.gallery.g-4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){.gallery.g-3{grid-template-columns:repeat(2,1fr);} .gallery{gap:10px;}}
.g-item{position:relative; display:block; overflow:hidden; border-radius:3px; aspect-ratio:4/5; background:var(--paper-2);}
.g-item img{width:100%; height:100%; object-fit:cover; transition:transform .35s ease;}
.g-item:hover img,.g-item:focus-visible img{transform:scale(1.04);}
.g-item:focus-visible{outline:3px solid var(--sky); outline-offset:2px;}
.g-cap{position:absolute; left:0; right:0; bottom:0; padding:28px 12px 10px; font-size:13px; font-weight:600; color:#fff; background:linear-gradient(transparent,rgba(13,42,87,.85));}
.g-item.is-hidden{display:none;}
button.filter-tab{font:inherit; cursor:pointer;}
.lightbox{position:fixed; inset:0; z-index:300; background:rgba(8,20,45,.92); display:none; align-items:center; justify-content:center; padding:24px;}
.lightbox.open{display:flex;}
.lightbox figure{margin:0; max-width:min(900px,100%); text-align:center;}
.lightbox img{max-height:80vh; width:auto; margin:0 auto; border-radius:3px;}
.lightbox figcaption{color:#fff; margin-top:12px; font-weight:600;}
.lightbox button{position:absolute; background:rgba(255,255,255,.12); color:#fff; border:0; width:48px; height:48px; border-radius:50%; font-size:24px; cursor:pointer;}
.lightbox button:hover{background:rgba(255,255,255,.25);}
.lb-close{top:20px; right:20px;} .lb-prev{left:16px; top:50%;} .lb-next{right:16px; top:50%;}
@media (max-width:1400px){ .header-actions .phone-link{display:none;} nav.main-nav{gap:12px;} }
.prose .content-figure img{max-height:480px; object-fit:cover;}
