/* New public interface. No dependency on the legacy CSS. */
@layer reset, base, layout, components, responsive;
@layer reset {
* { box-sizing: border-box; }
body, h1, h2, h3, p, figure { margin: 0; }
img { display: block; max-width: 100%; height:auto; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
}
@layer base {
:root { --ink:#102439; --muted:#43586b; --petrol:#0753a6; --teal:#0088f0; --paper:#fff; --canvas:#f5f8fa; --line:#d8e3e7; --radius:12px; --shadow:0 8px 28px #15334908; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { font-family:"Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.55; color:var(--ink); background:var(--paper); }
a { color:var(--petrol); text-underline-offset:4px; }
button { cursor:pointer; }
:focus-visible { outline:3px solid #00788b; outline-offset:5px; }
.professional-section :focus-visible { outline-color:#78c5ff; }
::selection { background:#bee8e8; color:var(--ink); }
h1, h2, h3 { line-height:1.12; letter-spacing:-.035em; }
h1 { font-size:clamp(36px,3.6vw,54px); font-weight:750; }
h2 { font-size:clamp(28px,2.6vw,37px); font-weight:750; }
h3 { font-size:18px; letter-spacing:-.025em; }
svg { flex-shrink:0; width:24px; height:24px; }
.eyebrow { font-size:12px; font-weight:700; letter-spacing:.14em; color:var(--petrol); margin-bottom:15px; }
.lead { color:var(--muted); font-size:20px; line-height:1.5; }
.skip-link { position:fixed; top:10px; left:10px; z-index:100; background:white; padding:12px; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
}
@layer layout {
.wrap { width:min(1240px,calc(100% - 72px)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:20; border-bottom:1px solid #e8eef0; background:#fffffffa; }
.header-inner { display:flex; align-items:center; gap:24px; min-height:82px; }
.brand { display:flex; gap:11px; align-items:center; color:var(--ink); text-decoration:none; flex-shrink:0; }
.brand img { width:48px; height:48px; border-radius:9px; }
.brand strong { display:block; font-size:21px; letter-spacing:.065em; line-height:1.2; }
.brand small { display:block; font-size:10px; letter-spacing:.035em; color:#52687b; margin-top:5px; }
.header-inner nav { display:flex; align-items:center; gap:22px; margin-left:auto; }
.header-inner nav a { color:var(--ink); text-decoration:none; font-size:13px; font-weight:550; padding:26px 0; border-bottom:2px solid transparent; white-space:nowrap; }
.header-inner nav a:hover, .header-inner nav a[aria-current] { color:var(--petrol); border-color:var(--teal); }
.newsletter-shortcut { display:flex; align-items:center; gap:7px; padding:8px 12px; background:var(--petrol); color:white; border-radius:20px; font-size:12px; text-decoration:none; }
.newsletter-shortcut svg { width:15px; height:15px; }
.menu-toggle { display:none; }
.hero { overflow:hidden; background:linear-gradient(105deg,#f7fafb 35%,#edf4f2 100%); }
.hero-layout { min-height:480px; display:grid; grid-template-columns:1.1fr 1fr; gap:24px; align-items:center; }
.hero-copy { padding:50px 0 38px; position:relative; z-index:2; }
.hero h1 { margin:0 0 20px; }
.hero .lead { max-width:590px; font-size:19px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.mobile-break { display:none; }
.quick-values { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:36px 0 0; padding:0; }
.quick-values li { display:flex; gap:9px; align-items:center; font-size:12px; line-height:1.5; }
.quick-values svg { width:25px; height:25px; color:var(--petrol); }
.hero-visual { position:relative; min-height:450px; align-self:stretch; }
.visual-orbit { position:absolute; width:470px; height:470px; border-radius:50%; background:#deebe4; top:22px; left:30px; }
.laptop { position:absolute; width:440px; right:-35px; top:77px; transform:rotate(5deg); }
.laptop-screen { padding:10px; border-radius:15px 15px 6px 6px; background:#172d35; border:2px solid #344a50; box-shadow:0 16px 30px #08283120; }
.laptop-screen img { width:100%; aspect-ratio:1.9; object-fit:cover; border-radius:3px; }
.laptop-bar { color:#dde9e8; font-size:10px; padding:2px 0 9px; }
.laptop-base { height:17px; background:#aab6b9; border-radius:2px 2px 25px 25px; margin-inline:-20px; box-shadow:0 10px 14px #08283115; }
.phone { position:absolute; width:155px; background:#10292c; padding:7px; border:2px solid #677d76; border-radius:24px; box-shadow:0 16px 24px #15372f22; }
.phone img { width:100%; height:auto; border-radius:17px; }
.phone-main { left:22px; top:116px; transform:rotate(-5deg); z-index:3; }
.phone-secondary { width:128px; right:21px; top:199px; transform:rotate(8deg); z-index:2; }
.visual-caption { position:absolute; bottom:14px; left:30px; color:#577063; font-size:12px; }
.applications-section { background:var(--canvas); padding:20px 0 30px; }
.applications-panel { padding:28px; background:#ffffffc9; border-radius:16px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.section-heading p { color:var(--muted); margin-top:5px; font-size:17px; }
.project-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.professional-section { color:white; background:#073b78; padding:45px 0 28px; overflow:hidden; }
.professional-top { display:grid; grid-template-columns:1fr 1fr; gap:45px; align-items:center; margin-bottom:30px; }
.professional-section .eyebrow { color:#69b9ff; }
.professional-copy h2 { font-size:39px; }
.professional-copy > p:not(.eyebrow) { color:#e7f1ff; margin:18px 0 20px; font-size:18px; }
.professional-visual { transform:rotate(3deg); }
.professional-visual > p { font-size:12px; color:#c8dcf5; text-align:right; margin-top:10px; }
.browser-frame { border:7px solid #133039; border-radius:13px; background:#fff; box-shadow:0 12px 24px #00232d55; overflow:hidden; }
.browser-bar { display:flex; align-items:center; gap:5px; padding:9px; background:#e7ecee; color:#425c65; font-size:9px; }
.browser-bar i { width:5px; height:5px; background:#9baeb4; border-radius:50%; }
.browser-bar span { margin-left:8px; }
.browser-frame img { width:100%; padding:10px 4px 20px; }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.service { display:flex; align-items:center; gap:13px; padding:17px 14px; background:white; border-radius:10px; color:var(--ink); text-decoration:none !important; border:1px solid transparent; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; cursor:pointer; }
.service:hover { transform:translateY(-2px); box-shadow:0 12px 28px #071f3b1a; border-color:#9fc7ee; }
.service:focus-visible { outline:3px solid #78c5ff; outline-offset:4px; }
.service h3 { font-size:14px; letter-spacing:-.02em; color:var(--ink); text-decoration:none !important; }
.service p { font-size:12px; color:var(--muted); margin-top:4px; text-decoration:none !important; }
.service *, .service:hover *, .service:focus * { text-decoration:none !important; }
.service-empty { grid-column:1/-1; color:white; }
.service-icon { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; border-radius:12px; background:#f5e9d8; color:#805128; }
.service:nth-child(2) .service-icon { background:#dceff9; color:#075e88; }
.service:nth-child(3) .service-icon { background:#dcefe4; color:#056151; }
.service:nth-child(4) .service-icon { background:#e9e4f9; color:#534487; }
.why-section { padding:37px 0 40px; background:#f8fafb; }
.values-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin-top:26px; }
.value { display:flex; align-items:flex-start; gap:13px; }
.value-icon { background:#f5e5d8; color:#8e552b; flex-shrink:0; width:45px; height:45px; border-radius:50%; display:grid; place-items:center; }
.value:nth-child(2) .value-icon { background:#d8edf3; color:#086881; }
.value:nth-child(3) .value-icon { background:#f5e1e7; color:#ae3352; }
.value h3 { font-size:15px; margin:5px 0 8px; }
.value p { font-size:13px; color:var(--muted); }
.newsletter-section { padding:42px 0; background:#edf5f3; border-top:1px solid #d8e7e1; }
.newsletter-inner { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.newsletter-inner h2 { margin-bottom:13px; }
.newsletter-inner > div > p:last-child { max-width:440px; color:var(--muted); }
.newsletter-inner form > label:first-child { display:block; margin-bottom:8px; font-size:14px; font-weight:650; }
.newsletter-fields { display:flex; gap:8px; }
.consent { display:flex; gap:9px; font-size:12px; margin-top:14px; color:var(--muted); }
.consent input { width:17px; height:17px; flex-shrink:0; margin-top:2px; }
.site-footer { padding:26px 0; border-top:1px solid var(--line); }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; font-size:12px; color:var(--muted); }
.footer-inner strong { letter-spacing:.05em; color:var(--ink); }
.footer-inner div { display:flex; gap:18px; flex-wrap:wrap; }
.footer-inner a { color:var(--muted); }
.page-intro { padding-block:60px 40px; }
.page-intro h1 { margin-bottom:24px; }
.page-intro h2 { margin-bottom:18px; }
.page-intro .lead { margin-bottom:25px; max-width:740px; }
.page-intro > p { margin-bottom:20px; }
.narrow { max-width:780px; }
.catalogue-section { padding-bottom:70px; }
.project-title { display:flex; gap:22px; align-items:center; margin-top:30px; }
.project-title img { width:80px; height:80px; object-fit:contain; border-radius:12px; }
.project-title h1 { font-size:clamp(30px,4vw,50px); }
.project-intro .lead { margin-top:18px; }
.project-content { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; padding-bottom:30px; }
.project-content article { padding:25px; background:var(--canvas); border-radius:var(--radius); }
.project-content h2 { font-size:24px; margin-bottom:14px; }
.project-content p, .project-content li { color:var(--muted); margin-bottom:10px; }
.captures-section { padding-block:20px 60px; }
.capture-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:25px; margin-top:28px; align-items:start; }
.capture-grid img { width:auto; max-height:590px; margin-inline:auto; border:1px solid var(--line); border-radius:12px; }
.capture-grid figure { min-width:0; }
.capture-grid figcaption { font-size:13px; color:var(--muted); margin-top:12px; text-align:center; }
.wide-captures { grid-template-columns:1fr; }
.wide-captures img { width:100%; max-height:none; }
.realisation { margin:35px 0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.realisation > img { width:100%; }
.realisation > div { padding:25px; }
.realisation h2 { font-size:26px; }
.realisation p { margin-bottom:20px; }
}
@layer components {
.button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:46px; padding:12px 18px; background:var(--petrol); border:1px solid var(--petrol); border-radius:9px; color:white; text-decoration:none; font-size:14px; font-weight:650; line-height:1.3; text-align:center; }
.button:hover { background:#064487; }
.button span { font-size:20px; line-height:1; }
.button.secondary { color:var(--ink); background:#ffffffd9; border-color:#9cb4be; }
.button.secondary:hover { background:white; border-color:var(--petrol); }
.button.outline-light { background:transparent; border-color:#65d6d7; color:white; }
.button.outline-light:hover { background:#115463; }
.text-link { font-weight:600; font-size:14px; text-decoration:none; }
.text-link:hover { text-decoration:underline; }
.project-card { border:1px solid #e7edef; background:white; border-radius:var(--radius); padding:18px; display:flex; flex-direction:column; box-shadow:var(--shadow); min-width:0; }
.project-identity { display:flex; align-items:center; gap:12px; min-height:64px; margin-bottom:13px; }
.project-identity > img { width:54px; height:54px; object-fit:contain; border-radius:10px; flex-shrink:0; }
.project-identity h3 { font-size:17px; }
.project-identity h3 a { color:var(--ink); text-decoration:none; }
.project-identity h3 a:hover { text-decoration:underline; }
.platform { display:block; color:#44715d; font-size:11px; font-weight:650; margin-top:5px; }
.project-description { color:var(--muted); font-size:14px; line-height:1.5; min-height:105px; margin-bottom:16px; }
.project-preview { height:210px; margin-top:2px; background:linear-gradient(180deg,#f7faff 0%,#edf4fb 100%); border:1px solid #e2ebf3; border-radius:14px; overflow:hidden; display:flex; align-items:flex-start; justify-content:center; padding:14px 18px 0; }
.project-preview img { width:auto; height:360px; object-fit:contain; border-radius:14px 14px 0 0; box-shadow:0 12px 28px #10243920; }
.project-preview.landscape { align-items:center; padding:14px; background:linear-gradient(180deg,#f7faff 0%,#edf4fb 100%); }
.project-preview.landscape img { height:auto; width:100%; border-radius:8px; box-shadow:0 10px 24px #10243918; }
.availability { font-size:11px; color:#526a77; line-height:1.45; margin:12px 0; }
.card-button { margin-top:auto; width:100%; font-size:13px; padding-inline:10px; min-height:42px; }
.section-note { font-size:12px; color:var(--muted); margin-top:18px; }
input:not([type=checkbox]), select, textarea { width:100%; padding:12px 14px; border:1px solid #7b929d; background:white; border-radius:8px; color:var(--ink); min-width:0; }
input[type=checkbox] { accent-color:var(--petrol); }
.preview-note { display:block; margin-top:12px; font-size:12px; color:#53676a; }
.category-navigation { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.category-navigation a { padding:10px 14px; border:1px solid var(--line); border-radius:8px; text-decoration:none; font-size:14px; }
.category-navigation a[aria-current] { color:white; background:var(--petrol); border-color:var(--petrol); }
.notice { background:#f3f6f5; border-left:3px solid var(--petrol); padding:16px 20px; margin-block:15px; color:var(--muted); font-size:14px; }
.public-form { display:grid; gap:10px; padding:30px; border:1px solid var(--line); border-radius:var(--radius); margin-top:25px; }
.public-form > label { font-size:14px; font-weight:650; margin-top:10px; }
.public-form .button { justify-self:start; margin-top:15px; }
.public-form fieldset { border:1px solid var(--line); margin:15px 0 0; padding:16px; border-radius:8px; }
.public-form legend { font-size:14px; font-weight:650; padding:0 6px; }
.checkbox-choice { display:flex; gap:12px; align-items:center; padding:10px 0; cursor:pointer; }
.checkbox-choice input { width:19px; height:19px; }
.honeypot { position:absolute; width:1px; height:1px; overflow:hidden; left:-10000px; }
.test-explanation { background:var(--canvas); padding:18px; border-radius:8px; margin-bottom:20px; }
.test-explanation summary { cursor:pointer; font-weight:650; }
.test-explanation p { margin-top:15px; }
.legal h2 { font-size:24px; margin-top:30px; }
}
@layer responsive {
@media(min-width:1500px) { .hero-layout { min-height:510px; } .hero-visual { min-height:500px; } .laptop { top:100px; } .phone-main { top:140px; } .phone-secondary { top:230px; } }
@media(max-width:1200px) {
 .wrap { width:calc(100% - 48px); }
 .header-inner { gap:15px; }
 .brand strong { font-size:18px; }
 .brand small { font-size:9px; }
 .header-inner nav { gap:15px; }
 .header-inner nav a { font-size:12px; }
 .newsletter-shortcut { display:none; }
 .hero-layout { grid-template-columns:1.15fr 1fr; }
 .hero h1 { font-size:44px; }
 .hero .lead { font-size:17px; }
 .hero-actions { gap:9px; }
 .hero-actions .button { font-size:12px; padding:12px 13px; }
 .quick-values { gap:9px; }
 .quick-values li { font-size:11px; gap:6px; }
 .laptop { width:370px; right:-32px; top:105px; }
 .phone-main { width:140px; top:160px; left:0; }
 .phone-secondary { width:115px; right:-2px; top:245px; }
 .visual-orbit { width:400px; height:400px; left:0; top:40px; }
 .applications-panel { padding:23px; }
 .project-grid { gap:13px; }
 .project-card { padding:14px; }
 .project-identity { gap:9px; }
 .project-identity h3 { font-size:15px; }
 .project-identity > img { width:44px; height:44px; }
 .project-description { font-size:13px; min-height:117px; }
 .service { gap:9px; padding:15px 11px; }
 .service-icon { width:37px; height:40px; }
 .service h3 { font-size:12px; }
 .service p { font-size:11px; }
 .values-grid { gap:20px; }
 .value { gap:9px; }
 .value-icon { width:39px; height:39px; }
 .value h3 { font-size:13px; }
 .value p { font-size:12px; }
}
@media(max-width:950px) {
 .header-inner { min-height:72px; flex-wrap:wrap; justify-content:space-between; gap:0; }
 .has-js .menu-toggle { display:flex; gap:9px; align-items:center; background:white; border:1px solid var(--line); border-radius:8px; min-height:44px; padding:9px 12px; color:var(--ink); font-size:14px; }
 .menu-toggle svg { fill:none; stroke:currentColor; stroke-width:1.8; width:20px; height:20px; }
 .header-inner nav { width:100%; margin:0; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:8px 0 15px; }
 .has-js .header-inner nav:not(.is-open) { display:none; }
 .header-inner nav.is-open { display:flex; }
 .header-inner nav a { font-size:15px; padding:12px; border-bottom:1px solid var(--line); }
 .hero-layout { grid-template-columns:1.1fr 1fr; gap:8px; min-height:470px; }
 .hero h1 { font-size:38px; }
 .hero .lead { font-size:16px; }
 .hero-actions { flex-direction:column; align-items:flex-start; }
 .hero-actions .button { font-size:13px; }
 .quick-values { grid-template-columns:repeat(2,1fr); row-gap:15px; margin-top:26px; }
 .hero-visual { min-height:460px; }
 .laptop { width:290px; right:-10px; top:95px; }
 .phone-main { width:130px; top:157px; left:5px; }
 .phone-secondary { width:98px; top:252px; right:5px; }
 .visual-orbit { width:330px; height:390px; }
 .visual-caption { font-size:10px; left:8px; bottom:10px; }
 .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
 .project-card { padding:20px; }
 .project-identity h3 { font-size:18px; }
 .project-identity > img { width:55px; height:55px; }
 .project-description { min-height:64px; font-size:14px; }
 .project-preview { height:245px; }
 .project-preview img { height:430px; }
 .professional-top { gap:25px; }
 .professional-copy h2 { font-size:32px; }
 .professional-copy > p:not(.eyebrow) { font-size:16px; }
 .service-grid, .values-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
 .service { padding:16px; }
 .service h3, .value h3 { font-size:15px; }
 .service p, .value p { font-size:13px; }
 .newsletter-inner { gap:30px; }
 .newsletter-inner h2 { font-size:29px; }
 .newsletter-fields { flex-direction:column; }
 .newsletter-fields .button { align-self:flex-start; }
 .footer-inner { flex-wrap:wrap; }
}
@media(max-width:620px) {
 html { scroll-padding-top:85px; }
 .wrap { width:calc(100% - 36px); }
 .brand img { width:40px; height:40px; }
 .brand strong { font-size:17px; }
 .brand small { font-size:8px; margin-top:4px; }
 .hero-layout { display:flex; flex-direction:column; align-items:stretch; gap:0; }
 .hero-copy { padding:35px 0 10px; }
 .eyebrow { font-size:10px; letter-spacing:.105em; margin-bottom:14px; }
 .hero h1 { font-size:clamp(31px,8.5vw,43px); line-height:1.12; margin-bottom:17px; }
 .mobile-break { display:block; }
 .hero .lead { font-size:16px; line-height:1.6; }
 .hero-actions { margin-top:22px; gap:10px; align-items:stretch; }
 .hero-actions .button { width:100%; font-size:14px; min-height:48px; }
 .quick-values { gap:18px; margin-top:25px; }
 .quick-values li { font-size:12px; }
 .quick-values svg { width:24px; height:24px; }
 .hero-visual { min-height:310px; width:100%; margin-top:10px; }
 .visual-orbit { width:290px; height:285px; left:calc(50% - 145px); top:10px; }
 .laptop { width:250px; right:calc(50% - 155px); top:49px; }
 .phone-main { width:99px; top:56px; left:calc(50% - 142px); border-radius:18px; padding:4px; }
 .phone-main img { border-radius:12px; }
 .phone-secondary { width:83px; right:calc(50% - 127px); top:122px; padding:4px; border-radius:16px; }
 .phone-secondary img { border-radius:10px; }
 .visual-caption { left:0; width:100%; text-align:center; bottom:11px; font-size:11px; }
 .applications-section { padding:16px 0 24px; }
 .applications-panel { padding:0; background:transparent; border-radius:0; }
 .section-heading { flex-direction:column; align-items:flex-start; gap:12px; margin:10px 0 20px; }
 .section-heading p { font-size:15px; }
 h2 { font-size:29px; }
 .project-grid { grid-template-columns:1fr; gap:17px; }
 .project-card { padding:20px; }
 .project-identity h3 { font-size:20px; }
 .project-identity { margin-bottom:14px; }
 .project-description { min-height:0; font-size:15px; }
 .project-preview { height:270px; }
 .project-preview img { height:500px; }
 .card-button { min-height:46px; font-size:14px; }
 .availability { font-size:12px; }
 .professional-section { padding:32px 0; }
 .professional-top { grid-template-columns:1fr; gap:25px; }
 .professional-copy h2 { font-size:33px; }
 .professional-copy .button { min-height:48px; font-size:13px; }
 .professional-visual { width:calc(100% - 12px); margin-inline:auto; transform:rotate(1deg); }
 .service-grid { grid-template-columns:1fr; gap:10px; }
 .service { padding:14px; }
 .service-icon { width:44px; height:44px; }
 .why-section { padding:31px 0; }
 .values-grid { grid-template-columns:1fr; gap:22px; }
 .value { gap:15px; }
 .value-icon { width:44px; height:44px; }
 .value h3 { font-size:16px; }
 .value p { font-size:14px; }
 .newsletter-section { padding:32px 0; }
 .newsletter-inner { grid-template-columns:1fr; gap:24px; }
 .newsletter-fields .button { width:100%; }
 .consent { font-size:13px; }
 .footer-inner { flex-direction:column; align-items:flex-start; gap:20px; }
 .footer-inner div { flex-direction:column; gap:10px; }
 .page-intro { padding-block:35px 30px; }
 .page-intro h1 { font-size:36px; }
 .page-intro .lead { font-size:18px; }
 .category-navigation { flex-direction:column; }
 .category-navigation a { min-height:44px; }
 .project-title { gap:14px; align-items:flex-start; }
 .project-title img { width:60px; height:60px; }
 .project-title h1 { font-size:29px; }
 .project-content { grid-template-columns:1fr; }
 .capture-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
 .capture-grid img { border-radius:8px; }
 .wide-captures { grid-template-columns:1fr; }
 .public-form { padding:20px 15px; }
 .public-form .button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
}
@layer components{.newsletter-section{background:linear-gradient(115deg,#083644,#0d5b64);color:white;border-top:0}.newsletter-inner{grid-template-columns:1fr;text-align:center;gap:20px;max-width:760px}.newsletter-section .eyebrow{color:#63e1df}.newsletter-section h2{color:white}.newsletter-section p{color:#e5f1f3}.newsletter-inner form{text-align:left}.newsletter-section a,.newsletter-section .preview-note{color:#e5f1f3}.newsletter-section :focus-visible{outline-color:#83efed}.newsletter-fields .button{background:#006f80;border-color:#45d8d0}.newsletter-section .consent{color:#e5f1f3}}

/* Candidate vitrine v004 : bas de page seulement ; CSS installe conserve ci-dessus. */
#newsletter.newsletter-section { padding-block:32px; }
#newsletter .newsletter-inner { gap:16px; }
#newsletter .newsletter-inner > div > .eyebrow { margin-bottom:8px; }
#newsletter .newsletter-inner h2 { margin-bottom:10px; line-height:1.2; }
#newsletter .newsletter-inner > div > p:last-child { max-width:680px; margin-inline:auto; line-height:1.5; }
#newsletter .newsletter-inner form { min-width:0; }
#newsletter .newsletter-fields { align-items:stretch; gap:10px; }
#newsletter .newsletter-fields input[type="email"] { flex:1; min-width:0; margin:0; min-height:46px; }
#newsletter .newsletter-fields .button { flex-shrink:0; min-height:46px; margin:0; }
#newsletter .consent { margin-top:12px; line-height:1.5; align-items:flex-start; }
.site-footer { padding-block:22px; }
.site-footer .footer-inner { position:relative; display:flex; align-items:center; gap:16px; }
.site-footer .footer-inner > p { margin:0; flex:1; }
.site-footer .footer-inner > div { display:contents; }
.site-footer .footer-inner a[href="/politique-confidentialite"] { position:absolute; left:50%; transform:translateX(-50%); white-space:nowrap; }
.site-footer .footer-inner a[href="/contact"], .site-footer .footer-inner > small { white-space:nowrap; }
@media(min-width:701px) { #newsletter .newsletter-fields { flex-direction:row; } #newsletter .newsletter-fields .button { align-self:stretch; width:auto; } }
@media(max-width:1000px) {
 .site-footer .footer-inner { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:12px 16px; }
 .site-footer .footer-inner > p { grid-column:1 / -1; }
 .site-footer .footer-inner a[href="/politique-confidentialite"] { position:static; transform:none; grid-column:1; }
 .site-footer .footer-inner a[href="/contact"] { grid-column:2; }
 .site-footer .footer-inner > small { grid-column:3; }
}
@media(max-width:700px) {
 #newsletter.newsletter-section { padding-block:26px; }
 #newsletter .newsletter-inner { gap:14px; }
 #newsletter .newsletter-fields { flex-direction:column; }
 #newsletter .newsletter-fields .button { width:100%; align-self:stretch; }
}
@media(max-width:600px) {
 .site-footer .footer-inner { grid-template-columns:minmax(0,1fr) auto; }
 .site-footer .footer-inner a[href="/politique-confidentialite"] { grid-column:1 / -1; justify-self:center; }
 .site-footer .footer-inner a[href="/contact"] { grid-column:1; justify-self:end; }
 .site-footer .footer-inner > small { grid-column:2; justify-self:end; }
}

/* Retouche Contact v004 : rapprochement de 8 px sans deplacer les autres elements. */
.site-footer .footer-inner a[href="/contact"] { position:relative; left:8px; text-decoration:none; }
.site-footer .footer-inner a[href="/contact"]:hover { text-decoration:underline; text-underline-offset:3px; }
.site-footer .footer-inner a[href="/contact"]:focus-visible { outline:2px solid currentColor; outline-offset:4px; border-radius:2px; }