/* Layout: the page is a trip — each section is a stop (map → postcards → tickets → passport → departures board → boarding pass). */
:root{
  color-scheme: light;
  --navy:#1B2B5E; --navy-deep:#101A3D; --navy-soft:#2C3E7C;
  --red:#D0202E; --red-deep:#A8121F;
  --sun:#F4B13E; --sky:#E4ECF7;
  --ground:#F2F4F9; --paper:#FFFFFF; --ink:#17203F; --muted:#56607F; --line:#D5DCEA;
  --green:#2E7D5B; --plum:#6B3FA0;
  --f-display:"Lilita One","Arial Rounded MT Bold","Trebuchet MS",sans-serif;
  --f-body:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-hand:"Caveat","Segoe Print","Bradley Hand",cursive;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --wrap:1180px; --gut:clamp(16px,4vw,40px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.05;margin:0;text-wrap:balance;letter-spacing:.005em}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.eyebrow{font-family:var(--f-mono);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.stop{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.stop b{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;letter-spacing:0}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-body);font-weight:800;font-size:16px;line-height:1;padding:15px 22px;border-radius:999px;border:2px solid transparent;cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s}
.btn svg{width:18px;height:18px;flex:none}
.btn-red{background:var(--red);color:#fff;box-shadow:0 4px 0 var(--red-deep)}
.btn-red:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--red-deep)}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff}
.btn-sun{background:var(--sun);color:var(--navy-deep);box-shadow:0 4px 0 #C98A1F}
.btn-sun:hover{transform:translateY(-2px)}

/* ---------- NAV ---------- */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(242,244,249,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:24px;height:72px}
.nav .logo img{height:48px;width:auto}
.nav ul{display:flex;gap:26px;list-style:none;margin:0 0 0 auto;padding:0}
.nav ul a{text-decoration:none;font-weight:600;font-size:15.5px;color:var(--navy)}
.nav ul a:hover{color:var(--red)}
.nav .btn{padding:11px 18px;font-size:15px}
.flight{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 12px)}
.flight i{position:absolute;left:0;top:0;height:2px;width:var(--p,0%);background:var(--red)}
.flight svg{position:absolute;top:-9px;left:calc(var(--p,0%) - 10px);width:20px;height:20px;color:var(--red);transition:left .1s linear}
@media (max-width:860px){.nav ul{display:none}.nav .btn{margin-left:auto}.nav .logo img{height:40px}}

/* ---------- HERO ---------- */
.hero{padding-block:clamp(18px,2.6vw,36px) clamp(28px,3.5vw,48px);position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(24px,4vw,56px);align-items:center}
.hero-copy{min-width:0}
.hero h1{font-size:clamp(44px,6.2vw,80px);color:var(--navy);margin:12px 0 18px}
.hero h1 em{font-style:normal;color:var(--red);position:relative;white-space:nowrap}
.hero h1 em svg{position:absolute;left:-2%;bottom:-.16em;width:104%;height:.3em;color:var(--sun)}
.hero .lead{font-size:clamp(19px,2vw,22px);font-weight:600;color:var(--ink);max-width:34ch}
.hero .sub{margin-top:12px;color:var(--muted);max-width:46ch}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px}
.tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:13px;font-weight:600;background:var(--paper);border:1.5px solid var(--navy);color:var(--navy);padding:7px 12px 7px 10px;border-radius:6px 999px 999px 6px;position:relative}
.tag::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--navy);background:var(--ground)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.hero-art{position:relative;aspect-ratio:1/1;max-width:min(480px,62vh);width:100%;justify-self:center}
.hero-art .globe{position:absolute;inset:6% 4% 8% 4%;width:92%;height:auto;object-fit:contain;filter:drop-shadow(0 24px 30px rgba(27,43,94,.18))}
.hero-art .orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.hero-art .orbit ellipse{fill:none;stroke:var(--navy);stroke-opacity:.28;stroke-width:1.6;stroke-dasharray:3 9;stroke-linecap:round}
.hero-art .balloon{position:absolute;width:15%;left:-2%;top:6%;animation:float 6s ease-in-out infinite}
.hero-art .bus{position:absolute;width:30%;right:-4%;bottom:0;transform:rotate(4deg);filter:drop-shadow(0 10px 10px rgba(0,0,0,.15))}
.orbit-plane{color:var(--red)}
@keyframes fly{to{offset-distance:100%}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.hello-bubble{position:absolute;right:8%;top:6%;background:var(--paper);border:2px solid var(--navy);border-radius:18px 18px 18px 4px;padding:8px 14px;font-family:var(--f-hand);font-size:26px;font-weight:700;color:var(--navy);transform:rotate(5deg);box-shadow:4px 4px 0 var(--navy)}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero-art{max-width:300px;margin-top:8px}.hello-bubble{font-size:21px}}

