:root{
    --navy:#16213A;
    --navy-2:#0E1729;
    --navy-3:#1F2D4A;
    --navy-4:#2A3A5C;
    --gold:#C9A24B;
    --gold-2:#8A6B1D;
    --gold-soft:#E7D6A5;
    --gold-tint:#F8F3E6;
    --gold-line:#E6D6AA;
    --ink:#16213A;
    --body:#33404F;
    --muted:#66707E;
    --line:#DCE2EA;
    --line-2:#EAEEF3;
    --mist:#F1F4F7;
    --white:#fff;
    --wa:#128C7E;
    --wa-2:#0E7367;
    --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
    --r:10px;
    --r-sm:6px;
    --bs-body-font-family:var(--sans);
    --bs-body-color:var(--body);
    --bs-link-color:var(--gold-2);
    --bs-link-hover-color:var(--navy);
    --bs-border-color:var(--line)
}
html{
    -webkit-text-size-adjust:100%;
    scroll-padding-top:84px
}
body{
    font-family:var(--sans);
    color:var(--body);
    background:#fff;
    font-size:1.0625rem;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden
}
img{
    max-width:100%;
    height:auto
}
a{
    color:var(--gold-2);
    text-decoration:none
}
a:hover{
    color:var(--navy);
    text-decoration:underline;
    text-underline-offset:.15em
}
h1,h2,h3,.h1,.h2,.h3{
    font-family:var(--serif);
    color:var(--ink);
    font-weight:700;
    line-height:1.1;
    letter-spacing:-.005em;
    margin:0 0 .5em
}
h1{
    font-size:clamp(2.35rem,5.2vw,3.9rem)
}
h2{
    font-size:clamp(1.85rem,3.4vw,2.65rem)
}
h3{
    font-size:1.5rem;
    line-height:1.2
}
h4,h5{
    font-family:var(--sans);
    color:var(--ink);
    font-weight:700
}
p{
    margin:0 0 1rem
}
ul,ol{
    margin:0 0 1rem;
    padding-left:1.25rem
}
li{
    margin:.3rem 0
}
li::marker{
    color:var(--gold-2)
}
b,strong{
    color:var(--ink)
}
:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:2px;
    border-radius:4px
}
.wrap{
    width:100%;
    max-width:1200px;
    margin:0 auto;
    padding:0 1.25rem
}
/*
 * A .wrap nested inside another .wrap (a few pages repeat the section + wrap
 * pair) must not add the 1.25rem inset a second time, otherwise its content
 * sits 40px inside the page grid instead of on it.
 */
