/* ==== Couvreur Annemasse 74 — cam design system ==== */
:root{
  --cam-blue:#0B3A78; --cam-blue2:#123A73; --cam-red:#D81E24;
  --cam-navy:#071B3A; --cam-white:#fff; --cam-grey:#F5F7FA;
  --cam-ink:#12203a; --cam-mut:#5a6b85; --cam-line:#e4e9f2;
  --cam-rad:4px; --cam-radlg:10px;
  --cam-shadow:0 18px 44px -22px rgba(7,27,58,.55);
  --cam-max:1200px; --cam-ff:'Manrope',-apple-system,Segoe UI,Roboto,sans-serif;
  --cam-fd:'Anton',Impact,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--cam-ff);color:var(--cam-ink);background:var(--cam-white);font-size:17px;line-height:1.72;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--cam-blue);text-decoration:none}
.cam-wrap{max-width:var(--cam-max);margin:0 auto;padding:0 22px}
h1,h2,h3,h4{font-family:var(--cam-fd);font-weight:400;line-height:1.14;letter-spacing:.4px;text-transform:uppercase;margin:0 0 .5em}
h1{font-size:clamp(2.3rem,5.4vw,4rem)}
h2{font-size:clamp(1.75rem,3.6vw,2.7rem);color:var(--cam-blue)}
h3{font-size:clamp(1.15rem,2vw,1.42rem);color:var(--cam-blue)}
p{margin:0 0 1.05em}
strong{color:var(--cam-blue2)}
em{font-style:normal}
.cam-skip{position:absolute;left:-999px;top:0;background:var(--cam-blue);color:#fff;padding:10px 16px;z-index:9999}
.cam-skip:focus{left:8px;top:8px}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.cam-js .reveal.is-in{opacity:1;transform:none}
html:not(.cam-js) .reveal{opacity:1;transform:none}
.cam-hd{position:fixed;top:0;left:0;right:0;z-index:1000;padding:14px 0}
.cam-hd .cam-bar{display:flex;align-items:center;gap:20px;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border:1px solid rgba(11,58,120,.10);border-radius:14px;box-shadow:0 10px 30px -16px rgba(7,27,58,.4);padding:10px 18px}
.cam-hd.is-stuck .cam-bar{background:rgba(255,255,255,.96)}
.cam-logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.cam-logo img{height:50px !important;width:auto !important}
.cam-nav{display:flex;align-items:center;gap:4px;margin-left:auto;padding:0;margin-top:0;margin-bottom:0}
.cam-nav>li{position:relative;list-style:none}
.cam-nav>li>a{display:block;padding:12px 15px;font-weight:700;font-size:.94rem;color:var(--cam-blue2);border-radius:var(--cam-rad);letter-spacing:.2px}
.cam-nav>li>a:hover,.cam-nav>li.is-open>a{color:var(--cam-red);background:var(--cam-grey)}
.cam-nav .cam-has>a::after{content:"";display:inline-block;width:7px;height:7px;margin-left:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.cam-hd .cam-tel{display:inline-flex;align-items:center;gap:8px;background:var(--cam-red);color:#fff;font-weight:800;padding:12px 18px;border-radius:var(--cam-rad);white-space:nowrap;font-size:.96rem}
.cam-hd .cam-tel:hover{background:#b8171c}
.cam-hd .cam-tel svg{width:17px;height:17px;fill:#fff}
.cam-burger{display:none;margin-left:auto;width:46px;height:44px;border:0;background:var(--cam-blue);border-radius:var(--cam-rad);cursor:pointer;position:relative}
.cam-burger span,.cam-burger span::before,.cam-burger span::after{content:"";position:absolute;left:12px;width:22px;height:2px;background:#fff;transition:.25s}
.cam-burger span{top:21px}.cam-burger span::before{top:-7px}.cam-burger span::after{top:7px}
.cam-mega{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(8px);width:min(760px,86vw);background:#fff;border:1px solid var(--cam-line);border-radius:var(--cam-radlg);box-shadow:var(--cam-shadow);padding:22px;opacity:0;visibility:hidden;transition:.22s;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px 26px;z-index:60}
.cam-nav>li.is-open .cam-mega,.cam-nav>li:focus-within .cam-mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.cam-mega .cam-mtitle{font-family:var(--cam-fd);font-size:.82rem;color:var(--cam-red);letter-spacing:1px;margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid var(--cam-line)}
.cam-mega a{display:block;padding:7px 9px;border-radius:var(--cam-rad);font-weight:600;font-size:.92rem;color:var(--cam-ink)}
.cam-mega a:hover{background:var(--cam-grey);color:var(--cam-red)}
.cam-mega .cam-mcard{grid-column:3;grid-row:1/span 9;background:linear-gradient(160deg,var(--cam-blue),var(--cam-navy));color:#fff;border-radius:var(--cam-rad);padding:18px;display:flex;flex-direction:column;justify-content:flex-end}
.cam-mega .cam-mcard strong{color:#fff;font-family:var(--cam-fd);font-size:1.15rem;display:block;margin-bottom:6px}
.cam-mega .cam-mcard span{font-size:.85rem;color:#cdd8ec;margin-bottom:12px}
.cam-mega .cam-mcard a{background:var(--cam-red);color:#fff;text-align:center;font-weight:800}
.cam-mega .cam-mcard a:hover{background:#fff;color:var(--cam-red)}
.cam-btn{display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:1rem;padding:15px 26px;border-radius:var(--cam-rad);border:2px solid transparent;cursor:pointer;transition:.2s;letter-spacing:.3px}
.cam-btn svg{width:18px;height:18px}
.cam-btn--red{background:var(--cam-red);color:#fff;border-color:var(--cam-red)}
.cam-btn--red:hover{background:#b8171c;border-color:#b8171c;transform:translateY(-2px)}
.cam-btn--blue{background:var(--cam-blue);color:#fff;border-color:var(--cam-blue)}
.cam-btn--blue:hover{background:var(--cam-navy);border-color:var(--cam-navy)}
.cam-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.cam-btn--ghost:hover{background:#fff;color:var(--cam-blue)}
.cam-btn--gb{background:transparent;color:var(--cam-blue);border-color:var(--cam-blue)}
.cam-btn--gb:hover{background:var(--cam-blue);color:#fff}
.cam-hero{position:relative;color:#fff;padding:190px 0 96px;overflow:hidden;background:var(--cam-navy)}
.cam-hero .cam-hbg{position:absolute;inset:0;z-index:0}
.cam-hero .cam-hbg img{width:100%;height:100%;object-fit:cover;opacity:.5}
.cam-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,rgba(7,27,58,.94) 30%,rgba(11,58,120,.72) 65%,rgba(7,27,58,.55))}
.cam-hero .cam-wrap{position:relative;z-index:2;max-width:900px}
.cam-hero .cam-eye{display:inline-flex;align-items:center;gap:9px;background:rgba(216,30,36,.16);border:1px solid rgba(216,30,36,.5);color:#ffd7d9;font-weight:700;font-size:.82rem;letter-spacing:1.5px;text-transform:uppercase;padding:7px 15px;border-radius:40px;margin-bottom:22px}
.cam-hero h1{color:#fff;max-width:16ch}
.cam-hero h1 em{display:block;color:var(--cam-red)}
.cam-hero .cam-sub{font-size:1.18rem;color:#dbe4f2;max-width:60ch;margin:18px 0 30px}
.cam-hero .cam-cta{display:flex;gap:14px;flex-wrap:wrap}
.cam-hero .cam-trust{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.16)}
.cam-hero .cam-trust div{font-size:.9rem;color:#cdd8ec}
.cam-hero .cam-trust b{display:block;font-family:var(--cam-fd);font-size:1.7rem;color:#fff;letter-spacing:.5px}
.cam-sec{position:relative;padding:78px 0}
.cam-sec--grey{background:var(--cam-grey)}
.cam-sec--navy{background:var(--cam-navy);color:#fff}
.cam-sec--navy h2{color:#fff}.cam-sec--navy p{color:#c9d4e8}
.cam-sec--blue{background:linear-gradient(160deg,var(--cam-blue),var(--cam-navy));color:#fff}
.cam-sec--blue h2{color:#fff}
.cam-lead{max-width:760px;margin:0 auto 46px;text-align:center}
.cam-lead.cam-left{margin-left:0;text-align:left}
.cam-eyebrow{display:inline-block;font-family:var(--cam-fd);color:var(--cam-red);letter-spacing:2px;font-size:.9rem;margin-bottom:10px}
.cam-sec--navy .cam-eyebrow,.cam-sec--blue .cam-eyebrow{color:#ff9ba0}
.cam-lead p{color:var(--cam-mut);font-size:1.06rem}
.cam-sec--navy .cam-lead p{color:#c9d4e8}
.cam-split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;margin:40px 0}
.cam-split.rev .cam-split__img{order:2}
.cam-split__img{position:relative;border-radius:var(--cam-radlg);overflow:hidden;box-shadow:var(--cam-shadow);aspect-ratio:4/3;z-index:1}
.cam-split__img::before{content:"";position:absolute;left:-18px;bottom:-18px;width:120px;height:120px;z-index:0;background:repeating-linear-gradient(45deg,var(--cam-red) 0 3px,transparent 3px 11px);opacity:.5}
.cam-split__img img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.cam-split__txt h2{margin-bottom:.4em}
.cam-split__txt ul{list-style:none;padding:0;margin:16px 0 0}
.cam-split__txt li{position:relative;padding:7px 0 7px 32px;color:var(--cam-ink)}
.cam-split__txt li::before{content:"";position:absolute;left:0;top:12px;width:18px;height:18px;border-radius:3px;background:var(--cam-blue);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>") center/13px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>") center/13px no-repeat}
.cam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cam-grid.g2{grid-template-columns:repeat(2,1fr)}
.cam-grid.g4{grid-template-columns:repeat(4,1fr)}
.cam-card{background:#fff;border:1px solid var(--cam-line);border-radius:var(--cam-radlg);overflow:hidden;transition:.25s;display:flex;flex-direction:column}
.cam-card:hover{transform:translateY(-6px);box-shadow:var(--cam-shadow);border-color:transparent}
.cam-card__img{aspect-ratio:16/11;overflow:hidden}
.cam-card__img img{width:100%;height:100%;object-fit:cover;transition:.4s}
.cam-card:hover .cam-card__img img{transform:scale(1.06)}
.cam-card__b{padding:22px 22px 24px}
.cam-card__b h3{margin-bottom:.35em}
.cam-card__b p{color:var(--cam-mut);font-size:.96rem;margin-bottom:14px}
.cam-card__more{font-weight:800;color:var(--cam-red);font-size:.9rem;display:inline-flex;align-items:center;gap:6px;margin-top:auto}
.cam-feat{background:#fff;border:1px solid var(--cam-line);border-radius:var(--cam-radlg);padding:26px 24px;transition:.25s}
.cam-feat:hover{border-color:var(--cam-blue);box-shadow:var(--cam-shadow);transform:translateY(-4px)}
.cam-feat .cam-ico{width:52px;height:52px;border-radius:var(--cam-rad);background:var(--cam-grey);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.cam-feat .cam-ico svg{width:28px;height:28px;fill:none;stroke:var(--cam-blue);stroke-width:1.8}
.cam-feat h3{margin-bottom:.35em}
.cam-feat p{color:var(--cam-mut);font-size:.95rem;margin:0}
.cam-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;text-align:center}
.cam-stat b{font-family:var(--cam-fd);font-size:clamp(2.1rem,4vw,3.1rem);color:var(--cam-red);display:block;line-height:1}
.cam-sec--navy .cam-stat b,.cam-sec--blue .cam-stat b{color:#fff}
.cam-stat span{font-weight:600;color:var(--cam-mut);font-size:.95rem}
.cam-sec--navy .cam-stat span{color:#aebbd4}
.cam-steps{counter-reset:st;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.cam-step{position:relative;padding:26px 20px;background:#fff;border:1px solid var(--cam-line);border-radius:var(--cam-radlg)}
.cam-sec--navy .cam-step{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}
.cam-step::before{counter-increment:st;content:counter(st);position:absolute;top:-18px;left:20px;width:44px;height:44px;background:var(--cam-red);color:#fff;font-family:var(--cam-fd);font-size:1.3rem;display:flex;align-items:center;justify-content:center;border-radius:var(--cam-rad)}
.cam-step h3{margin:16px 0 .3em}
.cam-step p{color:var(--cam-mut);font-size:.94rem;margin:0}
.cam-sec--navy .cam-step h3{color:#fff}.cam-sec--navy .cam-step p{color:#c1cde3}
.cam-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.cam-zone{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--cam-line);border-radius:var(--cam-rad);padding:13px 16px;font-weight:700;color:var(--cam-blue2);transition:.2s;font-size:.95rem}
.cam-zone:hover{background:var(--cam-blue);color:#fff;border-color:var(--cam-blue)}
.cam-zone svg{width:16px;height:16px;fill:var(--cam-red);flex-shrink:0}
.cam-zone:hover svg{fill:#fff}
.cam-faq{max-width:840px;margin:0 auto}
.cam-q{border:1px solid var(--cam-line);border-radius:var(--cam-rad);margin-bottom:12px;background:#fff;overflow:hidden}
.cam-q>button{width:100%;text-align:left;background:none;border:0;padding:19px 54px 19px 22px;font-family:var(--cam-ff);font-weight:800;font-size:1.04rem;color:var(--cam-blue2);cursor:pointer;position:relative;line-height:1.4}
.cam-q>button::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--cam-red);font-weight:400}
.cam-q.open>button::after{content:"\2212"}
.cam-q__a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.cam-q.open .cam-q__a{max-height:600px}
.cam-q__a div{padding:0 22px 20px;color:var(--cam-mut)}
.cam-ctab{background:linear-gradient(115deg,var(--cam-red),#a5141a);color:#fff;border-radius:var(--cam-radlg);padding:44px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;box-shadow:var(--cam-shadow)}
.cam-ctab h2{color:#fff;margin:0 0 6px}
.cam-ctab p{color:#ffe0e1;margin:0}
.cam-ctab .cam-ctab__a{display:flex;gap:12px;flex-wrap:wrap}
.cam-ctab .cam-btn--white{background:#fff;color:var(--cam-red);border-color:#fff}
.cam-ctab .cam-btn--white:hover{background:var(--cam-navy);color:#fff;border-color:var(--cam-navy)}
.cam-prose h2{margin-top:1.4em}
.cam-prose h3{margin-top:1.3em;color:var(--cam-blue2)}
.cam-prose ul{padding-left:0;list-style:none}
.cam-prose ul li{position:relative;padding:6px 0 6px 30px}
.cam-prose ul li::before{content:"";position:absolute;left:2px;top:15px;width:8px;height:8px;background:var(--cam-red);border-radius:2px;transform:rotate(45deg)}
.cam-related{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
.cam-rel{display:block;background:#fff;border:1px solid var(--cam-line);border-left:4px solid var(--cam-red);border-radius:var(--cam-rad);padding:18px 20px;transition:.2s}
.cam-rel:hover{transform:translateX(4px);box-shadow:var(--cam-shadow)}
.cam-rel b{color:var(--cam-blue);display:block;font-size:1.02rem}
.cam-rel span{color:var(--cam-mut);font-size:.88rem}
.cam-form{background:#fff;border:1px solid var(--cam-line);border-radius:var(--cam-radlg);padding:30px;box-shadow:var(--cam-shadow)}
.cam-form .cam-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cam-form label{display:block;font-weight:700;font-size:.9rem;color:var(--cam-blue2);margin:14px 0 6px}
.cam-form input,.cam-form textarea,.cam-form select{width:100%;padding:13px 15px;border:1px solid var(--cam-line);border-radius:var(--cam-rad);font-family:inherit;font-size:1rem;background:var(--cam-grey)}
.cam-form input:focus,.cam-form textarea:focus,.cam-form select:focus{outline:2px solid var(--cam-blue);background:#fff}
.cam-form textarea{min-height:120px;resize:vertical}
.cam-hp{position:absolute;left:-9999px}
.cam-consent{display:flex;gap:10px;align-items:flex-start;margin:18px 0;font-size:.86rem;color:var(--cam-mut)}
.cam-consent input{width:auto;margin-top:4px}
.cam-ok{background:#e7f6ec;border:1px solid #8fd3a6;color:#1a7d43;padding:14px 18px;border-radius:var(--cam-rad);margin-bottom:18px;font-weight:600}
.cam-cinfo{background:linear-gradient(160deg,var(--cam-blue),var(--cam-navy));color:#fff;border-radius:var(--cam-radlg);padding:34px}
.cam-cinfo h3{color:#fff}
.cam-cinfo a{color:#fff}
.cam-cinfo .cam-cline{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.cam-cinfo .cam-cline svg{width:22px;height:22px;fill:var(--cam-red);flex-shrink:0;margin-top:3px}
.cam-cinfo .cam-cline b{display:block;font-size:1.1rem}
.cam-cinfo .cam-cline span{color:#c9d4e8;font-size:.92rem}
.cam-ft{background:var(--cam-navy);color:#c9d4e8;padding:64px 0 0}
.cam-ft__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;padding-bottom:44px}
.cam-ft h4{color:#fff;font-size:1rem;letter-spacing:1px;margin-bottom:18px}
.cam-ft a{color:#c9d4e8;display:block;padding:5px 0;font-size:.93rem}
.cam-ft a:hover{color:#fff;padding-left:5px}
.cam-ft__brand img{height:56px;margin-bottom:16px}
.cam-ft__brand p{font-size:.92rem;color:#9fb0cd}
.cam-ft__tel{display:inline-flex;align-items:center;gap:9px;background:var(--cam-red);color:#fff;font-weight:800;padding:12px 20px;border-radius:var(--cam-rad);margin-top:8px}
.cam-ft__tel svg{width:16px;height:16px;fill:#fff}
.cam-ft__bot{border-top:1px solid rgba(255,255,255,.12);padding:20px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.85rem;color:#8497b6}
.cam-ft__bot a{display:inline;color:#8497b6}
.cam-bc{background:var(--cam-grey);padding:14px 0;font-size:.85rem;color:var(--cam-mut);border-bottom:1px solid var(--cam-line)}
.cam-bc a{color:var(--cam-blue)}
.cam-bc span{margin:0 8px;color:var(--cam-line)}
.cam-mob{position:fixed;inset:0;background:var(--cam-navy);z-index:2000;transform:translateX(100%);transition:.3s;overflow-y:auto;padding:80px 24px 40px;display:none}
.cam-mob.open{transform:translateX(0)}
.cam-mob a{display:block;color:#fff;font-family:var(--cam-fd);font-size:1.3rem;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);letter-spacing:.5px}
.cam-mob .cam-msub a{font-family:var(--cam-ff);font-size:1rem;color:#c9d4e8;padding:9px 0 9px 16px;border:0}
.cam-mob__close{position:absolute;top:22px;right:22px;width:44px;height:44px;background:var(--cam-red);border:0;border-radius:var(--cam-rad);color:#fff;font-size:1.6rem;cursor:pointer}
.cam-mob__tel{background:var(--cam-red);color:#fff !important;font-family:var(--cam-fd) !important;text-align:center;border-radius:var(--cam-rad);margin-top:20px;border:0 !important}
@media(max-width:1080px){
  .cam-nav,.cam-hd .cam-tel{display:none}
  .cam-burger{display:block}
  .cam-mob{display:block}
  .cam-split{grid-template-columns:1fr;gap:30px}
  .cam-split.rev .cam-split__img{order:0}
  .cam-grid,.cam-grid.g4{grid-template-columns:repeat(2,1fr)}
  .cam-steps{grid-template-columns:repeat(2,1fr)}
  .cam-stats{grid-template-columns:repeat(2,1fr)}
  .cam-ft__top{grid-template-columns:1fr 1fr}
  .cam-related{grid-template-columns:1fr}
}
@media(max-width:640px){
  body{font-size:16px}
  .cam-hero{padding:150px 0 70px}
  .cam-grid,.cam-grid.g2,.cam-grid.g4,.cam-form .cam-row{grid-template-columns:1fr}
  .cam-ctab{padding:32px 24px}
  .cam-ft__top{grid-template-columns:1fr}
  .cam-hero .cam-cta .cam-btn{width:100%;justify-content:center}
}

.cam-ft__brand .cam-ftlogo{display:inline-block;background:#fff;padding:12px 16px;border-radius:10px;margin-bottom:16px}
.cam-ft__brand .cam-ftlogo img{height:48px;margin:0}
.cam-hero h1 em{padding-bottom:2px}

.cam-hero h1{max-width:20ch}
.cam-hero h1 em{margin-top:6px;font-size:.62em}
@media(max-width:640px){.cam-hero h1{max-width:100%}}
