/* Oloropa Phase 7 — Public immersive pages
   Canonical overlay for O (9) + oloropa (6). Loaded non-destructively by ol_public_dynamic.php.
*/
:root{
  --ol-p7-deep:#07120e;
  --ol-p7-forest:#123326;
  --ol-p7-forest-2:#1f3a2d;
  --ol-p7-gold:#c6a24a;
  --ol-p7-ivory:#fff8e9;
  --ol-p7-paper:#fffaf2;
  --ol-p7-sand:#f3e2c2;
  --ol-p7-ink:#13221a;
  --ol-p7-muted:#6c746c;
  --ol-p7-border:rgba(31,58,45,.14);
  --ol-p7-shadow:0 28px 90px rgba(31,58,45,.16);
  --ol-p7-ease:cubic-bezier(.22,1,.36,1);
  --ol-p7-ui:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ol-p7-display:"Playfair Display",Cormorant Garamond,Georgia,"Times New Roman",serif;
}
html.ol-p7-ready,body[data-ol-phase7-public="immersive"]{scroll-behavior:smooth;overflow-x:hidden}
body[data-ol-phase7-public="immersive"]{--ol-phone-safe-bottom:calc(env(safe-area-inset-bottom,0px) + 78px)}
body[data-ol-phase7-public="immersive"] :where(button,a,input,select,textarea){font-family:var(--ol-p7-ui)}
body[data-ol-phase7-public="immersive"] :where(.ol-p7-section h2,.ol-p7-detail-companion h2){font-family:var(--ol-p7-display)}