.wrap .wrap{
    padding-left:0;
    padding-right:0
}
.section{
    padding:clamp(3rem,7vw,5.5rem) 0
}
.section--tint{
    background:var(--mist)
}
.section--navy{
    background:var(--navy);
    color:#C5CEDC
}
.section--navy h2,.section--navy h3{
    color:#fff
}
.section--navy .muted{
    color:#A9B4C6
}
.section-head{
    max-width:64ch;
    margin-bottom:clamp(1.5rem,3vw,2.4rem)
}
.section-head.center{
    text-align:center;
    margin-left:auto;
    margin-right:auto
}
.section-head p{
    margin-bottom:0;
    font-size:1.08rem
}
.section-head .eyebrow{
    display:block;
    font-family:var(--serif);
    font-style:italic;
    font-weight:600;
    font-size:1.2rem;
    color:var(--gold-2);
    margin-bottom:.35rem
}
.section--navy .eyebrow{
    color:var(--gold-soft)
}
.eyebrow{
    display:block;
    font-family:var(--serif);
    font-style:italic;
    font-weight:600;
    font-size:1.15rem;
    color:var(--gold-2);
    margin-bottom:.3rem
}
.lead{
    font-size:1.15rem;
    color:var(--body)
}
.muted{
    color:var(--muted)
}
.center{
    text-align:center
}
.divider{
    height:1px;
    background:var(--line);
    border:0;
    margin:2rem 0
}
.skip{
    position:absolute;
    left:-999px;
    top:8px;
    background:#fff;
    color:var(--navy);
    padding:.5rem 1rem;
    z-index:2000;
    border-radius:6px
}
.skip:focus{
    left:8px
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    font-family:var(--sans);
    font-weight:700;
    font-size:1rem;
    line-height:1.1;
    padding:.9rem 1.45rem;
    border-radius:var(--r-sm);
    border:2px solid transparent;
    min-height:50px;
    transition:background .15s,color .15s,border-color .15s,transform .15s
}
.btn:hover{
    text-decoration:none;
    transform:translateY(-1px)
}
.btn svg{
    width:20px;
    height:20px;
    flex:0 0 auto
}
.btn--wa{
    background:var(--wa);
    color:#fff
}
.btn--wa:hover,.btn--wa:focus{
    background:var(--wa-2);
    color:#fff
}
.btn--call{
    background:var(--gold);
    color:var(--navy)
}
.btn--call:hover,.btn--call:focus{
    background:#D9B45A;
    color:var(--navy-2)
}
.btn--navy{
    background:var(--navy);
    color:#fff
}
.btn--navy:hover,.btn--navy:focus{
    background:var(--navy-2);
    color:#fff
}
.btn--ghost{
    background:transparent;
    color:var(--navy);
    border-color:var(--line)
}
.btn--ghost:hover,.btn--ghost:focus{
    border-color:var(--navy);
    color:var(--navy);
    background:#fff
}
.btn--ghost-light{
    background:transparent;
    color:#fff;
    border-color:rgba(255,255,255,.35)
}
.btn--ghost-light:hover,.btn--ghost-light:focus{
    border-color:#fff;
    color:#fff
}
.btn--light{
    background:#fff;
    color:var(--navy)
}
.btn--light:hover,.btn--light:focus{
    background:var(--gold-tint);
    color:var(--navy)
}
.btn--sm{
    padding:.6rem 1rem;
    min-height:42px;
    font-size:.93rem
}
.btn-row{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem
}
.hdr{
    position:sticky;
    top:0;
    z-index:1030;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line)
}
.hdr .navbar{
    padding:.55rem 0;
    min-height:72px
}
.hdr .navbar-brand{
    padding:0;
    margin:0;
    flex:0 0 auto
}
.hdr-cta{
    flex:0 0 auto
}
.hdr .navbar-brand img{
    width:auto;
    height:52px;
    display:block
}
.hdr .navbar-nav{
    gap:0;
    flex-wrap:nowrap
}
.hdr .nav-home{
    display:none
}
.hdr .navbar-nav>li{
    position:relative
}
.hdr .nav-link{
    color:var(--navy);
    font-weight:600;
    font-size:.92rem;
    padding:.5rem .55rem;
    border-radius:6px;
    white-space:nowrap
}
.hdr .nav-link:hover,.hdr .nav-link:focus{
    background:var(--mist);
    color:var(--navy);
    text-decoration:none
}
.hdr .nav-link[aria-current="page"]{
    color:var(--gold-2)
}
.hdr .has-sub>.nav-link::after{
    content:"";
    display:inline-block;
    width:.38em;
    height:.38em;
    margin-left:.42em;
    border-right:1.6px solid currentColor;
    border-bottom:1.6px solid currentColor;
    transform:rotate(45deg) translateY(-2px)
}
.hdr .submenu{
    position:absolute;
    top:100%;
    left:0;
    min-width:260px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    box-shadow:0 18px 40px rgba(22,33,58,.14);
    padding:.45rem;
    list-style:none;
    margin:.3rem 0 0;
    opacity:0;
    visibility:hidden;
    transform:translateY(6px);
    transition:.15s ease
}
.hdr .has-sub:hover .submenu,.hdr .has-sub:focus-within .submenu{
    opacity:1;
    visibility:visible;
    transform:none
}
.hdr .submenu li{
    margin:0
}
.hdr .submenu a{
    display:block;
    padding:.55rem .75rem;
    border-radius:6px;
    color:var(--body);
    font-size:.93rem;
    font-weight:500
}
.hdr .submenu a:hover{
    background:var(--mist);
    color:var(--navy);
    text-decoration:none
}
.hdr-cta{
    display:flex;
    align-items:center;
    gap:.6rem
}
.hdr-phone{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    color:var(--navy);
    font-weight:700;
    font-size:.98rem;
    padding:.5rem .5rem;
    border-radius:6px;
    white-space:nowrap
}
.hdr-phone svg{
    width:18px;
    height:18px;
    color:var(--gold-2)
}
.hdr-phone:hover{
    background:var(--mist);
    text-decoration:none;
    color:var(--navy)
}
.hdr .btn{
    min-height:44px;
    padding:.6rem 1.05rem;
    font-size:.95rem
}
.hdr-call-m{
    display:none;
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--gold);
    color:var(--navy);
    align-items:center;
    justify-content:center
}
.hdr-call-m svg{
    width:20px;
    height:20px
}
.hdr .navbar-toggler{
    border:1px solid var(--line);
    padding:.45rem .55rem;
    border-radius:6px;
    box-shadow:none
}
.hdr .navbar-toggler-icon{
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%2316213A' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    width:1.4em;
    height:1.4em
}
.offcanvas{
    --bs-offcanvas-width:340px;
    background:var(--navy);
    color:#DCE3EE
}
.offcanvas .btn-close{
    filter:invert(1) grayscale(1);
    opacity:.8
}
.offcanvas-header{
    border-bottom:1px solid rgba(255,255,255,.1)
}
.offcanvas-header img{
    height:44px;
    width:auto
}
.oc-list{
    list-style:none;
    padding:0;
    margin:0
}
.oc-list li{
    margin:0;
    border-bottom:1px solid rgba(255,255,255,.08)
}
.oc-list>li>a,.oc-list>li>button{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    text-align:left;
    background:none;
    border:0;
    color:#fff;
    font-weight:600;
    font-size:1.05rem;
    padding:.9rem .2rem
}
.oc-list>li>a:hover{
    color:var(--gold-soft);
    text-decoration:none
}
.oc-list button::after{
    content:"";
    width:.5em;
    height:.5em;
    border-right:2px solid var(--gold);
    border-bottom:2px solid var(--gold);
    transform:rotate(45deg);
    transition:transform .2s
}
.oc-list button[aria-expanded="true"]::after{
    transform:rotate(-135deg)
}
.oc-sub{
    list-style:none;
    padding:0 0 .6rem .9rem;
    margin:0
}
.oc-sub li{
    border:0
}
.oc-sub a{
    display:block;
    color:#C5CEDC;
    padding:.5rem .2rem;
    font-size:.97rem
}
.oc-sub a:hover{
    color:#fff;
    text-decoration:none
}
.oc-foot{
    padding:1.2rem 0 0
}
.oc-foot .btn{
    width:100%;
    margin-bottom:.6rem
}
.oc-foot p{
    color:#A9B4C6;
    font-size:.9rem;
    margin:.4rem 0 0
}
.hero{
    position:relative;
    background:var(--navy);
    color:#D3DBE8;
    overflow:hidden;
    isolation:isolate
}
.hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;
    background:radial-gradient(60% 80% at 85% 15%,rgba(201,162,75,.22),transparent 60%),linear-gradient(180deg,#1A2742 0%,#16213A 55%,#0E1729 100%)
}
.hero .topo{
    position:absolute;
    right:-4%;
    top:-6%;
    width:62%;
    height:auto;
    z-index:-1;
    opacity:.55;
    pointer-events:none
}
.hero .ridge{
    position:absolute;
    left:0;
    right:0;
    bottom:-1px;
    width:100%;
    height:auto;
    z-index:-1;
    pointer-events:none
}
.hero__grid{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    gap:clamp(2rem,5vw,4.5rem);
    align-items:center;
    padding:clamp(3rem,7vw,5.5rem) 0 clamp(4rem,9vw,7rem)
}
.hero--compact .hero__grid{
    padding:clamp(2.4rem,5vw,3.8rem) 0 clamp(3rem,7vw,5rem)
}
.hero .kicker{
    display:flex;
    align-items:center;
    gap:.7rem;
    font-family:var(--serif);
    font-style:italic;
    font-weight:600;
    font-size:1.2rem;
    color:var(--gold-soft);
    margin-bottom:1.1rem
}
.hero .kicker::before{
    content:"";
    width:34px;
    height:1px;
    background:var(--gold)
}
.hero h1{
    color:#fff;
    max-width:17ch;
    margin-bottom:1rem
}
.hero .sub{
    font-size:1.14rem;
    color:#C5CEDC;
    max-width:58ch;
    margin:0 0 1.6rem
}
.hero .btn-row{
    margin-bottom:1.5rem
}
.assure{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem 1.5rem;
    list-style:none;
    padding:0;
    margin:0
}
.assure li{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    color:#DCE3EE;
    font-size:.93rem;
    font-weight:500;
    margin:0
}
.assure svg{
    width:16px;
    height:16px;
    color:var(--gold);
    flex:0 0 auto
}
.ticket{
    background:#fff;
    color:var(--body);
    border-radius:14px;
    box-shadow:0 30px 60px rgba(4,9,20,.45);
    overflow:hidden;
    position:relative
}
.ticket__head{
    background:var(--gold-tint);
    padding:1rem 1.35rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    border-bottom:1px solid var(--gold-line)
}
.ticket__head .t-title{
    font-family:var(--serif);
    font-size:1.35rem;
    font-weight:700;
    color:var(--navy);
    line-height:1.15
}
.ticket__head .t-tag{
    font-size:.78rem;
    font-weight:700;
    color:var(--gold-2);
    background:#fff;
    border:1px solid var(--gold-line);
    padding:.3rem .6rem;
    border-radius:999px;
    white-space:nowrap
}
.ticket__body{
    padding:1.25rem 1.35rem
}
.rt{
    display:grid;
    grid-template-columns:22px 1fr;
    gap:.3rem .8rem;
    margin-bottom:1rem
}
.rt .dot{
    width:12px;
    height:12px;
    border-radius:50%;
    background:var(--gold);
    border:3px solid #fff;
    box-shadow:0 0 0 1.5px var(--gold);
    margin:6px auto 0
}
.rt .dot.end{
    background:var(--navy);
    box-shadow:0 0 0 1.5px var(--navy)
}
.rt .ln{
    width:1px;
    height:26px;
    background:var(--gold);
    margin:0 auto;
    opacity:.6
}
.rt .pt{
    font-weight:700;
    color:var(--ink);
    line-height:1.2
}
.rt .pt small{
    display:block;
    font-weight:500;
    color:var(--muted);
    font-size:.83rem
}
.rt .gap{
    height:26px
}
.t-meta{
    display:flex;
    flex-wrap:wrap;
    gap:.35rem 1.2rem;
    color:var(--muted);
    font-size:.9rem;
    margin-bottom:1rem
}
.t-meta b{
    color:var(--ink);
    font-weight:700
}
.t-fares{
    width:100%;
    border-collapse:collapse;
    font-size:.95rem
}
.t-fares td{
    padding:.5rem 0;
    border-top:1px dashed var(--line)
}
.t-fares td:last-child{
    text-align:right;
    font-weight:700;
    color:var(--navy);
    white-space:nowrap
}
.t-fares small{
    color:var(--muted);
    font-weight:500
}
.ticket__foot{
    padding:1rem 1.35rem 1.25rem;
    border-top:2px dashed var(--line);
    display:flex;
    gap:.6rem;
    flex-wrap:wrap
}
.ticket__foot .btn{
    flex:1 1 auto
}
.ticket .t-note{
    font-size:.8rem;
    color:var(--muted);
    margin:0;
    padding:0 1.35rem 1rem
}
.facts{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden
}
.fact{
    background:#fff;
    padding:.9rem 1rem
}
.fact .k{
    font-size:.8rem;
    color:var(--muted);
    font-weight:600
}
.fact .v{
    font-family:var(--serif);
    font-size:1.35rem;
    font-weight:700;
    color:var(--ink);
    line-height:1.15;
    margin-top:.1rem
}
.hero .facts{
    box-shadow:0 30px 60px rgba(4,9,20,.4);
    border-color:transparent
}
.bookcard{
    background:#fff;
    color:var(--body);
    border-radius:14px;
    box-shadow:0 30px 60px rgba(4,9,20,.45);
    padding:1.5rem 1.5rem 1.25rem
}
.bookcard h2{
    font-size:1.6rem;
    margin-bottom:.3rem
}
.bookcard>p{
    color:var(--muted);
    font-size:.95rem;
    margin-bottom:1rem
}
.bookcard .btn{
    width:100%;
    margin-bottom:.6rem
}
.bookcard .lines{
    margin:.7rem 0 0;
    padding:0;
    list-style:none;
    font-size:.9rem;
    color:var(--muted)
}
.bookcard .lines li{
    display:flex;
    gap:.5rem;
    align-items:flex-start;
    margin:.35rem 0
}
.bookcard .lines svg{
    width:16px;
    height:16px;
    color:var(--gold-2);
    flex:0 0 auto;
    margin-top:3px
}
.bookcard .lines a{
    color:var(--body)
}
.crumbs{
    background:var(--navy-2);
    font-size:.85rem
}
.crumbs ol{
    display:flex;
    flex-wrap:wrap;
    gap:.35rem;
    list-style:none;
    margin:0;
    padding:.6rem 0
}
.crumbs li{
    display:flex;
    gap:.35rem;
    align-items:center;
    margin:0;
    color:#8F9BB0
}
.crumbs li+li::before{
    content:"/";
    color:#4E5B75
}
.crumbs a{
    color:#C5CEDC
}
.crumbs a:hover{
    color:#fff
}
.route-list{
    list-style:none;
    padding:0;
    margin:0;
    border-top:1px solid var(--line)
}
.route-list li{
    margin:0
}
.route-list a{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:1.1rem;
    padding:1rem .5rem;
    border-bottom:1px solid var(--line);
    color:var(--body);
    transition:background .15s
}
.route-list a:hover{
    background:var(--gold-tint);
    text-decoration:none
}
.route-list .ic{
    width:42px;
    height:42px;
    border-radius:50%;
    border:1px solid var(--gold-line);
    background:#fff;
    color:var(--gold-2);
    display:flex;
    align-items:center;
    justify-content:center
}
.route-list .ic svg{
    width:20px;
    height:20px
}
.route-list .nm{
    font-family:var(--serif);
    font-size:1.3rem;
    font-weight:700;
    color:var(--ink);
    line-height:1.15
}
.route-list .nm small{
    display:block;
    font-family:var(--sans);
    font-weight:500;
    font-size:.88rem;
    color:var(--muted);
    margin-top:.15rem
}
.route-list .pr{
    text-align:right;
    white-space:nowrap
}
.route-list .pr b{
    display:block;
    font-size:1.05rem;
    color:var(--navy)
}
.route-list .pr small{
    color:var(--muted);
    font-size:.78rem
}
.route-list .pr .go{
    display:inline-block;
    margin-left:.4rem;
    color:var(--gold-2)
}
.svc{
    display:flex;
    flex-direction:column;
    height:100%;
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    padding:1.5rem;
    color:var(--body);
    transition:border-color .15s,transform .15s
}
a.svc:hover{
    border-color:var(--gold);
    text-decoration:none;
    color:var(--body);
    transform:translateY(-2px)
}
.svc .ib{
    width:46px;
    height:46px;
    border-radius:10px;
    background:var(--gold-tint);
    color:var(--gold-2);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:1rem
}
.svc .ib svg{
    width:24px;
    height:24px
}
.svc h3{
    font-size:1.4rem;
    margin-bottom:.3rem
}
.svc p{
    font-size:.97rem;
    margin:0
}
.svc .go{
    margin-top:auto;
    padding-top:.9rem;
    font-weight:700;
    color:var(--gold-2);
    font-size:.9rem
}
.section--navy .svc{
    background:var(--navy-3);
    border-color:var(--navy-4);
    color:#C5CEDC
}
.section--navy .svc .ib{
    background:rgba(201,162,75,.15);
    color:var(--gold-soft)
}
.section--tint .svc{
    background:#fff
}
.fleet{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    padding:1.4rem;
    height:100%;
    display:flex;
    flex-direction:column
}
.fleet .fl-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:.8rem;
    margin-bottom:.5rem
}
.fleet h3{
    font-size:1.5rem;
    margin:0
}
.fleet .chip{
    font-size:.78rem;
    font-weight:700;
    color:var(--gold-2);
    background:var(--gold-tint);
    border:1px solid var(--gold-line);
    padding:.25rem .55rem;
    border-radius:999px;
    white-space:nowrap
}
.fleet .fl-best{
    color:var(--muted);
    font-size:.93rem;
    margin-bottom:.8rem
}
.fleet .fl-meta{
    display:flex;
    gap:1.1rem;
    flex-wrap:wrap;
    font-size:.9rem;
    color:var(--ink);
    font-weight:600;
    margin-bottom:.8rem
}
.fleet .fl-meta span{
    display:inline-flex;
    align-items:center;
    gap:.4rem
}
.fleet .fl-meta svg{
    width:17px;
    height:17px;
    color:var(--gold-2)
}
.fleet .fl-note{
    font-size:.93rem;
    margin:0;
    color:var(--body)
}
.fleet .fl-price{
    margin-top:auto;
    padding-top:.9rem;
    border-top:1px dashed var(--line);
    font-size:.9rem;
    color:var(--muted)
}
.fleet .fl-price b{
    color:var(--navy);
    font-size:1.05rem
}
.table-wrap{
    overflow-x:auto;
    border:1px solid var(--line);
    border-radius:var(--r);
    background:#fff
}
table.fare{
    width:100%;
    border-collapse:collapse;
    min-width:540px;
    font-size:.96rem;
    margin:0
}
table.fare caption{
    caption-side:bottom;
    text-align:left;
    padding:.7rem 1rem;
    color:var(--muted);
    font-size:.85rem;
    background:var(--mist);
    border-top:1px solid var(--line)
}
table.fare th,table.fare td{
    padding:.85rem 1rem;
    text-align:left;
    border-bottom:1px solid var(--line-2);
    vertical-align:middle
}
table.fare thead th{
    background:var(--navy);
    color:#fff;
    font-weight:600;
    font-size:.88rem;
    white-space:nowrap;
    border:0
}
table.fare thead th:not(:first-child),table.fare td.price{
    text-align:right
}
table.fare tbody tr:last-child td{
    border-bottom:0
}
table.fare tbody tr:hover{
    background:var(--gold-tint)
}
table.fare .veh{
    font-weight:700;
    color:var(--ink)
}
table.fare .veh a{
    color:var(--ink)
}
table.fare .veh small{
    display:block;
    font-weight:500;
    color:var(--muted);
    font-size:.8rem
}
table.fare .price{
    font-weight:700;
    color:var(--navy);
    white-space:nowrap;
    font-variant-numeric:tabular-nums
}
.fare-note{
    font-size:.86rem;
    color:#5E4E1F;
    background:var(--gold-tint);
    border:1px solid var(--gold-line);
    border-radius:var(--r-sm);
    padding:.75rem .95rem;
    margin-top:.9rem;
    display:flex;
    gap:.55rem
}
.fare-note svg{
    width:18px;
    height:18px;
    color:var(--gold-2);
    flex:0 0 auto;
    margin-top:2px
}
.fare-cards{
    display:none
}
.fare-cards .fc{
    border:1px solid var(--line);
    border-radius:var(--r);
    padding:1rem;
    background:#fff
}
.fare-cards .fc h4{
    margin:0 0 .5rem;
    font-size:1rem
}
.fare-cards .fc-row{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.45rem 0;
    border-top:1px dashed var(--line);
    font-size:.93rem
}
.fare-cards .fc-row:first-of-type{
    border-top:0
}
.fare-cards .fc-row .price{
    font-weight:700;
    color:var(--navy)
}
.faq .accordion{
    --bs-accordion-border-color:var(--line);
    --bs-accordion-btn-focus-box-shadow:0 0 0 3px rgba(201,162,75,.35);
    --bs-accordion-active-bg:#fff;
    --bs-accordion-active-color:var(--navy);
    --bs-accordion-btn-padding-y:1.05rem;
    --bs-accordion-btn-padding-x:1.2rem;
    --bs-accordion-body-padding-x:1.2rem;
    --bs-accordion-body-padding-y:1rem;
    --bs-accordion-border-radius:var(--r);
    --bs-accordion-inner-border-radius:var(--r)
}
.faq .accordion-button{
    font-family:var(--serif);
    font-size:1.28rem;
    font-weight:700;
    color:var(--ink);
    line-height:1.2
}
.faq .accordion-button::after{
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%238A6B1D'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")
}
.faq .accordion-button:not(.collapsed)::after{
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2316213A'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")
}
.faq .accordion-body{
    color:var(--body)
}
.faq .accordion-body p:last-child{
    margin-bottom:0
}
.cta-band{
    background:var(--gold);
    color:var(--navy);
    border-radius:16px;
    padding:clamp(1.8rem,4.5vw,3rem);
    display:grid;
    grid-template-columns:1fr auto;
    gap:2rem;
    align-items:center;
    position:relative;
    overflow:hidden
}
.cta-band::after{
    content:"";
    position:absolute;
    right:-60px;
    top:-80px;
    width:280px;
    height:280px;
    border-radius:50%;
    border:1px solid rgba(22,33,58,.18);
    pointer-events:none
}
.cta-band::before{
    content:"";
    position:absolute;
    right:-20px;
    top:-40px;
    width:200px;
    height:200px;
    border-radius:50%;
    border:1px solid rgba(22,33,58,.18);
    pointer-events:none
}
.cta-band h2{
    color:var(--navy);
    margin-bottom:.4rem
}
.cta-band p{
    color:#3E3416;
    max-width:52ch;
    margin:0
}
.cta-band .btn-row{
    justify-content:flex-end;
    position:relative;
    flex-wrap:nowrap
}
.cta-band .btn--light{
    background:#fff;
    color:var(--navy)
}
.cta-band .btn--navy{
    background:var(--navy);
    color:#fff
}
/*
 * .prose never sets a max-width of its own: every page uses it as
 * class="wrap prose", so the container must keep the .wrap width (1200px),
 * exactly like the home page.
 */
