:root{--navy:#103858;--ink:#142635;--muted:#586873;--line:#d8e1e6;--ice:#edf3f7;--blue:#c9e2f4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,Arial,'Helvetica Neue',sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid #3995cf;outline-offset:5px}header{max-width:1360px;margin:auto;min-height:116px;padding:15px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{width:166px;height:85px;overflow:hidden;position:relative}.brand img{width:200px;max-width:none;position:absolute;left:-17px;top:-24px}nav{display:flex;gap:35px;font-size:14px;font-weight:600}nav a:hover,.text-link:hover{text-decoration:underline}.button{background:var(--navy);color:white;display:inline-flex;align-items:center;justify-content:center;gap:32px;border-radius:5px;padding:16px 23px;font-weight:700}.button:hover{background:#205578}.button.small{font-size:14px;padding:13px 18px}.hero{padding:70px max(5%,calc((100vw - 1224px)/2)) 80px;background:linear-gradient(90deg,rgba(237,243,247,.94) 0%,rgba(237,243,247,.82) 34%,rgba(237,243,247,.35) 60%,rgba(237,243,247,.08) 100%),url("portail-accueil.webp") center center/cover no-repeat;display:grid;grid-template-columns:1.15fr 1fr;gap:65px;align-items:center}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:700;margin:0 0 24px}h1,h2,h3{font-family:Inter,Arial,'Helvetica Neue',sans-serif;line-height:1.15;letter-spacing:-.045em;margin:0}h1{font-size:clamp(2.6rem,4.1vw,4rem);font-weight:800}h1 em{font-style:normal;color:#327099}h2{font-size:clamp(2rem,3vw,2.9rem);font-weight:700}h3{font-size:1.3rem;letter-spacing:-.025em}.intro{font-size:18px;max-width:530px;color:var(--muted);margin:28px 0}.actions{display:flex;align-items:center;gap:25px}.text-link{font-size:14px;font-weight:700;border-bottom:1px solid}.hero-note{font-size:13px;color:var(--muted);margin-top:22px}.identity{background:var(--navy);color:white;transform:rotate(-2deg);box-shadow:0 25px 55px #173a5520}.identity-top{display:flex;justify-content:space-between;padding:22px;font-size:10px;letter-spacing:.09em}.logo-panel{margin:0 20px;background:#fff;aspect-ratio:1.55;display:flex;align-items:center}.logo-panel img{width:100%;display:block}.identity-bottom{display:flex;align-items:center;justify-content:space-between;padding:24px}.label{display:block;font-size:11px;letter-spacing:.1em}.identity-bottom strong{font:700 64px/1.2 Inter,Arial,'Helvetica Neue',sans-serif;letter-spacing:-.05em}.identity-bottom strong span{font-size:35px}.identity-bottom p{font-size:13px;line-height:1.6}.identity-bottom p span{color:#b8cbd9}.section{max-width:1360px;margin:auto;padding:85px 5%}.section-heading{margin-bottom:40px}.section-heading .eyebrow{color:#547387}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.services article{border-top:1px solid var(--line);padding-top:22px}.service-image{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:4px;margin-bottom:24px}.services p{color:var(--muted);min-height:104px}.tag{font-size:13px;font-weight:600;color:var(--navy)}.section-note{font-size:13px;color:var(--muted);margin-top:35px}.pricing{max-width:none;background:var(--ice);padding-left:max(5%,calc((100vw - 1224px)/2));padding-right:max(5%,calc((100vw - 1224px)/2));display:grid;grid-template-columns:.85fr 1.2fr;gap:65px}.pricing .section-heading>p:last-child{font-size:15px;color:var(--muted);margin-top:24px}.price-row{display:flex;justify-content:space-between;gap:25px;align-items:center;border-bottom:1px solid #cbd7df;padding:25px 0}.price-row:first-child{padding-top:0}.price-row h3{font-size:17px;letter-spacing:-.02em}.price-row p{font-size:14px;color:var(--muted);margin:8px 0 0}.price-row strong{font:700 28px Inter,Arial,'Helvetica Neue',sans-serif;white-space:nowrap}.price-row .quote{font-size:19px}details{font-size:14px;margin-top:24px;color:var(--muted)}summary{cursor:pointer;color:var(--navy);font-weight:600}.territory{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.territory p{max-width:520px}.muted{color:var(--muted);font-size:14px}.towns{display:flex;gap:12px;flex-wrap:wrap}.towns span{padding:10px 18px;border:1px solid var(--line);border-radius:3px;font-size:17px}.towns p{width:100%;font-size:13px;color:var(--muted);margin-top:18px}.contact{background:var(--navy);color:#fff;padding:65px max(5%,calc((100vw - 1224px)/2));display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.contact .eyebrow{color:var(--blue)}.contact h2{font-size:2.4rem}.contact p{color:#c4d3df;max-width:510px}.contact-links>a:first-child{display:flex;justify-content:space-between;font:600 clamp(1.6rem,3vw,2.5rem) Inter,Arial,'Helvetica Neue',sans-serif;border-bottom:1px solid #52718a;padding-bottom:15px}.email{display:block;margin-top:20px;font-size:18px;overflow-wrap:anywhere}.contact-links p{font-size:14px}footer{padding:30px 5%;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);flex-wrap:wrap}footer p{margin:0}@media(max-width:850px){header{min-height:95px}nav{display:flex;gap:0}nav a:not([href="#contact"]){display:none}.hero{grid-template-columns:1fr;gap:42px;padding-top:40px}.hero-copy{max-width:620px}.identity{max-width:540px;transform:none}.section{padding-top:55px;padding-bottom:55px}.services{gap:22px}.services p{min-height:0}.pricing,.territory,.contact{grid-template-columns:1fr;gap:28px}.section-heading{margin-bottom:15px}.contact{padding-top:50px;padding-bottom:50px}.contact-links{max-width:540px}}@media(max-width:560px){header{padding:10px 5%;gap:8px}.brand{width:135px;height:75px}.brand img{width:168px;left:-15px;top:-18px}.button.small{padding:11px;font-size:12px;gap:8px}h1{font-size:2.65rem}.hero{padding-bottom:45px}.intro{font-size:16px}.actions{gap:18px}.button{padding:15px 17px;gap:18px}.services{grid-template-columns:1fr;gap:32px}.service-image{margin-bottom:20px}.services p{margin:14px 0}.identity-top{font-size:9px;padding:16px}.identity-bottom{padding:18px}.identity-bottom strong{font-size:50px}.identity-bottom p{font-size:12px}.price-row{gap:12px}.price-row strong{font-size:25px}.price-row .quote{font-size:16px}.contact h2{font-size:2rem}.towns span{font-size:15px}.email{font-size:16px}footer{display:block}footer p{margin-bottom:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.availability{font-size:15px;color:var(--muted);margin:-12px 0 28px}.gift{margin:0 20px 20px;padding:18px;background:var(--blue);color:var(--navy);display:flex;gap:20px;align-items:center}.gift strong{font:800 clamp(1.7rem,3vw,2.4rem)/1 Inter,Arial,'Helvetica Neue',sans-serif;letter-spacing:-.03em}.gift span{font-size:18px;font-weight:700;line-height:1.4}.gift a{text-decoration:none}.pricing .section-heading .pricing-detail{font-size:13px}.night-rate{font-size:14px;color:var(--muted);margin-top:22px}.contact-form{display:grid;gap:18px;min-width:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{display:grid;gap:7px;font-size:14px;font-weight:600;min-width:0}.contact-form input,.contact-form select,.contact-form textarea{width:100%;min-width:0;border:1px solid #a5bac9;border-radius:4px;background:#fff;color:var(--ink);padding:12px;font:16px Inter,Arial,'Helvetica Neue',sans-serif}.contact-form textarea{resize:vertical}.contact-form .honeypot{display:none}.contact-form .form-privacy{font-size:12px;margin:0}.contact-form button{background:var(--blue);color:var(--navy);border:0;cursor:pointer;font:700 16px Inter,Arial,'Helvetica Neue',sans-serif;justify-self:start}.contact-form button:hover{background:#fff}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid #80c9f8;outline-offset:3px}.control-note{flex-basis:100%;scroll-margin-top:25px}@media(max-width:560px){.form-grid{grid-template-columns:1fr}.gift{gap:15px;margin:0 18px 18px}.gift strong{font-size:1.8rem}.gift span{font-size:16px}.contact-form button{width:100%}}

@media(max-width:850px){.hero{background-image:linear-gradient(180deg,rgba(237,243,247,.93) 0%,rgba(237,243,247,.85) 44%,rgba(237,243,247,.25) 74%),url("portail-accueil-mobile.webp");background-position:center center}}

.territory-map{margin:0;width:100%;max-width:520px;justify-self:center;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--ice);box-shadow:0 18px 45px #10385814}.territory-map figcaption{padding:18px 22px;background:var(--navy);color:white;font:700 18px Inter,Arial,'Helvetica Neue',sans-serif;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}.territory-map figcaption span{font:400 14px Inter,Arial,'Helvetica Neue',sans-serif;color:var(--blue)}.territory-map img{display:block;width:100%;height:auto}.territory>div>p:last-child{color:var(--muted);margin-top:24px}

/* Brief, one-time entrances; restrained feedback on interactive elements. */
@media(prefers-reduced-motion:no-preference){
.button{transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}
.button span{transition:transform .2s ease}
nav a,.text-link,.email{transition:color .2s ease}
.service-image{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease}
.territory-map{transition:box-shadow .3s ease}
.contact-form input,.contact-form select,.contact-form textarea{transition:border-color .2s ease,box-shadow .2s ease}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#80c9f8;box-shadow:0 0 0 3px #80c9f81a}
.button:active{transform:translateY(0)}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
.button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10385820}
.button:hover span{transform:translate(2px,-2px)}
.services article:hover .service-image{transform:translateY(-3px);box-shadow:0 10px 24px #10385818}
.territory-map:hover{box-shadow:0 22px 48px #10385820}
}
@media print{*{animation:none!important;transition:none!important}}

/* Persistent section navigation with understated active and hover cues. */
html{scroll-padding-top:var(--menu-offset,136px)}
header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);box-shadow:0 1px 0 #10385812}
header nav a{position:relative;display:inline-block;padding:9px 0;color:var(--ink);text-decoration:none}
header nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:#327099;transform:scaleX(0);transform-origin:left}
header nav a.is-current{color:#327099}
header nav a.is-current::after,header nav a:focus-visible::after{transform:scaleX(1)}
.section .eyebrow,.contact .eyebrow{position:relative;padding-left:0}
.section .eyebrow::before,.contact .eyebrow::before{content:"";display:inline-block;width:0;height:2px;margin-right:0;background:currentColor;vertical-align:middle}
.section-current .eyebrow::before{width:22px;margin-right:10px}
@media(prefers-reduced-motion:no-preference){
header nav a{transition:color .2s ease,transform .2s ease}
header nav a::after{transition:transform .25s cubic-bezier(.22,1,.36,1)}
.section .eyebrow::before,.contact .eyebrow::before{transition:width .3s ease,margin-right .3s ease}
}
@media(hover:hover) and (pointer:fine){header nav a:hover{color:#327099;text-decoration:none}header nav a:hover::after{transform:scaleX(1)}}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){header nav a:hover{transform:translateY(-2px)}}
@media(max-width:850px){header{flex-wrap:wrap;gap:4px 16px;padding-bottom:8px}header nav{order:3;flex:0 0 100%;display:flex;justify-content:space-between;gap:12px}header nav a:not([href="#contact"]){display:inline-block}header nav a{font-size:14px;padding:7px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{header{position:static}}

/* Correction affichage logo dans l'en-tête */
.brand{
  width:180px;
  height:80px;
  overflow:visible;
  position:relative;
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.brand img{
  width:100%;
  height:auto;
  max-width:100%;
  position:static;
  display:block;
  object-fit:contain;
}
@media(max-width:560px){
  .brand{width:145px;height:68px}
  .brand img{width:100%;max-width:100%;position:static}
}

/* Ajustement fin : remonter légèrement le logo */
.brand img{transform:translateY(-5px)}
@media(max-width:560px){.brand img{transform:translateY(-4px)}}
