*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#232323;background:#f7f4ee}a{color:inherit}.wrap{max-width:1180px;margin:auto;padding:90px 28px}.nav{height:92px;padding:12px 4vw;background:#fff;display:flex;align-items:center;gap:34px;position:sticky;top:0;z-index:20;border-bottom:1px solid #eee}.brand img{width:128px;height:68px;object-fit:contain}.nav nav{display:flex;gap:28px;margin-left:auto}.nav nav a{text-decoration:none;font-weight:700;font-size:14px}.lang{border:1px solid #ddd;background:#fff;border-radius:30px;padding:10px 14px;font-weight:800;cursor:pointer}.hero{height:78vh;min-height:600px;position:relative;display:flex;align-items:end;overflow:hidden}.hero-bg{position:absolute;width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,20,.75),rgba(20,20,20,.08)),linear-gradient(0deg,rgba(0,0,0,.5),transparent 50%)}.hero-copy{position:relative;color:#fff;max-width:820px;padding:8vw}.eyebrow,.kicker{font-size:12px;letter-spacing:.2em;font-weight:900}.hero h1{font-size:clamp(52px,7vw,96px);line-height:.91;margin:20px 0}.hero p{font-size:19px;line-height:1.6;max-width:650px}.actions{display:flex;gap:12px;margin-top:30px}.btn{padding:15px 20px;border-radius:4px;text-decoration:none;font-weight:800}.primary{background:#d64e3f}.ghost{border:1px solid rgba(255,255,255,.6)}.intro{text-align:center;max-width:900px;margin:auto;padding:100px 28px}.intro h2,.section-head h2,.about h2,.contact h2{font-size:clamp(34px,5vw,62px);line-height:1.05;margin:16px 0}.intro>p:last-child{font-size:19px;line-height:1.7;color:#666}.kicker{color:#d64e3f}.section-head{display:flex;gap:20px;align-items:start;border-top:1px solid #bbb;padding-top:20px}.section-head span{font-weight:900;color:#d64e3f}.section-head h2{margin:0}.service-grid{display:grid;grid-template-columns:repeat(5,1fr);margin-top:50px;border:1px solid #ddd}.service-grid article{padding:32px 24px;background:#fff;border-right:1px solid #ddd}.service-grid article:last-child{border:0}.service-grid b{font-size:30px;color:#efb349}.service-grid h3{font-size:22px}.service-grid p{line-height:1.6;color:#666}.work{background:#242424;color:#fff}.light{border-color:#555}.worklead{max-width:700px;color:#bbb;font-size:18px;line-height:1.6;margin:25px 0 70px}.project{margin:0 0 90px}.project-title{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:25px}.project-title small{color:#efb349;font-weight:900;letter-spacing:.15em}.project-title h3{font-size:34px;margin:8px 0 0}.project-title p{max-width:420px;color:#aaa}.process{display:grid;gap:12px}.process.three{grid-template-columns:repeat(3,1fr)}.process.two{grid-template-columns:repeat(2,1fr)}figure{margin:0;position:relative;overflow:hidden;background:#333}figure img{width:100%;height:420px;object-fit:cover;display:block;transition:.3s}figure:hover img{transform:scale(1.015)}figcaption{position:absolute;left:14px;bottom:14px;background:#fff;color:#222;padding:8px 10px;font-size:11px;font-weight:900;letter-spacing:.15em}.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.gallery img{height:360px}.about{display:grid;grid-template-columns:1.2fr 1fr;gap:80px}.about p{font-size:18px;line-height:1.7;color:#666}.contact{background:#efb349}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact .kicker{color:#7c2d25}.contact-grid>div>p{font-size:18px}.contact-cards{display:grid;gap:10px}.contact-cards a{background:#fff;padding:20px 22px;text-decoration:none;display:grid;gap:6px}.contact-cards small{font-weight:900;color:#d64e3f}.contact-cards strong{font-size:24px}.contact-cards span{color:#666}footer{background:#fff;display:flex;align-items:center;justify-content:center;gap:30px;padding:35px}footer img{width:100px;height:60px;object-fit:contain}footer p{color:#777}@media(max-width:900px){.nav nav{display:none}.nav{height:76px}.brand img{width:105px;height:55px}.hero{min-height:620px}.hero-copy{padding:40px 25px}.hero h1{font-size:54px}.service-grid{grid-template-columns:1fr}.service-grid article{border-right:0;border-bottom:1px solid #ddd}.process.three,.process.two,.gallery,.about,.contact-grid{grid-template-columns:1fr}.project-title{display:block}.process figure img,.gallery img{height:330px}.wrap{padding:70px 22px}.intro{padding:75px 22px}.actions{flex-direction:column;align-items:flex-start}}
/* V2 — oak frame project */
.oak-project{margin-top:84px}.oak-four{grid-template-columns:repeat(4,1fr)}.oak-four figure img{height:500px;object-fit:cover}.oak-four figure:nth-child(1) img{object-position:center 62%}.oak-four figure:nth-child(2) img{object-position:center 60%}.oak-four figure:nth-child(3) img{object-position:center 55%}.oak-four figure:nth-child(4) img{object-position:center 58%}@media(max-width:900px){.oak-four{grid-template-columns:1fr 1fr}.oak-four figure img{height:420px}}@media(max-width:560px){.oak-four{grid-template-columns:1fr}.oak-four figure img{height:460px}}