/* bunting */
.bunting{height:30px;background:
  linear-gradient(var(--line),var(--line)) top/100% 2px no-repeat,
  conic-gradient(from -30deg at 50% 100%, transparent 0 0) ;position:relative;overflow:hidden}
.bunting svg{display:block;width:100%;height:30px}

/* ---------- MAP ---------- */
.voyage{background:var(--navy);color:#fff;padding-block:clamp(56px,8vw,96px);position:relative}
.voyage .stop{color:#AFC0E6}.voyage .stop b{background:var(--red)}
.voyage h2{font-size:clamp(34px,4.3vw,54px)}
.voyage .intro{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px 40px;margin-bottom:30px}
.voyage .intro p{max-width:46ch;color:#D3DCF2}
.map-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:stretch}
.map-box{background:var(--navy-deep);border-radius:22px;padding:14px;position:relative;min-width:0;border:1px solid rgba(255,255,255,.08)}
.map-box svg{width:100%;height:auto;display:block}
.land{fill:#2A3B76;stroke:var(--navy-deep);stroke-width:.6}
.land.en{fill:#5D79C0;cursor:pointer;transition:fill .3s}
.land.en:hover{fill:#7591D8}
.land.en.on{fill:var(--red)}
.land.home{fill:var(--sun)}
.grat{fill:none;stroke:rgba(255,255,255,.05);stroke-width:.7}
.pin{cursor:pointer;outline:none}
.pin .dot{fill:#fff;stroke:var(--navy-deep);stroke-width:2;transition:r .2s}
.pin .ring{fill:none;stroke:#fff;stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center}
.pin:hover .dot,.pin:focus-visible .dot{fill:var(--sun)}
.pin.on .dot{fill:var(--sun);r:7}
.pin.on .ring{animation:pulse 1.8s ease-out infinite}
.pin.done .dot{fill:#FFD9DC}
.pin.on.done .dot{fill:var(--sun)}
@keyframes pulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
.home-pin circle{fill:var(--red);stroke:#fff;stroke-width:2}
.home-pin text,.map-label{font-family:var(--f-mono);font-size:11px;font-weight:600;fill:#fff;paint-order:stroke;stroke:var(--navy-deep);stroke-width:3px;letter-spacing:.04em}
.route{fill:none;stroke:var(--sun);stroke-width:2.2;stroke-dasharray:5 6;stroke-linecap:round}
.route-plane{color:var(--sun)}
.map-hint{position:absolute;left:26px;top:18px;font-family:var(--f-hand);font-size:22px;color:var(--sun);pointer-events:none}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{font-family:var(--f-body);font-size:14.5px;font-weight:600;background:transparent;color:#DCE4F7;border:1.5px solid rgba(255,255,255,.28);border-radius:999px;padding:7px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.chip::before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor}
.chip.done::before{background:var(--red);border-color:var(--red)}
.chip:hover{border-color:#fff;color:#fff}
.chip[aria-pressed="true"]{background:var(--sun);border-color:var(--sun);color:var(--navy-deep)}
.chip[aria-pressed="true"]::before{border-color:var(--navy-deep)}

.dest-card{background:var(--paper);color:var(--ink);border-radius:22px;padding:24px 24px 22px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;min-width:0}
.dest-card .where{font-family:var(--f-mono);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;gap:10px}
.dest-card .city{font-family:var(--f-display);font-size:40px;line-height:1;color:var(--navy)}
.phrase{background:var(--sky);border-radius:14px;padding:16px 16px 14px;position:relative}
.phrase .en{font-family:var(--f-display);font-size:27px;line-height:1.1;color:var(--red)}
.phrase .fr{font-family:var(--f-hand);font-size:24px;line-height:1.1;color:var(--navy);margin-top:6px}
.phrase small{position:absolute;top:-10px;left:14px;background:var(--navy);color:#fff;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:4px}
.fact b{display:block;font-size:13px;font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:4px}
.fact p{font-size:15.5px;line-height:1.5;color:var(--ink)}
.dest-card .swap{transition:opacity .25s, transform .25s}
.dest-card.changing .swap{opacity:0;transform:translateY(6px)}
.dest-card .stamp-fly{position:absolute;right:14px;top:56px;width:92px;height:92px;opacity:0;transform:scale(1.8) rotate(-20deg);pointer-events:none}
.dest-card .stamp-fly.go{animation:stampIn .55s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes stampIn{0%{opacity:0;transform:scale(1.8) rotate(-20deg)}60%{opacity:.95}100%{opacity:.9;transform:scale(1) rotate(-12deg)}}

.passport{margin-top:24px;background:#7A1620;background:linear-gradient(135deg,#8E1B27,#6B111B);border-radius:18px;padding:18px 20px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;box-shadow:inset 0 0 0 2px rgba(244,177,62,.35)}
.passport .cover{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--sun);text-align:center;line-height:1.4;border-right:1px solid rgba(244,177,62,.35);padding-right:18px}
.passport .cover strong{display:block;font-family:var(--f-display);font-size:30px;letter-spacing:0;color:#fff;line-height:1;margin:4px 0}
.stamps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:4px 2px;max-width:520px}
@media (min-width:1100px){.stamps{grid-template-columns:repeat(10,minmax(0,1fr));max-width:none}}
.slot{aspect-ratio:1/1;min-width:0;border-radius:12px;border:1.5px dashed rgba(255,255,255,.28);display:grid;place-items:center;transition:background .3s,border-color .3s}
.slot svg{width:94%;height:94%;opacity:.5;transition:opacity .3s}
.slot.has{border-color:transparent;background:#FBF6EE}
.slot.has svg{opacity:1}
.reward{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid rgba(244,177,62,.35);padding-top:14px;margin-top:2px}
.reward p{font-weight:600;color:#fff;max-width:52ch}
.reward p .k{font-family:var(--f-hand);font-size:24px;color:var(--sun);display:block;line-height:1}
@media (max-width:980px){.map-grid{grid-template-columns:1fr}.map-hint{display:none}}
@media (max-width:560px){.passport{grid-template-columns:1fr}.passport .cover{border-right:0;border-bottom:1px solid rgba(244,177,62,.35);padding:0 0 10px;text-align:left;display:flex;align-items:baseline;gap:10px}.passport .cover strong{display:inline;font-size:24px}}

/* ---------- SECTIONS ---------- */
.section{padding-block:clamp(64px,9vw,112px)}
.section-head{margin-bottom:clamp(32px,4vw,52px)}
.section-head h2{font-size:clamp(34px,4.3vw,54px);color:var(--navy)}
.section-head p{margin-top:14px;font-size:19px;color:var(--muted);max-width:52ch}
.center{text-align:center;margin-top:44px}

/* postcards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.postcard{padding:9px;border-radius:6px;background:repeating-linear-gradient(-45deg,var(--red) 0 14px,#fff 14px 22px,var(--navy) 22px 36px,#fff 36px 44px);box-shadow:0 18px 30px -18px rgba(27,43,94,.45);transform:rotate(var(--r,0deg));transition:transform .25s ease}
.postcard:hover{transform:rotate(0) translateY(-6px)}
.postcard:nth-child(1){--r:-1.6deg}.postcard:nth-child(2){--r:1.2deg}.postcard:nth-child(3){--r:-.8deg}
.pc-in{background:var(--paper);border-radius:3px;padding:22px 22px 24px;height:100%;display:flex;flex-direction:column;gap:12px;position:relative}
.pc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-height:84px}
.postmark{position:relative;width:110px;height:70px;flex:none;color:var(--navy);opacity:.75}
.postmark svg{width:100%;height:100%}
.pc-stamp{width:70px;height:84px;flex:none;transform:rotate(3deg)}
.postcard h3{font-size:30px;color:var(--navy)}
.postcard .hand{font-family:var(--f-hand);font-size:27px;line-height:1.1;color:var(--red);font-weight:700}
.postcard p.body{font-size:16px;color:var(--ink);line-height:1.55}
.pc-addr{margin-top:auto;padding-top:14px;border-top:1.5px solid var(--line);font-family:var(--f-hand);font-size:21px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}
@media (max-width:900px){.cards{grid-template-columns:1fr;max-width:520px;margin-inline:auto}}

/* tickets */
.cours{background:var(--paper);border-block:1px solid var(--line)}
.tickets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.ticket{display:grid;grid-template-columns:minmax(0,1fr) 172px;background:var(--ground);border-radius:18px;position:relative;filter:drop-shadow(0 10px 18px rgba(27,43,94,.12));transition:transform .2s}
.ticket:hover{transform:translateY(-4px)}
.t-main{padding:0 0 22px;display:flex;flex-direction:column;min-width:0;background:var(--paper);border-radius:18px 0 0 18px;overflow:hidden;border:1.5px solid var(--line);border-right:0}
.t-photo{aspect-ratio:16/10;overflow:hidden;position:relative}
.t-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.t-photo img.pos-right{object-position:82% 40%}
.t-photo .cls{position:absolute;left:14px;bottom:12px;background:var(--navy);color:#fff;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border-radius:5px}
.t-body{padding:18px 22px 0;display:flex;flex-direction:column;gap:10px;flex:1}
.ticket h3{font-size:30px;color:var(--navy)}
.ticket h3 span{display:block;font-family:var(--f-hand);font-size:25px;color:var(--red);margin-top:4px;line-height:1.05}
.ticket p{font-size:15.5px;color:var(--ink);line-height:1.55}
.t-stub{background:var(--navy);color:#fff;border-radius:0 18px 18px 0;padding:22px 16px;display:flex;flex-direction:column;gap:14px;position:relative;border-left:2px dashed rgba(255,255,255,.45)}
.t-stub::before,.t-stub::after{content:"";position:absolute;left:-13px;width:24px;height:24px;border-radius:50%;background:var(--paper)}
.t-stub::before{top:-12px}.t-stub::after{bottom:-12px}
.t-field{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#AFC0E6;line-height:1.3}
.t-field strong{display:block;font-size:15px;letter-spacing:.02em;color:#fff;margin-top:3px;text-transform:none;font-weight:600}
.t-stub .btn{margin-top:auto;font-size:14px;padding:12px 14px;border-radius:12px;justify-content:center;text-align:center;line-height:1.2}
.barcode{height:34px;background:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 4px,#fff 4px 5px,transparent 5px 9px,#fff 9px 12px,transparent 12px 14px);opacity:.85;border-radius:2px}
@media (max-width:980px){.tickets{grid-template-columns:1fr;max-width:640px;margin-inline:auto}}
@media (max-width:520px){.ticket{grid-template-columns:1fr}.t-main{border-radius:18px 18px 0 0;border-right:1.5px solid var(--line);border-bottom:0}.t-stub{border-radius:0 0 18px 18px;border-left:0;border-top:2px dashed rgba(255,255,255,.45);flex-direction:row;flex-wrap:wrap;align-items:flex-end}.t-stub::before,.t-stub::after{left:auto;top:-13px}.t-stub::before{left:-12px}.t-stub::after{right:-12px;bottom:auto}.t-stub .barcode{display:none}.t-stub .btn{width:100%}}

/* Dorcas passport */
.dorcas .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.pp{min-width:0;background:linear-gradient(180deg,#EEF2FA,#E1E9F6);border-radius:16px;padding:22px 22px 18px;border:1.5px solid #C7D3EA;position:relative;overflow:hidden;box-shadow:0 30px 40px -28px rgba(27,43,94,.5);transform:rotate(-1.2deg)}
.pp::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 80% 30%,transparent 0 10px,rgba(27,43,94,.045) 10px 11px);pointer-events:none}
.pp-head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);border-bottom:1.5px solid #C7D3EA;padding-bottom:10px;margin-bottom:16px;gap:10px;position:relative}
.pp-head strong{font-family:var(--f-display);font-size:22px;letter-spacing:.02em;color:var(--red)}
.pp-body{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;position:relative}
.pp-photo{border-radius:8px;overflow:hidden;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.15);align-self:start}
.pp-photo img{aspect-ratio:1/1;object-fit:cover;width:100%;height:auto}
.pp dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.pp dl div{min-width:0}
.pp dl .full{grid-column:1/-1}
.pp dt{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pp dd{margin:2px 0 0;font-family:var(--f-mono);font-weight:600;font-size:15px;color:var(--navy);line-height:1.35}
.pp .sig{font-family:var(--f-hand);font-size:34px;color:var(--navy);line-height:1;font-weight:700}
.mrz{max-width:100%;text-overflow:clip;margin-top:16px;padding-top:12px;border-top:1.5px solid #C7D3EA;font-family:var(--f-mono);font-size:clamp(9.5px,1.25vw,13.5px);letter-spacing:.12em;color:var(--navy);line-height:1.5;white-space:nowrap;overflow:hidden;position:relative}
.pp-stamp{position:absolute;right:12px;bottom:46px;width:104px;opacity:.85;transform:rotate(-14deg);pointer-events:none}
.dorcas-copy{min-width:0}
.dorcas-copy h2{font-size:clamp(40px,4.4vw,60px);color:var(--navy);white-space:nowrap}
.dorcas-copy .kicker{font-family:var(--f-hand);font-size:clamp(26px,3vw,32px);color:var(--red);line-height:1.1;margin:10px 0 24px;font-weight:700}
.dorcas-copy h3{font-size:26px;color:var(--navy);margin-bottom:14px}
.dorcas-copy p{margin-bottom:14px;max-width:58ch}
.dorcas-copy .btn{margin-top:10px}
.album{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:28px;margin-top:20px;max-width:980px;justify-self:center;width:100%}
.polaroid{flex:0 0 calc((100% - 56px)/3);margin:0;background:#fff;padding:10px 10px 6px;box-shadow:0 12px 22px -12px rgba(27,43,94,.45);transform:rotate(var(--r));transition:transform .25s}
.polaroid:hover{transform:rotate(0) scale(1.04)}
.polaroid img{aspect-ratio:4/3;object-fit:cover;object-position:50% 25%;width:100%}
.polaroid figcaption{font-family:var(--f-hand);font-size:20px;color:var(--navy);text-align:center;padding-top:6px;line-height:1.1}
.polaroid:nth-child(1){--r:-2deg}.polaroid:nth-child(2){--r:1.5deg}.polaroid:nth-child(3){--r:-1deg}.polaroid:nth-child(4){--r:2deg}.polaroid:nth-child(5){--r:-1.5deg}
@media (max-width:900px){.dorcas .wrap{grid-template-columns:1fr}.album{gap:14px}.polaroid{flex-basis:calc((100% - 28px)/3)}}
@media (max-width:600px){.album{max-width:300px;margin-inline:auto}.album .polaroid{flex-basis:100%}.polaroid figcaption{font-size:22px}}
@media (max-width:480px){.dorcas-copy h2{white-space:normal}.pp-body{grid-template-columns:1fr}.pp-photo{max-width:170px}}

/* departures board */
.tarifs{background:var(--sky)}
.board{background:var(--navy-deep);border-radius:20px;padding:clamp(16px,2.5vw,28px);color:var(--sun);box-shadow:0 30px 50px -30px rgba(16,26,61,.7);border:6px solid #1F2A4F}
.board-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.12)}
.board-top h3{font-family:var(--f-mono);font-weight:600;font-size:clamp(18px,2.4vw,26px);letter-spacing:.18em;color:#fff;display:flex;align-items:center;gap:12px}
.board-top h3 svg{width:28px;height:28px;color:var(--sun)}
.board-top .clock{font-family:var(--f-mono);font-size:15px;color:#AFC0E6;letter-spacing:.1em}
.board-scroll{overflow-x:auto}
.board table{width:100%;border-collapse:separate;border-spacing:0 10px;font-family:var(--f-mono);min-width:760px}
.board th{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#8EA0CF;text-align:left;padding:12px 14px 2px}
.board td{background:#18234B;padding:16px 14px;font-size:16px;font-weight:600;color:var(--sun);vertical-align:top;position:relative;letter-spacing:.04em;text-transform:uppercase;line-height:1.35}
.board td:first-child{border-radius:10px 0 0 10px;color:#fff}
.board td:last-child{border-radius:0 10px 10px 0}
.board td.price{font-size:26px;color:#fff;white-space:nowrap}
.board td.price small{display:block;font-size:11px;color:#8EA0CF;letter-spacing:.08em}
.board td .note{display:block;text-transform:none;font-size:14px;color:#D9E1F5;font-weight:500;letter-spacing:0}
.fineprint{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}
.fineprint div{background:var(--paper);border-radius:14px;padding:16px 18px;font-size:15.5px;line-height:1.5;border:1px solid var(--line)}
.fineprint b{display:block;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:4px}
.slot-cta{margin-top:36px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;background:var(--navy);color:#fff;border-radius:20px;padding:26px 28px}
.slot-cta h3{font-size:30px}
.slot-cta p{color:#D3DCF2;margin-top:6px;max-width:52ch}
@media (max-width:700px){.board table{min-width:0}.board thead{display:none}.board tr,.board td{display:block}.board tr{background:#18234B;border-radius:12px;margin-bottom:12px;padding:6px 0}.board td,.board td:first-child,.board td:last-child{background:none;border-radius:0;padding:6px 16px}.board td:first-child{font-size:18px}.board td:nth-child(3)::before{content:"Séances · "}.board td:nth-child(4)::before{content:"Groupe · "}.board td:nth-child(3)::before,.board td:nth-child(4)::before{color:#8EA0CF;font-size:12px}.board table{border-spacing:0}}
@media (max-width:860px){.fineprint{grid-template-columns:1fr}}

/* boarding pass contact */
.contact{padding-top:clamp(36px,4vw,56px);padding-bottom:clamp(64px,8vw,100px);position:relative;overflow:hidden}
.contact .section-head{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.contact .section-head{margin-bottom:24px}
.contact .section-head h2{font-size:clamp(36px,4.6vw,60px)}
.contact .plane-deco{width:clamp(90px,11vw,150px)}
@media (max-width:700px){.contact .plane-deco{display:none}}
.pass{display:grid;grid-template-columns:minmax(0,1fr) 330px;background:var(--paper);border-radius:22px;box-shadow:0 40px 60px -36px rgba(27,43,94,.55);border:1.5px solid var(--line);position:relative}
.pass-main{padding:0;min-width:0}
.pass-band{background:var(--red);color:#fff;border-radius:20px 0 0 0;padding:14px 26px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--f-mono);font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;flex-wrap:wrap}
.pass-band img{height:34px;width:auto;background:#fff;border-radius:6px;padding:3px 6px}
.route-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:22px 26px 6px}
.route-row .pt{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.route-row .pt strong{display:block;font-family:var(--f-display);font-size:clamp(26px,3.6vw,40px);letter-spacing:0;color:var(--navy);line-height:1;margin-top:4px;text-transform:none}
.route-row .pt:last-child{text-align:right}
.route-row .mid{display:flex;align-items:center;gap:8px;color:var(--red)}
.route-row .mid i{width:clamp(24px,6vw,80px);border-top:2px dashed var(--line)}
.route-row .mid svg{width:30px;height:30px}
.pass-intro{padding:8px 26px 0;color:var(--muted)}
.pass-intro h3{font-size:28px;color:var(--navy);margin-bottom:6px}
form{padding:18px 26px 26px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-family:var(--f-mono);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.field input,.field select,.field textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--ground);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(27,43,94,.15)}
.chips-course{display:flex;flex-wrap:wrap;gap:8px}
.chips-course label{cursor:pointer}
.chips-course input{position:absolute;opacity:0;width:1px;height:1px}
.chips-course span{display:inline-block;font-family:var(--f-body);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--ground);color:var(--ink)}
.chips-course input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.chips-course input:focus-visible+span{outline:3px solid var(--sun);outline-offset:2px}
.form-foot{grid-column:1/-1;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.form-msg{font-size:15px;color:var(--muted)}
.form-msg.err{color:var(--red);font-weight:600}
.pass-stub{border-left:2px dashed var(--line);padding:0;display:flex;flex-direction:column;position:relative;min-width:0}
.pass-stub::before,.pass-stub::after{content:"";position:absolute;left:-14px;width:26px;height:26px;border-radius:50%;background:var(--ground);border:1.5px solid var(--line)}
.pass-stub::before{top:-14px}.pass-stub::after{bottom:-14px}
.stub-band{background:var(--navy);color:#fff;border-radius:0 20px 0 0;padding:14px 22px;font-family:var(--f-mono);font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.stub-body{padding:22px;display:flex;flex-direction:column;gap:18px;flex:1}
.stub-body .t-field{color:var(--muted)}
.stub-body .t-field strong{color:var(--navy);font-size:16px}
.stub-body .addr{font-size:14px;line-height:1.5}.stub-body .addr span{white-space:nowrap}
.stub-body .big{font-family:var(--f-display);font-size:30px;color:var(--red);letter-spacing:.01em;line-height:1.1;display:block;margin-top:2px;text-transform:none}
.copy{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:none;border:1.5px solid var(--line);border-radius:6px;padding:4px 8px;color:var(--navy);cursor:pointer;margin-top:6px}
.copy:hover{border-color:var(--navy)}
.stub-photo{width:100%;height:auto;aspect-ratio:560/996;object-fit:contain;border-radius:12px;transform:rotate(-1.5deg);box-shadow:0 12px 20px -12px rgba(0,0,0,.4);margin-top:auto}
.stub-body .barcode{background:repeating-linear-gradient(90deg,var(--navy) 0 2px,transparent 2px 4px,var(--navy) 4px 5px,transparent 5px 9px,var(--navy) 9px 12px,transparent 12px 14px);height:46px;margin-top:auto}
.bon-voyage{position:absolute;left:50%;top:46%;width:min(320px,70%);transform:translate(-50%,-50%) rotate(-12deg) scale(2.2);opacity:0;pointer-events:none;z-index:3}
.bon-voyage.go{animation:bv .6s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes bv{to{opacity:.92;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}}
.address{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin-top:34px}
.address img{width:150px;border-radius:12px;transform:rotate(-2deg);box-shadow:0 12px 20px -12px rgba(0,0,0,.4)}
.address p{font-size:16px;line-height:1.55}
.address p strong{color:var(--navy)}
@media (max-width:900px){.pass{grid-template-columns:1fr}.pass-band{border-radius:20px 20px 0 0}.pass-stub{border-left:0;border-top:2px dashed var(--line)}.pass-stub::before{left:-14px;top:-14px}.pass-stub::after{left:auto;right:-14px;top:-14px;bottom:auto}.stub-band{border-radius:0}.stub-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stub-photo{width:100%;max-width:220px;border-radius:12px;transform:rotate(-2deg);box-shadow:0 12px 20px -12px rgba(0,0,0,.4);margin-top:auto}
.stub-body .barcode{display:none}}
@media (max-width:560px){.pass-band img{display:none}.pass-band{font-size:11.5px;letter-spacing:.12em}.route-row .pt strong{font-size:26px;white-space:nowrap}.route-row{gap:10px}form{grid-template-columns:1fr}.route-row{padding-inline:20px}form,.pass-intro{padding-inline:20px}}

/* back to top */
.to-top{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;width:52px;height:52px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;box-shadow:0 4px 0 var(--red-deep),0 10px 20px -8px rgba(0,0,0,.35);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .25s}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{transform:translateY(-2px)}
.to-top svg{width:24px;height:24px;transform:rotate(-90deg)}

/* find us — map */
.findus{background:var(--paper);padding-block:clamp(48px,7vw,88px);border-top:1px solid var(--line)}
.findus .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:clamp(20px,3vw,36px);align-items:stretch}
.fu-card{background:var(--navy);color:#fff;border-radius:22px;padding:clamp(24px,3vw,34px);display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}
.fu-card .stop{color:#AFC0EA;margin:0}.fu-card .stop b{background:var(--red)}
.fu-card h2{font-family:var(--f-display);font-weight:400;font-size:clamp(30px,3.6vw,42px);line-height:1.02;margin:0;color:#fff}
.fu-card h2 span{color:var(--sun)}
.fu-addr{font-family:var(--f-mono);font-size:15px;line-height:1.6;color:#E4ECF7;margin:4px 0 0}
.fu-addr strong{color:#fff}
.fu-card .note{font-size:15px;color:#C9D3EE;margin:0}
.fu-card .btn{align-self:flex-start;margin-top:auto}
.fu-map{border-radius:22px;padding:10px;background:repeating-linear-gradient(135deg,var(--red) 0 14px,#fff 14px 24px,var(--navy) 24px 38px,#fff 38px 48px);box-shadow:0 14px 30px -18px rgba(27,43,94,.5);min-height:380px;display:flex}
.fu-map iframe{display:block;width:100%;min-height:360px;flex:1;border:0;border-radius:14px;background:var(--sky)}
@media (max-width:860px){.findus .wrap{grid-template-columns:1fr}.fu-map,.fu-map iframe{min-height:320px}}

/* footer */
footer{background:var(--navy-deep);color:#C9D3EE;padding-block:0 40px}
footer .bunt{margin-bottom:40px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:center}
footer img{height:56px;width:auto;background:#fff;border-radius:10px;padding:6px 10px}
footer .tagline{font-family:var(--f-display);font-size:clamp(22px,2.6vw,30px);color:#fff;line-height:1.15}
footer .tagline span{color:var(--sun)}
footer small{display:block;margin-top:6px;font-size:14.5px}
.proto{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8EA0CF;width:100%;border-top:1px solid rgba(255,255,255,.1);padding-top:18px;margin-top:10px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .orbit-plane{display:none}
}

/* ===== WordPress additions ===== */
.admin-bar .nav{top:32px}
@media (max-width:782px){.admin-bar .nav{top:46px}}
.pe-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.consent{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted);line-height:1.45}
.consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--navy);flex:none}
.consent a{color:var(--navy)}
.form-msg.ok{color:var(--green);font-weight:600}
form.sending button[type=submit]{opacity:.6;pointer-events:none}
/* footer (WordPress) */
.pe-foot-legal{width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;margin-top:10px;font-size:14px}
.pe-foot-legal nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.pe-foot-legal a{color:#C9D3EE;text-decoration:none}
.pe-foot-legal a:hover{color:#fff;text-decoration:underline}
.pe-credit{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pe-credit .heart{color:var(--red);font-size:16px}
footer .pe-credit img{height:48px;background:transparent;padding:0;border-radius:0}
.pe-credit a{display:inline-flex;align-items:center;font-weight:600;color:#fff}
@media (max-width:700px){footer{padding-bottom:96px}}

/* Staging mobile navigation and contact usability fixes */
.pe-home main[id],.pe-home main section[id],.pe-home main [id].cours,.pe-home main [id].dorcas{scroll-margin-top:100px}
.stub-body .t-field a{color:inherit;text-decoration:underline;text-underline-offset:3px}
@media(max-width:860px){.nav .wrap{height:auto;min-height:112px;flex-wrap:wrap;gap:4px 10px;padding-block:8px}.nav ul{display:flex;order:3;flex-basis:100%;justify-content:space-between;gap:4px;margin:0}.nav ul a{display:flex;align-items:center;min-height:44px;font-size:13px}.nav .btn{font-size:13px;padding:11px 13px}.pe-home [id]{scroll-margin-top:140px}.admin-bar.pe-home [id]{scroll-margin-top:186px}.stub-body .t-field a{display:inline-block;min-height:44px;line-height:44px}.chips button,.chips label{min-height:44px}}

/* Approved staging corrections: white headings and ParlEnglish consent colours. */
#voyage-h, .slot-cta h3{color:#fff!important}
.cmplz-cookiebanner{background:#fff!important;border:2px solid #1B2B5E!important;border-top:6px solid #D0202E!important;border-radius:18px!important;box-shadow:0 16px 48px rgba(16,26,61,.24)!important;font-family:var(--f-body)!important;color:#17203F!important}
.cmplz-cookiebanner .cmplz-title{font-family:var(--f-display)!important;font-size:24px!important;font-weight:400!important;color:#1B2B5E!important}
.cmplz-cookiebanner .cmplz-message,.cmplz-cookiebanner .cmplz-category-title,.cmplz-cookiebanner .cmplz-description{color:#17203F!important}
.cmplz-cookiebanner a{color:#1B2B5E!important;text-decoration:underline!important}
.cmplz-cookiebanner .cmplz-btn{font-family:var(--f-body)!important;font-weight:700!important;border-radius:10px!important;min-height:44px!important}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept,.cmplz-cookiebanner .cmplz-btn.cmplz-deny{background:#1B2B5E!important;border:2px solid #1B2B5E!important;color:#fff!important}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover,.cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover{background:#101A3D!important;border-color:#101A3D!important}
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences{background:#fff!important;border:2px solid #1B2B5E!important;color:#1B2B5E!important}
.cmplz-cookiebanner .cmplz-divider{border-color:#D5DCEA!important}
.cmplz-cookiebanner .cmplz-category{background:#F2F4F9!important}
.cmplz-cookiebanner .cmplz-close svg{fill:#1B2B5E!important}
.cmplz-manage-consent{background:#1B2B5E!important;color:#fff!important;border-color:#1B2B5E!important;font-family:var(--f-body)!important}

/* Complianz wraps the map; keep the wrapper as wide as its card. */
.fu-map>.cmplz-placeholder-parent{width:100%;min-width:0;flex:1;display:flex!important;border-radius:14px;overflow:hidden}
.fu-map>.cmplz-placeholder-parent>iframe{width:100%!important;min-width:0;flex:1}
