:root {
  --navy: #102e51; --navy-deep: #091f38; --yellow: #f5b800; --yellow-dark: #d9a000;
  --ink: #10263d; --muted: #5c6b79; --soft: #f4f7f9; --line: #dce3e8; --white: #fff;
  --space-1: .5rem; --space-2: 1rem; --space-3: 1.5rem; --space-4: 2rem; --space-5: 3rem; --space-6: 5rem;
  --radius: .75rem; --radius-lg: 1.25rem; --max-width: 1180px;
  --font: Inter, Arial, Helvetica, sans-serif; --shadow: 0 14px 35px rgb(16 46 81 / .08);
}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;color:var(--ink);font-family:var(--font);line-height:1.65;background:#fff}img,svg{display:block;max-width:100%}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:min(calc(100% - 2rem),var(--max-width));margin-inline:auto}.section{padding:var(--space-6) 0}.section-soft{background:var(--soft)}.skip-link{position:fixed;z-index:1000;top:1rem;left:1rem;transform:translateY(-150%);padding:.7rem 1rem;background:var(--yellow);color:var(--navy-deep);font-weight:800;border-radius:.4rem}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.15;color:var(--navy-deep)}h2{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em;margin-bottom:1.2rem}h3{font-size:1.25rem}.eyebrow{display:flex;align-items:center;gap:.65rem;color:var(--navy);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em}.eyebrow span{width:2.2rem;height:3px;background:var(--yellow)}.button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.2rem;padding:.8rem 1.25rem;border:2px solid var(--yellow);border-radius:.45rem;background:var(--yellow);color:var(--navy-deep);font-weight:800;text-decoration:none;transition:background .2s,transform .2s}.button:hover{background:#ffc927;transform:translateY(-2px)}.button svg{width:1.1rem;height:1.1rem;fill:currentColor}.button-secondary{background:transparent;border-color:var(--navy);color:var(--navy)}.button-secondary:hover{background:var(--navy);color:#fff}.button-small{min-height:2.8rem;padding:.55rem 1rem;font-size:.88rem}
.site-header{position:sticky;top:0;z-index:100;background:rgb(255 255 255 / .97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{min-height:5rem;display:flex;align-items:center;gap:2rem}.brand{display:flex;align-items:center;text-decoration:none;flex:none}.brand-logo{display:block;width:clamp(11.5rem,18vw,13.7rem);height:auto}.main-nav{display:flex;align-items:center;gap:1.15rem;margin-left:auto}.main-nav a{text-decoration:none;font-weight:700;font-size:.82rem;white-space:nowrap}.main-nav a:hover{color:#a57c00}.header-actions{display:flex;align-items:center;gap:1rem}.phone-link{display:flex;flex-direction:column;text-decoration:none;font-weight:800;line-height:1.15;color:var(--navy)}.phone-link span{font-size:.62rem;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.menu-toggle{display:none;background:transparent;border:0;padding:.5rem}.menu-toggle span:not(.sr-only){display:block;width:1.5rem;height:2px;background:var(--navy);margin:5px}
.hero{overflow:hidden;padding-top:clamp(4rem,8vw,7rem);background:linear-gradient(90deg,#fff 0 68%,#f6f8fa 68%)}.hero-grid{display:grid;grid-template-columns:1.5fr .75fr;align-items:center;gap:clamp(2rem,8vw,7rem)}.hero-copy h1{font-size:clamp(2.6rem,6vw,5.2rem);letter-spacing:-.055em;margin:.8rem 0 1.5rem}.hero-copy h1 span{display:block;font-size:.29em;letter-spacing:.09em;text-transform:uppercase;color:#967100;margin-bottom:.7rem}.hero-intro{font-size:clamp(1.05rem,2vw,1.25rem);max-width:48rem;color:var(--muted)}.button-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:2rem 0}.trust-list{display:flex;gap:1.5rem;flex-wrap:wrap;list-style:none;padding:0;margin:2.3rem 0 0;font-size:.9rem;font-weight:700}.trust-list span{display:inline-grid;place-items:center;width:1.3rem;height:1.3rem;background:#fff4cc;color:#6c5300;border-radius:50%;margin-right:.35rem}.hero-panel{position:relative;min-height:29rem;padding:3rem 2rem 2rem;background:var(--navy);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.bolt{position:absolute;top:-2rem;right:-.8rem;width:10rem;opacity:.12}.bolt path{fill:var(--yellow)}.panel-kicker{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;color:#b9c7d4}.hero-panel ul{list-style:none;padding:5rem 0 2rem;margin:0}.hero-panel li{display:flex;align-items:center;gap:1.1rem;padding:1rem 0;border-bottom:1px solid rgb(255 255 255 / .15);font-weight:700}.hero-panel li span{min-width:2.2rem;color:var(--yellow);font-size:1.55rem;font-weight:900;line-height:1}.panel-location{display:flex;align-items:center;gap:.6rem;font-size:.85rem}.panel-location svg{width:1.2rem;height:1.2rem;fill:none;stroke:var(--yellow);stroke-width:2}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:2.5rem}.section-heading>div{max-width:42rem}.section-heading>p{max-width:28rem;color:var(--muted)}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.service-card{padding:1.7rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:transform .2s,border-color .2s}.service-card:hover{transform:translateY(-3px);border-color:#c5ac5b}.service-card p{margin:0;color:var(--muted);font-size:.94rem}.icon-box{display:grid;place-items:center;width:3rem;height:3rem;background:#fff5d3;border-radius:.45rem;margin-bottom:1.5rem}.icon-box svg{width:1.5rem;height:1.5rem;fill:none;stroke:var(--navy);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.service-wide{grid-column:span 3;display:flex;align-items:center;gap:1.5rem}.service-wide .icon-box{margin:0;flex:none}
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,7rem);align-items:center}.about-grid>div:last-child>p:not(.eyebrow){color:var(--muted);font-size:1.05rem}.about-visual{position:relative;display:flex;flex-direction:column;justify-content:end;min-height:31rem;padding:2rem;background:var(--navy);border-radius:var(--radius-lg);overflow:hidden;color:#fff}.about-number{font-size:8rem;font-weight:900;color:var(--yellow);line-height:.8;letter-spacing:-.08em}.about-visual p{position:relative;font-size:1.15rem;font-weight:700;margin:1.5rem 0 0}.technical-lines{position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,rgb(255 255 255 / .1) 49% 51%,transparent 52%),linear-gradient(transparent 48%,rgb(255 255 255 / .1) 49% 51%,transparent 52%);background-size:80px 80px;transform:rotate(20deg) scale(1.4)}.values-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:2rem}.values-grid span{position:relative;padding:.8rem 1rem .8rem 2.1rem;background:var(--soft);border-radius:.35rem;font-weight:700;font-size:.9rem}.values-grid span::before{content:"";position:absolute;left:.9rem;top:50%;width:.45rem;height:.45rem;transform:translateY(-50%) rotate(45deg);background:var(--yellow)}
.zone-section,.contact-section{background:var(--navy);color:#fff}.zone-section h2,.contact-section h2{color:#fff}.eyebrow-light{color:#d4dce4}.zone-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}.zone-grid>div>p:not(.eyebrow){color:#ccd6df}.town-list{columns:2;padding:0;margin:2rem 0;list-style:none}.town-list li{position:relative;break-inside:avoid;padding:.4rem 0 .4rem 1.2rem}.town-list li::before{content:"";position:absolute;left:0;top:1rem;width:.4rem;height:.4rem;transform:translateY(-50%);border-radius:50%;background:var(--yellow)}.zone-note{padding-left:1rem;border-left:3px solid var(--yellow);font-size:.9rem}.area-graphic{position:relative;aspect-ratio:1/1;min-height:31rem;border:1px solid rgb(255 255 255 / .18);border-radius:50%;background-color:var(--navy);background-image:url("../images/loire-secteur.svg?v=2"),radial-gradient(circle at 50% 51%,rgb(245 184 0 / .11),transparent 53%);background-position:center,center;background-size:100% 100%,100% 100%;background-repeat:no-repeat;overflow:hidden}.ring{position:absolute;z-index:1;left:50%;top:51%;border:1px dashed rgb(255 255 255 / .22);border-radius:50%;transform:translate(-50%,-50%)}.ring-1{width:28%;height:28%}.ring-2{width:56%;height:56%}.ring-3{width:84%;height:84%}.river-name{position:absolute;z-index:1;top:19%;right:15%;color:#c5dce4;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.map-dot{position:absolute;z-index:2;width:.72rem;height:.72rem;transform:translate(-50%,-50%);border:2px solid var(--navy);border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgb(255 255 255 / .2),0 4px 10px rgb(0 0 0 / .2)}.map-dot:hover{z-index:6}.map-label{position:absolute;left:calc(100% + .55rem);top:50%;width:max-content;max-width:9.5rem;transform:translateY(-50%);padding:.28rem .45rem;border:1px solid rgb(255 255 255 / .13);border-radius:.3rem;background:rgb(9 31 56 / .82);color:#fff;box-shadow:0 3px 10px rgb(0 0 0 / .14);font-size:.6rem;font-weight:700;line-height:1.15;text-align:left;white-space:nowrap}.map-label::before{content:"";position:absolute;right:100%;top:50%;width:.55rem;border-top:1px solid rgb(255 255 255 / .45)}.label-left .map-label{right:calc(100% + .55rem);left:auto;text-align:right}.label-left .map-label::before{right:auto;left:100%}.label-above .map-label{top:auto;bottom:calc(100% + .5rem);left:50%;transform:translateX(-50%)}.label-above .map-label::before{top:100%;right:auto;left:50%;width:0;height:.5rem;border-top:0;border-left:1px solid rgb(255 255 255 / .45)}.label-below .map-label{top:calc(100% + .5rem);left:50%;transform:translateX(-50%);text-align:center}.label-below .map-label::before{right:auto;bottom:100%;top:auto;left:50%;width:0;height:.5rem;border-top:0;border-left:1px solid rgb(255 255 255 / .45)}.dot-angers{top:13%;left:28%}.dot-trelaze{top:26%;left:68%}.dot-ponts{top:30%;left:31%}.dot-murs{top:48%;left:17%}.dot-soulaines{top:67%;left:30%}.dot-saint-melaine{top:68%;left:54%}.dot-brissac{top:78%;left:72%}.dot-home{z-index:3;top:48%;left:54%;width:1.05rem;height:1.05rem;background:var(--yellow);border-color:#fff}.dot-home .map-label strong{display:block;color:var(--yellow);font-size:.55rem;text-transform:uppercase;letter-spacing:.06em}
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:1.3rem}.gallery figure{grid-column:span 2;margin:0}.photo{position:relative;aspect-ratio:1.45;overflow:hidden;border-radius:var(--radius);background:#e5eaee}.photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.photo-portrait img{object-position:center 42%}.photo:hover img{transform:scale(1.025)}.gallery figcaption{padding:.8rem .2rem;font-weight:800;font-size:.92rem}.process{text-align:center}.process .eyebrow{justify-content:center}.steps{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:3rem 0 2rem;text-align:left}.steps li{position:relative;padding:0 1.5rem;border-left:1px solid var(--line)}.steps li:first-child{border-color:var(--yellow)}.steps span{display:block;color:#9b7500;font-size:2rem;line-height:1;font-weight:900;margin-bottom:1.5rem}.steps h3{font-size:1.05rem}.steps p{color:var(--muted);font-size:.88rem}.process-note{display:inline-block;padding:.7rem 1rem;background:#fff;border:1px solid var(--line);border-radius:.4rem;color:var(--muted);font-size:.85rem}
.contact-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(3rem,7vw,6rem);align-items:start}.contact-copy>p:not(.eyebrow){color:#c7d2dc;font-size:1.08rem}.contact-list{display:grid;gap:.5rem;margin-top:2rem;font-style:normal}.contact-list a,.contact-list>div{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid rgb(255 255 255 / .13);text-decoration:none}.contact-list svg{width:1.25rem;height:1.25rem;fill:none;stroke:var(--yellow);stroke-width:1.8}.contact-list span{display:flex;flex-direction:column}.contact-list small{color:#9eb0c0;text-transform:uppercase;font-size:.62rem;letter-spacing:.1em}.contact-list strong{font-size:.92rem}.form-card{padding:clamp(1.4rem,4vw,2.5rem);background:#fff;color:var(--ink);border-radius:var(--radius-lg);box-shadow:0 22px 50px rgb(0 0 0 / .18)}.form-card>p{color:var(--muted);font-size:.9rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-card label{display:block;margin-bottom:1rem;font-size:.84rem;font-weight:800;color:var(--navy)}.form-card label span{color:#a27800}.form-card label small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;margin-top:.35rem;padding:.75rem .8rem;border:1px solid #bcc8d2;border-radius:.35rem;background:#fff;color:var(--ink)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--navy);outline:3px solid rgb(245 184 0 / .28)}.honeypot{position:absolute;left:-10000px}.checkbox{display:flex!important;align-items:flex-start;gap:.7rem;font-weight:400!important}.checkbox input{width:1.15rem;height:1.15rem;flex:none;margin:.2rem 0 0}.checkbox span{color:var(--muted)!important}.checkbox a{color:var(--navy);font-weight:700}.submit-button{width:100%;border:0}.required-note{text-align:center;color:var(--muted);font-size:.72rem;margin:.6rem 0 0}.form-status{padding:.8rem 1rem;margin:1rem 0;border-radius:.35rem;background:#fff2c7;color:#5c4700;font-weight:700}.form-status.success{background:#e5f5ea;color:#245d35}
.site-footer{padding:4rem 0 1.5rem;border-top:4px solid var(--yellow);background:var(--soft);color:var(--muted)}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:3rem}.brand-footer{display:inline-flex}.brand-footer .brand-logo{width:min(15rem,100%)}.footer-grid h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--navy)}.footer-grid>div>a:not(.brand),.footer-grid>div>span{display:block;padding:.25rem 0;text-decoration:none;font-size:.88rem}.footer-grid a:hover{color:#8a6800}.footer-grid>div:first-child p{max-width:18rem;font-size:.88rem;margin-top:1.2rem}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--line);color:#71808d;font-size:.74rem}.footer-bottom p{margin:0}.mobile-cta{display:none}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.legal-main{background:var(--soft);padding:4rem 0}.legal-hero{padding:3.5rem 0;background:var(--navy);color:#fff}.legal-hero h1{color:#fff;font-size:clamp(2.2rem,5vw,4rem);margin:0}.legal-card{max-width:850px;padding:clamp(1.4rem,4vw,3rem);margin:auto;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.legal-card h2{font-size:1.5rem;margin-top:2.5rem}.legal-card h2:first-child{margin-top:0}.legal-card h3{font-size:1rem;margin-top:1.5rem}.placeholder{display:inline-block;padding:.1rem .35rem;background:#fff0b3;color:#5f4800;font-weight:800}.back-link{display:inline-flex;margin-top:2rem;font-weight:800;color:var(--navy)}.thanks{text-align:center;min-height:55vh;display:grid;place-items:center}.thanks .legal-card{max-width:650px}.thanks-icon{display:grid;place-items:center;width:4rem;height:4rem;margin:0 auto 1.5rem;background:var(--yellow);border-radius:50%;font-size:2rem;color:var(--navy);font-weight:900}
@media(max-width:1080px){.header-actions .phone-link,.main-nav{display:none}.menu-toggle{display:block;margin-left:auto}.main-nav.is-open{position:absolute;display:flex;flex-direction:column;align-items:stretch;gap:0;top:100%;left:0;width:100%;padding:.5rem 1rem 1rem;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.main-nav.is-open a{padding:.75rem;border-bottom:1px solid var(--line)}.hero-grid{grid-template-columns:1.25fr .75fr;gap:2rem}.services-grid{grid-template-columns:repeat(2,1fr)}.service-wide{grid-column:span 2}.zone-grid{gap:2rem}}
@media(max-width:760px){body{padding-bottom:4.4rem}.section{padding:4rem 0}.header-inner{min-height:4.4rem}.header-actions{display:none}.hero{background:#fff;padding-top:3.5rem}.hero-grid,.about-grid,.zone-grid,.contact-grid{grid-template-columns:1fr}.hero-panel{min-height:22rem}.section-heading{display:block}.services-grid,.gallery{grid-template-columns:1fr}.service-wide,.gallery figure{grid-column:auto}.service-wide{align-items:flex-start}.about-grid{gap:2.5rem}.about-visual{min-height:19rem}.about-number{font-size:6rem}.zone-grid{gap:3rem}.town-list{columns:2}.area-graphic{min-height:0;width:min(100%,34rem);margin-inline:auto}.gallery{gap:.5rem}.steps{grid-template-columns:1fr 1fr;gap:2rem 0}.form-row{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}.footer-grid>div:first-child{grid-column:span 2}.footer-bottom{display:block}.mobile-cta{position:fixed;z-index:99;bottom:0;left:0;right:0;display:grid;grid-template-columns:.8fr 1.2fr;gap:.5rem;padding:.55rem max(.7rem,env(safe-area-inset-left));background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 25px rgb(16 46 81 / .12)}.mobile-cta a{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:3rem;border:2px solid var(--navy);border-radius:.35rem;color:var(--navy);font-weight:800;text-decoration:none}.mobile-cta a:last-child{background:var(--yellow);border-color:var(--yellow)}.mobile-cta svg{width:1rem;height:1rem;fill:currentColor}}
@media(max-width:430px){.hero-copy h1{font-size:2.45rem}.button-row{display:grid}.button{width:100%}.trust-list{display:grid;gap:.7rem}.values-grid,.steps,.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.town-list{columns:1}.area-graphic{width:calc(100% - .5rem)}.map-dot{width:.65rem;height:.65rem}.map-label{display:none}.dot-home{width:.95rem;height:.95rem}.steps li{padding-right:.7rem}.brand-copy strong{font-size:.95rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