/* V2: complete brand and house-journey redesign */
:root{--navy:#0b2342;--navy-light:#12385d;--brand-red:#c94c3e;--brand-gold:#efb538}html{scroll-behavior:smooth;scroll-padding-top:90px}body{background:#f5f3ee;color:#102944}#scroll-progress{position:fixed;z-index:999;top:0;left:0;height:4px;width:0;background:linear-gradient(90deg,var(--brand-red),var(--brand-gold));transition:width .1s}.nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);box-shadow:0 8px 25px #0b23420d;backdrop-filter:blur(12px)}.nav nav a{transition:color .25s}.nav nav a:hover{color:var(--brand-red)}.lang{font-size:24px!important;line-height:1;cursor:pointer;background:#f3f5f7!important;border:2px solid #e4e9ee!important;border-radius:50%!important;width:48px!important;height:48px!important}.hero{min-height:680px;overflow:hidden}.hero .shade{background:linear-gradient(90deg,rgba(6,25,49,.94) 0%,rgba(6,25,49,.76) 46%,rgba(6,25,49,.18) 100%)!important}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(48px,6vw,94px)!important;line-height:1.02;letter-spacing:-.045em}.hero .eyebrow{color:var(--brand-gold);font-weight:900;letter-spacing:.16em}.hero .slogan{font-size:clamp(20px,2vw,29px)!important;font-weight:800!important;color:var(--brand-gold)!important;line-height:1.35!important;max-width:640px}.roof-outline{position:absolute;right:-8%;top:5%;height:580px;width:580px;border-top:4px solid #efb53844;border-left:4px solid #efb53844;transform:rotate(45deg);z-index:1;pointer-events:none}.btn.primary{background:var(--brand-red)!important}.btn.ghost{border-color:#ffffffaa!important}.intro{position:relative;overflow:hidden;background:#f5f3ee!important;padding-top:115px!important;padding-bottom:115px!important}.house-mark{font-size:130px;color:var(--brand-red);line-height:.5;margin-bottom:55px;opacity:.65}.intro h2{color:var(--navy);letter-spacing:-.04em}.intro .kicker,.about .kicker{color:var(--brand-red)}.services{background:#fff!important;position:relative}.services:before{content:'';position:absolute;top:0;left:0;right:0;height:9px;background:repeating-linear-gradient(90deg,var(--brand-red) 0 65px,var(--brand-gold) 65px 130px,var(--navy) 130px 195px)}.section-head{border-color:#d4dbe3}.section-head>span{color:var(--brand-red)!important}.section-head h2{color:var(--navy);font-size:clamp(40px,5vw,64px);letter-spacing:-.04em}.service-grid article{background:#f5f3ee!important;border-radius:14px!important;border:1px solid #e6e9ed!important;box-shadow:0 12px 30px #0b23420a;transition:transform .35s,box-shadow .35s;overflow:hidden;position:relative}.service-grid article:after{content:'';position:absolute;bottom:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--brand-red),var(--brand-gold))}.service-grid article:hover{transform:translateY(-9px);box-shadow:0 20px 42px #0b234225}.service-grid article>b{display:grid!important;place-items:center;width:76px;height:76px;background:var(--navy);border-radius:18px;color:var(--brand-gold);font-size:35px!important;box-shadow:7px 7px 0 #c94c3e22}.service-grid h3{color:var(--navy)}.work{background:linear-gradient(150deg,#0a1c35,#12365a)!important;position:relative}.work:before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent 130px,#ffffff08 131px,#ffffff08 132px)}.work .wrap{position:relative}.work .section-head h2{color:#fff}.work .section-head>span,.work .project-title small{color:var(--brand-gold)!important}.project{border-top:1px solid #ffffff22;padding-top:35px;margin-top:70px}.project h3{color:#fff}.process figure,.gallery figure{border-radius:12px;overflow:hidden;box-shadow:0 18px 35px #0003}.process img,.gallery img{transition:transform .65s ease}.process figure:hover img,.gallery figure:hover img{transform:scale(1.04)}.process figcaption,.gallery figcaption{background:#fff!important;color:var(--navy)!important;border-left:5px solid var(--brand-red);font-weight:900!important;padding:10px 14px!important;letter-spacing:.06em}.about{background:#f5f3ee!important;position:relative}.about:before{content:'';position:absolute;left:0;right:0;top:0;height:45px;background:linear-gradient(135deg,#0a1c35 49%,transparent 50%)}.about h2{color:var(--navy)}.contact{background:radial-gradient(circle at 85% 5%,#1a4873,#0b2342 55%,#08182d)!important;position:relative;overflow:hidden}.contact:before{content:'⌂';position:absolute;font-size:650px;line-height:1;right:-70px;top:-230px;color:#ffffff09;pointer-events:none}.contact .wrap{position:relative}.contact h2{font-size:clamp(45px,5.4vw,76px)!important;letter-spacing:-.045em;color:#fff}.contact .kicker{color:var(--brand-gold)!important;letter-spacing:.16em;font-weight:900}.contact-cards a{display:grid!important;grid-template-columns:60px minmax(0,1fr) 22px;align-items:center;gap:18px;background:#fff!important;color:var(--navy)!important;padding:20px!important;border-radius:13px!important;box-shadow:0 18px 35px #0002;transition:transform .25s}.contact-cards a:hover{transform:translateX(7px)}.contact-cards a>div{min-width:0}.contact-icon{display:grid!important;place-items:center;width:58px;height:58px;background:#f2f5f8;border-radius:12px;font-size:32px}.email-icon{background:var(--brand-gold);color:#fff;font-size:28px}.contact-cards small{color:var(--brand-red)!important;font-weight:900!important;letter-spacing:.08em}.contact-cards strong{font-size:clamp(17px,2vw,26px)!important;overflow-wrap:anywhere}.contact-cards a>i{font-style:normal;font-size:32px;color:var(--navy)}footer{background:#fff!important}.reveal-ready{opacity:0;transform:translateY(36px);transition:opacity .75s ease,transform .75s ease}.reveal-ready.is-visible{opacity:1;transform:none}@media(max-width:800px){.nav nav{display:none!important}.hero{min-height:640px}.hero h1{font-size:clamp(42px,10vw,65px)!important}.roof-outline{height:300px;width:300px}.service-grid{grid-template-columns:1fr!important}.contact-grid{grid-template-columns:1fr!important}.contact-cards a{grid-template-columns:48px minmax(0,1fr) 14px;gap:12px;padding:14px!important}.contact-icon{width:45px;height:45px;font-size:25px}.contact-cards strong{font-size:18px!important}.process.oak-four{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:520px){.process.oak-four{grid-template-columns:1fr!important}.contact-cards strong{font-size:16px!important}}@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* V3: approved designs */
:root{--brand-red:#e52529;--brand-gold:#f2b300;--navy:#08365d}
.nav{background:var(--navy)!important;border:0!important;color:white!important;min-height:92px;gap:20px}.nav:before{content:"";position:absolute;left:0;top:0;width:min(25vw,320px);height:100%;background:#fff;clip-path:polygon(0 100%,0 38%,50% 0,100% 100%);pointer-events:none}.nav .brand{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;min-width:145px;text-decoration:none}.nav .brand img{height:54px;width:90px;mix-blend-mode:multiply}.nav-wordmark{font-size:10px;font-weight:900;white-space:nowrap}.rofe{color:#e52529!important}.renovations{color:#f2b300!important}.nav nav a{color:#fff}.nav nav a:hover{color:#f2b300}.lang{display:grid!important;place-items:center;padding:0!important;background:#103b63!important;border:1px solid #f2b300!important;color:white;transition:transform .2s,box-shadow .2s}.lang:hover{transform:scale(1.09);box-shadow:0 0 0 4px #f2b30033}
.hero{min-height:680px;align-items:center}.hero .shade{background:linear-gradient(90deg,#082747e8 0%,#0827479a 50%,#08274721 100%)!important}.hero-copy{max-width:760px}.hero h1{font-family:Georgia,'Times New Roman',serif!important;font-weight:600!important;letter-spacing:-.028em!important;line-height:1.13!important;font-size:clamp(38px,5.2vw,73px)!important;text-wrap:balance}.hero .actions{margin-top:36px}.hero .primary{background:#e52529!important;border-radius:8px;padding:18px 34px;box-shadow:0 10px 28px #0004}.hero .primary:hover{background:#bd1b20!important}
.intro{padding:95px 28px 70px!important}.mini-house svg{height:90px;width:130px}.mini-house svg path{stroke-width:8;fill:none;stroke-linecap:square;stroke-linejoin:round}.intro .kicker{color:#c13d36;font-size:13px}.intro h2{font-size:clamp(34px,4.6vw,58px);max-width:800px;margin:20px auto 0}.services:before{display:none}.service-grid{gap:12px;border:0}.service-grid article{padding:26px 18px!important;min-width:0}.service-grid article:after{background:var(--brand-gold)}.service-grid b{color:#f2b300}.service-icon svg{width:51px;height:51px}.service-grid h3{font-size:20px}.service-grid p{font-size:15px}.work{background:linear-gradient(150deg,#093b70,#0a315b)!important}
.about{grid-template-columns:1.15fr 1fr;gap:55px;align-items:center}.about:before{display:none}.about-brand{display:flex;align-items:center;gap:22px}.about-roof svg{width:100px;height:94px}.about-roof path{fill:none;stroke-width:7}.wordmark{font-size:clamp(21px,2.5vw,34px);font-weight:900;white-space:nowrap;letter-spacing:-.025em}.brand-sub{font-size:12px;letter-spacing:.18em;color:#173e64;font-weight:800}.about h2{font-size:clamp(35px,4.5vw,58px);line-height:1.08;margin-top:24px}.coverage{border-left:1px solid #cbd5db;padding-left:35px}.coverage>p{font-size:clamp(19px,2.2vw,26px);line-height:1.4;color:#12385d;font-weight:600}.region-map{max-width:410px}.region-map svg{width:100%;height:auto}.map-bg{fill:#e4e0d8}.map-region{fill:#103b63;stroke:#fff;stroke-width:3;stroke-linejoin:round}.map-label{fill:#fff;font-size:15px;font-weight:bold;text-anchor:middle}.region-map small{font-size:11px;letter-spacing:.18em;color:#103b63;font-weight:800}
.contact{background:linear-gradient(115deg,#06345b,#07508a)!important}.contact:before{display:none!important}.contact-grid{align-items:center;gap:45px}.contact h2{font-size:clamp(45px,6vw,84px)!important;line-height:1.05}.contact-cards a{grid-template-columns:72px minmax(0,1fr) 18px!important;padding:20px 22px!important;border-radius:16px!important}.contact-cards a .contact-icon{border-right:1px solid #d3dbe3;border-radius:0;background:transparent;width:70px;height:68px}.contact-cards a .email-icon{background:#f2b300;border-radius:14px;width:58px;height:58px;border:0;color:#073a63}.contact-cards a>div{display:flex;flex-direction:column;gap:5px}.contact-cards a>div>span{color:#64738b;font-size:14px}.contact-cards strong{color:#0b3158}.contact-cards a:hover{transform:translateY(-3px)}
@media(max-width:900px){.nav:before{width:190px}.nav .brand{min-width:100px}.nav-wordmark{font-size:8px}.about{grid-template-columns:1fr;gap:15px}.coverage{border-left:0;padding-left:0}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:540px){.nav{height:78px;min-height:78px}.nav:before{width:155px}.hero{min-height:560px}.hero-copy{padding:32px 22px}.service-grid{grid-template-columns:1fr!important}.about-brand{gap:10px}.about-roof svg{width:70px}.wordmark{font-size:20px}.brand-sub{font-size:9px}.contact-cards a{grid-template-columns:54px minmax(0,1fr) 14px!important;gap:12px;padding:15px!important}.contact-cards a .contact-icon{width:52px;height:52px;font-size:24px}.contact-cards a .email-icon{width:48px;height:48px}.contact-cards strong{font-size:16px!important}}

/* V4: approved logo treatment and clean, unnumbered section headings */
.intro-logo { display:flex; justify-content:center; align-items:center; margin:0 auto 1.1rem; }
.intro-logo img { display:block; width:clamp(92px, 11vw, 150px); height:auto; object-fit:contain; mix-blend-mode:multiply; }
.section-head > span { display:none !important; }

/* V4.1: approved logo presentation */
.intro-logo img{width:clamp(170px,23vw,260px)!important;max-width:80vw;height:auto!important;}
.intro-logo{margin-bottom:22px!important;}
.intro .kicker{color:#45566d!important;}
@media(max-width:600px){.intro-logo img{width:190px!important;}}

/* V5: coherent project photography */
.project .process img { display:block; width:100%; height:100%; object-fit:cover; }
.project .process figure { overflow:hidden; }
@media(max-width:650px){.project .process.three,.project .process.two{grid-template-columns:1fr;} .project .process figure{min-height:240px;} }

/* V6: clear France map, preserve approved About layout */
.region-map{max-width:460px;margin-top:18px}.region-map svg{display:block;width:100%;height:auto;overflow:visible}.region-map small{display:block;margin-top:5px;font-size:10px;letter-spacing:.14em}

/* V8: only approved gallery, About logo and offline location map adjustments */
.work .wrap{max-width:1360px}
.work .project{margin-top:84px;margin-bottom:84px;padding-top:44px;border-top:1px solid #ffffff44}
.work .project-title{margin-bottom:26px}
.work .project-title h3{font-size:clamp(30px,3.2vw,44px)}
.work .project-title p{color:#e0e9f2;font-size:16px;line-height:1.55}
.work .process.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.work .process.oak-four{gap:16px}
.work .process figure{aspect-ratio:4/4.4;min-height:0}
.work .process figure img{width:100%;height:100%;object-fit:cover}
.work .process.oak-four figure{aspect-ratio:3/4}
.work .project-featured figure img{object-position:center}
.about-main-logo{width:clamp(220px,28vw,365px);max-width:100%;height:auto;display:block;object-fit:contain}
.region-map{max-width:520px;margin-top:20px}
.france-map-image{display:block;width:100%;height:auto;max-height:450px;object-fit:contain}
@media(max-width:760px){.work .process.three{grid-template-columns:1fr;gap:20px}.work .process figure{aspect-ratio:4/3}.work .process.oak-four{grid-template-columns:repeat(2,minmax(0,1fr))!important}.work .process.oak-four figure{aspect-ratio:3/4}.work .project{margin-top:60px;margin-bottom:60px}}
@media(max-width:520px){.work .process.oak-four{grid-template-columns:1fr!important}.work .process.oak-four figure{aspect-ratio:4/3}}

/* Approved mobile-only refinements — Oct 2026. Desktop V8 remains unchanged. */
@media (max-width: 760px) {
  /* Crisp, geometric white roof behind the original ROFE brand image. */
  .nav { background: #08365d !important; isolation: isolate; }
  .nav::before {
    width: 155px; height: 100%; background: #fff;
    clip-path: polygon(0 100%, 0 38%, 50% 0, 100% 100%);
    -webkit-clip-path: polygon(0 100%, 0 38%, 50% 0, 100% 100%);
    transform: translateZ(0);
  }
  .nav .brand img { mix-blend-mode: normal; }
  /* SemiBold Open Sans applies to the mobile hero slogan; words unchanged. */
  .hero h1 {
    font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: -.025em !important;
    line-height: 1.16 !important;
  }
  /* Lighten the tint so the renovated stone house shows more clearly. */
  .hero .shade {
    background: linear-gradient(90deg, rgba(8,39,71,.53) 0%, rgba(8,39,71,.30) 52%, rgba(8,39,71,.09) 100%) !important;
  }
}