.ol-p7-section{position:relative;isolation:isolate;padding:clamp(3.2rem,7vw,7.5rem) clamp(1rem,4vw,4rem);background:linear-gradient(180deg,var(--ol-p7-paper),#f6ead2);color:var(--ol-p7-ink);overflow:hidden}
.ol-p7-section::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 12% 8%,rgba(198,162,74,.18),transparent 32%),radial-gradient(circle at 88% 22%,rgba(31,58,45,.12),transparent 34%);pointer-events:none}
.ol-p7-section-head{width:min(1180px,100%);margin:0 auto clamp(1.4rem,3vw,2.4rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,520px);gap:clamp(1rem,4vw,4rem);align-items:end}
.ol-p7-eyebrow,.ol-p7-card-meta{display:inline-flex;align-items:center;gap:.5rem;color:#8d6b22;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:950}
.ol-p7-section-head h2{margin:.55rem 0 0;font-size:clamp(2.35rem,6.8vw,6.8rem);line-height:.86;letter-spacing:-.07em;color:var(--ol-p7-forest)}
.ol-p7-section-head p{margin:0;color:rgba(19,34,26,.7);line-height:1.8;font-size:clamp(.98rem,1.6vw,1.12rem)}
.ol-p7-route-pulse{background:linear-gradient(180deg,#fffaf2,#f1dfbf 70%,#ead4ad)}
.ol-p7-mood-rail{width:min(1180px,100%);margin:0 auto 1.2rem;display:flex;gap:.7rem;overflow:auto;padding:.15rem .1rem .7rem;scroll-snap-type:x proximity}
.ol-p7-mood-rail button{border:1px solid rgba(31,58,45,.14);background:rgba(255,255,255,.72);color:var(--ol-p7-forest);border-radius:999px;padding:.85rem 1rem;min-height:44px;font-size:.78rem;font-weight:950;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;cursor:pointer;transition:transform .22s var(--ol-p7-ease),background .22s var(--ol-p7-ease),color .22s var(--ol-p7-ease);scroll-snap-align:start}
.ol-p7-mood-rail button:hover,.ol-p7-mood-rail button:focus-visible,.ol-p7-mood-rail button.is-active{background:var(--ol-p7-forest);color:var(--ol-p7-ivory);transform:translateY(-2px);outline:0}
.ol-p7-pulse-grid{width:min(1320px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:1rem;align-items:stretch}
.ol-p7-pulse-map{position:relative;min-height:470px;border-radius:2.2rem;overflow:hidden;background:linear-gradient(145deg,#07120e,#123326);color:#fff;padding:clamp(1.2rem,3vw,2rem);box-shadow:var(--ol-p7-shadow);display:grid;grid-template-columns:auto 1fr;align-content:end;gap:.35rem .9rem}
.ol-p7-pulse-map::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 28%,rgba(198,162,74,.26),transparent 16%),radial-gradient(circle at 68% 34%,rgba(255,248,233,.13),transparent 13%),radial-gradient(circle at 43% 72%,rgba(198,162,74,.22),transparent 18%);opacity:.92}
.ol-p7-pulse-map strong{position:relative;z-index:2;font-family:var(--ol-p7-display);font-size:clamp(2.6rem,6vw,5rem);font-weight:500;line-height:.9;color:var(--ol-p7-gold)}
.ol-p7-pulse-map small{position:relative;z-index:2;align-self:center;color:rgba(255,248,233,.72);font-weight:800;letter-spacing:.04em}
.ol-p7-route-line{position:absolute;inset:12%;border-radius:999px;opacity:.82;background:linear-gradient(130deg,transparent 7%,rgba(198,162,74,.16),transparent 72%)}
.ol-p7-route-line span{position:absolute;width:14px;height:14px;border-radius:999px;background:var(--ol-p7-gold);box-shadow:0 0 0 12px rgba(198,162,74,.1),0 0 34px rgba(198,162,74,.5);animation:olP7PinPulse 2.8s var(--ol-p7-ease) infinite}
.ol-p7-route-line span:nth-child(1){left:12%;top:66%}.ol-p7-route-line span:nth-child(2){left:36%;top:38%;animation-delay:.3s}.ol-p7-route-line span:nth-child(3){left:62%;top:58%;animation-delay:.6s}.ol-p7-route-line span:nth-child(4){left:78%;top:28%;animation-delay:.9s}
@keyframes olP7PinPulse{0%,100%{transform:scale(.9);opacity:.8}50%{transform:scale(1.24);opacity:1}}

.ol-p7-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.ol-p7-card-grid--compact .ol-p7-card:first-child{grid-column:1/-1}
.ol-p7-card-grid--collection{width:min(1320px,100%);margin:0 auto;grid-template-columns:repeat(3,minmax(0,1fr))}
.ol-p7-card-grid--stories{grid-template-columns:repeat(3,minmax(0,1fr))}
.ol-p7-card{position:relative;overflow:hidden;border:1px solid var(--ol-p7-border);border-radius:1.6rem;background:rgba(255,255,255,.72);box-shadow:0 18px 50px rgba(31,58,45,.1);transition:transform .32s var(--ol-p7-ease),box-shadow .32s var(--ol-p7-ease),border-color .32s var(--ol-p7-ease);min-width:0}
.ol-p7-card:hover,.ol-p7-card:focus-within{transform:translateY(-5px);box-shadow:0 28px 80px rgba(31,58,45,.18);border-color:rgba(198,162,74,.38)}
.ol-p7-card-media{position:relative;display:block;min-height:210px;background:#0d1511;overflow:hidden;text-decoration:none;color:inherit}
.ol-p7-card-media img{width:100%;height:100%;min-height:210px;object-fit:cover;display:block;transition:transform .7s var(--ol-p7-ease),opacity .35s ease;opacity:.94}
.ol-p7-card:hover .ol-p7-card-media img{transform:scale(1.065);opacity:1}
.ol-p7-card-type{position:absolute;left:.9rem;top:.9rem;z-index:2;background:rgba(255,250,242,.92);color:var(--ol-p7-forest);border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:.45rem .68rem;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;font-weight:950}
.ol-p7-card-body{padding:1rem}.ol-p7-card-body h3{margin:.38rem 0 .45rem;font-size:clamp(1.15rem,2vw,1.65rem);line-height:1.04;color:var(--ol-p7-forest);font-weight:900}.ol-p7-card-body h3 a{color:inherit;text-decoration:none}.ol-p7-card-body p:not(.ol-p7-card-meta){margin:0;color:rgba(19,34,26,.68);line-height:1.65;font-size:.92rem}.ol-p7-card-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.ol-p7-card-actions a,.ol-p7-card-actions button,.ol-p7-companion-actions button{border:0;border-radius:999px;min-height:44px;padding:.78rem .9rem;text-decoration:none;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:950;cursor:pointer}.ol-p7-card-actions a{background:var(--ol-p7-forest);color:#fff}.ol-p7-card-actions button,.ol-p7-companion-actions button{background:rgba(31,58,45,.08);color:var(--ol-p7-forest);border:1px solid rgba(31,58,45,.12)}.ol-p7-card-actions button:hover,.ol-p7-card-actions button:focus-visible,.ol-p7-companion-actions button:hover,.ol-p7-companion-actions button:focus-visible{background:var(--ol-p7-gold);color:#10251b;outline:0}
.ol-p7-storyboard{background:linear-gradient(180deg,#ead4ad,#fffaf2)}.ol-p7-storyboard-grid{width:min(1320px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ol-p7-storyboard-grid>div{border:1px solid rgba(31,58,45,.12);background:rgba(255,255,255,.42);border-radius:2rem;padding:1rem;box-shadow:0 20px 70px rgba(31,58,45,.1)}.ol-p7-storyboard-grid h3{font-family:var(--ol-p7-display);font-size:clamp(1.8rem,3vw,3.2rem);line-height:.95;margin:.2rem 0 1rem;color:var(--ol-p7-forest)}.ol-p7-story-wide{grid-column:1/-1}.ol-p7-empty{border:1px dashed rgba(198,162,74,.52);border-radius:1.4rem;background:rgba(255,250,242,.72);padding:1.3rem;color:var(--ol-p7-forest);font-weight:800;line-height:1.65}

.ol-p7-collection-bridge{border-top:1px solid rgba(31,58,45,.12);border-bottom:1px solid rgba(31,58,45,.12)}
.ol-p7-detail-companion{position:fixed;right:clamp(1rem,3vw,2rem);bottom:calc(env(safe-area-inset-bottom,0px) + 1.2rem);z-index:78;width:min(480px,calc(100vw - 2rem));display:grid;grid-template-columns:118px 1fr;gap:1rem;padding:.85rem;border:1px solid rgba(255,255,255,.4);border-radius:1.6rem;background:rgba(255,250,242,.92);box-shadow:0 26px 80px rgba(31,58,45,.22);backdrop-filter:blur(18px);transform:translateY(140%);transition:transform .36s var(--ol-p7-ease)}
.ol-p7-detail-companion.is-visible{transform:translateY(0)}.ol-p7-detail-companion img{width:118px;height:132px;border-radius:1rem;object-fit:cover}.ol-p7-detail-companion h2{font-size:1.35rem;line-height:1;margin:.28rem 0;color:var(--ol-p7-forest)}.ol-p7-detail-companion p{margin:0;color:rgba(19,34,26,.68);font-size:.88rem;line-height:1.5}.ol-p7-companion-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.72rem}.ol-p7-companion-actions button{padding:.7rem .76rem;font-size:.64rem;min-height:40px}
.ol-p7-sound-dock{position:fixed;left:calc(env(safe-area-inset-left,0px) + 1rem);bottom:calc(env(safe-area-inset-bottom,0px) + 1rem);z-index:79;display:none}.ol-p7-sound-dock.is-enabled{display:block}.ol-p7-sound-dock button{display:grid;grid-template-columns:auto 1fr;gap:.2rem .65rem;align-items:center;border:1px solid rgba(255,255,255,.3);background:rgba(7,18,14,.84);color:#fff;border-radius:999px;padding:.72rem 1rem;box-shadow:0 22px 60px rgba(0,0,0,.25);backdrop-filter:blur(18px);cursor:pointer;max-width:min(310px,calc(100vw - 2rem));text-align:left}.ol-p7-sound-dock [data-ol-audio-state]{grid-row:span 2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;background:var(--ol-p7-gold);color:#10251b;font-size:.67rem;font-weight:950;text-transform:uppercase}.ol-p7-sound-dock strong{font-size:.78rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ol-p7-sound-dock button[aria-pressed="true"] [data-ol-audio-state]{animation:olP7SoundPulse 1.6s var(--ol-p7-ease) infinite}@keyframes olP7SoundPulse{50%{box-shadow:0 0 0 10px rgba(198,162,74,.18)}}
.ol-p7-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ol-p7-ease),transform .7s var(--ol-p7-ease)}.ol-p7-reveal.is-visible{opacity:1;transform:translateY(0)}

body[data-ol-phase7-public="immersive"] :where(.horizontal-belt,.ol-route-belt,.ix-belt,.route-belt,[data-ol-route-belt]){max-width:100%;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:1rem;overscroll-behavior-x:contain}
body[data-ol-phase7-public="immersive"] :where(.horizontal-belt>*,.ol-route-belt>*,.ix-belt>*,.route-belt>*,[data-ol-route-belt]>*){scroll-snap-align:start}
body[data-ol-phase7-public="immersive"] :where(#booking-calendar,.ol-calendar,.calendar-grid){touch-action:manipulation}
body[data-ol-phase7-public="immersive"] :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(198,162,74,.8)!important;outline-offset:3px!important}

/* Route-map iframe public safety: pins only, no hover image cards. */
body[data-ol-phase7-public="immersive"] iframe[src*="route-logic-map-iframe"]{border:0;border-radius:clamp(1.2rem,3vw,2rem);box-shadow:var(--ol-p7-shadow);max-width:100%}

@media (min-width:768px) and (max-width:1199px){
  .ol-p7-section{padding:clamp(3rem,6vw,5rem) clamp(1.25rem,4vw,2.5rem)}.ol-p7-section-head{grid-template-columns:1fr 1fr}.ol-p7-pulse-grid{grid-template-columns:1fr 1.05fr}.ol-p7-card-grid--collection{grid-template-columns:repeat(2,minmax(0,1fr))}.ol-p7-storyboard-grid{grid-template-columns:1fr 1fr}.ol-p7-card-grid--stories{grid-template-columns:repeat(2,minmax(0,1fr))}.ol-p7-detail-companion{width:min(560px,calc(100vw - 2rem));grid-template-columns:130px 1fr}.ol-p7-detail-companion img{width:130px;height:144px}
}
@media (max-width:767px){
  .ol-p7-section{padding:2.5rem 1rem}.ol-p7-section-head{display:block}.ol-p7-section-head h2{font-size:clamp(2.3rem,13vw,4.1rem);max-width:10ch}.ol-p7-section-head p{margin-top:1rem;font-size:.98rem}.ol-p7-mood-rail{margin-bottom:.85rem;padding-bottom:.85rem}.ol-p7-mood-rail button{min-height:46px;padding:.8rem .9rem}.ol-p7-pulse-grid,.ol-p7-storyboard-grid{grid-template-columns:1fr}.ol-p7-pulse-map{min-height:330px;border-radius:1.55rem}.ol-p7-card-grid,.ol-p7-card-grid--compact,.ol-p7-card-grid--collection,.ol-p7-card-grid--stories{grid-template-columns:1fr}.ol-p7-card-grid--compact .ol-p7-card:first-child{grid-column:auto}.ol-p7-card{border-radius:1.25rem}.ol-p7-card-media,.ol-p7-card-media img{min-height:220px}.ol-p7-storyboard-grid>div{border-radius:1.4rem;padding:.8rem}.ol-p7-detail-companion{left:0;right:0;bottom:0;width:100%;grid-template-columns:86px 1fr;border-radius:1.4rem 1.4rem 0 0;padding:.8rem .85rem calc(env(safe-area-inset-bottom,0px) + .8rem);transform:translateY(110%)}.ol-p7-detail-companion img{width:86px;height:112px}.ol-p7-detail-companion h2{font-size:1.1rem}.ol-p7-companion-actions{display:grid;grid-template-columns:1fr 1fr}.ol-p7-companion-actions button:first-child{grid-column:1/-1}.ol-p7-sound-dock{left:.75rem;bottom:calc(env(safe-area-inset-bottom,0px) + .75rem)}.ol-p7-detail-companion.is-visible~.ol-p7-sound-dock,.ol-p7-sound-dock.is-collided{display:none!important}body[data-ol-phase7-public="immersive"]{padding-bottom:var(--ol-phone-safe-bottom)}
}
@media (min-width:1200px){
  .ol-p7-card[data-size="wide"]{grid-column:span 2}.ol-p7-home-suite{position:relative}.ol-p7-home-suite::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(198,162,74,.35),transparent);z-index:1;pointer-events:none}.ol-p7-detail-companion{right:2rem;bottom:2rem}
}
@media (prefers-reduced-motion:reduce){
  html.ol-p7-ready,body[data-ol-phase7-public="immersive"]{scroll-behavior:auto!important}.ol-p7-reveal,.ol-p7-card,.ol-p7-card-media img,.ol-p7-mood-rail button,.ol-p7-detail-companion{transition:none!important;transform:none!important;opacity:1!important}.ol-p7-route-line span,.ol-p7-sound-dock button[aria-pressed="true"] [data-ol-audio-state]{animation:none!important}
}
