:root{
  --black:#090908;--black2:#11110f;--paper:#f2efe7;--paper2:#e8e2d6;--ink:#10100f;
  --orange:#ff5a1f;--lime:#d7ff4f;--line:rgba(18,18,16,.16);--muted:#777269;--white:#fff;
  --serif:Georgia,"Times New Roman",serif;--sans:"Segoe UI",Arial,sans-serif;
  --ease:cubic-bezier(.22,.76,.2,1)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden;cursor:auto}button,input{font:inherit}button,a{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}.pointer-light{position:fixed;z-index:2;width:420px;height:420px;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,.09),transparent 62%);mix-blend-mode:screen;opacity:0;transition:opacity .3s}.scroll-progress{position:fixed;z-index:10000;top:0;left:0;height:2px;width:0;background:var(--orange)}

.page-loader{position:fixed;z-index:20000;inset:0;background:#080807;color:#fff;display:grid;place-items:center;transition:transform 1.05s var(--ease)}.page-loader.hide{transform:translateY(-102%)}.loader-word{display:flex;gap:.5vw;overflow:hidden}.loader-word span{font-size:clamp(44px,9vw,150px);font-weight:800;line-height:1;letter-spacing:-.07em;transform:translateY(120%);animation:letterUp .7s forwards}.loader-word span:nth-child(2){animation-delay:.04s}.loader-word span:nth-child(3){animation-delay:.08s}.loader-word span:nth-child(4){animation-delay:.12s}.loader-word span:nth-child(5){animation-delay:.16s}.loader-word span:nth-child(6){animation-delay:.2s}.loader-word span:nth-child(7){animation-delay:.24s}.page-loader p{position:absolute;bottom:8vh;font-size:10px;letter-spacing:.24em;color:#777;text-transform:uppercase}@keyframes letterUp{to{transform:none}}

.site-header{position:fixed;z-index:900;top:0;left:0;width:100%;height:92px;padding:0 3.2vw;display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:1px solid rgba(255,255,255,.13);transition:.35s var(--ease)}.site-header.scrolled{height:74px;background:rgba(8,8,7,.84);backdrop-filter:blur(18px);border-color:rgba(255,255,255,.08)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:45px;height:45px;border:1px solid rgba(255,255,255,.45);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:25px;font-style:italic}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font-size:12px;letter-spacing:.16em}.brand-copy small{font-size:7px;letter-spacing:.18em;color:rgba(255,255,255,.55);margin-top:4px}.main-nav{display:flex;gap:36px}.main-nav a{font-size:11px;font-weight:700;color:rgba(255,255,255,.72);position:relative}.main-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:#fff;transition:.25s}.main-nav a:hover{color:#fff}.main-nav a:hover:after{right:0}.header-actions{display:flex;align-items:center;gap:10px}.admin-link{border:0;background:transparent;color:rgba(255,255,255,.65);font-size:10px;text-transform:uppercase;letter-spacing:.12em;padding:12px}.mobile-menu-btn{display:none;width:46px;height:46px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:transparent;align-items:center;justify-content:center;flex-direction:column;gap:5px}.mobile-menu-btn span{width:16px;height:1px;background:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:58px;padding:0 24px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.01em;transition:.28s var(--ease);white-space:nowrap}.btn span{font-size:18px}.btn-small{min-height:46px;padding:0 19px}.btn-large{min-height:68px;padding:0 31px;font-size:12px}.btn-light{background:#fff;color:#111}.btn-light:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(0,0,0,.18)}.btn-accent{background:var(--orange);color:#fff}.btn-accent:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(255,90,31,.26)}.btn-ghost{background:transparent;border-color:var(--line)}.btn-full{width:100%}