.prose h2{
    margin-top:2.4rem;
    margin-bottom:.8rem;
    padding-top:.2rem
}
.prose h2:first-child{
    margin-top:0
}
.prose h3{
    margin-top:1.6rem;
    color:var(--navy)
}
.prose p,.prose li{
    max-width:76ch
}
.prose .row p,.prose .row li{
    max-width:none
}
.answer-box{
    background:var(--gold-tint);
    border:1px solid var(--gold-line);
    border-left:4px solid var(--gold);
    border-radius:var(--r-sm);
    padding:1.1rem 1.3rem;
    margin:0 0 1.6rem;
    font-size:1.06rem;
    color:var(--ink);
    max-width:none
}
.answer-box::before{
    content:"In short";
    display:block;
    font-family:var(--serif);
    font-style:italic;
    font-weight:600;
    color:var(--gold-2);
    font-size:1.05rem;
    margin-bottom:.25rem
}
.note{
    background:var(--mist);
    border-left:4px solid var(--navy);
    border-radius:var(--r-sm);
    padding:.95rem 1.15rem;
    margin:1.4rem 0;
    font-size:.97rem
}
.note strong{
    color:var(--navy)
}
.callout-verify{
    background:#FFF8EA;
    border:1px solid #F0DCAE;
    border-radius:var(--r-sm);
    padding:.9rem 1.1rem;
    font-size:.92rem;
    color:#6B5720;
    margin:1.4rem 0;
    display:flex;
    gap:.6rem
}
.callout-verify svg{
    width:18px;
    height:18px;
    flex:0 0 auto;
    margin-top:3px;
    color:var(--gold-2)
}
.pill-list{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
    list-style:none;
    padding:0;
    margin:.5rem 0 0
}
.pill-list li{
    margin:0
}
.pill-list a{
    display:inline-block;
    background:#fff;
    border:1px solid var(--line);
    border-radius:999px;
    padding:.5rem 1rem;
    font-size:.92rem;
    font-weight:600;
    color:var(--navy)
}
.pill-list a:hover{
    border-color:var(--gold);
    background:var(--gold-tint);
    text-decoration:none
}
.card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    padding:1.5rem;
    height:100%
}
.card h3{
    font-size:1.4rem
}
.icon-badge{
    width:46px;
    height:46px;
    border-radius:10px;
    background:var(--gold-tint);
    color:var(--gold-2);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:.9rem
}
.icon-badge svg{
    width:24px;
    height:24px
}
.addr{
    display:flex;
    gap:.6rem;
    align-items:flex-start;
    color:var(--body);
    font-size:.97rem
}
.addr svg{
    width:18px;
    height:18px;
    color:var(--gold-2);
    flex:0 0 auto;
    margin-top:3px
}
.blog-list a{
    display:block;
    padding:1.3rem 0;
    border-bottom:1px solid var(--line);
    color:var(--body)
}
.blog-list a:hover{
    text-decoration:none;
    background:var(--gold-tint)
}
.blog-list h3{
    font-size:1.5rem;
    margin-bottom:.3rem
}
.blog-list p{
    margin:0
}
.ftr{
    background:var(--navy-2);
    color:#A9B4C6;
    font-size:.93rem
}
.ftr .f-top{
    padding:clamp(2.6rem,5vw,3.8rem) 0 1.8rem;
    border-top:3px solid var(--gold)
}
.ftr img.f-logo{
    width:140px;
    height:auto;
    margin-bottom:1rem
}
.ftr h4{
    color:#fff;
    font-family:var(--serif);
    font-size:1.25rem;
    margin:0 0 .8rem
}
.ftr ul{
    list-style:none;
    padding:0;
    margin:0
}
.ftr li{
    margin:.4rem 0
}
.ftr a{
    color:#B8C2D2
}
.ftr a:hover{
    color:var(--gold-soft);
    text-decoration:none
}
.f-brand p{
    max-width:34ch
}
.f-contact{
    margin:0;
    padding:0;
    list-style:none
}
.f-contact li{
    display:flex;
    gap:.55rem;
    align-items:flex-start;
    margin:.45rem 0
}
.f-contact svg{
    width:17px;
    height:17px;
    color:var(--gold);
    flex:0 0 auto;
    margin-top:3px
}
.f-contact a{
    color:#fff;
    font-weight:600
}
.f-disc{
    font-size:.8rem;
    color:#7E8A9E;
    margin:1.6rem 0 0;
    max-width:80ch;
    border-top:1px solid rgba(255,255,255,.08);
    padding-top:1.2rem
}
.f-bottom{
    border-top:1px solid rgba(255,255,255,.08);
    padding:1rem 0
}
.f-bottom .wrap{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    font-size:.83rem;
    color:#7E8A9E
}
.f-bottom a{
    color:#9AA5B8
}
.mobile-cta{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1025;
    display:none;
    grid-template-columns:1fr 1fr;
    box-shadow:0 -6px 20px rgba(14,23,41,.18);
    padding-bottom:env(safe-area-inset-bottom)
}
.mobile-cta a{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    padding:.85rem;
    font-weight:700;
    font-size:1rem;
    min-height:56px
}
.mobile-cta a svg{
    width:20px;
    height:20px
}
.mobile-cta .m-call{
    background:var(--gold);
    color:var(--navy)
}
.mobile-cta .m-wa{
    background:var(--wa);
    color:#fff
}
.mobile-cta a:hover{
    text-decoration:none
}
.pk{
    display:flex;
    flex-direction:column;
    height:100%;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
    transition:transform .15s,box-shadow .15s
}
.pk:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 40px rgba(22,33,58,.12)
}
.pk-art{
    position:relative;
    aspect-ratio:16/9;
    overflow:hidden
}
.pk-art svg{
    width:100%;
    height:100%;
    display:block
}
.pk-tag{
    position:absolute;
    top:.7rem;
    left:.7rem;
    background:var(--gold);
    color:var(--navy);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.02em;
    padding:.3rem .6rem;
    border-radius:4px
}
.pk-nights{
    position:absolute;
    bottom:.7rem;
    right:.7rem;
    background:rgba(14,23,41,.82);
    color:#fff;
    font-size:.78rem;
    font-weight:700;
    padding:.3rem .6rem;
    border-radius:999px
}
.pk-body{
    padding:1.15rem 1.2rem 1.2rem;
    display:flex;
    flex-direction:column;
    flex:1
}
.pk-body h3{
    font-size:1.4rem;
    margin:0 0 .2rem
}
.pk-route{
    color:var(--muted);
    font-size:.9rem;
    margin:0 0 .8rem
}
.pk-hl{
    list-style:none;
    padding:0;
    margin:0 0 1rem
}
.pk-hl li{
    display:flex;
    gap:.5rem;
    align-items:flex-start;
    font-size:.92rem;
    color:var(--body);
    margin:.35rem 0
}
.pk-hl svg{
    width:16px;
    height:16px;
    color:var(--gold-2);
    flex:0 0 auto;
    margin-top:3px
}
.pk-foot{
    margin-top:auto;
    display:flex;
    gap:.5rem
}
.pk-foot .btn{
    flex:1
}
.dur-filter{
    display:flex;
    flex-wrap:wrap;
    gap:.7rem;
    justify-content:center
}
.dur-filter a{
    background:#fff;
    border:1.5px solid var(--gold-line);
    color:var(--navy);
    font-weight:700;
    padding:.7rem 1.5rem;
    border-radius:999px;
    font-size:.98rem
}
.dur-filter a:hover{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--navy);
    text-decoration:none
}
.places-scroll{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(220px,1fr);
    gap:1rem;
    overflow-x:auto;
    padding-bottom:.6rem;
    scroll-snap-type:x mandatory
}
.place{
    margin:0;
    scroll-snap-align:start
}
.place-art{
    aspect-ratio:3/4;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 10px 24px rgba(22,33,58,.12)
}
.place-art svg{
    width:100%;
    height:100%;
    display:block
}
.place figcaption{
    margin-top:.6rem;
    font-family:var(--serif);
    font-size:1.15rem;
    font-weight:700;
    color:var(--ink);
    text-align:center
}
@media(min-width:992px){
    .places-scroll{
        grid-auto-columns:1fr;
        overflow:visible
    }
}
.banner{
    position:relative;
    border-radius:14px;
    overflow:hidden;
    isolation:isolate;
    color:#fff
}
.banner-in{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    flex-wrap:wrap;
    padding:1.6rem 2rem
}
.banner h2{
    color:#fff;
    margin:0
}
.banner p{
    color:#C5CEDC;
    margin:.3rem 0 0
}
.feat{
    text-align:center;
    padding:1.5rem 1rem
}
.feat .fic{
    width:66px;
    height:66px;
    margin:0 auto 1rem;
    border-radius:50%;
    background:var(--gold-tint);
    border:1px solid var(--gold-line);
    color:var(--gold-2);
    display:flex;
    align-items:center;
    justify-content:center
}
.feat .fic svg{
    width:32px;
    height:32px
}
.feat h3{
    font-size:1.35rem;
    margin-bottom:.4rem
}
.feat p{
    color:var(--body);
    font-size:.97rem;
    margin:0
}
.section--navy .feat p{
    color:#C5CEDC
}
.section--navy .feat .fic{
    background:rgba(201,162,75,.14);
    border-color:transparent;
    color:var(--gold-soft)
}
@media(prefers-reduced-motion:no-preference){
    .hero .ticket,.hero .facts,.hero .bookcard{
        animation:rise .7s cubic-bezier(.2,.7,.2,1) both .15s
    }
    @keyframes rise{
        from{
            opacity:0;
            transform:translateY(18px)
        }
        to{
            opacity:1;
            transform:none
        }
    }
}
@media(prefers-reduced-motion:reduce){
    *{
        transition:none!important;
        animation:none!important;
        scroll-behavior:auto!important
    }
}
@media(min-width:992px) and (max-width:1199.98px){
    .hdr .nav-link{
        font-size:.8rem;
        padding:.5rem .3rem
    }
    .hdr-phone{
        display:none
    }
    .hdr .navbar-brand img{
        height:44px
    }
    .hdr .btn{
        padding:.5rem .8rem;
        font-size:.88rem
    }
}
@media(min-width:1300px){
    .hdr .nav-link{
        font-size:.96rem;
        padding:.55rem .7rem
    }
}
@media(max-width:991.98px){
    .hdr .navbar-nav,.hdr-phone,.hdr .btn--wa{
        display:none
    }
    .hdr-call-m{
        display:inline-flex
    }
    .hdr .navbar{
        min-height:66px
    }
    .hdr .navbar-brand img{
        height:46px
    }
    .hero__grid{
        grid-template-columns:1fr;
        gap:2rem
    }
    .hero h1{
        max-width:none
    }
    .cta-band{
        grid-template-columns:1fr
    }
    .cta-band .btn-row{
        justify-content:flex-start;
        flex-wrap:wrap
    }
    body{
        padding-bottom:58px
    }
    .mobile-cta{
        display:grid
    }
    .hero .topo{
        width:90%;
        right:-20%;
        top:-2%;
        opacity:.35
    }
}
@media(max-width:575.98px){
    table.fare{
        min-width:0
    }
    .fare-cards{
        display:block
    }
    .fare-desktop{
        display:none
    }
    .hero .btn-row .btn{
        flex:1 1 100%
    }
    .route-list .ic{
        display:none
    }
    .route-list a{
        grid-template-columns:1fr auto;
        gap:.8rem;
        padding:.9rem .2rem
    }
    .route-list .nm{
        font-size:1.15rem
    }
    .ticket__head{
        flex-direction:column;
        align-items:flex-start;
        gap:.5rem
    }
    .facts{
        grid-template-columns:1fr 1fr
    }
    .btn{
        padding:.85rem 1.15rem
    }
}