/* Editorial travel guides and policies, scoped away from booking interfaces. */
.travel-guide { --guide-blue:#0074bd; --guide-navy:#102e46; color:var(--guide-navy); background:#fff; }
.guide-hero-wrap { background:linear-gradient(145deg,#f0f8fd 0%,#fff 75%); border-bottom:1px solid #e8f0f6; }
.guide-hero { max-width:1232px; margin:auto; padding:90px 24px 44px; display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:64px; }
.guide-home { display:flex; align-items:center; gap:12px; color:#667d8e; font-size:12px; margin-bottom:30px; }
.guide-eyebrow { display:block; color:#0074bd; font-size:10px; letter-spacing:.16em; font-weight:600; line-height:1.6; margin-bottom:12px; }
.public-travel-site .guide-hero h1 { font-family:ElementX,sans-serif; font-size:clamp(30px,3.4vw,46px); line-height:1.2; font-weight:500; color:#102e46; margin:0 0 18px; }
.guide-hero-copy > p { max-width:480px; font-size:15px; line-height:1.9; color:#526879; margin:0 0 25px; text-align:justify; }
.guide-button { display:inline-flex; align-items:center; gap:28px; padding:12px 20px; border-radius:10px; background:#0074bd; color:#fff; font-size:13px; transition:background .2s; }
.guide-button:hover { background:#003580; }
.guide-art { position:relative; min-width:0; aspect-ratio:1.4; border-radius:24px; overflow:hidden; background:#0074bd; box-shadow:0 18px 45px #0074bd1a; }
.guide-photo { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.guide-art-overlay { position:absolute; inset:0; background:linear-gradient(180deg,#0035800d 0%,#00358028 40%,#08283de6 100%); }
.guide-illustration { position:absolute; top:28px; left:28px; padding:8px; border:1px solid #ffffffb3; background:#ffffffec; border-radius:26px; box-shadow:0 10px 30px #00358026; animation:guide-float 6s ease-in-out infinite; }
.guide-illustration img { display:block; width:80px; height:80px; }
.guide-art-caption { position:absolute; bottom:26px; left:28px; right:82px; color:#fff; }
.guide-art-caption > span { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.15em; opacity:.85; margin-bottom:8px; }
.guide-art-caption p { font-family:ElementX,sans-serif; font-size:25px; line-height:1.3; }
.guide-globe { position:absolute; bottom:25px; right:22px; border:1px solid #ffffff70; border-radius:50%; background:white; width:50px; height:50px; }
.guide-globe img { display:block; width:48px; height:48px; }
.guide-orbit { position:absolute; width:190px; height:190px; border:1px dashed #ffffff80; border-radius:50%; right:-65px; top:-60px; animation:guide-orbit 35s linear infinite; }
.guide-orbit::after { content:''; position:absolute; left:28px; bottom:22px; width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 0 0 6px #ffffff30; }
.guide-shell { max-width:1232px; margin:auto; padding:0 24px 64px; }
.guide-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:32px 0 42px; }
.guide-overview a { position:relative; display:flex; align-items:center; gap:14px; min-width:0; padding:20px; border:1px solid #dfebf3; border-radius:12px; background:#fff; color:#29485e; font-size:13px; line-height:1.6; transition:border-color .2s,background .2s; }
.guide-overview a:not(:last-child)::after { content:''; position:absolute; width:18px; right:-19px; top:50%; border-top:1px dashed #93c6e5; }
.guide-overview a:hover { border-color:#0074bd; background:#f4faff; }
.guide-step { display:grid; place-items:center; width:36px; height:36px; flex-shrink:0; color:#0074bd; background:#eaf5fc; border-radius:50%; font-size:12px; }
.guide-step-arrow { margin-left:auto; color:#0074bd; }
.guide-layout { display:grid; grid-template-columns:255px minmax(0,1fr); gap:38px; align-items:start; margin-top:32px; }
.guide-sidebar { position:static; min-width:0; }
.guide-toc { border:1px solid #dfeaf2; border-radius:14px; background:#fbfdff; overflow:hidden; }
.guide-toc summary { display:flex; align-items:center; justify-content:space-between; padding:18px; font-family:ElementX,sans-serif; font-size:20px; cursor:pointer; list-style:none; }
.guide-toc summary::-webkit-details-marker { display:none; }
.guide-toc nav { max-height:none; overflow:visible; padding:0 10px 12px; }
.guide-toc a { display:block; padding:9px 10px; margin-bottom:3px; border-radius:7px; font-size:12px; line-height:1.7; color:#526879; border-left:2px solid transparent; }
.guide-toc a:hover,.guide-toc a[aria-current="location"] { color:#0074bd; background:#eaf5fc; border-left-color:#0074bd; }
.guide-help { padding:22px 18px; margin-top:20px; border-radius:14px; background:linear-gradient(135deg,#eaf5fc,#f8fcff); }
.public-travel-site .guide-help h2 { font-size:22px; font-weight:500; line-height:1.35; margin:0 0 12px; }
.guide-help p { font-size:12px; line-height:1.8; color:#526879; margin-bottom:12px; }
.guide-help a { display:flex; align-items:center; justify-content:space-between; padding:10px 0; color:#0074bd; font-size:12px; }
.guide-content { min-width:0; }
.guide-content,.guide-section,.guide-faq-item { scroll-margin-top:100px; }
.guide-introduction { padding:0 4px 20px; }
.guide-section { border:1px solid #e2ebf2; border-radius:14px; padding:26px 28px; margin-bottom:18px; box-shadow:0 4px 15px #0074bd04; }
.guide-section > header { display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.guide-section-number { display:inline-grid; place-items:center; flex-shrink:0; font-size:10px; width:30px; height:30px; border-radius:8px; color:#0074bd; background:#edf7fd; }
.public-travel-site .guide-section h2,.public-travel-site .guide-faq-item h2 { font-family:ElementX,sans-serif; font-size:21px; font-weight:500; line-height:1.4; margin:0; color:#12324b; }
.guide-prose { color:#435d70; font-size:14px; line-height:1.95; overflow-wrap:anywhere; }
.guide-prose p,.guide-prose li { text-align:justify; text-align-last:start; hyphens:auto; }
.guide-prose p { margin:0 0 14px; }
.guide-prose p:last-child { margin-bottom:0; }
.guide-prose ul,.guide-prose ol { margin:12px 0 18px; padding-left:22px; }
.guide-prose ul { list-style:disc; }
.guide-prose ol { list-style:decimal; }
.guide-prose li { margin:6px 0; padding-left:4px; }
.guide-prose li::marker { color:#0074bd; }
.guide-prose strong { color:#203e53; }
.guide-prose a { color:#0074bd; text-decoration:underline; text-underline-offset:3px; }
.guide-prose h3,.guide-prose h4 { font-family:ElementX,sans-serif; font-weight:500; font-size:19px; color:#12324b; margin:22px 0 12px; }
.guide-prose hr { border:0; border-top:1px solid #edf2f6; margin:20px 0; }
.guide-prose > hr:last-child { display:none; }
.guide-prose img { max-width:100%; height:auto; border-radius:12px; }
.guide-prose table { display:block; max-width:100%; overflow-x:auto; }
.guide-prose td,.guide-prose th { padding:10px; border:1px solid #e0ebf3; }
.guide-search { padding:20px; background:#f0f8fd; border-radius:12px; margin:0 0 22px; }
.guide-search[hidden] { display:none; }
.guide-search label { display:block; color:#526879; margin-bottom:8px; }
.guide-search input { width:100%; min-width:0; height:46px; border:1px solid #cddfeb; border-radius:8px; padding:10px 14px; background:#fff; font-size:13px; }
.guide-search-status { margin-top:8px; color:#526879; font-size:12px; }
.guide-search-status:empty { display:none; }
.guide-faq-item { border:1px solid #dfebf3; border-radius:12px; margin-bottom:12px; overflow:hidden; background:#fff; }
.guide-faq-item summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px; cursor:pointer; list-style:none; }
.guide-faq-item summary::-webkit-details-marker { display:none; }
.guide-faq-item[open] { border-color:#b7d9ef; }
.guide-faq-item[open] summary { background:#f5faff; }
.guide-faq-item .guide-prose { padding:20px; }
.guide-expand { display:grid; place-items:center; flex-shrink:0; width:26px; height:26px; border-radius:50%; background:#eaf5fc; color:#0074bd; font-size:18px; transition:transform .2s; }
.guide-faq-item[open] .guide-expand { transform:rotate(45deg); }
.guide-related { margin-top:42px; border-top:1px solid #e0ebf3; padding-top:32px; }
.public-travel-site .guide-related h2 { font-size:25px; font-weight:500; line-height:1.4; margin-bottom:20px; }
.guide-related-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.guide-related-links a { display:flex; align-items:center; gap:12px; padding:15px; border-radius:12px; border:1px solid #e0ebf3; color:#29485e; font-size:12px; }
.guide-related-links a:hover { background:#f0f8fd; border-color:#b3d6ed; }
.guide-related-links img { width:36px; height:36px; flex-shrink:0; }
.guide-related-links a > span:last-child { margin-left:auto; color:#0074bd; }
.guide-service-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.guide-service-links a { background:#eef7fc; color:#0074bd; padding:12px; border-radius:8px; }
.travel-guide :is(a,summary,input):focus-visible { outline:2px solid #0074bd; outline-offset:4px; }
@keyframes guide-float { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-8px) rotate(2deg); } }
@keyframes guide-orbit { to { transform:rotate(360deg); } }
@media(max-width:1023px) {
 .guide-hero { gap:30px; padding-top:75px; }
 .guide-layout { grid-template-columns:215px minmax(0,1fr); gap:24px; }
 .guide-related-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .guide-overview a { padding:16px 12px; gap:8px; font-size:12px; }
 .guide-art-caption p { font-size:21px; }
}
@media(max-width:767px) {
 .guide-hero { grid-template-columns:1fr; padding:62px 20px 28px; gap:26px; }
 .guide-home { margin-bottom:20px; }
 .guide-hero-copy { text-align:center; }
 .guide-hero-copy > p { margin-inline:auto; font-size:14px; }
 .guide-art { aspect-ratio:1.7; max-height:280px; }
 .guide-illustration { top:18px; left:18px; padding:5px; border-radius:20px; }
 .guide-illustration img { width:58px; height:58px; }
 .guide-art-caption { left:20px; bottom:18px; }
 .guide-art-caption p { font-size:21px; }
 .guide-globe { bottom:18px; right:18px; }
 .guide-shell { padding:0 16px 40px; }
 .guide-overview { grid-template-columns:1fr; gap:10px; margin:24px 0; }
 .guide-overview a:not(:last-child)::after { display:none; }
 .guide-overview a { padding:12px 14px; }
 .guide-layout { display:flex; flex-direction:column; gap:22px; margin-top:24px; }
 .guide-sidebar,.guide-content { width:100%; }
 .guide-sidebar { position:static; }
 .guide-help { display:block; }
 .guide-toc nav { max-height:none; }
 .guide-section { padding:20px 18px; }
 .guide-prose { font-size:13px; line-height:1.9; }
 .public-travel-site .guide-section h2,.public-travel-site .guide-faq-item h2 { font-size:19px; }
 .guide-faq-item summary { padding:16px; }
 .guide-related-links { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
 .guide-illustration,.guide-orbit { animation:none; }
 .travel-guide * { scroll-behavior:auto !important; transition:none !important; }
}
@media print {
 .guide-art,.guide-sidebar,.guide-related,.guide-overview,.guide-button,.guide-search { display:none; }
 .guide-hero,.guide-layout { display:block; padding:0; }
 .guide-section { box-shadow:none; border:0; padding:12px 0; }
 .guide-faq-item::details-content { display:block; }
}

/* Full-height contents, aligned section headings and illustrated reading breaks. */
.guide-section > header { align-items:center; min-height:44px; }
.guide-section > header h2 { flex:1; min-width:0; margin:0!important; padding:0!important; line-height:1.4!important; }
.guide-section-icon { width:44px; height:44px; flex:0 0 44px; object-fit:contain; }
.guide-overview-icon { width:48px; height:48px; flex:0 0 48px; }
.guide-help-banner { position:relative; isolation:isolate; overflow:hidden; padding:0; background:#003580; box-shadow:0 12px 28px #0074bd18; }
.guide-help-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.guide-help-banner::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#00358035,#052a4be8 60%,#052a4b); z-index:-1; }
.guide-help-copy { padding:24px 20px; }
.guide-help-banner .guide-eyebrow { color:#fff; letter-spacing:.13em; }
.guide-help-icon { width:56px; height:56px; border-radius:14px; margin:25px 0 18px; }
.public-travel-site .guide-help-banner h2 { color:#fff; font-size:25px; line-height:1.35; }
.guide-help-banner p { color:#e1f1fb; }
.guide-help-banner a { color:#fff; }
.guide-help-banner .guide-help-call { background:#fff; color:#0074bd; border-radius:9px; padding:12px; margin:20px 0 5px; font-size:15px; }
.guide-help-banner .guide-help-call:hover { background:#e9f6ff; }
.guide-visual-break { display:grid; grid-template-columns:1fr 1.2fr; border:1px solid #dfebf3; border-radius:14px; overflow:hidden; margin:28px 0; background:#f4faff; }
.guide-visual-photo { position:relative; min-height:230px; background:#003580; }
.guide-visual-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.guide-visual-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent,#052a4be6); }
.guide-visual-photo > span { position:absolute; z-index:1; inset:auto 20px 20px; font-family:ElementX,sans-serif; font-size:24px; line-height:1.3; color:#fff; }
.guide-reading-path { padding:22px; }
.guide-reading-path a { display:flex; align-items:center; gap:10px; padding:10px 0; color:#31536b; font-size:12px; line-height:1.5; }
.guide-reading-path a + a { border-top:1px dashed #c5deed; }
.guide-reading-path a img { width:36px; height:36px; flex-shrink:0; }
.guide-reading-path a span:last-child { margin-left:auto; color:#0074bd; }
@media(max-width:767px) {
 .guide-help-icon { margin:12px 0; }
 .guide-help-copy { padding:22px; }
 .guide-help-photo { object-position:center 45%; }
 .guide-visual-break { grid-template-columns:1fr; }
 .guide-visual-photo { min-height:170px; }
 .guide-section-icon { width:36px; height:36px; flex-basis:36px; }
}
@media print { .guide-visual-break { display:none; } }

/* FAQ question labels: consistent requested size on every screen. */
.public-travel-site .guide-faq-item > summary > h2 { font-size:14px; }

/* Photo-led contact banner with a clear reading area and generous image space. */
.guide-help-banner { border-radius:16px; background:#102334; box-shadow:0 12px 32px rgb(0 116 189 / 12%); }
.guide-help-banner .guide-help-photo { object-position:50% 25%; }
.guide-help-banner::before { background:linear-gradient(180deg,rgba(8,20,30,.22) 0%,rgba(8,20,30,.04) 28%,rgba(8,20,30,.78) 57%,#0b2335 86%); }
.guide-help-banner .guide-help-copy { display:flex; flex-direction:column; min-height:440px; padding:24px 20px 20px; }
.guide-help-banner .guide-eyebrow { align-self:flex-start; margin:0 0 142px; font-size:10px; text-shadow:0 1px 8px #0009; }
.public-travel-site .guide-help-banner h2 { font-size:26px; line-height:1.2; margin-bottom:12px; text-wrap:balance; }
.guide-help-banner p { color:#deebf4; font-size:12px; line-height:1.8; margin:0 0 18px; }
.guide-help-banner .guide-help-call { min-height:44px; margin:0 0 8px; padding:12px 14px; background:#0074bd; color:#fff; border-radius:10px; transition:background .2s; }
.guide-help-banner .guide-help-call:hover { background:#003580; }
.guide-help-banner .guide-help-copy > a:last-child { padding:10px 2px 0; color:#e3f1fa; font-size:11px; }
@media(max-width:767px) {
 .guide-help-banner .guide-help-copy { min-height:380px; padding:24px; }
 .guide-help-banner .guide-eyebrow { margin-bottom:112px; }
 .guide-help-banner .guide-help-photo { object-position:50% 40%; }
}

/* Let only the contact banner follow the reader within the article column. */
@media screen and (min-width:768px) {
 .guide-sidebar { align-self:stretch; }
 .guide-sidebar .guide-help-banner { position:sticky; top:88px; }
}

/* Booking guide: numbered, editable steps with a distinct visual rhythm. */
.booking-guide .guide-hero-wrap { position:relative; background:radial-gradient(ellipse at 85% 10%,#d9effc,transparent 65%),linear-gradient(150deg,#f2faff,#fff); }
.booking-guide .guide-hero { padding-top:86px; padding-bottom:55px; }
.booking-guide .guide-hero h1 { font-size:42px; }
.booking-guide .guide-art { border-radius:10px; box-shadow:0 20px 48px #0074bd1c; }
.booking-guide .guide-hero-copy>p { text-align:justify; text-align-last:start; }
.booking-guide .guide-overview { counter-reset:booking-highlight; gap:18px; }
.booking-guide .guide-overview>a { position:relative; background:linear-gradient(140deg,#f0f9ff,#fff); border:1px solid #d8eaf6; border-radius:10px; padding:24px; box-shadow:0 5px 18px #0074bd08; }
.booking-guide .guide-overview>a:before { counter-increment:booking-highlight; content:'0' counter(booking-highlight); display:flex; align-items:center; justify-content:center; width:44px; height:44px; flex-shrink:0; border-radius:10px; color:#0074bd; background:#e3f3fd; font-family:ElementX,Georgia,serif; font-size:23px; }
.booking-guide .guide-overview-icon { display:none; }
.booking-guide .guide-introduction { border-left:3px solid #0074bd; background:#f1f9fe; padding:24px; border-radius:10px; }
.booking-guide .guide-section { position:relative; border:1px solid #deebf5; border-radius:10px; padding:28px; box-shadow:0 8px 24px #0074bd08; background:linear-gradient(120deg,#fff,#fbfdff); }
.booking-guide .guide-section:nth-of-type(even) { background:linear-gradient(135deg,#f0f8fe,#fff 70%); }
.booking-guide .guide-section>header { border-bottom:1px solid #dfedf6; padding-bottom:18px; margin-bottom:20px; }
.booking-guide .booking-step-number { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; flex:0 0 46px; border-radius:10px; background:#0074bd; color:#fff; font-family:ElementX,Georgia,serif; font-size:24px; box-shadow:0 5px 12px #0074bd18; }
.booking-guide .guide-prose ul { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0; }
.booking-guide .guide-prose ul>li { position:relative; margin:0; padding:10px 12px 10px 32px; background:#edf7fd; border-radius:10px; font-size:12px; text-align:left; line-height:1.8; }
.booking-guide .guide-prose ul>li:before { content:'✓'; position:absolute; left:12px; color:#0074bd; }
.booking-guide .guide-toc { background:#f8fcff; border-color:#deebf5; }
.booking-guide .guide-visual-break { border-radius:10px; box-shadow:0 10px 24px #0074bd12; }
.booking-guide .guide-button { box-shadow:0 7px 20px #0074bd26; transition:background .2s,box-shadow .2s; }
.booking-guide .guide-button:hover { background:#003578; box-shadow:0 9px 24px #0074bd30; }
@media(max-width:767px) {
 .booking-guide .guide-hero { padding-top:60px; padding-bottom:32px; }
 .booking-guide .guide-hero h1 { font-size:34px; }
 .booking-guide .guide-overview { gap:10px; }
 .booking-guide .guide-overview>a { padding:16px; }
 .booking-guide .guide-section { padding:20px 16px; }
 .booking-guide .guide-prose ul { grid-template-columns:minmax(0,1fr); }
 .booking-guide .guide-introduction { padding:20px; }
 .booking-guide .booking-step-number { width:38px; height:38px; flex-basis:38px; font-size:21px; }
}
@media(prefers-reduced-motion:reduce) { .booking-guide .guide-button { transition:none; } }

/* Transparent editorial portraits deliberately extend beyond the blue card. */
.guide-art.guide-art--portrait {
 overflow:visible; margin-top:48px; isolation:isolate;
 background:radial-gradient(ellipse at 50% 25%,#b8e8ff 0%,#5bb7e2 42%,#0074bd 100%);
}
.guide-art--portrait .guide-photo {
 inset:auto 0 0; width:100%; height:calc(100% + 48px);
 object-fit:contain; object-position:center bottom; z-index:0;
 filter:drop-shadow(0 8px 12px #003b6520);
}
.guide-art--portrait .guide-art-overlay {
 z-index:1; border-radius:inherit;
 background:linear-gradient(180deg,transparent 48%,#08283d20 64%,#08283df2 100%);
}
.guide-art--portrait .guide-art-caption,.guide-art--portrait .guide-globe { z-index:2; }
.guide-art--portrait .guide-illustration,.guide-art--portrait .guide-orbit { display:none; }
.guide-help-banner.guide-help--portrait {
 overflow:visible; margin-top:40px; background:linear-gradient(145deg,#b4e5fa,#0074bd 65%);
}
.guide-help--portrait .guide-help-photo {
 inset:-34px 0 auto; height:265px; width:100%; object-fit:contain;
 object-position:center top; z-index:0; filter:drop-shadow(0 6px 10px #003b6520);
}
.guide-help-banner.guide-help--portrait::before {
 z-index:1; border-radius:inherit;
 background:linear-gradient(180deg,transparent 125px,#0b2335eb 225px,#0b2335 280px);
}
.guide-help--portrait .guide-help-copy { position:relative; z-index:2; padding-top:220px; }
.guide-help-banner.guide-help--portrait .guide-eyebrow { margin-bottom:12px; }
@media(max-width:767px) {
 .guide-art.guide-art--portrait { margin-top:32px; aspect-ratio:1.35; max-height:none; }
 .guide-art--portrait .guide-photo { height:calc(100% + 32px); }
 .guide-art--portrait .guide-art-caption p { font-size:20px; }
 .guide-help--portrait .guide-help-copy { padding-top:220px; }
}