.mobile-menu{position:fixed;z-index:1500;inset:0;background:#080807;color:#fff;transform:translateY(-103%);transition:.65s var(--ease);display:flex;flex-direction:column;justify-content:center;padding:10vw}.mobile-menu.open{transform:none}.mobile-close{position:absolute;right:28px;top:25px;background:transparent;border:0;color:#fff;font-size:42px}.mobile-menu>small{position:absolute;top:40px;font-size:8px;letter-spacing:.2em;color:#777}.mobile-menu nav{display:grid}.mobile-menu nav a,.mobile-menu nav button{display:flex;align-items:baseline;gap:18px;background:transparent;border:0;color:#fff;text-align:left;font-size:clamp(38px,9vw,68px);font-weight:700;letter-spacing:-.06em;padding:7px 0}.mobile-menu nav b{font-size:9px;letter-spacing:.1em;color:var(--orange)}

.hero{position:relative;height:100svh;min-height:760px;background:#080807;color:#fff;overflow:hidden;padding:130px 3.2vw 4vh;display:flex;flex-direction:column;justify-content:flex-end}.hero-media,.hero-photo,.hero-shade,.hero-grid{position:absolute;inset:0}.hero-photo{background-image:url('assets/canal-real.jpg'),linear-gradient(135deg,#1d2d2d,#8d5d3c);background-position:center 44%;background-size:cover;filter:saturate(.78) contrast(1.08);transform:scale(1.035)}.hero-shade{background:linear-gradient(180deg,rgba(6,6,5,.18),rgba(6,6,5,.06) 35%,rgba(6,6,5,.77) 94%),linear-gradient(90deg,rgba(4,4,3,.36),transparent 50%,rgba(4,4,3,.18))}.hero-grid{opacity:.13;background-image:linear-gradient(rgba(255,255,255,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px);background-size:25vw 25vw;mask-image:linear-gradient(to bottom,black,transparent 85%)}.hero-kicker{position:absolute;top:136px;left:3.2vw;display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:.17em;font-weight:700;color:rgba(255,255,255,.75)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 7px rgba(215,255,79,.1)}.hero-title{position:relative;z-index:3;display:flex;flex-direction:column;line-height:.73;letter-spacing:-.086em;pointer-events:none}.hero-topline{font-size:clamp(104px,16.3vw,280px);font-weight:800}.hero-bottomline{font-size:clamp(70px,10.5vw,178px);font-weight:700;margin-left:20.4vw}.hero-bottomline em{font-family:var(--serif);font-weight:600}.hero-bottom{position:relative;z-index:4;margin-top:4vh;display:flex;justify-content:space-between;align-items:flex-end}.hero-intro{max-width:550px;display:flex;flex-direction:column;gap:23px}.hero-intro p{font-size:clamp(14px,1.25vw,19px);line-height:1.55;margin:0;color:rgba(255,255,255,.7)}.hero-intro strong{color:#fff;font-weight:600}.hero-buttons{display:flex;align-items:center;gap:18px}.round-story{background:transparent;border:0;color:#fff;display:flex;align-items:center;gap:12px}.round-story>span{width:56px;height:56px;border:1px solid rgba(255,255,255,.38);border-radius:50%;display:grid;place-items:center;font-size:11px;padding-left:2px;transition:.25s}.round-story i{font-style:normal;font-size:8px;letter-spacing:.17em}.round-story:hover>span{background:#fff;color:#111;transform:scale(1.05)}.next-event-float{width:min(370px,31vw);padding:19px;border:1px solid rgba(255,255,255,.2);background:rgba(10,10,8,.34);backdrop-filter:blur(18px);border-radius:22px;position:relative}.float-head{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:.14em;color:rgba(255,255,255,.55);border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:14px}.float-arrow{font-size:18px;color:#fff}.float-event{display:grid;grid-template-columns:68px 1fr;gap:15px;align-items:center;padding-top:14px}.float-date{height:68px;border-radius:15px;background:var(--orange);display:flex;flex-direction:column;align-items:center;justify-content:center}.float-date strong{font-size:28px;line-height:1}.float-date small{font-size:8px;font-weight:800;letter-spacing:.14em;margin-top:4px}.float-event>div:last-child{display:flex;flex-direction:column;gap:6px}.float-event>div:last-child>strong{font-size:13px}.float-event>div:last-child>small{font-size:10px;color:rgba(255,255,255,.52)}.float-count{position:absolute;right:15px;top:-68px;display:flex;align-items:center;gap:10px}.float-count strong{font-family:var(--serif);font-style:italic;font-size:50px;color:#fff}.float-count span{font-size:7px;line-height:1.35;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}.hero-coordinates,.hero-year{position:absolute;z-index:3;top:50%;font-size:7px;letter-spacing:.18em;color:rgba(255,255,255,.5);writing-mode:vertical-rl}.hero-coordinates{left:1.2vw}.hero-year{right:1.2vw}.scroll-down{position:absolute;z-index:5;bottom:3vh;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:.2em;color:rgba(255,255,255,.6);display:grid;gap:6px;justify-items:center}.scroll-down span{height:26px;width:1px;background:linear-gradient(#fff,transparent);animation:scrollLine 1.6s infinite}@keyframes scrollLine{50%{opacity:.2;transform:scaleY(.5);transform-origin:top}}.hero-enter{opacity:0;transform:translateY(26px)}body.loaded .hero-enter{animation:heroEnter .9s var(--ease) forwards}.hero-enter.delay-1{animation-delay:.12s!important}.hero-enter.delay-2{animation-delay:.24s!important}@keyframes heroEnter{to{opacity:1;transform:none}}

.statement{background:var(--paper);padding:140px 3.2vw 120px;overflow:hidden}.statement-meta{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.19em;color:#7a756c;margin-bottom:70px}.statement-line{font-size:clamp(56px,9vw,154px);font-weight:800;letter-spacing:-.075em;line-height:.86;white-space:nowrap}.statement-line-right{text-align:right;margin-top:14px}.statement-line em{font-family:var(--serif);font-weight:600}.statement-bottom{margin-top:60px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}.statement-bottom p{max-width:540px;font-size:16px;line-height:1.6;color:#6d685f;margin:0}.statement-orbit{width:150px;height:150px;border:1px solid #bdb7aa;border-radius:50%;position:relative;display:grid;place-items:center}.statement-orbit span{position:absolute;width:190px;text-align:center;font-size:7px;letter-spacing:.17em;transform:rotate(-20deg)}.statement-orbit b{font-size:24px;color:var(--orange)}

.editorial{background:#0b0b0a;color:#fff;padding:140px 3.2vw}.editorial-head{display:grid;grid-template-columns:.8fr 1.5fr .85fr;gap:40px;align-items:start;margin-bottom:70px}.eyebrow-dark{font-size:8px;letter-spacing:.18em;color:#777}.eyebrow-dark span{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid #333;border-radius:50%;margin-right:12px;color:#fff}.editorial-head h2,.gallery-intro h2,.principles-sticky h2,.team-head h2{font-size:clamp(58px,7.4vw,122px);font-weight:700;letter-spacing:-.075em;line-height:.82;margin:0}.editorial-head h2 em,.gallery-intro h2 em,.principles-sticky h2 em,.team-head h2 em{font-family:var(--serif);font-weight:600}.editorial-head>p{font-size:14px;line-height:1.7;color:#888;margin:6px 0 0;max-width:390px}.event-feature{display:grid;grid-template-columns:1.15fr 1fr;min-height:630px;border-top:1px solid #2a2a27;border-bottom:1px solid #2a2a27}.feature-visual{position:relative;overflow:hidden;background-image:url('assets/houseboat-real.jpg'),linear-gradient(135deg,#344748,#8a6952);background-size:cover;background-position:center}.feature-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.5))}.feature-date{position:absolute;z-index:2;left:26px;top:26px;width:114px;height:125px;background:var(--lime);color:#111;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:2px}.feature-date strong{font-size:58px;line-height:.85;letter-spacing:-.08em}.feature-date span{font-size:8px;font-weight:800;letter-spacing:.13em;margin-top:10px}.feature-places{position:absolute;z-index:2;bottom:25px;left:25px;display:flex;align-items:center;gap:8px;background:rgba(8,8,7,.6);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:10px 14px;font-size:9px}.feature-places i{width:7px;height:7px;border-radius:50%;background:var(--lime)}.feature-content{padding:48px 4vw;display:flex;flex-direction:column;justify-content:space-between}.feature-status{display:flex;justify-content:space-between;align-items:center}.status-badge{display:inline-flex;align-items:center;gap:8px;font-size:8px;font-weight:800;letter-spacing:.13em}.status-badge i{width:7px;height:7px;border-radius:50%;background:var(--lime)}.feature-status small{font-size:8px;letter-spacing:.14em;color:#6f6f69}.feature-content h3{font-size:clamp(45px,5.2vw,86px);line-height:.92;letter-spacing:-.06em;margin:45px 0 24px}.feature-content p{font-size:14px;line-height:1.7;color:#888;max-width:500px}.feature-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:36px}.feature-meta div{border-top:1px solid #282825;padding-top:12px;display:flex;flex-direction:column;gap:7px}.feature-meta small{font-size:7px;letter-spacing:.15em;color:#666}.feature-meta strong{font-size:12px}.feature-content>.btn{align-self:flex-start;margin-top:40px}.event-list{display:grid;grid-template-columns:repeat(2,1fr);border-bottom:1px solid #252522}.event-mini{min-height:410px;padding:32px;border-right:1px solid #252522;display:flex;flex-direction:column;justify-content:space-between;transition:.35s var(--ease)}.event-mini:nth-child(2n){border-right:0}.event-mini:hover{background:#11110f}.event-mini-top,.event-mini-bottom{display:flex;justify-content:space-between;align-items:center}.event-mini-num{font-size:9px;color:#555}.event-mini-body{display:grid;grid-template-columns:100px 1fr;gap:28px;align-items:start}.event-mini-date{display:flex;flex-direction:column}.event-mini-date strong{font-size:48px;line-height:1;letter-spacing:-.06em}.event-mini-date span{font-size:8px;letter-spacing:.13em;color:#666;margin-top:8px}.event-mini h3{font-size:clamp(28px,3vw,48px);letter-spacing:-.05em;margin:0 0 15px}.event-mini p{font-size:12px;line-height:1.6;color:#73736e;margin:0;max-width:430px}.event-mini-bottom>span{font-size:9px;color:#777}.event-mini-bottom button{width:48px;height:48px;border:1px solid #333;background:transparent;color:#fff;border-radius:50%;font-size:18px;transition:.25s}.event-mini-bottom button:not(:disabled):hover{background:var(--orange);border-color:var(--orange);transform:rotate(45deg)}.event-mini-bottom button:disabled{opacity:.35}

.village-gallery{background:var(--paper2);padding:140px 3.2vw 170px;overflow:hidden}.gallery-intro{display:grid;grid-template-columns:.6fr 1.4fr .8fr;gap:35px;align-items:start}.gallery-intro>span,.principles-sticky>span,.team-head span{font-size:8px;letter-spacing:.17em;color:#777}.gallery-intro p{font-size:14px;line-height:1.7;color:#777;margin:6px 0 0}.gallery-stage{height:900px;position:relative;margin-top:100px}.photo-card{position:absolute;padding:10px;background:#f8f5ed;box-shadow:0 24px 80px rgba(20,18,13,.15);transition:transform .25s ease;transform-style:preserve-3d}.photo-card .remote-photo{height:calc(100% - 34px);background-size:cover;background-position:center;background-color:#b7aea0}.photo-card>span{position:absolute;right:15px;bottom:11px;font-size:8px;color:#999}.photo-card>small{position:absolute;left:15px;bottom:10px;font-size:7px;letter-spacing:.14em}.photo-a{width:34vw;height:560px;left:4vw;top:80px;transform:rotate(-4deg)}.photo-b{width:31vw;height:480px;right:6vw;top:0;transform:rotate(5deg)}.photo-c{width:27vw;height:390px;left:38vw;bottom:0;transform:rotate(2deg)}.photo-port{background-image:url('assets/canal-real.jpg'),linear-gradient(145deg,#344849,#b88c64)}.photo-canal{background-image:url('assets/houseboat-real.jpg'),linear-gradient(145deg,#58706b,#e7b982)}.photo-mairie{background-image:url('assets/poilhes11.jpg'),linear-gradient(145deg,#b29b79,#5a625e)}.gallery-word{position:absolute;z-index:0;left:-1vw;top:48%;font-size:16vw;font-weight:800;letter-spacing:-.09em;color:rgba(22,20,16,.055);pointer-events:none}.photo-card{z-index:1}

.principles{background:var(--orange);padding:140px 3.2vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw}.principles-sticky{position:sticky;top:120px;height:max-content}.principles-sticky p{max-width:420px;font-size:15px;line-height:1.65;color:rgba(0,0,0,.62);margin-top:34px}.principles-list{border-top:1px solid rgba(0,0,0,.25)}.principle{min-height:290px;border-bottom:1px solid rgba(0,0,0,.25);display:grid;grid-template-columns:70px 1fr;grid-template-rows:auto 1fr;padding:35px 0}.principle>span{font-size:9px;font-weight:800}.principle h3{font-size:clamp(34px,4vw,60px);letter-spacing:-.05em;margin:0;align-self:start}.principle p{grid-column:2;max-width:470px;font-size:13px;line-height:1.65;color:rgba(0,0,0,.62);align-self:end;margin:20px 0 0}

.team{background:var(--paper);padding:140px 3.2vw}.team-head{display:grid;grid-template-columns:1.5fr .65fr;gap:60px;align-items:end}.team-head>div>span{display:block;margin-bottom:32px}.team-head>p{font-size:14px;line-height:1.7;color:#716d64;margin:0 0 8px}.team-grid{margin-top:80px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.member{min-height:500px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px;position:relative;background:transparent;text-align:left;display:flex;flex-direction:column;justify-content:space-between;transition:.35s var(--ease)}.member-no{font-size:8px;color:#918b80}.member-letter{font-family:var(--serif);font-style:italic;font-size:clamp(100px,11vw,180px);line-height:.8;letter-spacing:-.08em;align-self:center;color:#1a1917;transition:.35s}.member>div:last-child{display:flex;flex-direction:column;gap:6px}.member small{font-size:7px;letter-spacing:.14em;color:#8d877d}.member strong{font-size:19px}.member:hover{background:#111;color:#fff}.member:hover .member-letter{color:var(--lime);transform:translateY(-8px) rotate(-5deg)}.member-join{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer}.member-join:hover{background:var(--lime);color:#111}.member-join:hover .member-letter{color:#111}

.finale{min-height:850px;background:#090908;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;padding:100px 20px}.finale>small{font-size:8px;letter-spacing:.2em;color:#777}.finale h2{font-size:clamp(115px,20vw,330px);line-height:.72;letter-spacing:-.095em;margin:40px 0 40px;position:relative;z-index:1}.finale p{font-size:15px;color:#777;margin:0 0 30px}.finale-orbit{position:absolute;border:1px solid #262622;border-radius:50%}.orbit-a{width:680px;height:680px}.orbit-b{width:940px;height:940px}.finale-foot{position:absolute;bottom:32px;left:3.2vw;right:3.2vw;display:flex;justify-content:space-between;font-size:7px;letter-spacing:.16em;color:#555}

footer{background:#090908;color:#fff;border-top:1px solid #242421;padding:60px 3.2vw 35px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;align-items:start}footer .footer-brand{font-size:30px;font-weight:800;letter-spacing:-.05em}.footer-brand span{color:var(--orange);margin-left:6px}.footer-nav{display:flex;flex-wrap:wrap;gap:20px}.footer-nav a,.footer-nav button{background:transparent;border:0;color:#777;font-size:10px}.footer-nav a:hover,.footer-nav button:hover{color:#fff}footer p{margin:0;font-size:12px;line-height:1.6;color:#666;max-width:350px}footer>small{grid-column:1/-1;border-top:1px solid #20201d;padding-top:25px;font-size:7px;letter-spacing:.15em;color:#4d4d49}

.modal-shell{position:fixed;z-index:5000;inset:0;display:none;place-items:center;padding:20px}.modal-shell.open{display:grid}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(12px)}.reservation-modal,.admin-login{position:relative;z-index:2;background:#f3efe6;color:#111;width:min(620px,96vw);max-height:94svh;overflow:auto;border-radius:3px;padding:42px 46px;box-shadow:0 35px 100px rgba(0,0,0,.42);animation:modalIn .45s var(--ease)}@keyframes modalIn{from{opacity:0;transform:translateY(20px) scale(.98)}}.modal-close{position:absolute;right:18px;top:18px;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:transparent;font-size:25px}.modal-brand{display:flex;align-items:center;gap:11px;margin-bottom:25px}.modal-brand span,.login-symbol{width:38px;height:38px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:21px}.modal-brand small,.modal-tag{font-size:7px;letter-spacing:.16em;color:#777}.modal-progress{display:flex;gap:5px;margin:20px 0 38px}.modal-progress i{height:2px;background:#d2cdc1;flex:1}.modal-progress i.active{background:var(--orange)}.reserve-step{display:none}.reserve-step.active{display:block}.step-num{font-size:7px;letter-spacing:.16em;color:#8c877e}.reserve-step h3,.admin-login h3{font-size:clamp(42px,7vw,68px);line-height:.9;letter-spacing:-.06em;margin:17px 0}.reserve-step h3 em{font-family:var(--serif);font-weight:600}.reserve-step>p,.admin-login>p{font-size:12px;line-height:1.6;color:#7a756c;margin-bottom:28px}.reservation-modal label,.admin-login label{display:flex;flex-direction:column;gap:8px;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#777;margin-bottom:17px}.reservation-modal input,.admin-login input{width:100%;height:54px;background:transparent;border:0;border-bottom:1px solid #c8c2b7;border-radius:0;outline:0;font-size:15px;color:#111;padding:0}.reservation-modal input:focus,.admin-login input:focus{border-color:#111}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.guest-selectors{border-top:1px solid #cbc5ba;border-bottom:1px solid #cbc5ba;margin:28px 0}.guest-selectors>div{display:flex;justify-content:space-between;align-items:center;padding:18px 0}.guest-selectors>div+div{border-top:1px solid #ddd7cd}.guest-selectors>div>span{display:flex;flex-direction:column;gap:4px}.guest-selectors b{font-size:13px}.guest-selectors small{font-size:9px;color:#8c867c}.stepper{display:flex;align-items:center;gap:15px}.stepper button{width:36px;height:36px;border:1px solid #c8c2b7;border-radius:50%;background:transparent;font-size:18px}.stepper strong{min-width:18px;text-align:center}.reserve-total{display:flex;justify-content:space-between;align-items:end;margin:22px 0}.reserve-total span{font-size:9px;color:#777}.reserve-total strong{font-size:28px;letter-spacing:-.05em}.summary-card{border-top:1px solid #c8c2b7;margin:30px 0}.summary-card>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #d6d0c5;padding:13px 0}.summary-card span{font-size:9px;color:#888}.summary-card strong{font-size:11px;text-align:right}.summary-note{display:flex;gap:10px;background:#e8e2d7;padding:14px;margin-bottom:22px}.summary-note span{width:22px;height:22px;border:1px solid #a9a398;border-radius:50%;display:grid;place-items:center;font-size:9px}.summary-note p{font-size:9px;line-height:1.5;color:#6e6961;margin:0}.modal-buttons{display:flex;gap:10px}.modal-buttons .btn{flex:1}.success-step{text-align:center;padding:30px 0}.success-mark{width:80px;height:80px;background:var(--lime);border-radius:50%;display:grid;place-items:center;margin:0 auto 28px;font-size:27px}.admin-login{text-align:left;width:min(500px,94vw)}.login-symbol{width:56px;height:56px;font-size:29px;margin-bottom:24px}.admin-login h3{font-size:52px}.login-error{display:none;color:#b52d1d;font-size:9px;margin:-5px 0 15px}.login-error.show{display:block}.demo-hint{display:block;text-align:center;font-size:8px;color:#999;margin-top:15px}.story-panel-modal{position:fixed;z-index:4500;inset:0;background:var(--orange);transform:translateX(103%);transition:.75s var(--ease);display:flex;align-items:center}.story-panel-modal.open{transform:none}.story-close{position:absolute;right:35px;top:30px;width:58px;height:58px;border:1px solid rgba(0,0,0,.25);border-radius:50%;background:transparent;font-size:36px}.story-inner{padding:8vw;max-width:1100px}.story-inner>small{font-size:8px;letter-spacing:.18em}.story-inner h2{font-size:clamp(72px,10vw,150px);line-height:.78;letter-spacing:-.075em;margin:40px 0}.story-inner h2 em{font-family:var(--serif)}.story-inner p{max-width:670px;font-size:17px;line-height:1.7;color:rgba(0,0,0,.62)}.story-signature{margin-top:60px;display:flex;justify-content:space-between;max-width:670px;border-top:1px solid rgba(0,0,0,.22);padding-top:15px;font-size:10px}.story-signature small{font-size:8px;letter-spacing:.14em}.toast{position:fixed;z-index:10000;left:50%;bottom:26px;transform:translate(-50%,20px);opacity:0;background:#111;color:#fff;border-radius:999px;padding:13px 18px;display:flex;align-items:center;gap:9px;pointer-events:none;transition:.28s}.toast.show{transform:translate(-50%,0);opacity:1}.toast span{width:21px;height:21px;border-radius:50%;background:var(--lime);color:#111;display:grid;place-items:center;font-size:10px}.toast p{font-size:10px;margin:0}

.reveal{opacity:0;transform:translateY(42px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.in-view{opacity:1;transform:none}

@media(max-width:1050px){.main-nav{display:none}.editorial-head,.gallery-intro{grid-template-columns:1fr}.editorial-head>p,.gallery-intro p{max-width:560px}.hero-title{margin-top:auto}.hero-bottomline{margin-left:9vw}.next-event-float{width:350px}.event-feature{grid-template-columns:1fr}.feature-visual{min-height:460px}.gallery-stage{height:760px}.photo-a{width:43vw;height:470px}.photo-b{width:38vw;height:410px}.photo-c{width:34vw;height:350px;left:34vw}.team-grid{grid-template-columns:repeat(2,1fr)}.principles{grid-template-columns:1fr}.principles-sticky{position:static}.team-head{grid-template-columns:1fr}.mobile-menu-btn{display:flex}.header-actions>.admin-link{display:none}}
@media(max-width:760px){.site-header{height:76px;padding:0 18px}.brand-copy{display:none}.header-actions>.btn{display:none}.hero{min-height:720px;padding:110px 18px 38px}.hero-kicker{left:18px;top:105px}.hero-title{line-height:.78}.hero-topline{font-size:25vw}.hero-bottomline{font-size:17vw;margin-left:0}.hero-bottom{display:block;margin-top:50px}.hero-intro{max-width:none}.hero-intro p{max-width:460px}.next-event-float{display:none}.hero-coordinates,.hero-year{display:none}.hero-buttons{flex-wrap:wrap}.statement,.editorial,.village-gallery,.principles,.team{padding:95px 18px}.statement-meta{margin-bottom:45px}.statement-line{font-size:13vw}.statement-bottom{grid-template-columns:1fr}.statement-orbit{display:none}.editorial-head{margin-bottom:45px}.editorial-head h2,.gallery-intro h2,.principles-sticky h2,.team-head h2{font-size:15vw}.event-feature{min-height:0}.feature-visual{min-height:370px}.feature-content{padding:35px 0}.feature-meta{grid-template-columns:1fr 1fr}.event-list{grid-template-columns:1fr}.event-mini{border-right:0;min-height:340px;padding:28px 0}.event-mini-body{grid-template-columns:80px 1fr}.gallery-stage{height:850px;margin-top:60px}.photo-a{width:77vw;height:390px;left:1vw}.photo-b{width:68vw;height:340px;right:0;top:270px}.photo-c{width:61vw;height:300px;left:4vw;bottom:0}.gallery-word{font-size:28vw;top:55%}.principles{gap:45px}.principle{grid-template-columns:45px 1fr}.team-grid{grid-template-columns:1fr 1fr}.member{min-height:320px}.member-letter{font-size:24vw}.finale{min-height:650px}.finale h2{font-size:29vw}.orbit-a{width:430px;height:430px}.orbit-b{width:650px;height:650px}footer{grid-template-columns:1fr;gap:25px;padding:50px 18px 30px}.reservation-modal,.admin-login{padding:32px 22px}.form-grid{grid-template-columns:1fr;gap:0}.modal-buttons{flex-direction:column}.story-inner{padding:28px}.story-inner h2{font-size:18vw}.story-close{right:20px;top:20px}.pointer-light{display:none}}
@media(max-width:480px){.team-grid{grid-template-columns:1fr}.member{min-height:260px}.member-letter{font-size:33vw}.feature-date{width:92px;height:100px}.feature-date strong{font-size:46px}.event-mini{padding-left:0;padding-right:0}.hero-buttons .btn{min-height:54px}}
.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(255,90,31,.26)}


/* =========================================================
   V3 — PROFESSIONAL REWORK
   Structure and functionality preserved; visual system refined.
   ========================================================= */
:root{
  --black:#0d161c;
  --black2:#132129;
  --paper:#f6f4ef;
  --paper2:#ece8e0;
  --ink:#172127;
  --orange:#2f6d73;
  --lime:#9db8aa;
  --line:rgba(23,33,39,.13);
  --muted:#69747a;
  --white:#fff;
  --serif:Georgia,"Times New Roman",serif;
  --sans:"Segoe UI",Inter,Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1)
}
body{background:var(--paper);color:var(--ink)}
.scroll-progress{height:2px;background:#6f9796}

/* loader: discreet instead of showy */
.page-loader{background:#0d161c;transition:opacity .55s ease,visibility .55s ease;transform:none!important}
.page-loader.hide{opacity:0;visibility:hidden;pointer-events:none}
.loader-word{font-size:22px;font-weight:700;letter-spacing:.22em;line-height:1}
.page-loader p{bottom:44%;transform:translateY(44px);font-size:9px;letter-spacing:.16em;color:rgba(255,255,255,.45)}

/* header */
.site-header{height:84px;padding:0 4vw;border-bottom:1px solid rgba(255,255,255,.1)}
.site-header.scrolled{height:68px;background:rgba(13,22,28,.9);backdrop-filter:blur(18px)}
.brand-mark{width:40px;height:40px;font-size:20px;border-color:rgba(255,255,255,.35);font-style:normal}
.brand-copy strong{font-size:11px;letter-spacing:.14em}.brand-copy small{font-size:7px}
.main-nav{gap:30px}.main-nav a{font-size:11px;font-weight:600}.admin-link{font-size:9px}
.btn{min-height:52px;padding:0 22px;gap:12px;font-size:11px;font-weight:700;border-radius:12px}
.btn-small{min-height:42px;padding:0 17px}.btn-large{min-height:58px}.btn span{font-size:15px}
.btn-accent{background:#2f6d73;color:#fff}.btn-accent:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(47,109,115,.22)}
.btn-light:hover{transform:translateY(-1px);box-shadow:0 10px 25px rgba(0,0,0,.15)}

/* Hero: real Poilhes photo, smaller type, calmer animation */
.hero{height:100svh;min-height:700px;padding:125px 4vw 5vh;background:#0d161c}
.hero-photo{background-image:url('assets/canal-real.jpg');background-position:center 50%;filter:saturate(.82) contrast(1.03) brightness(.88);transform:scale(1.02)}
.hero-shade{background:linear-gradient(180deg,rgba(8,16,21,.28),rgba(8,16,21,.04) 35%,rgba(8,16,21,.78) 96%),linear-gradient(90deg,rgba(8,16,21,.48),transparent 58%)}
.hero-grid{display:none}
.hero-kicker{top:118px;left:4vw;font-size:9px;letter-spacing:.13em}.live-dot{background:#9db8aa;box-shadow:0 0 0 6px rgba(157,184,170,.12)}
.hero-title{line-height:.96;letter-spacing:-.045em;max-width:920px}
.hero-topline{font-size:clamp(54px,8vw,118px);font-weight:650}
.hero-bottomline{font-size:clamp(38px,5.2vw,74px);font-weight:400;margin-left:0;margin-top:6px;font-family:var(--serif);font-style:italic;letter-spacing:-.035em}
.hero-bottom{margin-top:5vh;gap:38px}.hero-intro{max-width:580px;gap:20px}.hero-intro p{font-size:clamp(14px,1.08vw,17px);line-height:1.62;color:rgba(255,255,255,.78)}
.round-story>span{width:48px;height:48px}.round-story i{font-size:9px;letter-spacing:.08em;text-transform:none}
.next-event-float{width:min(380px,32vw);padding:18px;background:rgba(13,22,28,.52);border-color:rgba(255,255,255,.16);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.14)}
.float-date{background:#2f6d73;border-radius:10px}.float-count{top:-56px}.float-count strong{font-family:var(--sans);font-style:normal;font-size:36px;font-weight:500}.float-count span{font-size:7px}
.hero-coordinates,.hero-year{opacity:.5}.scroll-down{letter-spacing:.14em}
.hero-enter{transform:translateY(14px)}body.loaded .hero-enter{animation-duration:.7s}

/* manifesto */
.statement{padding:112px 4vw 105px}.statement-meta{margin-bottom:48px}
.statement-line{font-size:clamp(42px,6.2vw,88px);font-weight:620;letter-spacing:-.05em;line-height:1.02;white-space:normal}
.statement-line-right{text-align:left;margin-top:4px}.statement-line em{font-weight:400}
.statement-bottom{margin-top:48px}.statement-bottom p{font-size:15px;line-height:1.7;max-width:610px}
.statement-orbit{width:130px;height:130px}.statement-orbit span{width:165px;letter-spacing:.11em}.statement-orbit b{font-size:20px;color:#2f6d73}

/* agenda */
.editorial{background:#101a20;padding:112px 4vw}.editorial-head{grid-template-columns:.65fr 1.3fr .85fr;margin-bottom:54px;gap:34px}
.editorial-head h2,.gallery-intro h2,.principles-sticky h2,.team-head h2{font-size:clamp(40px,5vw,72px);font-weight:600;letter-spacing:-.05em;line-height:1.02}
.editorial-head h2 em,.gallery-intro h2 em,.principles-sticky h2 em,.team-head h2 em{font-weight:400}
.editorial-head>p,.gallery-intro p,.team-head>p{font-size:13px;line-height:1.75}
.event-feature{grid-template-columns:1.08fr 1fr;min-height:520px;border-color:rgba(255,255,255,.12)}
.feature-visual{background-image:url('assets/houseboat-real.jpg');background-position:center;background-size:cover}
.feature-visual:after{background:linear-gradient(180deg,rgba(7,13,17,.04) 35%,rgba(7,13,17,.55))}
.feature-date{width:94px;height:104px;left:22px;top:22px;background:#f3f0e8;color:#172127;border-radius:10px}.feature-date strong{font-size:44px}.feature-date span{font-size:7px}
.feature-places i,.status-badge i{background:#9db8aa}
.feature-content{padding:38px 3.4vw}.feature-content h3{font-size:clamp(34px,4vw,58px);line-height:1;letter-spacing:-.045em;margin:34px 0 18px}.feature-content p{font-size:13px}.feature-meta{margin-top:28px}.feature-content>.btn{margin-top:30px}
.event-mini{min-height:330px;padding:26px}.event-mini-body{grid-template-columns:82px 1fr}.event-mini-date strong{font-size:40px}.event-mini h3{font-size:clamp(24px,2.3vw,36px);letter-spacing:-.035em}.event-mini-bottom button:not(:disabled):hover{background:#2f6d73;border-color:#2f6d73;transform:none}

/* Real-photo village gallery; no tilt / fake illustrations */
.village-gallery{padding:112px 4vw 120px;background:#ece8e0}.gallery-intro{grid-template-columns:.55fr 1.2fr .8fr}
.gallery-stage{height:auto;min-height:0;margin-top:64px;display:grid;grid-template-columns:1.25fr .9fr;grid-template-rows:300px 250px;gap:18px}
.photo-card{position:relative!important;inset:auto!important;width:auto!important;height:auto!important;padding:0;background:#fff;box-shadow:none;transform:none!important;border-radius:14px;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.photo-card:hover{transform:translateY(-4px)!important;box-shadow:0 18px 38px rgba(17,30,36,.12)}
.photo-card .remote-photo{height:100%;min-height:100%;transition:transform .7s var(--ease)}.photo-card:hover .remote-photo{transform:scale(1.025)}
.photo-card>span{right:14px;bottom:12px;background:rgba(13,22,28,.72);color:#fff;padding:6px 8px;border-radius:7px;z-index:2}.photo-card>small{left:14px;bottom:12px;background:rgba(13,22,28,.72);color:#fff;padding:7px 9px;border-radius:7px;z-index:2}
.photo-a{grid-row:1/3}.photo-b{grid-column:2;grid-row:1}.photo-c{grid-column:2;grid-row:2}
.photo-port{background-image:url('assets/canal-real.jpg');background-position:center 50%}.photo-canal{background-image:url('assets/poilhes-mairie-canal.webp');background-position:center 43%}.photo-mairie{background-image:url('assets/poilhes-pont-village.jpg');background-position:center 50%}
.gallery-word{display:none}

/* Promise: light, businesslike, no orange block */
.principles{background:#dfe8e5;padding:112px 4vw;grid-template-columns:.9fr 1.1fr;color:#172127}
.principles-sticky p{font-size:14px;color:#58666b}.principles-list{border-color:rgba(23,33,39,.16)}
.principle{min-height:230px;border-color:rgba(23,33,39,.16);padding:28px 0}.principle h3{font-size:clamp(28px,3.1vw,44px);letter-spacing:-.035em}.principle p{font-size:13px;color:#58666b}

/* team */
.team{padding:112px 4vw}.team-grid{margin-top:60px;grid-template-columns:repeat(4,1fr)}
.member{min-height:360px;padding:20px}.member-letter{font-family:var(--sans);font-style:normal;font-size:clamp(62px,7vw,100px);font-weight:300;letter-spacing:-.05em;color:#253238}.member strong{font-size:17px}
.member:hover{background:#172127}.member:hover .member-letter{color:#c7d8d0;transform:translateY(-4px)}.member-join:hover{background:#dfe8e5;color:#172127}.member-join:hover .member-letter{color:#172127}

/* finale */
.finale{min-height:610px;background:#0d161c;padding:90px 20px}.finale h2{font-size:clamp(48px,7vw,96px);line-height:1;letter-spacing:-.055em;margin:30px 0 22px;max-width:980px}.finale p{font-size:14px;margin-bottom:28px;color:rgba(255,255,255,.55)}
.finale-orbit{border-color:rgba(255,255,255,.07)}.orbit-a{width:520px;height:520px}.orbit-b{width:760px;height:760px}
footer{background:#0d161c;padding:52px 4vw 30px}.footer-brand span{color:#9db8aa}

/* Modal polish */
.modal-backdrop{background:rgba(7,13,17,.65)!important;backdrop-filter:blur(10px)}
.reservation-modal,.admin-login{border-radius:18px!important}.modal-brand>span{background:#2f6d73!important}.modal-progress i.active{background:#2f6d73!important}

@media(max-width:980px){
  .main-nav{display:none}.mobile-menu-btn{display:flex}.hero{min-height:760px}.hero-bottom{flex-direction:column;align-items:flex-start}.next-event-float{width:min(100%,430px);align-self:flex-end}.float-count{display:none}
  .editorial-head,.gallery-intro{grid-template-columns:1fr}.editorial-head>p,.gallery-intro p{max-width:600px}.event-feature{grid-template-columns:1fr}.feature-visual{min-height:420px}
  .principles{grid-template-columns:1fr}.principles-sticky{position:relative;top:auto}.team-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .site-header{height:72px;padding:0 18px}.hero{padding:110px 18px 28px;min-height:720px}.hero-kicker{left:18px;top:104px}.hero-title{margin-top:auto}.hero-topline{font-size:54px}.hero-bottomline{font-size:34px}.hero-bottom{margin-top:24px}.hero-intro p{font-size:14px}.hero-buttons{flex-wrap:wrap}.next-event-float{display:none}.hero-coordinates,.hero-year{display:none}.scroll-down{display:none}
  .statement,.editorial,.village-gallery,.principles,.team{padding:82px 18px}.statement-meta{margin-bottom:35px}.statement-line{font-size:38px}.statement-bottom{grid-template-columns:1fr}.statement-orbit{display:none}
  .editorial-head h2,.gallery-intro h2,.principles-sticky h2,.team-head h2{font-size:38px}.event-feature{min-height:0}.feature-visual{min-height:320px}.feature-content{padding:30px 20px}.event-list{grid-template-columns:1fr}.event-mini{border-right:0}.event-mini-body{grid-template-columns:70px 1fr}
  .gallery-stage{display:grid;grid-template-columns:1fr;grid-template-rows:260px 220px 220px}.photo-a,.photo-b,.photo-c{grid-column:1;grid-row:auto}.principle{grid-template-columns:44px 1fr}.team-head{grid-template-columns:1fr}.team-grid{grid-template-columns:1fr 1fr}.member{min-height:260px}.finale{min-height:520px}.finale h2{font-size:46px}.orbit-a{width:400px;height:400px}.orbit-b{width:600px;height:600px}
  footer{grid-template-columns:1fr}.footer-nav{margin:4px 0 10px}footer>small{grid-column:1}
}
@media(max-width:480px){.team-grid{grid-template-columns:1fr}.member{min-height:230px}.member-letter{font-size:70px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* --- Authentification sécurisée --- */
.auth-stage{display:none}.auth-stage.active{display:block}.admin-login h3{font-size:clamp(34px,5vw,48px)!important;letter-spacing:-.045em!important;line-height:1!important}.admin-login>p{margin-bottom:24px}.admin-login .btn-full{width:100%;justify-content:center;margin-top:8px}.security-note{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin:2px 0 20px;background:#e5ece9;border:1px solid #cddbd6;border-radius:12px}.security-note strong{font-size:10px;letter-spacing:.03em;color:#17383b}.security-note span{font-size:10px;line-height:1.55;color:#5a6e6c}.email-code-hint{margin:-5px 0 18px!important;font-size:12px!important;color:#526765!important}.email-code-dev{margin:0 0 12px!important;padding:12px 14px;background:#fff7df;border:1px solid #ead9a2;border-radius:12px;color:#6b5514!important;font-weight:800}.auth-stage .btn-ghost{margin-bottom:8px}.login-error{margin:12px 0 0!important;line-height:1.5}.demo-hint{line-height:1.5}.admin-login input{font-size:14px!important}

/* No event scheduled */
body.no-events .next-event-float,body.no-events .float-count,body.no-events [data-feature-reserve]{display:none!important}
body.no-events .hero-bottom{justify-content:flex-start}

/* V11 entrance loader */
.page-loader{
  background:#0d161c;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
  display:grid;
  place-items:center;
  transform:none!important;
  transition:opacity .75s ease,visibility .75s ease;
}
.page-loader:before{
  content:"";
  position:absolute;
  inset:-5%;
  z-index:-2;
  background:url('assets/canal-real.jpg') center 50%/cover;
  opacity:.28;
  filter:saturate(.8) contrast(1.05) brightness(.7);
  animation:loaderPhoto 1.7s var(--ease) both;
}
.page-loader:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at 50% 45%,rgba(157,184,170,.16),transparent 30%),
    linear-gradient(180deg,rgba(13,22,28,.72),rgba(13,22,28,.94));
}
.page-loader.hide{opacity:0;visibility:hidden;pointer-events:none}
.loader-core{
  display:grid;
  justify-items:center;
  gap:18px;
  transform:translateY(10px);
  animation:loaderCoreIn .65s var(--ease) both;
}
.loader-mark{
  width:58px;
  height:58px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:50%;
  display:grid;
  place-items:center;
  font:400 28px/1 var(--serif);
  opacity:0;
  transform:scale(.86);
  animation:loaderMark .72s var(--ease) .05s forwards;
}
.loader-word{
  display:flex;
  gap:.38em;
  overflow:hidden;
  font-size:clamp(28px,3.4vw,54px);
  font-weight:800;
  letter-spacing:.18em;
  line-height:1;
}
.loader-word span{
  display:block;
  transform:translateY(115%);
  animation:loaderLetter .62s var(--ease) forwards;
}
.loader-word span:nth-child(2){animation-delay:.04s}
.loader-word span:nth-child(3){animation-delay:.08s}
.loader-word span:nth-child(4){animation-delay:.12s}
.loader-word span:nth-child(5){animation-delay:.16s}
.loader-word span:nth-child(6){animation-delay:.2s}
.loader-word span:nth-child(7){animation-delay:.24s}
.loader-line{
  width:min(280px,64vw);
  height:2px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}
.loader-line i{
  display:block;
  height:100%;
  width:100%;
  background:#9db8aa;
  transform:translateX(-102%);
  animation:loaderLine .95s var(--ease) .22s forwards;
}
.page-loader p{
  position:static;
  margin:0;
  transform:none;
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.58);
  opacity:0;
  animation:loaderCaption .55s ease .38s forwards;
}
@keyframes loaderPhoto{
  from{transform:scale(1.08);opacity:.14}
  to{transform:scale(1.02);opacity:.28}
}
@keyframes loaderCoreIn{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes loaderMark{
  to{opacity:1;transform:scale(1)}
}
@keyframes loaderLetter{
  to{transform:none}
}
@keyframes loaderLine{
  to{transform:none}
}
@keyframes loaderCaption{
  to{opacity:1}
}

@media(prefers-reduced-motion:reduce){
  .page-loader:before,.loader-core,.loader-mark,.loader-word span,.loader-line i,.page-loader p{animation:none!important;opacity:1;transform:none}
}

/* V12 entrance loader: calmer, cleaner */
.page-loader{
  background:#0d161c;
  clip-path:inset(0 0 0 0);
  transition:clip-path .8s var(--ease),visibility .8s ease;
}
.page-loader.hide{
  opacity:1;
  visibility:hidden;
  clip-path:inset(0 0 100% 0);
  pointer-events:none;
}
.page-loader:before{
  inset:0;
  background:url('assets/canal-real.jpg') center 50%/cover;
  opacity:.2;
  filter:saturate(.75) contrast(1.04) brightness(.7);
  animation:loaderStill 1.35s ease both;
}
.page-loader:after{
  background:
    linear-gradient(90deg,rgba(13,22,28,.95),rgba(13,22,28,.76) 48%,rgba(13,22,28,.95)),
    linear-gradient(180deg,rgba(13,22,28,.2),rgba(13,22,28,.94));
}
.loader-core{
  gap:13px;
  transform:none;
  animation:v12LoaderCore .5s ease both;
}
.loader-mark{
  width:48px;
  height:48px;
  font-size:24px;
  border-color:rgba(255,255,255,.34);
  opacity:0;
  transform:translateY(8px);
  animation:v12LoaderIn .52s var(--ease) forwards;
}
.loader-word{
  gap:.28em;
  font-size:clamp(22px,2.2vw,32px);
  letter-spacing:.16em;
  overflow:visible;
  padding-left:.16em;
  padding-right:.02em;
  max-width:calc(100vw - 48px);
}
.loader-word span{
  opacity:0;
  transform:translateY(10px);
  animation:v12LoaderIn .46s var(--ease) forwards;
}
.loader-word span:nth-child(2){animation-delay:.035s}
.loader-word span:nth-child(3){animation-delay:.07s}
.loader-word span:nth-child(4){animation-delay:.105s}
.loader-word span:nth-child(5){animation-delay:.14s}
.loader-word span:nth-child(6){animation-delay:.175s}
.loader-word span:nth-child(7){animation-delay:.21s}
.loader-line{
  width:min(210px,58vw);
  height:1px;
  margin-top:2px;
  background:rgba(255,255,255,.14);
}
.loader-line i{
  background:rgba(255,255,255,.78);
  transform:scaleX(0);
  transform-origin:center;
  animation:v12LoaderLine .66s var(--ease) .24s forwards;
}
.page-loader p{
  font-size:9px;
  letter-spacing:.24em;
  color:rgba(255,255,255,.5);
  opacity:0;
  animation:v12LoaderCaption .45s ease .36s forwards;
}
@keyframes loaderStill{
  from{transform:scale(1.035);opacity:.12}
  to{transform:scale(1.015);opacity:.2}
}
@keyframes v12LoaderCore{
  from{opacity:0}
  to{opacity:1}
}
@keyframes v12LoaderIn{
  to{opacity:1;transform:none}
}
@keyframes v12LoaderLine{
  to{transform:scaleX(1)}
}
@keyframes v12LoaderCaption{
  to{opacity:1}
}

/* Invitation account creation */
.invite-page{min-height:100vh;background:#0d161c;color:#172127;display:grid;place-items:center;padding:24px}
.invite-page [hidden]{display:none!important}
.invite-card{width:min(520px,100%);background:#f6f4ef;border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:32px;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.invite-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.invite-brand span{width:42px;height:42px;border-radius:50%;background:#172127;color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:22px}.invite-brand strong{font-size:13px}
.invite-card>small{font-size:8px;letter-spacing:.16em;color:#6f9796;font-weight:800}.invite-card h1{font-size:44px;line-height:1;margin:10px 0 12px;letter-spacing:-.05em}.invite-card p{font-size:13px;line-height:1.55;color:#5d686c}
.invite-summary{display:grid;gap:8px;margin:20px 0;padding:14px;border:1px solid #d8dfdb;border-radius:12px;background:#eef4f1}.invite-summary div{display:flex;justify-content:space-between;gap:16px}.invite-summary span{font-size:11px;color:#69747a}.invite-summary strong{font-size:12px;text-align:right}
.invite-form{display:grid;gap:14px;margin-top:20px}.invite-form label{display:grid;gap:7px;font-size:11px;font-weight:800;color:#465258}.invite-form input{height:52px;border:1px solid #d2d9d5;border-radius:12px;background:#fff;padding:0 13px;font-size:15px;outline:none}.invite-form input:focus{border-color:#2f6d73;box-shadow:0 0 0 3px rgba(47,109,115,.1)}
.invite-error{min-height:20px;color:#b43f2f!important;font-weight:700}.invite-done{display:grid;gap:12px;margin-top:18px}.invite-done strong{font-size:22px}

/* Reservation payment choice */
.payment-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}
.payment-choice label{margin:0!important;text-transform:none!important;letter-spacing:0!important;color:#111!important}
.payment-choice input{position:absolute;opacity:0;pointer-events:none}
.payment-choice span{min-height:94px;border:1px solid #c8c2b7;border-radius:14px;padding:16px;display:flex;flex-direction:column;justify-content:center;gap:6px;background:rgba(255,255,255,.28);transition:.2s}
.payment-choice strong{font-size:13px}
.payment-choice small{font-size:10px;line-height:1.45;color:#756f66}
.payment-choice input:checked+span{border-color:#2f6d73;background:#e5ece9;box-shadow:0 0 0 3px rgba(47,109,115,.12)}
.success-step .btn-full{width:100%;justify-content:center;margin-top:10px}

/* Local payment placeholder */
.payment-page{min-height:100vh;background:#0b151b;color:#172127;display:grid;place-items:center;padding:24px}
.payment-card{width:min(560px,94vw);background:#f3efe6;border-radius:22px;padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.38)}
.payment-card .modal-brand{margin-bottom:22px}
.payment-card h1{font-size:clamp(38px,7vw,62px);line-height:.95;letter-spacing:-.06em;margin:0 0 12px}
.payment-card h1 em{font-family:var(--serif);font-weight:600}
.payment-card>p{font-size:14px;line-height:1.55;color:#6d665d;margin:0 0 22px}
.payment-status{display:inline-flex;align-items:center;border-radius:999px;background:#e5ece9;color:#2f6d73;padding:8px 11px;font-size:11px;font-weight:900;margin-bottom:18px}
.payment-summary{border-top:1px solid #c8c2b7;margin:20px 0}
.payment-summary>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #d6d0c5;padding:13px 0}
.payment-summary span{font-size:10px;color:#7a756c}
.payment-summary strong{font-size:13px;text-align:right}
.payment-actions-page{display:grid;gap:10px}
.payment-error{color:#b52d1d;font-size:13px;line-height:1.45;margin:12px 0 0}
@media(max-width:760px){.payment-choice{grid-template-columns:1fr}.payment-card{padding:28px 22px}}

/* Site notification and maintenance */
.site-notice[hidden],
.site-maintenance-overlay[hidden]{display:none!important}
.site-notice{
  position:fixed;
  left:50%;
  top:86px;
  z-index:850;
  width:min(860px,calc(100vw - 32px));
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:18px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:16px;
  background:rgba(13,22,28,.9);
  color:#fff;
  padding:15px 18px;
  box-shadow:0 18px 60px rgba(0,0,0,.22);
  backdrop-filter:blur(14px);
}
.site-notice:before{
  content:"";
  width:12px;
  height:12px;
  border-radius:50%;
  background:#9db8aa;
  flex:0 0 auto;
}
.site-notice strong{font-size:15px;white-space:nowrap}
.site-notice p{margin:0;font-size:14px;line-height:1.45;color:rgba(255,255,255,.76)}
.site-notice-success:before{background:#9fc58f}
.site-notice-warning:before{background:#e8bb66}
.site-notice-danger:before{background:#e6795d}
.site-maintenance-overlay{
  position:fixed;
  inset:0;
  z-index:900;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(13,22,28,.94);
  color:white;
}
.site-maintenance-overlay>div{
  width:min(620px,100%);
  display:grid;
  gap:14px;
  justify-items:start;
}
.site-maintenance-overlay span{
  width:54px;
  height:54px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  display:grid;
  place-items:center;
  font:400 27px/1 var(--serif);
}
.site-maintenance-overlay small,
.maintenance-public-card>small{
  font-size:11px;
  letter-spacing:.18em;
  color:#9db8aa;
  font-weight:900;
}
.site-maintenance-overlay h1,
.maintenance-public-card h1{
  font-size:clamp(44px,7vw,78px);
  line-height:.95;
  letter-spacing:-.055em;
  margin:0;
}
.site-maintenance-overlay p,
.maintenance-public-card p{
  font-size:18px;
  line-height:1.6;
  color:rgba(255,255,255,.72);
  max-width:620px;
  margin:0;
}
body.site-maintenance-active{overflow:hidden}
.maintenance-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    linear-gradient(120deg,rgba(13,22,28,.96),rgba(13,22,28,.74)),
    url('assets/canal-real.jpg') center/cover;
  color:white;
}
.maintenance-public-card{
  width:min(720px,100%);
  border:1px solid rgba(255,255,255,.16);
  border-radius:26px;
  background:rgba(13,22,28,.78);
  backdrop-filter:blur(14px);
  padding:42px;
  box-shadow:0 30px 90px rgba(0,0,0,.35);
}
.maintenance-public-brand{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:42px;
}
.maintenance-public-brand span{
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.26);
  font:400 24px/1 var(--serif);
}
.maintenance-public-brand strong{font-size:14px}
.maintenance-public-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:30px;
}

@media(max-width:760px){
  .site-notice{top:74px;align-items:flex-start;flex-direction:column;gap:10px}
  .site-notice strong{white-space:normal}
  .maintenance-public-card{padding:30px 22px}
  .site-maintenance-overlay p,
  .maintenance-public-card p{font-size:16px}
}

/* V15 maintenance page: full-screen village status */
.maintenance-page{
  min-height:100vh;
  display:block;
  place-items:initial;
  padding:0;
  overflow:hidden;
  position:relative;
  background:#0d161c;
  color:#fff;
}
.maintenance-page:before{
  content:"";
  position:absolute;
  inset:0;
  background:url('assets/poilhes-mairie-canal.webp') center 48%/cover;
  transform:scale(1.02);
}
.maintenance-page:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 82% 22%,rgba(157,184,170,.18),transparent 34%),
    linear-gradient(90deg,rgba(13,22,28,.92),rgba(13,22,28,.62) 48%,rgba(13,22,28,.82)),
    linear-gradient(180deg,rgba(13,22,28,.18),rgba(13,22,28,.9));
}
.maintenance-public-shell{
  position:relative;
  z-index:1;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  padding:clamp(28px,4vw,64px);
}
.maintenance-public-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.maintenance-public-brand{
  display:flex;
  align-items:center;
  gap:13px;
  color:#fff;
  margin-bottom:0;
}
.maintenance-public-brand span{
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.34);
  font:400 24px/1 var(--serif);
  background:rgba(13,22,28,.28);
}
.maintenance-public-brand strong{font-size:14px}
.maintenance-admin-link{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.24);
  color:white;
  background:rgba(13,22,28,.28);
  font-size:12px;
  font-weight:900;
  backdrop-filter:blur(12px);
}
.maintenance-public-layout{
  flex:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,390px);
  align-items:end;
  gap:clamp(24px,5vw,80px);
  padding:clamp(70px,10vh,140px) 0 clamp(20px,4vh,56px);
}
.maintenance-public-copy{
  display:grid;
  gap:18px;
  max-width:920px;
}
.maintenance-public-copy small{
  font-size:13px;
  letter-spacing:.18em;
  color:#b9d0c4;
  font-weight:900;
}
.maintenance-public-copy h1{
  margin:0;
  max-width:880px;
  font-size:clamp(58px,9vw,132px);
  line-height:.9;
  letter-spacing:0;
  color:#fff;
}
.maintenance-public-copy p{
  margin:0;
  max-width:680px;
  font-size:clamp(18px,2vw,25px);
  line-height:1.5;
  color:rgba(255,255,255,.78);
}
.maintenance-public-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}
.maintenance-public-actions .btn{
  min-height:54px;
  padding:0 22px;
}
.maintenance-status-panel{
  align-self:end;
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  background:rgba(13,22,28,.44);
  backdrop-filter:blur(18px);
  padding:24px;
  box-shadow:0 24px 80px rgba(0,0,0,.28);
}
.maintenance-status-top{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
.maintenance-status-top span{
  width:11px;
  height:11px;
  border-radius:50%;
  background:#9db8aa;
  box-shadow:0 0 0 8px rgba(157,184,170,.12);
}
.maintenance-status-top strong{font-size:15px}
.maintenance-status-panel p{
  margin:0;
  font-size:14px;
  line-height:1.55;
  color:rgba(255,255,255,.65);
}
.maintenance-signal{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:8px;
  margin-top:22px;
}
.maintenance-signal i{
  height:4px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  overflow:hidden;
}
.maintenance-signal i:before{
  content:"";
  display:block;
  width:45%;
  height:100%;
  border-radius:inherit;
  background:#9db8aa;
  animation:maintenancePulse 1.6s ease-in-out infinite;
}
.maintenance-signal i:nth-child(2):before{animation-delay:.18s}
.maintenance-signal i:nth-child(3):before{animation-delay:.36s}
@keyframes maintenancePulse{
  0%{transform:translateX(-110%);opacity:.3}
  45%,60%{opacity:1}
  100%{transform:translateX(240%);opacity:.3}
}

@media(max-width:900px){
  .maintenance-public-layout{grid-template-columns:1fr;align-items:end}
  .maintenance-status-panel{max-width:520px}
}
@media(max-width:620px){
  .maintenance-public-shell{padding:22px}
  .maintenance-admin-link{display:none}
  .maintenance-public-layout{padding-top:70px}
  .maintenance-public-copy h1{font-size:clamp(50px,15vw,78px)}
  .maintenance-public-actions .btn{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  .maintenance-signal i:before{animation:none;transform:none;width:100%}
}

/* V16 maintenance page: clean service page */
.maintenance-page{
  min-height:100vh;
  display:block;
  padding:0;
  overflow:auto;
  background:#f3f1ec;
  color:#172127;
}
.maintenance-page:before,
.maintenance-page:after{display:none}
.maintenance-public-shell{
  min-height:100vh;
  width:min(1540px,100%);
  margin:0 auto;
  padding:clamp(26px,4vw,58px);
  display:flex;
  flex-direction:column;
}
.maintenance-public-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  position:relative;
  z-index:2;
}
.maintenance-public-brand{
  display:flex;
  align-items:center;
  gap:13px;
  color:#172127;
  margin:0;
}
.maintenance-public-brand span{
  width:50px;
  height:50px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid #cfd7d3;
  background:#fff;
  color:#172127;
  font:400 25px/1 var(--serif);
}
.maintenance-public-brand strong{font-size:14px;color:#172127}
.maintenance-admin-link{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid #d6d9d4;
  color:#172127;
  background:#fff;
  font-size:12px;
  font-weight:900;
  box-shadow:none;
  backdrop-filter:none;
}
.maintenance-public-layout{
  flex:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,540px);
  align-items:center;
  gap:clamp(34px,6vw,96px);
  padding:clamp(48px,8vh,110px) 0 18px;
}
.maintenance-public-copy{
  display:grid;
  gap:18px;
  max-width:780px;
}
.maintenance-public-copy small{
  font-size:13px;
  letter-spacing:.16em;
  color:#2f6d73;
  font-weight:900;
}
.maintenance-public-copy h1{
  margin:0;
  max-width:760px;
  font-size:clamp(46px,5vw,76px);
  line-height:1;
  letter-spacing:0;
  color:#12191d;
}
.maintenance-public-copy p{
  margin:0;
  max-width:650px;
  font-size:clamp(19px,2vw,25px);
  line-height:1.5;
  color:#546064;
}
.maintenance-public-note{
  margin-top:10px;
  width:min(520px,100%);
  display:flex;
  align-items:center;
  gap:14px;
  border:1px solid #dce2df;
  border-radius:18px;
  background:#fff;
  padding:16px 18px;
}
.maintenance-public-note>span{
  width:11px;
  height:11px;
  border-radius:50%;
  flex:0 0 auto;
  background:#2f6d73;
  box-shadow:0 0 0 8px rgba(47,109,115,.1);
}
.maintenance-public-note strong{
  display:block;
  font-size:15px;
  color:#172127;
}
.maintenance-public-note small{
  display:block;
  margin-top:4px;
  font-size:13px;
  letter-spacing:0;
  color:#7a8588;
  font-weight:700;
}
.maintenance-public-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:14px;
}
.maintenance-public-actions .btn{
  min-height:54px;
  padding:0 22px;
  border-radius:14px;
}
.maintenance-public-photo{
  min-height:min(62vh,640px);
  margin:0;
  position:relative;
  overflow:hidden;
  border-radius:28px;
  border:1px solid #d6d9d4;
  background:url('assets/poilhes-mairie-canal.webp') center/cover;
  box-shadow:0 24px 70px rgba(21,29,32,.13);
}
.maintenance-public-photo:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(13,22,28,.56));
}
.maintenance-public-photo span,
.maintenance-public-photo small{
  position:absolute;
  z-index:1;
  left:24px;
}
.maintenance-public-photo span{
  bottom:52px;
  color:#fff;
  font-size:30px;
  font-weight:900;
}
.maintenance-public-photo small{
  bottom:28px;
  color:rgba(255,255,255,.78);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:900;
}

@media(max-width:900px){
  .maintenance-public-layout{grid-template-columns:1fr;align-items:start;padding-top:52px}
  .maintenance-public-photo{min-height:320px;order:-1}
}
@media(max-width:620px){
  .maintenance-public-shell{padding:20px}
  .maintenance-admin-link{display:none}
  .maintenance-public-copy h1{font-size:clamp(40px,12vw,58px)}
  .maintenance-public-copy p{font-size:17px}
  .maintenance-public-note{align-items:flex-start}
  .maintenance-public-actions .btn{width:100%;justify-content:center}
  .maintenance-public-photo{min-height:250px;border-radius:20px}
}

/* V17 maintenance: simple, useful, no duplicate admin action */
.maintenance-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    linear-gradient(135deg,rgba(246,244,239,.96),rgba(236,232,224,.96)),
    url('assets/poilhes-mairie-canal.webp') center/cover;
  color:#172127;
}
.maintenance-page:before,
.maintenance-page:after{display:none!important}
.maintenance-public-shell{
  width:min(680px,100%);
  min-height:auto;
  margin:0;
  padding:0;
  display:block;
}
.maintenance-public-header{
  display:block;
  margin-bottom:22px;
}
.maintenance-public-brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#172127;
  margin:0;
}
.maintenance-public-brand span{
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid #cfd7d3;
  background:white;
  display:grid;
  place-items:center;
  color:#172127;
  font:400 23px/1 var(--serif);
}
.maintenance-public-brand strong{font-size:14px;color:#172127}
.maintenance-public-layout{
  display:block;
  padding:0;
}
.maintenance-public-copy{
  max-width:none;
  display:block;
  border:1px solid #d9dedb;
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow:0 24px 70px rgba(21,29,32,.11);
  padding:clamp(28px,5vw,46px);
}
.maintenance-public-copy>small{
  display:block;
  margin-bottom:18px;
  font-size:12px;
  letter-spacing:.15em;
  color:#2f6d73;
  font-weight:900;
}
.maintenance-public-copy h1{
  margin:0 0 14px;
  max-width:580px;
  font-size:clamp(38px,6vw,58px);
  line-height:1.02;
  letter-spacing:0;
  color:#12191d;
}
.maintenance-public-copy p{
  margin:0;
  max-width:560px;
  font-size:18px;
  line-height:1.55;
  color:#5c676b;
}
.maintenance-public-note{
  margin:24px 0 0;
  width:100%;
  display:flex;
  align-items:center;
  gap:13px;
  border:1px solid #dce2df;
  border-radius:16px;
  background:#f6f8f7;
  padding:15px 16px;
}
.maintenance-public-note>span{
  width:10px;
  height:10px;
  border-radius:50%;
  flex:0 0 auto;
  background:#2f6d73;
  box-shadow:0 0 0 7px rgba(47,109,115,.1);
}
.maintenance-public-note strong{
  display:block;
  font-size:14px;
  color:#172127;
}
.maintenance-public-note small{
  display:block;
  margin-top:4px;
  font-size:13px;
  letter-spacing:0;
  color:#788386;
  font-weight:700;
}
.maintenance-public-actions{
  margin-top:24px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.maintenance-public-actions .btn{
  min-height:52px;
  border-radius:13px;
  padding:0 22px;
}
.maintenance-public-photo,
.maintenance-admin-link{display:none!important}
.maintenance-login-panel[hidden]{display:none!important}
.maintenance-login-panel{
  margin-top:24px;
  border-top:1px solid #dce2df;
  padding-top:24px;
}
.maintenance-login-panel>small{
  display:block;
  margin-bottom:8px;
  font-size:11px;
  letter-spacing:.15em;
  color:#2f6d73;
  font-weight:900;
}
.maintenance-login-panel h2{
  margin:0 0 18px;
  font-size:28px;
  line-height:1;
  color:#12191d;
}
.maintenance-login-form label{
  display:grid;
  gap:8px;
  margin-bottom:14px;
  font-size:11px;
  font-weight:900;
  color:#465258;
}
.maintenance-login-form input{
  width:100%;
  height:50px;
  border:1px solid #d2d9d5;
  border-radius:12px;
  background:#fff;
  padding:0 13px;
  font-size:15px;
  outline:none;
}
.maintenance-login-form input:focus{
  border-color:#2f6d73;
  box-shadow:0 0 0 3px rgba(47,109,115,.1);
}
.maintenance-login-form .btn-full{
  width:100%;
  justify-content:center;
  margin-top:8px;
}
.maintenance-login-form .login-error{
  display:none;
  margin-top:14px!important;
  color:#b43f2f;
  font-size:13px;
  line-height:1.45;
  font-weight:800;
}
.maintenance-login-form .login-error.show{display:block}

/* Standalone admin login, reachable during maintenance */
.standalone-login-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:#f3f1ec;
  color:#172127;
}
.standalone-login-card{
  width:min(520px,100%);
  border:1px solid #d9dedb;
  border-radius:22px;
  background:white;
  padding:34px;
  box-shadow:0 24px 70px rgba(21,29,32,.11);
}
.standalone-login-brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#172127;
  margin-bottom:28px;
}
.standalone-login-brand span{
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid #cfd7d3;
  background:#fff;
  display:grid;
  place-items:center;
  color:#172127;
  font:400 23px/1 var(--serif);
}
.standalone-login-brand strong{font-size:14px}
.standalone-login-card>small{
  display:block;
  font-size:11px;
  letter-spacing:.15em;
  color:#2f6d73;
  font-weight:900;
}
.standalone-login-card h1{
  margin:10px 0 10px;
  font-size:44px;
  line-height:1;
  letter-spacing:0;
  color:#12191d;
}
.standalone-login-card>p{
  margin:0 0 24px;
  font-size:15px;
  line-height:1.5;
  color:#69747a;
}
.standalone-login-form label{
  display:grid;
  gap:8px;
  margin-bottom:16px;
  font-size:11px;
  font-weight:900;
  color:#465258;
}
.standalone-login-form input{
  width:100%;
  height:52px;
  border:1px solid #d2d9d5;
  border-radius:12px;
  background:#f9faf9;
  padding:0 13px;
  font-size:15px;
  outline:none;
}
.standalone-login-form input:focus{
  border-color:#2f6d73;
  box-shadow:0 0 0 3px rgba(47,109,115,.1);
}
.standalone-login-form .btn-full{
  width:100%;
  justify-content:center;
  margin-top:8px;
}
.standalone-login-form .login-error{
  display:none;
  margin-top:14px!important;
  color:#b43f2f;
  font-size:13px;
  line-height:1.45;
  font-weight:800;
}
.standalone-login-form .login-error.show{display:block}

@media(max-width:620px){
  .maintenance-page,
  .standalone-login-page{padding:16px}
  .maintenance-public-copy,
  .standalone-login-card{padding:24px;border-radius:18px}
  .maintenance-public-copy h1,
  .standalone-login-card h1{font-size:36px}
  .maintenance-public-actions .btn{width:100%;justify-content:center}
}
