:root{--white:#fbfaf7;--blue:#dbe6ea;--blue-deep:#9cadb5;--plaster:#e9e1da;--ink:#273238;--muted:#647177;--line:rgba(39,50,56,.16);--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}body.locked{overflow:hidden}.grain{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;color:#fff;transition:opacity .8s ease,visibility .8s}.gate.hidden{opacity:0;visibility:hidden}.gate__image,.gate__veil{position:absolute;inset:0}.gate__image{background:url('assets/paxos-harbour.jpg') center/cover}.gate__veil{background:linear-gradient(180deg,rgba(14,35,44,.18),rgba(14,35,44,.58))}.gate__content{position:relative;width:min(560px,calc(100% - 40px));text-align:center;padding:50px 30px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);backdrop-filter:blur(14px)}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.24em;font-size:.7rem;font-weight:bold}.gate h1,.hero h2{font-family:var(--serif);font-weight:normal;font-size:clamp(3.5rem,10vw,7.5rem);line-height:.88;margin:20px 0}.gate h1 span,.hero h2 span,.monogram span{font-style:italic;font-weight:normal}.gate__date{letter-spacing:.18em;text-transform:uppercase;font-size:.78rem}.password-form{margin:45px auto 0;max-width:390px}.password-form label{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}.password-row{display:flex;border-bottom:1px solid rgba(255,255,255,.7)}.password-row input{min-width:0;flex:1;padding:14px 4px;border:0;background:transparent;color:white;outline:none;font-size:1rem}.password-row input::placeholder{color:rgba(255,255,255,.65)}button{font:inherit}.password-row button{border:0;background:transparent;color:white;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;cursor:pointer}.password-hint,.password-error{font-size:.72rem;margin:.8rem 0 0}.password-hint{opacity:.75}.password-error{color:#ffe2dc;min-height:1.2em}.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;color:white;transition:.35s}.site-header.scrolled{background:rgba(251,250,247,.92);color:var(--ink);backdrop-filter:blur(15px);box-shadow:0 1px 0 var(--line)}.monogram{font-family:var(--serif);font-size:1.35rem;color:inherit;text-decoration:none}.nav{display:flex;gap:28px}.nav a{color:inherit;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:.67rem}.menu-toggle{display:none;border:0;background:none;color:inherit;text-transform:uppercase;letter-spacing:.13em;font-size:.68rem}.hero{height:100svh;min-height:650px;position:relative;color:white;display:grid;place-items:center;text-align:center}.hero__image,.hero__overlay{position:absolute;inset:0}.hero__image{background:url('assets/paxos-harbour.jpg') center/cover;transform:scale(1.03)}.hero__overlay{background:linear-gradient(180deg,rgba(10,40,52,.10),rgba(10,40,52,.38))}.hero__content{position:relative}.hero__date{text-transform:uppercase;letter-spacing:.25em;font-size:.78rem}.scroll-cue{position:absolute;color:white;text-decoration:none;left:50%;transform:translateX(-50%);bottom:-34vh;display:flex;flex-direction:column;align-items:center;gap:14px;text-transform:uppercase;letter-spacing:.18em;font-size:.62rem}.scroll-cue i{display:block;height:48px;width:1px;background:white;animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.25;transform:scaleY(.6)}}.section{padding:120px 7vw}.section--blue{background:var(--blue)}.section--plaster{background:var(--plaster)}.section-heading{text-align:center;max-width:770px;margin:0 auto 70px}.section-heading h2,.countdown h2,.map-copy h2,.registry h2{font-family:var(--serif);font-size:clamp(3rem,7vw,6.5rem);font-weight:normal;line-height:1;margin:15px 0}.section-intro{max-width:650px;margin:25px auto;color:var(--muted)}.countdown{text-align:center}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:850px;margin:60px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.countdown-grid div{padding:28px 10px;border-right:1px solid var(--line)}.countdown-grid div:last-child{border:0}.countdown-grid strong{display:block;font-family:var(--serif);font-size:clamp(2.4rem,6vw,5rem);font-weight:normal;line-height:1}.countdown-grid span{text-transform:uppercase;letter-spacing:.18em;font-size:.62rem}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);max-width:1200px;margin:auto}.event-card{background:var(--white);min-height:420px;padding:45px;display:flex;flex-direction:column;justify-content:space-between}.event-card--feature{background:var(--blue)}.event-day{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem}.event-card h3{font-family:var(--serif);font-size:clamp(2.5rem,4vw,4.6rem);font-weight:normal;line-height:1;margin:0}.event-meta{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;font-size:.78rem}.photo-break{height:78svh;min-height:600px;background-position:center;background-size:cover;background-attachment:fixed}.photo-break--waterfall{background-image:linear-gradient(rgba(21,35,36,.06),rgba(21,35,36,.20)),url('assets/couple-waterfall.jpg')}.photo-break--sunset{background-image:linear-gradient(rgba(21,35,36,.10),rgba(21,35,36,.48)),url('assets/couple-sunset.jpg');display:grid;place-items:end center;color:white;text-align:center;padding:70px}.photo-break--sunset p{font-family:var(--serif);font-size:4rem;margin:0}.photo-break--sunset span{text-transform:uppercase;letter-spacing:.2em;font-size:.7rem}.travel-path{display:grid;grid-template-columns:1fr 90px 1fr 90px 1fr;align-items:center;max-width:1200px;margin:auto}.travel-path div{text-align:center}.travel-path span{display:grid;place-items:center;width:45px;height:45px;border:1px solid var(--ink);border-radius:50%;font-size:.7rem;margin:0 auto 20px}.travel-path strong{font-family:var(--serif);font-size:2rem;font-weight:normal}.travel-path p{color:var(--muted);font-size:.85rem;max-width:240px;margin:10px auto}.travel-path i{height:1px;background:var(--line)}.info-columns{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);max-width:1200px;margin:90px auto 0}.info-panel{background:var(--white);padding:55px}.info-panel h3{font-family:var(--serif);font-size:2.8rem;font-weight:normal;margin:0}.info-panel p{color:var(--muted)}.link-list{display:flex;flex-direction:column;margin-top:30px}.link-list a,.link-list span{padding:13px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.8rem}.area-tabs,.map-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-bottom:35px}.area-tabs button,.map-filters button{border:1px solid var(--line);background:transparent;padding:10px 16px;border-radius:100px;cursor:pointer;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink)}.area-tabs button.active,.map-filters button.active{background:var(--ink);color:white}.stay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);max-width:1200px;margin:auto}.stay-card{display:block;background:rgba(255,255,255,.44);padding:30px;min-height:180px;color:var(--ink);text-decoration:none;transition:.25s}.stay-card:hover{background:var(--white);transform:translateY(-3px)}.stay-card.hidden-card{display:none}.stay-card span{font-size:.64rem;text-transform:uppercase;letter-spacing:.16em}.stay-card h3{font-family:var(--serif);font-size:2rem;font-weight:normal;margin:28px 0 0}.stay-card p{margin:0;color:var(--muted);font-size:.78rem}.stay-note{text-align:center;max-width:700px;margin:45px auto 0;color:var(--muted);font-size:.86rem}.map-section{display:grid;grid-template-columns:.78fr 1.22fr;min-height:850px}.map-copy{padding:120px 7vw;background:var(--white)}.map-copy h2{text-align:left}.map-copy>p{color:var(--muted)}.map-filters{justify-content:flex-start;margin-top:35px}.map-detail{margin-top:70px;border-top:1px solid var(--line);padding-top:26px}.map-detail span{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem}.map-detail h3{font-family:var(--serif);font-size:2.4rem;font-weight:normal;margin:8px 0}.map-detail p{font-size:.84rem}.map-wrap{background:var(--blue);display:grid;place-items:center;padding:40px}.paxos-map{height:min(760px,85vh);max-width:100%;overflow:visible}.island{fill:#f7f4ee}.island-line{fill:none;stroke:#d7cec5;stroke-width:2;stroke-dasharray:4 8}.marker{cursor:pointer;transition:.2s}.marker circle{fill:#53656c;stroke:#f7f4ee;stroke-width:4}.marker text{font:12px Arial,sans-serif;fill:#273238;paint-order:stroke;stroke:#dbe6ea;stroke-width:4px;stroke-linejoin:round}.marker--event circle{fill:#a47264}.marker--stay circle{fill:#98abb2}.marker:hover,.marker.active{transform:scale(1.12);transform-box:fill-box;transform-origin:center}.marker.filtered{opacity:.12;pointer-events:none}.guide-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line);max-width:1200px;margin:auto}.guide-card{background:var(--white);min-height:300px;padding:35px;display:flex;flex-direction:column}.guide-card--wide{grid-column:span 2}.guide-card span{font-size:.65rem}.guide-card h3{font-family:var(--serif);font-size:3rem;font-weight:normal;margin:auto 0 18px}.guide-card p{color:var(--muted);font-size:.83rem}.accordion{max-width:900px;margin:auto;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;font-family:var(--serif);font-size:1.7rem;padding:25px 45px 25px 0;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:6px;font-family:var(--sans);font-weight:normal}details[open] summary:after{content:'−'}details div{padding:0 0 25px;color:var(--muted);font-size:.9rem}.registry{padding-block:150px}.registry-card{max-width:850px;margin:auto;padding:90px 30px;text-align:center;border:1px solid var(--line);background:linear-gradient(135deg,var(--white),var(--plaster))}.registry-card p:last-child{color:var(--muted)}footer{min-height:300px;padding:80px 7vw;background:var(--ink);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px}footer p{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem}footer button{border:0;background:none;color:white;text-decoration:underline;cursor:pointer;font-size:.72rem}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.site-header{height:68px}.menu-toggle{display:block;cursor:pointer}.nav{position:absolute;top:68px;left:0;right:0;background:rgba(251,250,247,.98);color:var(--ink);display:none;flex-direction:column;padding:30px 7vw;gap:20px}.nav.open{display:flex}.event-grid,.stay-grid{grid-template-columns:1fr}.event-card{min-height:320px}.travel-path{grid-template-columns:1fr}.travel-path i{height:70px;width:1px;margin:auto}.info-columns,.map-section{grid-template-columns:1fr}.map-copy{padding-bottom:50px}.map-wrap{min-height:700px}.guide-grid{grid-template-columns:1fr 1fr}.guide-card--wide{grid-column:span 2}.photo-break{background-attachment:scroll}.scroll-cue{bottom:-30vh}}@media(max-width:600px){.photo-break--waterfall{background-position:72% center}.section{padding:90px 22px}.gate__content{padding:38px 20px}.gate h1{font-size:4rem}.hero h2{font-size:4.4rem}.countdown-grid{grid-template-columns:repeat(2,1fr)}.countdown-grid div:nth-child(2){border-right:0}.countdown-grid div:nth-child(-n+2){border-bottom:1px solid var(--line)}.event-card{padding:30px}.event-meta{flex-direction:column;gap:3px}.travel-path strong{font-size:1.65rem}.info-columns{margin-top:60px}.info-panel{padding:35px 25px}.area-tabs{justify-content:flex-start}.stay-grid{display:block;background:none}.stay-card{border-top:1px solid var(--line);min-height:150px}.map-copy{padding:90px 22px 40px}.map-wrap{padding:20px;min-height:600px}.paxos-map{width:100%;height:auto}.guide-grid{grid-template-columns:1fr}.guide-card--wide{grid-column:span 1}.photo-break--sunset{padding:40px 20px}.photo-break--sunset p{font-size:3rem}.scroll-cue{bottom:-28vh}}

/* Version 2 refinements */
.event-details{margin-top:auto;padding-top:34px;border-top:1px solid var(--line)}
.event-venue{font-family:var(--serif);font-size:2.15rem;line-height:1.05;margin:0 0 14px}
.event-time{font-family:var(--serif);font-size:2.8rem;line-height:1;margin:0}
.event-details--wedding{display:grid;grid-template-columns:.75fr 1.25fr;gap:28px}
.event-details--wedding>div+div{border-left:1px solid var(--line);padding-left:28px}
.event-details--wedding span{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;margin-bottom:12px}
.ferry-options{margin-top:28px;border-top:1px solid var(--line)}
.ferry-options>div{padding:20px 0;border-bottom:1px solid var(--line)}
.ferry-options strong{font-family:var(--serif);font-size:1.5rem;font-weight:normal}
.ferry-options span{float:right;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}
.ferry-options p{margin:.5rem 0 0;font-size:.82rem}
.travel-note{font-size:.78rem!important;border-left:2px solid var(--blue);padding-left:16px}
.contact-block{margin-top:30px;border-top:1px solid var(--line)}
.contact-block h4{font-family:var(--serif);font-size:1.45rem;font-weight:normal;margin:24px 0 8px}
.contact-block p{font-size:.82rem;margin:0 0 14px}
.contact-block a{color:inherit}
.accommodation-group{max-width:1200px;margin:0 auto 80px}
.group-heading{max-width:760px;margin:0 auto 30px;text-align:center}
.group-heading h3{font-family:var(--serif);font-size:2.8rem;font-weight:normal;margin:5px 0 8px}
.group-heading>p:last-child{color:var(--muted);font-size:.86rem}
.guide-card{padding:0;display:block;min-height:300px}
.guide-card summary{height:100%;min-height:300px;padding:35px;display:flex;flex-direction:column;list-style:none}
.guide-card summary:after{right:28px;top:26px;font-size:1.2rem}
.guide-card summary p{margin-top:auto;padding-right:28px}
.guide-card[open] summary{min-height:220px}
.guide-recommendations{padding:0 35px 30px!important;border-top:1px solid var(--line);color:var(--muted)}
.guide-recommendations p{padding-top:24px;margin:0}
@media(max-width:600px){.event-details--wedding{grid-template-columns:1fr}.event-details--wedding>div+div{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.event-venue{font-size:1.85rem}.event-time{font-size:2.35rem}.ferry-options span{float:none;display:block;margin-top:4px}.group-heading h3{font-size:2.2rem}}

/* Version 3: accurate map, recommendation highlights and expanded island guide */
.stay-card--recommended{position:relative;background:rgba(219,230,234,.74);box-shadow:inset 0 0 0 1px rgba(39,50,56,.08)}
.stay-card--recommended:after{content:'★';position:absolute;right:24px;top:22px;font-size:.9rem;color:#8b6f61}
.stay-card--recommended:hover{background:#f6fafb}
.map-source{font-size:.68rem!important;margin-top:42px}
.map-source a{color:inherit}
.island{fill:url(#islandWash)}
.island-coast{fill:none;stroke:#82969e;stroke-width:3.2;stroke-linejoin:round;stroke-linecap:round}
.island-road{fill:none;stroke:#c6b9ac;stroke-width:4;stroke-linecap:round;stroke-dasharray:2 10;opacity:.82}
.island-road--branch{stroke-width:2.6;opacity:.65}
.marker:focus{outline:none}
.marker:focus circle{stroke:#273238;stroke-width:7}
.marker--town circle{fill:#53656c}
.marker--travel circle{fill:#766f69}
.map-detail a{display:inline-block;margin-top:8px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);font-size:.73rem;text-transform:uppercase;letter-spacing:.12em;padding-bottom:3px}
.guide-grid{grid-template-columns:repeat(3,1fr)}
.guide-card{transition:background .25s ease}
.guide-card:hover{background:#fdfcf9}
.guide-list{list-style:none;margin:0;padding:8px 0 0}
.guide-list li{display:grid;grid-template-columns:minmax(125px,.78fr) 1.35fr;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}
.guide-list li:last-child{border-bottom:0}
.guide-list strong{font-family:var(--serif);font-size:1.12rem;font-weight:normal;color:var(--ink);line-height:1.25}
.guide-list span{font-size:.78rem;line-height:1.55;color:var(--muted)}
.guide-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.guide-links a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em}
.guide-footnote{max-width:780px;margin:34px auto 0;text-align:center;color:var(--muted);font-size:.74rem}
@media(max-width:900px){.guide-grid{grid-template-columns:1fr 1fr}.guide-card--wide{grid-column:span 2}}
@media(max-width:600px){.guide-grid{grid-template-columns:1fr}.guide-card--wide{grid-column:span 1}.guide-list li{grid-template-columns:1fr;gap:5px}.map-detail{margin-top:42px}.marker text{font-size:15px}}
.sea-label{font:600 18px Arial,sans-serif;letter-spacing:.28em;fill:#8aa0aa;opacity:.7}
.north-arrow path{fill:none;stroke:#53656c;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.north-arrow text{font:600 16px Arial,sans-serif;fill:#53656c}


/* Version 3.2 interaction fixes */
.map-wrap{position:relative;isolation:isolate}
.marker{touch-action:manipulation}
.marker .marker-hit{fill:transparent!important;stroke:none!important;pointer-events:all}
.marker text,.marker circle:not(.marker-hit){pointer-events:none}
.map-popup{position:fixed;right:24px;bottom:24px;z-index:850;width:min(420px,calc(100vw - 48px));padding:28px 54px 26px 28px;background:rgba(251,250,247,.97);border:1px solid rgba(39,50,56,.16);box-shadow:0 22px 70px rgba(39,50,56,.24);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px);transition:opacity .24s ease,transform .24s ease,visibility .24s}
.map-popup.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.map-popup>span{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:var(--muted)}
.map-popup h3{font-family:var(--serif);font-size:2.15rem;line-height:1.05;font-weight:normal;margin:8px 0 12px}
.map-popup p{font-size:.87rem;color:var(--muted);margin:0}
.map-popup a{display:inline-block;margin-top:18px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;padding-bottom:3px}
.map-popup__close{position:absolute;top:13px;right:14px;width:36px;height:36px;border:0;border-radius:50%;background:var(--blue);color:var(--ink);font:300 24px/1 var(--sans);cursor:pointer;display:grid;place-items:center;touch-action:manipulation}
.map-popup__close:hover,.map-popup__close:focus-visible{background:var(--plaster);outline:2px solid var(--ink);outline-offset:2px}
.guide-card summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}
.guide-card .guide-recommendations{display:none}
.guide-card[open] .guide-recommendations{display:block}
.guide-card[open]{background:#fdfcf9}
.guide-card summary:focus-visible{outline:2px solid var(--ink);outline-offset:-5px}
@media(max-width:600px){.map-popup{left:14px;right:14px;bottom:14px;width:auto;padding:25px 50px 23px 23px}.map-popup h3{font-size:1.85rem}.map-popup p{font-size:.84rem}}


/* v3.3 — resilient map drawer and expanded native guide */
.map-location-stack{display:grid;min-height:260px;margin-top:58px;border-top:1px solid var(--line);position:relative}
.map-location-card{grid-area:1/1;padding:26px 44px 0 0;background:var(--white);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(7px);transition:opacity .2s ease,transform .2s ease;position:relative}
.map-location-card--default{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.map-location-card:target{opacity:1;visibility:visible;pointer-events:auto;transform:none;z-index:3}
body:has(.map-location-card:target) .map-location-card--default{opacity:0;visibility:hidden;pointer-events:none}
.map-location-card>span{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:var(--muted)}
.map-location-card h3{font-family:var(--serif);font-size:2.45rem;line-height:1.05;font-weight:normal;margin:8px 0 12px}
.map-location-card p{font-size:.86rem;color:var(--muted);margin:0;max-width:520px}
.map-location-card__maps{display:inline-block;margin-top:17px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;padding-bottom:3px}
.map-location-card__close{position:absolute;top:18px;right:0;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:var(--ink);text-decoration:none;font-size:1.35rem;line-height:1}
.map-location-card__close:hover,.map-location-card__close:focus-visible{background:var(--plaster);outline:2px solid var(--ink);outline-offset:2px}
.paxos-map .marker{text-decoration:none;outline:none}
.paxos-map .marker:focus-visible circle:not(.marker-hit){stroke:#273238;stroke-width:7}
.paxos-map .marker:active{transform:scale(1.08);transform-box:fill-box;transform-origin:center}
.map-popup{display:none!important}

.guide-card summary{position:relative;cursor:pointer}
.guide-card summary::-webkit-details-marker{display:none}
.guide-card summary::marker{content:''}
.guide-toggle{position:absolute;right:28px;top:28px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-weight:normal}
.guide-toggle::before,.guide-toggle::after{content:'';position:absolute;width:12px;height:1px;background:var(--ink);transition:transform .2s ease}
.guide-toggle::after{transform:rotate(90deg)}
.guide-card[open] .guide-toggle::after{transform:rotate(0)}
.guide-card .guide-recommendations{display:none}
.guide-card[open] .guide-recommendations{display:block}
.guide-recommendations{padding-top:18px!important}
.guide-list li{grid-template-columns:1fr auto;align-items:start;gap:18px}
.guide-list li>div{display:grid;grid-template-columns:minmax(145px,.72fr) 1.4fr;gap:18px}
.guide-map-link{align-self:start;color:var(--ink);text-decoration:none;text-transform:uppercase;letter-spacing:.09em;font-size:.63rem;border-bottom:1px solid var(--line);padding-top:3px;white-space:nowrap}
.guide-footnote a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}

@media(max-width:900px){
  .map-location-stack{margin-top:42px;min-height:235px}
  .guide-list li>div{grid-template-columns:1fr;gap:5px}
}
@media(max-width:600px){
  .map-location-stack{min-height:275px}
  .map-location-card{padding-right:42px}
  .map-location-card h3{font-size:2rem}
  .guide-card summary{min-height:245px;padding:30px}
  .guide-card[open] summary{min-height:190px}
  .guide-toggle{right:22px;top:22px}
  .guide-recommendations{padding:0 30px 28px!important}
  .guide-list li{grid-template-columns:1fr;gap:9px}
  .guide-map-link{justify-self:start}
}


/* v3.3 map hit-area and fallback index refinements */
.map-location-index{display:grid;gap:14px;margin:12px 0 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.map-location-index>div{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.map-location-index span{width:62px;text-transform:uppercase;letter-spacing:.13em;font-size:.58rem;color:var(--muted)}
.map-location-index a{display:inline-flex;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:.66rem;line-height:1.2;background:rgba(255,255,255,.35)}
.map-location-index a:hover,.map-location-index a:focus-visible{background:var(--blue);outline:none;border-color:rgba(39,50,56,.32)}
.marker .marker-hit{pointer-events:all}
@media(max-width:600px){.map-location-index span{width:100%;margin-top:3px}.map-location-index{gap:10px}}
/* Make both marker dots and labels activate their SVG link. */
.marker text,.marker circle:not(.marker-hit){pointer-events:all}


/* v3.4 — static map + always-visible Paxos guide */
.map-copy > p { max-width: 650px; }
.map-static-key { margin-top: 42px; border-top: 1px solid var(--line); padding-top: 24px; display: grid; gap: 20px; }
.map-key-block { display: grid; gap: 5px; }
.map-key-heading { display: flex; align-items: center; gap: 10px; }
.map-key-heading strong { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; font-weight: normal; }
.map-key-block p { margin: 0; color: var(--muted); font-size: .79rem; }
.map-key-block p span { white-space: nowrap; }
.map-swatch { width: 10px; height: 10px; border-radius: 50%; display: inline-block; border: 2px solid #f7f4ee; box-shadow: 0 0 0 1px rgba(39,50,56,.12); }
.map-swatch--event { background: #a47264; }
.map-swatch--town { background: #53656c; }
.map-swatch--stay { background: #98abb2; }
.map-swatch--travel { background: #766f69; }
.map-hotel-key { list-style: none; margin: 5px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 7px 16px; }
.map-hotel-key li { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .75rem; }
.map-hotel-key b { width: 20px; height: 20px; flex: 0 0 20px; border-radius: 50%; display: grid; place-items: center; background: #98abb2; color: #fff; font-size: .61rem; font-weight: normal; }
.paxos-map .marker { cursor: default !important; pointer-events: none; }
.paxos-map .marker:hover, .paxos-map .marker.active { transform: none !important; }
.paxos-map .marker-number { fill: #fff !important; stroke: none !important; paint-order: normal !important; font: 700 8px Arial,sans-serif !important; }
.map-location-stack, .map-location-index, .map-filters { display: none !important; }

.guide-directory { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.guide-panel { background: var(--white); border: 1px solid var(--line); padding: 34px; min-width: 0; }
.guide-panel--wide { grid-column: 1 / -1; }
.guide-panel__head { padding-bottom: 22px; margin-bottom: 8px; border-bottom: 1px solid var(--line); }
.guide-panel__number { display: block; font-size: .62rem; letter-spacing: .14em; color: var(--muted); margin-bottom: 28px; }
.guide-panel h3 { font-family: var(--serif); font-size: clamp(2.2rem,4vw,3.4rem); line-height: 1; font-weight: normal; margin: 0 0 12px; }
.guide-panel__head p { margin: 0; max-width: 560px; color: var(--muted); font-size: .83rem; }
.guide-panel .guide-recommendations { display: block !important; padding: 8px 0 0 !important; border-top: 0 !important; }
.guide-panel .guide-list { padding-top: 0; }
.guide-panel .guide-list li { padding: 15px 0; }
.guide-panel .guide-list li > div { grid-template-columns: minmax(125px,.72fr) 1.4fr; }
.guide-panel .guide-links { margin-top: 20px; }
.guide-panel .guide-links::before { content: 'More inspiration'; width: 100%; display: block; color: var(--muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 2px; }

@media(max-width:900px){
  .guide-directory { grid-template-columns: 1fr; }
  .guide-panel--wide { grid-column: auto; }
  .guide-panel .guide-list li > div { grid-template-columns: 1fr; gap: 5px; }
}
@media(max-width:600px){
  .map-hotel-key { grid-template-columns: 1fr; }
  .map-static-key { margin-top: 32px; }
  .guide-panel { padding: 28px 24px; }
  .guide-panel__number { margin-bottom: 20px; }
  .guide-panel .guide-list li { grid-template-columns: 1fr; gap: 8px; }
  .guide-panel .guide-map-link { justify-self: start; }
}

/* v3.5 launch refinements */
.stay-card .stay-offer{margin-top:12px;color:var(--ink);font-size:.7rem;letter-spacing:.03em;font-weight:600}
.link-list--compact{margin-top:8px;margin-bottom:26px}
.contact-block h4{margin:28px 0 6px;font-family:var(--serif);font-size:1.25rem;font-weight:normal}
