@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,700;12..96,800&family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--cream:#fff8e8;--green:#104533;--dark:#072b24;--yellow:#f6cf46;--blue:#11658a;--border:#ddd4be}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--cream);color:var(--dark);font:1rem/1.55 "DM Sans",system-ui,sans-serif}
h1,h2,h3,.logo{font-family:"Bricolage Grotesque","DM Sans",system-ui,sans-serif;line-height:1.03;margin:0}
a{color:var(--blue);text-underline-offset:.22em}
a:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.wrap{width:min(1170px,calc(100% - 3rem));margin:auto}
.header,.footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0}
.logo{font-weight:800;font-size:clamp(1.4rem,3vw,2.2rem);color:inherit;text-decoration:none;position:relative;padding-bottom:.25em;white-space:nowrap}
.logo:after{content:"";display:block;background:var(--yellow);height:.15em;border-radius:0 0 100% 100%;width:78%;margin:.06em auto 0;transform:rotate(-2deg)}
nav{display:flex;gap:clamp(.65rem,2.6vw,2rem);flex-wrap:wrap}
nav a{font-weight:800;color:inherit;text-decoration:none}
nav a:hover{text-decoration:underline}
.hero{position:relative;background-color:var(--green);color:white;isolation:isolate;overflow:hidden}
.hero:before,.thumb:before{content:"";position:absolute;inset:0;background-image:var(--photo);background-size:cover;background-position:center;z-index:-2}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#062c24fa 4%,#062c24d9 32%,#062c2455 70%,#062c2426)}
.hero .wrap{padding:clamp(3rem,8vw,7rem) 0}
.hero h1{font-size:clamp(2.65rem,7.6vw,6.3rem);max-width:10ch;letter-spacing:-.045em;text-wrap:balance}
.hero p{max-width:39rem;font-size:clamp(1rem,2vw,1.3rem)}
.eyebrow{font-weight:800;letter-spacing:.07em;font-size:.84rem;text-transform:uppercase;color:#ffdf67;margin-bottom:1rem}
.button{display:inline-flex;align-items:center;gap:.5rem;background:var(--yellow);border-radius:100px;color:var(--dark);font-weight:800;text-decoration:none;padding:.68rem 1.2rem;margin:.2rem 0}
.button:hover{background:#ffe376}
.hero-link{margin-left:1rem;color:white;font-weight:800}
.content{padding:2.5rem 0 4rem}
section+section{margin-top:2.8rem}
h2{font-size:clamp(1.65rem,4vw,2.65rem);letter-spacing:-.035em;margin-bottom:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.15rem}
.card{display:block;text-decoration:none;border:1px solid var(--border);border-radius:1rem;overflow:hidden;background:#fffdf5;color:inherit;box-shadow:0 5px 14px #10453311}
.card:hover h3{text-decoration:underline}
.card h3{font-size:1.45rem}
.card-copy{padding:1.05rem}
.card-copy p{margin:.45rem 0 0}
.thumb{position:relative;isolation:isolate;aspect-ratio:16/8;background:#dbe8dc}
.article{max-width:51rem;margin:auto}
.article>p,.article section>p{max-width:68ch}
.article .grid{margin:1.5rem 0}
.booking{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1.2rem}
.booking section{padding:1.4rem;border:1px solid var(--border);border-radius:1rem;margin:0}
.lex{list-style:none;padding:0;margin:0}
.lex li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}
label{display:block;font-weight:800;margin-bottom:.45rem}
input{font:inherit;width:100%;max-width:34rem;border:1px solid var(--green);background:#fffdf5;border-radius:.6rem;padding:.65rem;margin-bottom:1.6rem}
footer{background:var(--green);color:white;border-top:5px solid var(--yellow)}
footer strong{color:var(--yellow)}
.quebec,.drapeau{height:1em;vertical-align:-.1em}
.skip{position:absolute;left:.5rem;top:.5rem;transform:translateY(-150%);background:var(--cream);padding:.5rem;z-index:9}
.skip:focus{transform:none}
@media(max-width:650px){.header,.footer{align-items:flex-start;flex-direction:column}.wrap{width:calc(100% - 2rem)}nav{font-size:.9rem}.hero:after{background:linear-gradient(90deg,#062c24ee,#062c2470)}.lex li{gap:.5rem}}
.reef{--photo:url('/media/reef.webp')}.kite{--photo:url('/media/kite.webp')}.city{--photo:url('/media/city.webp')}.bike{--photo:url('/media/bike.webp')}
.coast{--photo:url('/media/coast.webp')}.road{--photo:url('/media/road.webp')}.flori{--photo:url('/media/flori.webp')}.aquarium{--photo:url('/media/aquarium.webp')}
.route{list-style:none;padding:0;margin:1.3rem 0 1.6rem}
.route li{position:relative;border-left:3px solid var(--green);padding:0 0 1.35rem 1.35rem;margin-left:.5rem}
.route li:last-child{border-color:transparent;padding-bottom:0}
.route li:before{content:"";position:absolute;left:-.53rem;top:.16rem;width:.85rem;height:.85rem;background:var(--yellow);border:2px solid var(--green);border-radius:50%}
.route strong,.route span{display:block}
.saved-places{display:grid;gap:1rem}
.saved-places article{padding:1.05rem 1.25rem;border:1px solid var(--border);border-radius:.8rem;background:#fffdf5}
.saved-places h3{font-size:1.35rem}
.saved-places p{margin:.55rem 0 0}
.numbers{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem}
.numbers div{padding:1rem;background:#fffdf5;border:1px solid var(--border);border-top:4px solid var(--yellow);border-radius:.6rem}
.numbers dt{font-weight:800;font-size:1.2rem}
.numbers dd{margin:.35rem 0 0}
.source{font-size:.9rem}

.trip-planner{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:1.4rem;align-items:start}
.trip-panel{background:#fffdf7;border:1px solid var(--border);border-radius:1.15rem;padding:clamp(1rem,3vw,1.8rem);margin:0 0 1.4rem}
.trip-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.trip-fields label{display:grid;align-content:start;gap:.35rem;font-weight:700}
.trip-wide{grid-column:1/-1}
.trip-fields input,.trip-fields select{width:100%;min-width:0;min-height:2.8rem;padding:.5rem .65rem;font:inherit;color:inherit;background:white;border:1px solid var(--border);border-radius:.45rem}
.trip-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.trip-summary{background:var(--green);color:white}
.trip-summary dl>div{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem 0;border-bottom:1px solid #ffffff40}
.trip-summary dd{margin:0;text-align:right;white-space:nowrap}
.trip-total{display:grid;gap:.2rem;padding-top:.65rem}
.trip-total output{font-size:clamp(1.8rem,4vw,3rem);font-weight:800;color:var(--yellow)}
.trip-summary p:empty{display:none}
@media(max-width:760px){.trip-planner{grid-template-columns:1fr}}
@media(max-width:460px){.trip-fields{grid-template-columns:1fr}}
