).
--brand porte le texte sur fond clair ; --accent n'est lisible que sur
--brand ou en aplat, jamais en petit texte sur --paper. */
--brand:#0E4C92; --brand-deep:#093767; --accent:#FFC72C;
--paper:#F2F3F5; --panel:#E4E7EC; --ink:#121820;
--oil:#5D6675; --line:#CDD2DA;
--display:"Archivo",system-ui,sans-serif;
--mono:"IBM Plex Mono",ui-monospace,monospace;
--gut:clamp(20px,4vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,p,figure,ul{margin:0}
ul{padding:0;list-style:none}
img{max-width:100%;display:block}
html{-webkit-text-size-adjust:100%}
body{font:400 17px/1.65 var(--display);color:var(--ink);
background:var(--paper);text-rendering:optimizeLegibility}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--gut)}
a{color:inherit}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
/* Bande reprenant les deux couleurs de l'enseigne. */
.hazard{height:10px;background:repeating-linear-gradient(
135deg,var(--accent) 0 18px,var(--brand) 18px 36px)}
/* ---------------------------------------------------------------- nav */
.nav{display:flex;align-items:center;justify-content:space-between;
gap:16px;padding:20px 0;flex-wrap:wrap}
/* La marque est rendue comme la plaque émaillée de la façade. */
.brand{display:inline-block;background:var(--brand);color:var(--accent);
font-weight:800;font-size:19px;letter-spacing:.01em;padding:10px 18px;
border-radius:2px;text-decoration:none;
box-shadow:inset 0 0 0 2px rgba(255,255,255,.14)}
.navtel{font-family:var(--mono);font-size:15px;text-decoration:none;
padding:10px 18px;border:2px solid var(--brand);border-radius:2px;
font-weight:500;color:var(--brand);transition:background .15s,color .15s}
.navtel:hover{background:var(--brand);color:var(--accent)}
/* --------------------------------------------------------------- hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);
align-items:center;padding:clamp(28px,5vw,64px) 0 clamp(36px,6vw,72px)}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.14em;
text-transform:uppercase;color:var(--brand);margin-bottom:18px}
.hero h1{font-size:clamp(38px,6.4vw,76px);font-weight:800;line-height:.98;
letter-spacing:-.035em;text-wrap:balance}
.hero .sub{font-size:clamp(17px,1.9vw,21px);color:var(--oil);
margin-top:20px;max-width:46ch}
/* Le téléphone est la signature typographique : appeler EST le but. */
.telblock{margin-top:32px;display:inline-flex;flex-direction:column;
text-decoration:none;border-left:6px solid var(--brand);
padding-left:18px}
.telblock .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.16em;
text-transform:uppercase;color:var(--oil)}
.telblock .num{font-family:var(--mono);font-weight:500;
font-size:clamp(26px,3.6vw,42px);letter-spacing:-.02em;
line-height:1.15;margin-top:4px;color:var(--brand)}
.telblock:hover .num{color:var(--brand-deep)}
.heromedia{position:relative;aspect-ratio:4/3;background:var(--panel);
border-radius:3px;overflow:hidden}
.heromedia img{width:100%;height:100%;object-fit:cover}
.heromedia.empty{background:
repeating-linear-gradient(135deg,var(--panel) 0 22px,var(--paper) 22px 44px)}
/* ----------------------------------------------------------- sections */
.sec{padding:clamp(44px,6vw,84px) 0}
.sechead{display:flex;align-items:baseline;gap:16px;margin-bottom:32px;
flex-wrap:wrap}
.sechead h2{font-size:clamp(24px,3.2vw,38px);font-weight:800;
letter-spacing:-.03em}
.sechead .tag{font-family:var(--mono);font-size:12px;letter-spacing:.16em;
text-transform:uppercase;color:var(--brand)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
gap:2px;background:var(--line);border:1px solid var(--line)}
.item{background:var(--paper);padding:28px 24px}
.item svg{width:30px;height:30px;stroke:var(--brand);stroke-width:1.6;
fill:none;margin-bottom:16px}
.item h3{font-size:18px;font-weight:800;letter-spacing:-.01em;margin-bottom:8px}
.item p{font-size:15.5px;color:var(--oil);line-height:1.6}
/* Bloc lubrifiants : packshot sur fond blanc fondu dans le fond clair. */
.partner{display:grid;grid-template-columns:190px 1fr;gap:clamp(20px,3vw,40px);
align-items:center;border-top:1px solid var(--line);padding-top:32px}
.partner img{mix-blend-mode:multiply;width:100%;height:auto}
.partner h3{font-size:clamp(19px,2.3vw,26px);font-weight:800;
letter-spacing:-.02em;margin:6px 0 10px}
.partner p{color:var(--oil);font-size:16px;max-width:56ch}
.partner .cap{font-family:var(--mono);font-size:12px;letter-spacing:.16em;
text-transform:uppercase;color:var(--brand)}
.credit{font-family:var(--mono);font-size:11px;color:var(--oil);
margin-top:12px;opacity:.75}
.credit a{color:inherit}
@media (max-width:560px){.partner{grid-template-columns:120px 1fr}}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:12px}
.gallery figure{aspect-ratio:3/2;overflow:hidden;border-radius:3px;
background:var(--panel)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery figure:hover img{transform:scale(1.04)}
/* ------------------------------------------------------------ contact */
/* Section en aplat de l'enseigne : le jaune n'est employé qu'ici. */
.contact{background:var(--brand);color:#fff}
.contact .sechead h2{color:#fff}
.contact .sechead .tag{color:var(--accent)}
.contact .cols{display:grid;grid-template-columns:1fr 1.15fr;
gap:clamp(24px,4vw,48px);align-items:start}
.facts{display:grid;gap:22px}
.fact .k{font-family:var(--mono);font-size:12px;letter-spacing:.16em;
text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.fact .v{font-size:17px;line-height:1.6}
.fact a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
.fact a:hover{border-color:var(--accent);color:var(--accent)}
.hourlist{font-family:var(--mono);font-size:15px;display:grid;gap:4px}
.hourlist span{display:flex;justify-content:space-between;gap:18px;
max-width:290px;border-bottom:1px dotted rgba(255,255,255,.28);
padding-bottom:3px}
.media{display:grid;gap:18px}
.panel .cap{font-family:var(--mono);font-size:12px;letter-spacing:.16em;
text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.frame{aspect-ratio:4/3;border-radius:3px;overflow:hidden;
background:var(--brand-deep)}
.frame iframe{width:100%;height:100%;border:0;display:block}
.frame.plan iframe{filter:grayscale(.25)}
.cta{display:inline-block;margin-top:28px;padding:15px 30px;
background:var(--accent);color:var(--ink);font-weight:800;
text-decoration:none;border-radius:2px;letter-spacing:-.01em}
.cta:hover{filter:brightness(1.07)}
footer{padding:36px 0;font-family:var(--mono);font-size:13px;
color:var(--oil);display:flex;justify-content:space-between;
gap:14px;flex-wrap:wrap}
@media (max-width:820px){
.hero{grid-template-columns:1fr}
.heromedia{order:-1;aspect-ratio:16/10}
.contact .cols{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:no-preference){
.rise{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}
.rise:nth-child(2){animation-delay:.06s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
}
PREUVE DE DÉPLOIEMENT OUEB
Cloudflare Pages
Oueb
Usine logicielle de sites statiques, multilingues et déployés à la périphérie.
Déploiement vérifié
723f01403cd2