:root{
  --ec-ink:#111827;--ec-muted:#667085;--ec-line:#e5e7eb;--ec-soft:#f8fafc;
  --ec-red:#ef3340;--ec-red-dark:#d92331;--ec-gold:#f4a300;--ec-warm:#fff8f3;
  --ec-radius:14px;--ec-shadow:0 14px 34px rgba(16,24,40,.08)
}
.ecsd-page--v240{font-family:Roboto,Arial,sans-serif;color:var(--ec-ink);background:#fff;font-size:16px;line-height:1.55;padding:0 0 72px}
.ecsd-page--v240 *{box-sizing:border-box}.ecsd-page--v240 a{color:inherit}.ecsd-page--v240 svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ecsd-shell{width:min(1240px,calc(100% - 40px));margin:0 auto}.ecsd-breadcrumb{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:20px 0 18px;color:#667085;font-size:14px}.ecsd-breadcrumb a{text-decoration:none}.ecsd-breadcrumb a:hover{text-decoration:underline}
/* gallery */
.ecsd-topgallery{margin-bottom:24px}.ecsd-topgallery__main{position:relative;width:100%;height:500px;border:0;border-radius:16px;overflow:hidden;padding:0;background:#111;cursor:pointer;display:block}.ecsd-topgallery__main img{width:100%;height:100%;object-fit:cover;display:block}.ecsd-topgallery__main:after{content:"";position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(transparent,rgba(0,0,0,.32));pointer-events:none}.ecsd-topgallery__view{position:absolute;right:18px;bottom:18px;z-index:2;display:flex;align-items:center;gap:8px;background:rgba(17,24,39,.88);color:#fff;border-radius:999px;padding:11px 16px;font-weight:700;font-size:14px}.ecsd-topgallery__view svg{width:17px;height:17px}.ecsd-topgallery__rail{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.ecsd-topgallery__rail button{border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;height:88px;background:#eee;cursor:pointer}.ecsd-topgallery__rail button:hover,.ecsd-topgallery__rail button.is-active{border-color:#1f2937}.ecsd-topgallery__rail img{width:100%;height:100%;object-fit:cover;display:block}
/* source-shaped header */
.ecsd-cruisehead{display:grid;grid-template-columns:minmax(0,1fr) 300px;border:1px solid var(--ec-line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(16,24,40,.05);margin-bottom:22px}.ecsd-cruisehead__main{padding:26px 28px 18px}.ecsd-titleline{display:flex;justify-content:space-between;gap:22px;align-items:flex-start}.ecsd-titleline h1{font-size:38px;line-height:1.12;letter-spacing:-.035em;margin:0 0 6px;font-weight:800;color:#101828}.ecsd-stars{font-size:18px;line-height:1;color:var(--ec-gold);letter-spacing:2px}.ecsd-route-line{display:flex;gap:8px;align-items:center;margin-top:14px;color:#475467;font-size:15px}.ecsd-route-line svg{width:19px;height:19px;color:#475467}.ecsd-rating-inline{display:flex;align-items:center;gap:9px;text-decoration:none;white-space:nowrap}.ecsd-rating-inline>strong{background:#1f2937;color:#fff;border-radius:8px;padding:10px 9px;font-size:18px}.ecsd-rating-inline span{display:flex;flex-direction:column;line-height:1.25}.ecsd-rating-inline b{font-size:14px}.ecsd-rating-inline small{font-size:12px;color:#667085}
.ecsd-detail-tabs{display:flex;align-items:center;gap:30px;border-top:1px solid var(--ec-line);border-bottom:1px solid var(--ec-line);margin:24px -28px 0;padding:0 28px;overflow:auto}.ecsd-detail-tabs a{position:relative;display:block;padding:15px 0 14px;text-decoration:none;color:#475467;font-weight:600;font-size:15px;white-space:nowrap}.ecsd-detail-tabs a:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent;border-radius:3px 3px 0 0}.ecsd-detail-tabs a:hover,.ecsd-detail-tabs a.is-active{color:#101828}.ecsd-detail-tabs a.is-active:after,.ecsd-detail-tabs a:hover:after{background:var(--ec-red)}
.ecsd-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px}.ecsd-overview-item{display:flex;gap:12px;padding:15px 16px 15px 0;min-height:76px;border-bottom:1px solid #edf0f2}.ecsd-overview-item:nth-child(3n+2),.ecsd-overview-item:nth-child(3n+3){padding-left:18px;border-left:1px solid #edf0f2}.ecsd-overview-item>span{color:#53616f;margin-top:2px}.ecsd-overview-item b{display:block;font-size:13px;color:#667085;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}.ecsd-overview-item p{margin:0;color:#1f2937;font-size:15px;line-height:1.45}.ecsd-overview-item a{color:#0b63ce;text-decoration:none}.ecsd-overview-item a:hover{text-decoration:underline}
.ecsd-bookpanel{background:var(--ec-warm);border-left:1px solid var(--ec-line);padding:25px 22px;display:flex;flex-direction:column}.ecsd-bookpanel__price-head{display:flex;justify-content:space-between;align-items:center}.ecsd-bookpanel__price-head>span{font-size:12px;font-weight:800;letter-spacing:.08em;color:#667085}.ecsd-bookpanel__price-head>b{font-size:12px;color:#d9480f;background:#fff0e6;padding:6px 9px;border-radius:999px}.ecsd-bookpanel__was{margin-top:6px;color:#667085;font-size:14px}.ecsd-bookpanel__price{display:flex;align-items:baseline;gap:4px;margin:0 0 16px}.ecsd-bookpanel__price small{font-weight:800;color:#b42318;font-size:13px}.ecsd-bookpanel__price strong{font-size:44px;line-height:1;color:#b42318;letter-spacing:-.04em}.ecsd-bookpanel__price span{font-size:13px;color:#667085}.ecsd-bookpanel__rating{display:flex;align-items:center;gap:9px;border-top:1px solid #ecdcd3;border-bottom:1px solid #ecdcd3;padding:14px 0;margin-bottom:14px}.ecsd-bookpanel__rating>strong{background:#1f2937;color:#fff;border-radius:8px;padding:9px;font-size:18px}.ecsd-bookpanel__rating span{display:flex;flex-direction:column;line-height:1.2}.ecsd-bookpanel__rating b{font-size:14px}.ecsd-bookpanel__rating small{font-size:12px;color:#667085}.ecsd-bookpanel__promo{background:#fff;border:1px solid #f2ded2;border-radius:10px;padding:12px 13px;margin:0 0 16px;display:flex;flex-direction:column}.ecsd-bookpanel__promo b{font-size:13px;color:#b42318}.ecsd-bookpanel__promo span{font-size:13px;color:#667085}.ecsd-btn{border:0;border-radius:9px;padding:13px 16px;font-weight:800;font-size:15px;line-height:1.2;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px}.ecsd-btn--primary{background:var(--ec-red);color:#fff!important}.ecsd-btn--primary:hover{background:var(--ec-red-dark)}.ecsd-btn--outline{background:#fff;border:1px solid #d0d5dd;color:#1f2937!important;margin-top:9px}.ecsd-btn--outline:hover{border-color:#98a2b3;background:#f9fafb}.ecsd-bookpanel__trust{display:flex;gap:9px;align-items:flex-start;margin-top:16px;color:#475467}.ecsd-bookpanel__trust svg{width:18px;height:18px;color:#344054}.ecsd-bookpanel__trust span{display:flex;flex-direction:column}.ecsd-bookpanel__trust b{font-size:13px}.ecsd-bookpanel__trust small{font-size:12px;color:#667085}
/* why */
.ecsd-why{width:min(980px,100%);margin:0 auto 42px;border:1px solid #e4e7ec;border-radius:14px;padding:22px 26px;background:#fff}.ecsd-why h2{font-size:22px;margin:0 0 14px;letter-spacing:-.015em}.ecsd-why ul{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0;padding:0;list-style:none}.ecsd-why li{display:flex;gap:9px;align-items:flex-start;font-size:15px;color:#344054}.ecsd-why li svg{width:19px;height:19px;color:var(--ec-red);flex:0 0 auto;margin-top:2px}
/* sections */
.ecsd-section{padding:38px 0;border-top:1px solid #eef0f2}.ecsd-section-title{margin-bottom:20px}.ecsd-section-title h2{font-size:30px;line-height:1.2;letter-spacing:-.025em;margin:0 0 7px;font-weight:800;color:#101828}.ecsd-section-title p{margin:0;color:#667085;font-size:15px}.ecsd-section-title--row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
/* rates */
.ecsd-ratefinder{display:grid;grid-template-columns:1fr 1.15fr 1fr 160px;border:1px solid var(--ec-line);border-radius:12px;overflow:hidden;background:#fff;margin-bottom:18px;box-shadow:0 5px 18px rgba(16,24,40,.04)}.ecsd-ratefinder label{display:flex;gap:10px;align-items:center;padding:11px 14px;border-right:1px solid var(--ec-line)}.ecsd-ratefinder label>span{color:#667085}.ecsd-ratefinder label div{display:flex;flex-direction:column;min-width:0;flex:1}.ecsd-ratefinder small{font-size:11px;font-weight:800;color:#667085;text-transform:uppercase;letter-spacing:.04em}.ecsd-ratefinder select,.ecsd-ratefinder input{border:0;background:transparent;padding:3px 0 0;min-width:0;width:100%;font:inherit;font-weight:600;color:#1f2937;outline:none}.ecsd-ratefinder button{border:0;background:#fff1e8;color:#d9480f;font-weight:800;font-size:15px;cursor:pointer}.ecsd-ratefinder button:hover{background:#ffe7d8}
.ecsd-cabinlist{display:flex;flex-direction:column;gap:14px}.ecsd-cabin{display:grid;grid-template-columns:320px minmax(0,1fr) 210px;border:1px solid var(--ec-line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 7px 22px rgba(16,24,40,.045)}.ecsd-cabin__media{height:215px;border:0;padding:0;position:relative;overflow:hidden;background:#eee;cursor:pointer}.ecsd-cabin__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.ecsd-cabin__media:hover img{transform:scale(1.025)}.ecsd-cabin__badge{position:absolute;top:12px;left:12px;background:#fff;color:#111827;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;box-shadow:0 3px 10px rgba(0,0,0,.1)}.ecsd-cabin__photos{position:absolute;bottom:12px;right:12px;background:rgba(17,24,39,.88);color:#fff;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:700;display:flex;gap:6px;align-items:center}.ecsd-cabin__photos svg{width:15px;height:15px}.ecsd-cabin__content{padding:18px 20px}.ecsd-cabin__content h3{font-size:21px;line-height:1.25;margin:0 0 9px;font-weight:800;color:#101828}.ecsd-cabin__content>p{color:#667085;margin:11px 0 10px;font-size:14px}.ecsd-cabin__specs{display:flex;flex-wrap:wrap;gap:8px 16px;color:#475467;font-size:13px}.ecsd-cabin__specs span{display:flex;align-items:center;gap:5px}.ecsd-cabin__specs svg{width:15px;height:15px}.ecsd-cabin__content ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;list-style:none;margin:0 0 8px;padding:0}.ecsd-cabin__content li{display:flex;gap:6px;font-size:13px;color:#344054}.ecsd-cabin__content li svg{width:15px;height:15px;color:#1f7a4c;margin-top:2px}.ecsd-cabin__detailbtn{border:0;background:transparent;padding:5px 0;color:#0b63ce;font-weight:700;font-size:13px;display:flex;gap:5px;align-items:center;cursor:pointer}.ecsd-cabin__detailbtn svg{width:14px;height:14px}.ecsd-cabin__detail{margin-top:7px;padding-top:10px;border-top:1px solid var(--ec-line);font-size:13px;color:#667085}.ecsd-cabin__action{border-left:1px solid var(--ec-line);background:#fffaf7;padding:20px 16px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.ecsd-cabin__action>small{font-size:11px;font-weight:800;color:#667085;letter-spacing:.05em}.ecsd-cabin__action>div{display:flex;align-items:baseline;gap:4px;margin:3px 0 14px}.ecsd-cabin__action>div span{font-size:12px;font-weight:800;color:#b42318}.ecsd-cabin__action>div strong{font-size:34px;color:#b42318;line-height:1}.ecsd-cabin__action>div em{font-size:12px;color:#667085;font-style:normal}.ecsd-cabin__action .ecsd-btn{width:100%;font-size:14px}
/* policy */
.ecsd-policy-list{border:1px solid var(--ec-line);border-radius:12px;overflow:hidden}.ecsd-policy-list details+details{border-top:1px solid var(--ec-line)}.ecsd-policy-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#f7f7f8;cursor:pointer;font-size:16px}.ecsd-policy-list summary::-webkit-details-marker{display:none}.ecsd-policy-list details[open] summary{background:#f3f4f6}.ecsd-policy-list summary span{font-size:20px;color:#667085}.ecsd-policy-list details[open] summary span{font-size:0}.ecsd-policy-list details[open] summary span:before{content:"−";font-size:20px}.ecsd-policy-list details>div{padding:16px 20px;background:#fff}.ecsd-policy-list ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.ecsd-policy-list li{display:flex;gap:9px;color:#344054;font-size:14px}.ecsd-policy-list li svg{width:16px;height:16px;color:#1f7a4c;margin-top:3px;flex:0 0 auto}.ecsd-minus{color:#667085;font-weight:700}.ecsd-policy-list p{margin:0;color:#475467}
/* itinerary */
.ecsd-itinerary-map{position:relative;display:block;width:min(850px,100%);height:390px;padding:0;border:0;border-radius:14px;overflow:hidden;background:#eef2f4;cursor:pointer;margin-bottom:16px}.ecsd-itinerary-map img{width:100%;height:100%;object-fit:cover;display:block}.ecsd-itinerary-map span{position:absolute;right:14px;bottom:14px;background:rgba(17,24,39,.88);color:#fff;border-radius:999px;padding:9px 13px;font-size:13px;font-weight:700}.ecsd-itinerary-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.ecsd-itinerary-tabs button{border:1px solid #d0d5dd;background:#fff;border-radius:999px;padding:10px 17px;font-weight:700;color:#475467;font-size:14px;cursor:pointer}.ecsd-itinerary-tabs button.is-active{background:#1f2937;color:#fff;border-color:#1f2937}.ecsd-itin-intro{width:min(850px,100%);padding:14px 16px;background:#f8fafc;border-left:3px solid #667085;margin:0 0 12px}.ecsd-itin-intro b{font-size:13px;text-transform:uppercase;letter-spacing:.04em}.ecsd-itin-intro p{margin:4px 0 0;color:#475467;font-size:14px}.ecsd-days{width:min(850px,100%);border-top:1px solid var(--ec-line)}.ecsd-day{border-bottom:1px solid var(--ec-line)}.ecsd-day summary{list-style:none;display:grid;grid-template-columns:70px 1fr 22px;align-items:center;gap:10px;padding:14px 0;cursor:pointer}.ecsd-day summary::-webkit-details-marker{display:none}.ecsd-day summary>span{font-weight:800;color:#b42318;font-size:13px}.ecsd-day summary h3{font-size:16px;margin:0;font-weight:700}.ecsd-day summary svg{width:17px;height:17px;transition:transform .2s}.ecsd-day[open] summary svg{transform:rotate(180deg)}.ecsd-day>div{padding:0 0 16px 80px}.ecsd-day ul{margin:0;padding-left:18px;color:#475467;font-size:14px}.ecsd-day li+li{margin-top:6px}.ecsd-important{width:min(850px,100%);margin-top:20px}.ecsd-important h3{font-size:16px;margin:0 0 7px}.ecsd-important ul{margin:0;padding-left:20px;color:#475467;font-size:14px}
/* about/services */
.ecsd-about__copy{width:min(900px,100%);color:#344054}.ecsd-about__copy p{margin:0 0 12px}.ecsd-internal-links{font-size:14px;color:#667085}.ecsd-internal-links a{color:#0b63ce;text-decoration:none}.ecsd-internal-links a:hover{text-decoration:underline}.ecsd-service-list{width:min(900px,100%);margin-top:22px;border:1px solid var(--ec-line);border-radius:12px;overflow:hidden}.ecsd-service-list details+details{border-top:1px solid var(--ec-line)}.ecsd-service-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:15px 17px;cursor:pointer;background:#fff}.ecsd-service-list summary::-webkit-details-marker{display:none}.ecsd-service-list summary svg{width:17px;height:17px}.ecsd-service-list details[open] summary svg{transform:rotate(180deg)}.ecsd-service-list details>div{padding:0 18px 16px}.ecsd-service-list ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.ecsd-service-list li{display:flex;gap:7px;color:#475467;font-size:14px}.ecsd-service-list li svg{width:15px;height:15px;color:#1f7a4c;margin-top:3px}
/* reviews/faq */
.ecsd-reviewscore{display:flex;gap:9px;align-items:center}.ecsd-reviewscore>strong{background:#1f2937;color:#fff;border-radius:9px;padding:11px;font-size:20px}.ecsd-reviewscore span{display:flex;flex-direction:column;line-height:1.2}.ecsd-reviewscore b{font-size:14px}.ecsd-reviewscore small{font-size:12px;color:#667085}.ecsd-review-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;width:min(900px,100%)}.ecsd-review-summary>div{border:1px solid var(--ec-line);border-radius:12px;padding:18px}.ecsd-review-summary h3{font-size:17px;margin:0 0 7px}.ecsd-review-summary p{margin:0;color:#475467;font-size:14px}.ecsd-faq-list{width:min(900px,100%);border-top:1px solid var(--ec-line)}.ecsd-faq-list details{border-bottom:1px solid var(--ec-line)}.ecsd-faq-list summary{list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:15px 0;cursor:pointer}.ecsd-faq-list summary::-webkit-details-marker{display:none}.ecsd-faq-list summary strong{font-size:15px}.ecsd-faq-list summary svg{width:17px;height:17px}.ecsd-faq-list details[open] summary svg{transform:rotate(180deg)}.ecsd-faq-list details>div{padding:0 32px 16px 0;color:#475467;font-size:14px}.ecsd-faq-list p{margin:0}.ecsd-askbox{width:min(900px,100%);margin-top:18px;border:1px solid var(--ec-line);border-radius:12px;padding:17px 18px;display:flex;justify-content:space-between;gap:20px;align-items:center}.ecsd-askbox h3{margin:0 0 4px;font-size:17px}.ecsd-askbox p{margin:0;color:#667085;font-size:14px}.ecsd-askbox .ecsd-btn{margin:0;white-space:nowrap}
/* related */
.ecsd-all-link{font-weight:700;color:#0b63ce!important;text-decoration:none;display:flex;align-items:center;gap:7px;white-space:nowrap}.ecsd-all-link svg{width:17px;height:17px}.ecsd-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.ecsd-related-card{border:1px solid var(--ec-line);border-radius:13px;overflow:hidden;background:#fff}.ecsd-related-card__image{display:block;height:190px;position:relative}.ecsd-related-card__image img{width:100%;height:100%;object-fit:cover;display:block}.ecsd-related-card__image span{position:absolute;right:10px;top:10px;background:#1f2937;color:#fff;border-radius:8px;padding:6px 8px;font-size:12px;font-weight:800}.ecsd-related-card>div{padding:15px}.ecsd-related-card h3{margin:0 0 5px;font-size:18px}.ecsd-related-card h3 a{text-decoration:none}.ecsd-related-card p{margin:0 0 14px;color:#667085;font-size:13px}.ecsd-related-card footer{display:flex;align-items:end;justify-content:space-between;gap:12px}.ecsd-related-card footer strong{font-size:20px;color:#b42318}.ecsd-related-card footer small{font-size:11px;color:#667085;margin-left:3px}.ecsd-related-card footer a{font-size:13px;font-weight:700;text-decoration:none;display:flex;gap:5px;align-items:center}.ecsd-related-card footer svg{width:15px;height:15px}
/* modals */
.ecsd-no-scroll{overflow:hidden}.ecsd-modal[hidden]{display:none!important}.ecsd-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:24px}.ecsd-modal__backdrop{position:absolute;inset:0;background:rgba(10,15,20,.78);backdrop-filter:blur(2px)}.ecsd-gallery-modal,.ecsd-map-modal,.ecsd-booking-modal{position:relative;z-index:2;background:#fff;border-radius:14px;box-shadow:0 25px 80px rgba(0,0,0,.35)}.ecsd-modal__close{position:absolute;right:12px;top:12px;z-index:5;width:40px;height:40px;border-radius:50%;border:0;background:rgba(17,24,39,.88);color:#fff;display:grid;place-items:center;cursor:pointer}.ecsd-modal__close svg{width:20px;height:20px}.ecsd-gallery-modal{width:min(1120px,95vw);overflow:hidden;background:#111}.ecsd-gallery-modal__stage{height:min(72vh,720px);display:grid;place-items:center}.ecsd-gallery-modal__stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.ecsd-gallery-modal__caption{color:#fff;padding:9px 16px;font-size:13px}.ecsd-gallery-modal__rail{display:flex;gap:8px;overflow:auto;padding:0 12px 12px}.ecsd-gallery-modal__rail button{width:120px;height:74px;flex:0 0 auto;padding:0;border:2px solid transparent;border-radius:7px;overflow:hidden;background:#222}.ecsd-gallery-modal__rail button.is-active{border-color:#fff}.ecsd-gallery-modal__rail img{width:100%;height:100%;object-fit:cover}.ecsd-map-modal{width:min(1000px,94vw);padding:14px}.ecsd-map-modal img{display:block;width:100%;max-height:82vh;object-fit:contain;border-radius:8px}.ecsd-booking-modal{width:min(700px,94vw);padding:28px;max-height:90vh;overflow:auto}.ecsd-booking-modal__head>span{font-size:12px;font-weight:800;color:#b42318;letter-spacing:.06em}.ecsd-booking-modal__head h2{font-size:28px;margin:5px 0 5px}.ecsd-booking-modal__head p{margin:0 0 20px;color:#667085}.ecsd-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ecsd-formgrid label{display:flex;flex-direction:column;gap:6px}.ecsd-formgrid label>span{font-size:13px;font-weight:700}.ecsd-formgrid input,.ecsd-formgrid select,.ecsd-formgrid textarea{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:11px 12px;font:inherit;background:#fff}.ecsd-formgrid__wide{grid-column:1/-1}.ecsd-booking-submit{width:100%;margin-top:16px}.ecsd-formnote{display:block;text-align:center;margin-top:8px;color:#667085}
.ecsd-mobilebar{display:none}
@media(max-width:980px){.ecsd-cruisehead{grid-template-columns:1fr}.ecsd-bookpanel{border-left:0;border-top:1px solid var(--ec-line)}.ecsd-overview-grid{grid-template-columns:repeat(2,1fr)}.ecsd-overview-item:nth-child(n){padding-left:0;border-left:0}.ecsd-overview-item:nth-child(even){padding-left:18px;border-left:1px solid #edf0f2}.ecsd-why ul{grid-template-columns:1fr}.ecsd-cabin{grid-template-columns:270px 1fr}.ecsd-cabin__action{grid-column:1/-1;border-left:0;border-top:1px solid var(--ec-line);display:grid;grid-template-columns:1fr 190px;align-items:center}.ecsd-cabin__action>small,.ecsd-cabin__action>div{grid-column:1}.ecsd-cabin__action .ecsd-btn{grid-column:2;grid-row:1/3}.ecsd-related-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.ecsd-shell{width:min(100% - 24px,1240px)}.ecsd-breadcrumb{font-size:12px;padding-top:14px}.ecsd-topgallery__main{height:300px;border-radius:12px}.ecsd-topgallery__rail{grid-template-columns:repeat(4,1fr);gap:6px}.ecsd-topgallery__rail button{height:58px}.ecsd-topgallery__view{right:10px;bottom:10px;padding:8px 11px;font-size:12px}.ecsd-cruisehead__main{padding:20px 18px 14px}.ecsd-titleline{display:block}.ecsd-titleline h1{font-size:30px}.ecsd-rating-inline{margin-top:14px}.ecsd-detail-tabs{margin:20px -18px 0;padding:0 18px;gap:24px}.ecsd-overview-grid{grid-template-columns:1fr}.ecsd-overview-item:nth-child(n){padding:13px 0;border-left:0}.ecsd-bookpanel{padding:20px 18px}.ecsd-why{padding:18px;margin-bottom:28px}.ecsd-section{padding:30px 0}.ecsd-section-title h2{font-size:26px}.ecsd-section-title--row{display:block}.ecsd-ratefinder{grid-template-columns:1fr 1fr}.ecsd-ratefinder label{border-bottom:1px solid var(--ec-line)}.ecsd-ratefinder label:nth-child(2){border-right:0}.ecsd-ratefinder button{grid-column:1/-1;padding:13px}.ecsd-cabin{display:block}.ecsd-cabin__media{height:240px}.ecsd-cabin__action{display:block;border-top:1px solid var(--ec-line)}.ecsd-cabin__content ul{grid-template-columns:1fr}.ecsd-itinerary-map{height:260px}.ecsd-day summary{grid-template-columns:58px 1fr 20px}.ecsd-day>div{padding-left:68px}.ecsd-service-list ul{grid-template-columns:1fr}.ecsd-review-summary{grid-template-columns:1fr}.ecsd-askbox{display:block}.ecsd-askbox .ecsd-btn{margin-top:14px}.ecsd-related-grid{grid-template-columns:1fr}.ecsd-formgrid{grid-template-columns:1fr}.ecsd-formgrid__wide{grid-column:auto}.ecsd-mobilebar{position:fixed;z-index:99998;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--ec-line);box-shadow:0 -8px 25px rgba(16,24,40,.12);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.ecsd-mobilebar div{display:flex;align-items:baseline;gap:4px}.ecsd-mobilebar small,.ecsd-mobilebar span{font-size:11px;color:#667085}.ecsd-mobilebar strong{font-size:24px;color:#b42318}.ecsd-mobilebar button{border:0;background:var(--ec-red);color:#fff;border-radius:8px;padding:12px 16px;font-weight:800}.ecsd-page--v240{padding-bottom:100px}}

/* ==========================================================
   v2.4.0 — WHITE SPACIOUS PREMIUM DETAIL
   Goal: larger photography, easier reading, fewer competing
   surfaces/colors, more desktop width, calmer conversion flow.
   ========================================================== */
:root{
  --ec-ink:#111318;
  --ec-muted:#5f6875;
  --ec-line:#e4e7ec;
  --ec-soft:#fafafa;
  --ec-red:#ef3340;
  --ec-red-dark:#d92331;
  --ec-gold:#f4a300;
  --ec-warm:#ffffff;
  --ec-radius:16px;
  --ec-shadow:0 10px 30px rgba(16,24,40,.055)
}
html{scroll-behavior:smooth}
.ecsd-page--v240{
  background:#fff!important;
  color:var(--ec-ink);
  font-size:17px;
  line-height:1.6;
  letter-spacing:-.005em;
  padding-bottom:88px
}
.ecsd-page--v240,.ecsd-page--v240 section,.ecsd-page--v240 article,.ecsd-page--v240 aside{background-color:#fff}
.ecsd-shell{width:min(1440px,calc(100% - 56px));margin:0 auto}
.ecsd-breadcrumb{padding:24px 0 20px;font-size:14px;color:#727b87}

/* Gallery: make the product the hero, not the UI */
.ecsd-topgallery{margin-bottom:30px}
.ecsd-topgallery__main{height:610px;border-radius:18px;background:#f2f4f7;box-shadow:0 14px 35px rgba(16,24,40,.06)}
.ecsd-topgallery__main:after{height:22%;background:linear-gradient(transparent,rgba(0,0,0,.22))}
.ecsd-topgallery__view{right:22px;bottom:22px;padding:12px 18px;font-size:15px;background:rgba(17,19,24,.9)}
.ecsd-topgallery__rail{gap:12px;margin-top:12px}
.ecsd-topgallery__rail button{height:118px;border-radius:12px;border-width:2px;background:#f2f4f7}
.ecsd-topgallery__rail button:hover,.ecsd-topgallery__rail button.is-active{border-color:#111318}

/* Header/overview: remove card-on-card feeling */
.ecsd-cruisehead{grid-template-columns:minmax(0,1fr) 330px;border-radius:18px;box-shadow:0 10px 28px rgba(16,24,40,.045);margin-bottom:30px}
.ecsd-cruisehead__main{padding:34px 36px 24px}
.ecsd-titleline{gap:28px}
.ecsd-titleline h1{font-size:44px;line-height:1.08;letter-spacing:-.04em;margin-bottom:9px}
.ecsd-stars{font-size:20px;letter-spacing:2.5px}
.ecsd-route-line{margin-top:17px;font-size:16px;color:#4b5563}
.ecsd-rating-inline>strong{font-size:20px;padding:11px 10px;border-radius:9px}
.ecsd-rating-inline b{font-size:15px}.ecsd-rating-inline small{font-size:13px}
.ecsd-detail-tabs{gap:38px;margin:28px -36px 0;padding:0 36px}
.ecsd-detail-tabs a{padding:17px 0 16px;font-size:16px}
.ecsd-overview-grid{margin-top:24px}
.ecsd-overview-item{gap:13px;padding:18px 18px 18px 0;min-height:92px}
.ecsd-overview-item:nth-child(3n+2),.ecsd-overview-item:nth-child(3n+3){padding-left:24px}
.ecsd-overview-item b{font-size:12px;letter-spacing:.065em;margin-bottom:4px}
.ecsd-overview-item p{font-size:16px;line-height:1.5}
.ecsd-overview-item>span{margin-top:3px}.ecsd-overview-item>span svg{width:21px;height:21px}

/* Booking column: one visual hierarchy, no duplicated rating/promo cards */
.ecsd-bookpanel{background:#fff!important;border-left:1px solid var(--ec-line);padding:34px 26px;justify-content:center}
.ecsd-bookpanel__price-head>span{font-size:12px;color:#667085}
.ecsd-bookpanel__price-head>b{font-size:12px;background:#fff4ed;color:#d9480f;padding:7px 10px}
.ecsd-bookpanel__was{margin-top:10px;font-size:15px}
.ecsd-bookpanel__price{margin:3px 0 24px}
.ecsd-bookpanel__price small{font-size:14px}.ecsd-bookpanel__price strong{font-size:50px}.ecsd-bookpanel__price span{font-size:14px}
.ecsd-bookpanel__rating{display:none}
.ecsd-bookpanel__promo{border:0;border-radius:0;padding:0;margin:-10px 0 22px;background:#fff;display:block}
.ecsd-bookpanel__promo b{display:none}.ecsd-bookpanel__promo span{font-size:13px;color:#667085}
.ecsd-btn{min-height:54px;border-radius:10px;padding:15px 18px;font-size:16px}
.ecsd-btn--outline{margin-top:11px}
.ecsd-bookpanel__trust{margin-top:20px;padding-top:18px;border-top:1px solid #eceef1}
.ecsd-bookpanel__trust b{font-size:14px}.ecsd-bookpanel__trust small{font-size:13px}

/* Why choose: full width, quiet, editorial */
.ecsd-why{width:100%;margin:0 auto 48px;border-radius:16px;padding:25px 30px;box-shadow:none}
.ecsd-why h2{font-size:24px;margin-bottom:16px}
.ecsd-why ul{gap:28px}
.ecsd-why li{font-size:15.5px;line-height:1.5}
.ecsd-why li svg{color:#111318}

/* Global section rhythm */
.ecsd-section{padding:50px 0;border-top:1px solid #edf0f2}
.ecsd-section-title{margin-bottom:24px}
.ecsd-section-title h2{font-size:34px;line-height:1.15;letter-spacing:-.03em;margin-bottom:8px}
.ecsd-section-title p{font-size:16px;max-width:760px}

/* Rate finder: larger controls, white surface, strong single CTA */
.ecsd-ratefinder{grid-template-columns:1fr 1.15fr 1fr 190px;border-radius:14px;margin-bottom:24px;box-shadow:none}
.ecsd-ratefinder label{min-height:82px;padding:15px 18px;gap:13px;background:#fff}
.ecsd-ratefinder label>span svg{width:22px;height:22px}
.ecsd-ratefinder small{font-size:12px;letter-spacing:.055em}
.ecsd-ratefinder select,.ecsd-ratefinder input{font-size:17px;padding-top:5px}
.ecsd-ratefinder button{background:var(--ec-red);color:#fff;font-size:16px}
.ecsd-ratefinder button:hover{background:var(--ec-red-dark)}

/* Cabin showroom: bigger visual, less card chrome */
.ecsd-cabinlist{gap:22px}
.ecsd-cabin{grid-template-columns:430px minmax(0,1fr) 240px;border-radius:16px;box-shadow:0 8px 26px rgba(16,24,40,.045)}
.ecsd-cabin__media{height:300px;background:#f2f4f7}
.ecsd-cabin__badge{top:16px;left:16px;padding:8px 12px;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.09)}
.ecsd-cabin__photos{right:16px;bottom:16px;padding:10px 13px;font-size:13px}
.ecsd-cabin__content{padding:28px 30px}
.ecsd-cabin__content h3{font-size:27px;line-height:1.2;margin-bottom:11px;letter-spacing:-.02em}
.ecsd-cabin__specs{gap:9px 20px;font-size:15px}
.ecsd-cabin__specs svg{width:17px;height:17px}
.ecsd-cabin__content>p{font-size:16px;line-height:1.55;color:#5f6875;margin:15px 0 14px;max-width:720px}
.ecsd-cabin__content ul{gap:8px 22px;margin-bottom:10px}
.ecsd-cabin__content li{font-size:15px;line-height:1.45}
.ecsd-cabin__content li svg{width:16px;height:16px;color:#16794c}
.ecsd-cabin__detailbtn{font-size:14px;padding-top:7px;color:#175cd3}
.ecsd-cabin__detail{font-size:14px;line-height:1.55}
.ecsd-cabin__action{background:#fff!important;border-left:1px solid var(--ec-line);padding:28px 22px;justify-content:center}
.ecsd-cabin__action>small{font-size:12px;letter-spacing:.06em}
.ecsd-cabin__action>div{margin:7px 0 20px}
.ecsd-cabin__action>div span{font-size:13px}.ecsd-cabin__action>div strong{font-size:42px}.ecsd-cabin__action>div em{font-size:13px}
.ecsd-cabin__action .ecsd-btn{font-size:15px;min-height:52px}

/* Policy: bright, calm, readable */
.ecsd-policy-list{width:min(1180px,100%);border-radius:14px;background:#fff}
.ecsd-policy-list summary{padding:19px 22px;background:#fff!important;font-size:18px}
.ecsd-policy-list details>div{padding:18px 24px 22px}
.ecsd-policy-list ul{gap:10px}
.ecsd-policy-list li,.ecsd-policy-list p{font-size:15.5px;line-height:1.55}
.ecsd-policy-list li svg{color:#111318}

/* Itinerary / About: use more of the page width */
.ecsd-itinerary-map{width:min(1120px,100%);height:510px;border-radius:16px;margin-bottom:20px}
.ecsd-itinerary-tabs{gap:12px;margin:18px 0}
.ecsd-itinerary-tabs button{padding:11px 20px;font-size:15px}
.ecsd-itin-intro,.ecsd-days,.ecsd-important{width:min(1120px,100%)}
.ecsd-itin-intro{padding:17px 19px;background:#fff;border:1px solid var(--ec-line);border-left:4px solid #111318}
.ecsd-itin-intro p{font-size:15.5px}
.ecsd-day summary{grid-template-columns:84px 1fr 24px;padding:18px 0}
.ecsd-day summary>span{font-size:14px}.ecsd-day summary h3{font-size:18px}
.ecsd-day>div{padding:0 0 20px 94px}.ecsd-day ul{font-size:15.5px;line-height:1.55}
.ecsd-important h3{font-size:18px}.ecsd-important ul{font-size:15px}
.ecsd-about__copy{width:min(1120px,100%);font-size:16px;line-height:1.68}
.ecsd-internal-links{font-size:15px}
.ecsd-service-list{width:min(1120px,100%);margin-top:28px;border-radius:14px}
.ecsd-service-list summary{padding:18px 20px;font-size:17px}
.ecsd-service-list details>div{padding:0 22px 20px}
.ecsd-service-list li{font-size:15px}

/* Reviews, FAQ, related: same readable scale */
.ecsd-review-summary,.ecsd-faq-list,.ecsd-askbox{width:min(1120px,100%)}
.ecsd-review-summary{gap:22px}.ecsd-review-summary>div{padding:22px;border-radius:14px}
.ecsd-review-summary h3{font-size:19px}.ecsd-review-summary p{font-size:15.5px;line-height:1.55}
.ecsd-reviewscore>strong{font-size:22px}.ecsd-reviewscore b{font-size:15px}.ecsd-reviewscore small{font-size:13px}
.ecsd-faq-list summary{padding:18px 0}.ecsd-faq-list summary strong{font-size:16.5px;line-height:1.45}
.ecsd-faq-list details>div{font-size:15.5px;line-height:1.6;padding-bottom:20px}
.ecsd-askbox{padding:21px 22px}.ecsd-askbox h3{font-size:19px}.ecsd-askbox p{font-size:15px}
.ecsd-related-grid{gap:22px}.ecsd-related-card{border-radius:15px}.ecsd-related-card__image{height:235px}.ecsd-related-card>div{padding:19px}.ecsd-related-card h3{font-size:20px}.ecsd-related-card p{font-size:14px}.ecsd-related-card footer strong{font-size:24px}

/* Desktop density safeguard */
@media(max-width:1250px){
  .ecsd-shell{width:min(1180px,calc(100% - 40px))}
  .ecsd-topgallery__main{height:540px}
  .ecsd-cabin{grid-template-columns:360px minmax(0,1fr) 220px}
  .ecsd-cabin__media{height:270px}
  .ecsd-cabin__content{padding:23px 24px}
  .ecsd-cabin__content h3{font-size:24px}
}
@media(max-width:980px){
  .ecsd-shell{width:min(100% - 32px,920px)}
  .ecsd-cruisehead{grid-template-columns:1fr}
  .ecsd-bookpanel{border-left:0;border-top:1px solid var(--ec-line)}
  .ecsd-cabin{grid-template-columns:330px 1fr}
  .ecsd-cabin__media{height:280px}
  .ecsd-cabin__action{grid-column:1/-1;background:#fff!important;padding:20px 24px}
}
@media(max-width:720px){
  .ecsd-shell{width:min(100% - 24px,100%)}
  .ecsd-page--v240{font-size:16px}
  .ecsd-topgallery__main{height:330px}
  .ecsd-topgallery__rail button{height:64px}
  .ecsd-cruisehead__main{padding:22px 18px 16px}
  .ecsd-titleline h1{font-size:32px}
  .ecsd-detail-tabs{margin:22px -18px 0;padding:0 18px;gap:25px}
  .ecsd-detail-tabs a{font-size:15px}
  .ecsd-overview-item p{font-size:15px}
  .ecsd-section{padding:34px 0}.ecsd-section-title h2{font-size:28px}
  .ecsd-ratefinder{grid-template-columns:1fr 1fr}.ecsd-ratefinder label{min-height:72px}
  .ecsd-cabin{display:block}.ecsd-cabin__media{height:270px}.ecsd-cabin__content{padding:22px 20px}.ecsd-cabin__content h3{font-size:24px}
  .ecsd-cabin__action{display:block;padding:20px}.ecsd-cabin__action .ecsd-btn{width:100%}
  .ecsd-itinerary-map{height:300px}.ecsd-day summary{grid-template-columns:64px 1fr 20px}.ecsd-day>div{padding-left:74px}
  .ecsd-policy-list summary{font-size:17px}
}

/* ==========================================================
   v2.5.0 — AIRY DECISION HEADER
   Scope: single-cruise title / tabs / overview / booking card.
   Keep the v2.4 gallery, cabins, itinerary, SEO and conversion
   behavior unchanged; only remove the cramped dashboard feel.
   ========================================================== */
.ecsd-page--v250{
  font-family:Roboto,Arial,sans-serif;
  background:#fff!important;
  color:var(--ec-ink);
  font-size:17px;
  line-height:1.6;
  letter-spacing:-.005em;
  padding-bottom:88px
}
.ecsd-page--v250 *{box-sizing:border-box}
.ecsd-page--v250 a{color:inherit}
.ecsd-page--v250 svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ecsd-page--v250 section,.ecsd-page--v250 article,.ecsd-page--v250 aside{background-color:#fff}

/* One open composition instead of one oversized bordered box. */
.ecsd-page--v250 .ecsd-cruisehead{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:38px;
  align-items:start;
  overflow:visible;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  margin:0 0 36px
}
.ecsd-page--v250 .ecsd-cruisehead__main{padding:4px 0 0;min-width:0}

/* Product header: strong hierarchy, more air. */
.ecsd-page--v250 .ecsd-titleline{display:flex;justify-content:space-between;align-items:flex-start;gap:34px}
.ecsd-page--v250 .ecsd-titleline h1{
  margin:0 0 8px;
  max-width:850px;
  font-size:42px;
  line-height:1.1;
  letter-spacing:-.038em;
  font-weight:800;
  color:#101828
}
.ecsd-page--v250 .ecsd-stars{font-size:19px;line-height:1;color:var(--ec-gold);letter-spacing:2.4px}
.ecsd-page--v250 .ecsd-rating-inline{margin-top:2px;gap:10px;flex:0 0 auto}
.ecsd-page--v250 .ecsd-rating-inline>strong{font-size:20px;padding:11px 10px;border-radius:9px;background:#1f2937}
.ecsd-page--v250 .ecsd-rating-inline b{font-size:15px;color:#101828}
.ecsd-page--v250 .ecsd-rating-inline small{font-size:13px;color:#667085}
.ecsd-page--v250 .ecsd-route-line{margin-top:16px;font-size:16px;color:#596271}
.ecsd-page--v250 .ecsd-route-line svg{width:20px;height:20px;color:#667085}

/* Tabs: one quiet baseline, no boxed navigation. */
.ecsd-page--v250 .ecsd-detail-tabs{
  margin:30px 0 0;
  padding:0;
  gap:40px;
  border-top:0;
  border-bottom:1px solid #e7eaee;
  overflow-x:auto;
  scrollbar-width:none
}
.ecsd-page--v250 .ecsd-detail-tabs::-webkit-scrollbar{display:none}
.ecsd-page--v250 .ecsd-detail-tabs a{padding:17px 0 16px;font-size:16px;font-weight:600;color:#596271}
.ecsd-page--v250 .ecsd-detail-tabs a:hover,.ecsd-page--v250 .ecsd-detail-tabs a.is-active{color:#111318}
.ecsd-page--v250 .ecsd-detail-tabs a:after{height:2px}

/* Overview: white space does the separating, not vertical cell borders. */
.ecsd-page--v250 .ecsd-overview-heading{display:flex;align-items:baseline;gap:14px;margin:29px 0 6px}
.ecsd-page--v250 .ecsd-overview-heading span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.085em;color:#596271}
.ecsd-page--v250 .ecsd-overview-heading p{margin:0;font-size:14px;color:#8a929e}
.ecsd-page--v250 .ecsd-overview-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:42px;
  row-gap:0;
  margin-top:0;
  padding:7px 0 9px;
  border-top:1px solid #eef0f2;
  border-bottom:1px solid #eef0f2
}
.ecsd-page--v250 .ecsd-overview-item,
.ecsd-page--v250 .ecsd-overview-item:nth-child(n){
  min-height:92px;
  padding:19px 0;
  gap:13px;
  border:0;
  border-left:0
}
.ecsd-page--v250 .ecsd-overview-item>span{margin-top:3px;color:#606b78;flex:0 0 auto}
.ecsd-page--v250 .ecsd-overview-item>span svg{width:21px;height:21px}
.ecsd-page--v250 .ecsd-overview-item b{display:block;margin-bottom:4px;font-size:12px;line-height:1.25;letter-spacing:.07em;text-transform:uppercase;color:#77808c}
.ecsd-page--v250 .ecsd-overview-item p{margin:0;font-size:16.5px;line-height:1.48;color:#1f2937}
.ecsd-page--v250 .ecsd-overview-item--priority p{font-weight:600;color:#101828}
.ecsd-page--v250 .ecsd-overview-item a{color:#1463d6;text-decoration:none;text-underline-offset:2px}
.ecsd-page--v250 .ecsd-overview-item a:hover{text-decoration:underline}

/* Independent conversion card: compact, sticky and visually separate. */
.ecsd-page--v250 .ecsd-bookpanel{
  position:sticky;
  top:94px;
  align-self:start;
  min-height:0;
  padding:28px 26px;
  background:#fff!important;
  border:1px solid #e3e7ec;
  border-radius:16px;
  box-shadow:0 12px 32px rgba(16,24,40,.065)
}
.ecsd-page--v250 .ecsd-bookpanel__price-head>span{font-size:12px;color:#667085}
.ecsd-page--v250 .ecsd-bookpanel__price-head>b{font-size:12px;background:#fff3ed;color:#d9480f;padding:7px 10px}
.ecsd-page--v250 .ecsd-bookpanel__was{margin-top:12px;font-size:15px;color:#747d89}
.ecsd-page--v250 .ecsd-bookpanel__price{margin:4px 0 20px}
.ecsd-page--v250 .ecsd-bookpanel__price small{font-size:14px;color:#b42318}
.ecsd-page--v250 .ecsd-bookpanel__price strong{font-size:48px;color:#b42318}
.ecsd-page--v250 .ecsd-bookpanel__price span{font-size:14px;color:#667085}
.ecsd-page--v250 .ecsd-bookpanel__rating{display:none}
.ecsd-page--v250 .ecsd-bookpanel__promo{margin:0 0 20px;padding:0;border:0;background:transparent}
.ecsd-page--v250 .ecsd-bookpanel__promo b{display:none}
.ecsd-page--v250 .ecsd-bookpanel__promo span{font-size:13px;line-height:1.45;color:#667085}
.ecsd-page--v250 .ecsd-bookpanel .ecsd-btn{width:100%;min-height:54px;border-radius:10px;padding:15px 18px;font-size:16px}
.ecsd-page--v250 .ecsd-bookpanel__trust{margin-top:19px;padding-top:18px;border-top:1px solid #eceef1}
.ecsd-page--v250 .ecsd-bookpanel__trust b{font-size:14px;color:#344054}
.ecsd-page--v250 .ecsd-bookpanel__trust small{font-size:13px;color:#7a8491}

@media(max-width:1250px){
  .ecsd-page--v250 .ecsd-cruisehead{grid-template-columns:minmax(0,1fr) 315px;gap:28px}
  .ecsd-page--v250 .ecsd-overview-grid{column-gap:28px}
  .ecsd-page--v250 .ecsd-titleline h1{font-size:39px}
}
@media(max-width:980px){
  .ecsd-page--v250 .ecsd-cruisehead{grid-template-columns:1fr;gap:24px}
  .ecsd-page--v250 .ecsd-bookpanel{position:relative;top:auto;width:100%;border-radius:14px;box-shadow:none}
  .ecsd-page--v250 .ecsd-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
}
@media(max-width:720px){
  .ecsd-page--v250{padding-bottom:100px;font-size:16px}
  .ecsd-page--v250 .ecsd-titleline{display:block}
  .ecsd-page--v250 .ecsd-titleline h1{font-size:32px}
  .ecsd-page--v250 .ecsd-rating-inline{margin-top:14px}
  .ecsd-page--v250 .ecsd-detail-tabs{margin-top:24px;gap:26px}
  .ecsd-page--v250 .ecsd-detail-tabs a{font-size:15px;padding:15px 0 14px}
  .ecsd-page--v250 .ecsd-overview-heading{display:block;margin-top:24px}
  .ecsd-page--v250 .ecsd-overview-heading p{margin-top:4px}
  .ecsd-page--v250 .ecsd-overview-grid{grid-template-columns:1fr;padding:6px 0}
  .ecsd-page--v250 .ecsd-overview-item,.ecsd-page--v250 .ecsd-overview-item:nth-child(n){min-height:0;padding:14px 0}
  .ecsd-page--v250 .ecsd-overview-item p{font-size:15.5px}
  .ecsd-page--v250 .ecsd-bookpanel{padding:22px 20px}
  .ecsd-page--v250 .ecsd-bookpanel__price strong{font-size:44px}
}

/* ==========================================================
   v2.5.1 — PRE-IMAGE DECISION HEADER
   Title, social proof and price now sit above the gallery.
   The gallery becomes the visual reward immediately below.
   ========================================================== */
.ecsd-page--v251 .ecsd-prehero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:44px;
  align-items:stretch;
  margin:2px 0 28px;
  background:#fff;
}
.ecsd-page--v251 .ecsd-prehero__main{
  min-width:0;
  padding:18px 0 20px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ecsd-page--v251 .ecsd-prehero .ecsd-titleline{
  align-items:flex-start;
  gap:28px;
}
.ecsd-page--v251 .ecsd-prehero .ecsd-titleline h1{
  font-size:42px;
  line-height:1.08;
  margin:0 0 10px;
  letter-spacing:-.04em;
}
.ecsd-page--v251 .ecsd-prehero .ecsd-stars{font-size:20px}
.ecsd-page--v251 .ecsd-prehero .ecsd-route-line{
  margin-top:18px;
  font-size:16px;
  color:#586474;
}
.ecsd-page--v251 .ecsd-bookpanel--prehero{
  border:1px solid #e2e6ea!important;
  border-radius:16px;
  padding:25px 26px 23px!important;
  background:#fff!important;
  box-shadow:0 10px 26px rgba(16,24,40,.055);
  justify-content:flex-start;
}
.ecsd-page--v251 .ecsd-bookpanel--prehero .ecsd-bookpanel__price{margin:5px 0 18px}
.ecsd-page--v251 .ecsd-bookpanel--prehero .ecsd-bookpanel__price strong{font-size:48px}
.ecsd-page--v251 .ecsd-bookpanel--prehero .ecsd-bookpanel__promo{margin:-5px 0 16px}
.ecsd-page--v251 .ecsd-bookpanel--prehero .ecsd-btn{min-height:50px}
.ecsd-page--v251 .ecsd-bookpanel--prehero .ecsd-bookpanel__trust{margin-top:15px;padding-top:15px}

/* The image block now starts cleanly after the decision header. */
.ecsd-page--v251 .ecsd-topgallery{margin:0 0 30px}
.ecsd-page--v251 .ecsd-topgallery__main{height:560px}

/* Overview below the gallery becomes a full-width content band, not a boxed dashboard. */
.ecsd-page--v251 .ecsd-cruisehead{
  display:block!important;
  margin:0 0 34px!important;
  border:0!important;
  box-shadow:none!important;
}
.ecsd-page--v251 .ecsd-cruisehead__main{padding:0!important}
.ecsd-page--v251 .ecsd-detail-tabs{
  margin:0!important;
  padding:0!important;
  gap:38px;
  border-top:0;
}
.ecsd-page--v251 .ecsd-overview-heading{margin-top:26px}

@media(max-width:980px){
  .ecsd-page--v251 .ecsd-prehero{grid-template-columns:1fr;gap:18px}
  .ecsd-page--v251 .ecsd-prehero__main{padding-bottom:4px}
  .ecsd-page--v251 .ecsd-bookpanel--prehero{max-width:none;width:100%}
  .ecsd-page--v251 .ecsd-topgallery__main{height:470px}
}
@media(max-width:720px){
  .ecsd-page--v251 .ecsd-prehero{margin-bottom:20px}
  .ecsd-page--v251 .ecsd-prehero .ecsd-titleline{display:block}
  .ecsd-page--v251 .ecsd-prehero .ecsd-titleline h1{font-size:32px}
  .ecsd-page--v251 .ecsd-prehero .ecsd-rating-inline{margin-top:14px}
  .ecsd-page--v251 .ecsd-bookpanel--prehero{padding:20px!important}
  .ecsd-page--v251 .ecsd-bookpanel--prehero .ecsd-bookpanel__price strong{font-size:44px}
  .ecsd-page--v251 .ecsd-topgallery__main{height:330px}
  .ecsd-page--v251 .ecsd-detail-tabs{gap:26px;overflow:auto}
}


/* ==========================================================
   v2.6.0 — TOUR-SYNCED CRUISE OVERVIEW
   Same visual language as EcoSapa Tour details: open facts on
   the left, compact decision card on the right, strong internal
   links only where they help navigation and purchase intent.
   ========================================================== */
.ecsd-page--v260 .ecsd-cruisehead{margin-bottom:34px!important}
.ecsd-page--v260 .ecsd-detail-tabs{margin-bottom:0!important}
.ecsd-page--v260 .ecsd-tour-overview{
  display:grid;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:58px;
  align-items:start;
  padding:40px 0 10px;
  background:#fff;
}
.ecsd-page--v260 .ecsd-tour-overview__facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:62px;
  row-gap:34px;
  padding:10px 0 16px;
}
.ecsd-page--v260 .ecsd-tour-fact{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:14px;
  align-items:start;
  min-width:0;
}
.ecsd-page--v260 .ecsd-tour-fact__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#526171;
  margin-top:1px;
}
.ecsd-page--v260 .ecsd-tour-fact__icon svg{width:24px;height:24px;stroke-width:1.75}
.ecsd-page--v260 .ecsd-tour-fact b{
  display:inline;
  font-size:17px;
  line-height:1.45;
  color:#101828;
  font-weight:700;
}
.ecsd-page--v260 .ecsd-tour-fact p{
  display:inline;
  margin:0 0 0 5px;
  font-size:17px;
  line-height:1.6;
  color:#455468;
}
.ecsd-page--v260 .ecsd-tour-fact a{
  color:#075fbd;
  text-decoration:none;
  text-underline-offset:3px;
}
.ecsd-page--v260 .ecsd-tour-fact a:hover{text-decoration:underline}
.ecsd-page--v260 .ecsd-link-sep{color:#98a2b3;margin:0 2px}

.ecsd-page--v260 .ecsd-tripcard{
  border:1px solid #dfe4ea;
  border-radius:17px;
  padding:24px 24px 22px;
  background:#fff;
  box-shadow:0 10px 28px rgba(16,24,40,.055);
}
.ecsd-page--v260 .ecsd-tripcard__top{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:20px;
  align-items:start;
}
.ecsd-page--v260 .ecsd-duration-badge{
  overflow:hidden;
  border:1px solid #ff8d93;
  border-radius:12px;
  background:#fff;
  text-align:center;
}
.ecsd-page--v260 .ecsd-duration-badge span{
  display:block;
  padding:8px 5px 7px;
  background:#f5222d;
  color:#fff;
  font-size:9px;
  line-height:1;
  font-weight:800;
  letter-spacing:.055em;
}
.ecsd-page--v260 .ecsd-duration-badge strong{
  display:block;
  margin:10px 0 0;
  color:#101828;
  font-size:35px;
  line-height:.95;
  font-weight:800;
}
.ecsd-page--v260 .ecsd-duration-badge small{
  display:block;
  padding:7px 4px 10px;
  color:#344054;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
}
.ecsd-page--v260 .ecsd-tripcard__summary p{
  margin:0 0 8px;
  color:#536174;
  font-size:15.5px;
  line-height:1.48;
}
.ecsd-page--v260 .ecsd-tripcard__summary b{color:#101828;font-weight:700}
.ecsd-page--v260 .ecsd-tripcard__summary a,
.ecsd-page--v260 .ecsd-tripcard__summary button{
  appearance:none;
  border:0;
  padding:0;
  background:none;
  color:#075fbd;
  font:inherit;
  cursor:pointer;
  text-decoration:none;
  text-underline-offset:3px;
}
.ecsd-page--v260 .ecsd-tripcard__summary a:hover,
.ecsd-page--v260 .ecsd-tripcard__summary button:hover{text-decoration:underline}
.ecsd-page--v260 .ecsd-tripcard__trust{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:20px 0 17px;
  padding-top:18px;
  border-top:1px solid #e7eaee;
  color:#667085;
  font-size:14px;
  line-height:1.45;
}
.ecsd-page--v260 .ecsd-tripcard__trust svg{width:20px;height:20px;flex:0 0 auto;color:#067a6f}
.ecsd-page--v260 .ecsd-tripcard__cta{
  width:100%;
  min-height:52px;
  border-radius:9px!important;
  font-size:16px!important;
  font-weight:700!important;
}
.ecsd-page--v260 .ecsd-tripcard__links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin-top:15px;
}
.ecsd-page--v260 .ecsd-tripcard__links a{
  position:relative;
  color:#475467;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
}
.ecsd-page--v260 .ecsd-tripcard__links a:after{content:' →';color:#f5222d}
.ecsd-page--v260 .ecsd-tripcard__links a:hover{color:#101828}

/* Keep secondary ship facts lower in the page, not in the first decision block. */
.ecsd-page--v260 .ecsd-overview-heading,
.ecsd-page--v260 .ecsd-overview-grid{display:none!important}

@media(max-width:1100px){
  .ecsd-page--v260 .ecsd-tour-overview{grid-template-columns:minmax(0,1fr) 350px;gap:38px}
  .ecsd-page--v260 .ecsd-tour-overview__facts{column-gap:38px}
}
@media(max-width:900px){
  .ecsd-page--v260 .ecsd-tour-overview{grid-template-columns:1fr;gap:28px;padding-top:32px}
  .ecsd-page--v260 .ecsd-tripcard{max-width:520px}
}
@media(max-width:640px){
  .ecsd-page--v260 .ecsd-tour-overview__facts{grid-template-columns:1fr;row-gap:24px;padding-top:2px}
  .ecsd-page--v260 .ecsd-tour-fact b,.ecsd-page--v260 .ecsd-tour-fact p{font-size:16px}
  .ecsd-page--v260 .ecsd-tripcard{padding:20px}
  .ecsd-page--v260 .ecsd-tripcard__top{grid-template-columns:82px minmax(0,1fr);gap:16px}
}

/* ==========================================================
   v2.7.0 — STICKY PRICE NAV + TOUR-WARM HIGHLIGHT BAND
   Price leaves the hero and joins the section navigation.
   This mirrors the conversion pattern used on EcoSapa Tour:
   product first, then a persistent low-friction booking bar.
   ========================================================== */
.ecsd-page--v270 .ecsd-prehero{
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
  margin-bottom:24px!important;
}
.ecsd-page--v270 .ecsd-prehero__main{
  width:100%;
  padding:16px 0 18px!important;
}
.ecsd-page--v270 .ecsd-prehero .ecsd-titleline{
  width:100%;
  justify-content:space-between;
}

/* Full-width sticky decision bar, aligned to the page shell. */
.ecsd-page--v270 .ecsd-stickybar{
  --ecsd-sticky-top:0px;
  position:sticky;
  top:var(--ecsd-sticky-top);
  z-index:90;
  width:100vw;
  margin:0 calc(50% - 50vw) 0;
  background:rgba(255,255,255,.985)!important;
  border-top:1px solid #e8eaed;
  border-bottom:1px solid #dfe3e7;
  box-shadow:0 8px 22px rgba(16,24,40,.055);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
}
.ecsd-page--v270 .ecsd-stickybar__inner{
  width:min(1440px,calc(100% - 56px));
  min-height:66px;
  margin:0 auto;
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:26px;
}
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs{
  flex:1 1 auto;
  min-width:0;
  margin:0!important;
  padding:0!important;
  border:0!important;
  gap:34px!important;
  overflow:auto;
  scrollbar-width:none;
}
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs::-webkit-scrollbar{display:none}
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs a{
  display:flex;
  align-items:center;
  min-height:66px;
  padding:0!important;
  font-size:15.5px!important;
  font-weight:650!important;
  color:#5e6876;
}
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs a:hover,
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs a.is-active{color:#111318}
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs a:after{height:3px!important}

.ecsd-page--v270 .ecsd-stickybar__buy{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:20px;
  padding-left:24px;
  border-left:1px solid #e7eaee;
  background:#fff;
}
.ecsd-page--v270 .ecsd-stickybar__price{
  display:flex;
  align-items:baseline;
  gap:5px;
  white-space:nowrap;
  color:#6b7280;
  font-size:13px;
}
.ecsd-page--v270 .ecsd-stickybar__price del{
  color:#8a929e;
  font-size:12.5px;
  text-decoration-thickness:1px;
}
.ecsd-page--v270 .ecsd-stickybar__from{color:#7b8490}
.ecsd-page--v270 .ecsd-stickybar__currency{
  margin-left:3px;
  color:#b42318;
  font-size:12px;
  font-weight:800;
}
.ecsd-page--v270 .ecsd-stickybar__price strong{
  color:#b42318;
  font-size:29px;
  line-height:1;
  font-weight:800;
  letter-spacing:-.035em;
}
.ecsd-page--v270 .ecsd-stickybar__per{color:#667085;font-size:13px}
.ecsd-page--v270 .ecsd-stickybar__discount{
  margin-left:7px;
  padding:5px 8px;
  border-radius:999px;
  background:#fff0e6;
  color:#d9480f;
  font-size:11px;
  line-height:1;
  font-weight:800;
}
.ecsd-page--v270 .ecsd-stickybar__cta{
  min-width:132px;
  height:44px;
  padding:0 22px;
  border:0;
  border-radius:7px;
  background:var(--ec-red);
  color:#fff;
  font:700 15px/1 Roboto,Arial,sans-serif;
  cursor:pointer;
  box-shadow:0 7px 15px rgba(239,51,64,.16);
  transition:background .15s ease,transform .15s ease;
}
.ecsd-page--v270 .ecsd-stickybar__cta:hover{
  background:var(--ec-red-dark);
  transform:translateY(-1px);
}

/* Overview now starts beneath the sticky purchase bar. */
.ecsd-page--v270 .ecsd-cruisehead{
  overflow:visible!important;
  margin:0 0 30px!important;
}
.ecsd-page--v270 .ecsd-tour-overview{padding-top:38px!important}
.ecsd-page--v270 #overview,
.ecsd-page--v270 #cabins,
.ecsd-page--v270 #booking-policy,
.ecsd-page--v270 #itinerary,
.ecsd-page--v270 #reviews,
.ecsd-page--v270 #faq{scroll-margin-top:var(--ecsd-detail-scroll-offset,96px)}

/* Same warm highlight language as the Tour detail pages: one calm surface. */
.ecsd-page--v270 .ecsd-why{
  width:100vw!important;
  max-width:none!important;
  margin:4px calc(50% - 50vw) 50px!important;
  padding:30px max(28px,calc((100vw - 1440px)/2))!important;
  border:0!important;
  border-radius:0!important;
  background:#fff0e4!important;
  box-shadow:none!important;
}
.ecsd-page--v270 .ecsd-why__inner{
  width:100%;
  max-width:1440px;
  margin:0 auto;
}
.ecsd-page--v270 .ecsd-why h2{
  margin:0 0 17px!important;
  color:#111318!important;
  font-size:24px!important;
  line-height:1.3;
  font-weight:750;
  letter-spacing:-.025em;
}
.ecsd-page--v270 .ecsd-why ul{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:22px 34px!important;
  margin:0!important;
  padding:0!important;
}
.ecsd-page--v270 .ecsd-why li{
  display:flex!important;
  align-items:flex-start!important;
  gap:10px!important;
  color:#28323c!important;
  font-size:16.5px!important;
  line-height:1.55!important;
  font-weight:450;
}
.ecsd-page--v270 .ecsd-why li svg{
  width:19px!important;
  height:19px!important;
  flex:0 0 19px;
  margin-top:3px!important;
  color:#6f7782!important;
}

@media(max-width:1100px){
  .ecsd-page--v270 .ecsd-stickybar__inner{width:min(100% - 36px,1440px);gap:16px}
  .ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs{gap:24px!important}
  .ecsd-page--v270 .ecsd-stickybar__buy{gap:13px;padding-left:16px}
  .ecsd-page--v270 .ecsd-stickybar__price del,
  .ecsd-page--v270 .ecsd-stickybar__discount{display:none}
  .ecsd-page--v270 .ecsd-stickybar__cta{min-width:118px;padding:0 16px}
}
@media(max-width:820px){
  .ecsd-page--v270 .ecsd-stickybar__inner{width:min(100% - 24px,1440px);min-height:58px;gap:12px}
  .ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs{gap:20px!important}
  .ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs a{min-height:58px;font-size:14px!important}
  .ecsd-page--v270 .ecsd-stickybar__buy{gap:10px;padding-left:12px}
  .ecsd-page--v270 .ecsd-stickybar__from{display:none}
  .ecsd-page--v270 .ecsd-stickybar__price strong{font-size:25px}
  .ecsd-page--v270 .ecsd-stickybar__cta{min-width:104px;height:40px;padding:0 13px;font-size:14px}
  .ecsd-page--v270 .ecsd-why ul{grid-template-columns:1fr!important;gap:13px!important}
  .ecsd-page--v270 .ecsd-why{padding-top:26px!important;padding-bottom:27px!important}
}
@media(max-width:720px){
  .ecsd-page--v270 .ecsd-prehero{margin-bottom:18px!important}
  .ecsd-page--v270 .ecsd-stickybar{display:none}
  .ecsd-page--v270 .ecsd-tour-overview{padding-top:28px!important}
  .ecsd-page--v270 .ecsd-why{margin-bottom:36px!important;padding-left:18px!important;padding-right:18px!important}
  .ecsd-page--v270 .ecsd-why h2{font-size:22px!important}
  .ecsd-page--v270 .ecsd-why li{font-size:16px!important}
}

/* ==========================================================
   v2.8.0 — EDITORIAL ITINERARY + BALANCED SOCIAL PROOF
   - Removes the isolated dark review badge from the hero.
   - Replaces the copied route-map visual with useful trip
     highlights + preparation guidance.
   - Gives each itinerary day a large EcoSapa editorial visual.
   - Keeps the page background white and the v2.7 conversion bar.
   ========================================================== */
.ecsd-page--v280{background:#fff!important}
.ecsd-page--v280 .ecsd-prehero .ecsd-titleline{
  display:block!important;
}
.ecsd-page--v280 .ecsd-titlegroup{min-width:0}
.ecsd-page--v280 .ecsd-titlemeta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 16px;
  margin-top:8px;
}
.ecsd-page--v280 .ecsd-titlemeta .ecsd-stars{
  margin:0!important;
  font-size:19px!important;
  line-height:1;
}
.ecsd-page--v280 .ecsd-rating-compact{
  display:inline-flex;
  align-items:baseline;
  gap:7px;
  color:#475467!important;
  text-decoration:none!important;
  font-size:14px;
  line-height:1.35;
}
.ecsd-page--v280 .ecsd-rating-compact strong{
  color:#111318;
  font-size:16px;
  font-weight:800;
}
.ecsd-page--v280 .ecsd-rating-compact span{
  color:#667085;
  font-weight:500;
}
.ecsd-page--v280 .ecsd-rating-compact:hover span{text-decoration:underline}
.ecsd-page--v280 .ecsd-route-line{
  margin-top:15px!important;
  font-size:16px!important;
}

/* Itinerary: replace source-like map with decision-useful content. */
.ecsd-page--v280 .ecsd-itinerary-guide{
  width:min(1120px,100%);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:8px 0 26px;
}
.ecsd-page--v280 .ecsd-itinerary-guide__card{
  min-width:0;
  padding:24px 26px;
  border:1px solid #e2e6ea;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(16,24,40,.035);
}
.ecsd-page--v280 .ecsd-itinerary-guide__card--prepare{
  background:#fffaf6;
  border-color:#f1dfd1;
}
.ecsd-page--v280 .ecsd-guide-eyebrow{
  display:block;
  margin-bottom:6px;
  color:#9c5d16;
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.09em;
}
.ecsd-page--v280 .ecsd-itinerary-guide__card h3{
  margin:0 0 16px;
  color:#111318;
  font-size:22px;
  line-height:1.3;
  font-weight:750;
  letter-spacing:-.02em;
}
.ecsd-page--v280 .ecsd-itinerary-guide__card ul{
  display:grid;
  gap:11px;
  margin:0;
  padding:0;
  list-style:none;
}
.ecsd-page--v280 .ecsd-itinerary-guide__card li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#3f4955;
  font-size:15.5px;
  line-height:1.5;
}
.ecsd-page--v280 .ecsd-itinerary-guide__card li svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin-top:2px;
  color:#7c8794;
}
.ecsd-page--v280 .ecsd-itinerary-guide__card--prepare li svg{color:#c47a1c}

.ecsd-page--v280 .ecsd-itinerary-tabs{
  width:min(1120px,100%);
  margin:0 0 16px!important;
}
.ecsd-page--v280 .ecsd-itin-intro{
  border-radius:10px;
  padding:18px 20px!important;
  margin-bottom:14px!important;
}
.ecsd-page--v280 .ecsd-days{
  border-top:0!important;
  display:grid;
  gap:14px;
}
.ecsd-page--v280 .ecsd-day{
  overflow:hidden;
  border:1px solid #e2e6ea!important;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 20px rgba(16,24,40,.028);
}
.ecsd-page--v280 .ecsd-day summary{
  min-height:66px;
  grid-template-columns:78px minmax(0,1fr) 24px!important;
  padding:18px 20px!important;
  border-bottom:0;
}
.ecsd-page--v280 .ecsd-day[open] summary{
  border-bottom:1px solid #edf0f2;
}
.ecsd-page--v280 .ecsd-day summary>span{
  color:#b42318!important;
  font-size:14px!important;
  font-weight:800!important;
}
.ecsd-page--v280 .ecsd-day summary h3{
  color:#111318;
  font-size:18px!important;
  line-height:1.35;
}
.ecsd-page--v280 .ecsd-day>div.ecsd-day__body{
  display:grid;
  grid-template-columns:minmax(260px,34%) minmax(0,1fr);
  gap:26px;
  padding:20px!important;
}
.ecsd-page--v280 .ecsd-day__visual{
  position:relative;
  min-width:0;
  height:210px;
  margin:0;
  overflow:hidden;
  border-radius:11px;
  background:#eef1f3;
}
.ecsd-page--v280 .ecsd-day__visual img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .35s ease;
}
.ecsd-page--v280 .ecsd-day[open] .ecsd-day__visual:hover img{transform:scale(1.025)}
.ecsd-page--v280 .ecsd-day__visual:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:42%;
  background:linear-gradient(180deg,transparent,rgba(12,18,24,.68));
  pointer-events:none;
}
.ecsd-page--v280 .ecsd-day__visual figcaption{
  position:absolute;
  z-index:1;
  left:14px;
  right:14px;
  bottom:12px;
  color:#fff;
  font-size:12.5px;
  line-height:1.35;
  font-weight:650;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.ecsd-page--v280 .ecsd-day__content{
  display:flex;
  align-items:center;
  min-width:0;
  padding:2px 6px 2px 0;
}
.ecsd-page--v280 .ecsd-day__content ul{
  width:100%;
  margin:0!important;
  padding:0!important;
  list-style:none;
  color:#475467;
  font-size:15.5px!important;
  line-height:1.55!important;
}
.ecsd-page--v280 .ecsd-day__content li{
  position:relative;
  padding-left:22px;
}
.ecsd-page--v280 .ecsd-day__content li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:#667085;
  font-weight:800;
}
.ecsd-page--v280 .ecsd-day__content li+li{margin-top:9px}
.ecsd-page--v280 .ecsd-important{
  padding:18px 20px;
  border:1px solid #e6e9ed;
  border-radius:12px;
  background:#fafbfc;
}
.ecsd-page--v280 .ecsd-important h3{margin-bottom:9px!important}
.ecsd-page--v280 .ecsd-important ul{margin-bottom:0}

@media(max-width:900px){
  .ecsd-page--v280 .ecsd-itinerary-guide{grid-template-columns:1fr}
  .ecsd-page--v280 .ecsd-day>div.ecsd-day__body{grid-template-columns:1fr;gap:18px}
  .ecsd-page--v280 .ecsd-day__visual{height:260px}
  .ecsd-page--v280 .ecsd-day__content{padding-right:0}
}
@media(max-width:720px){
  .ecsd-page--v280 .ecsd-titlemeta{gap:9px 12px}
  .ecsd-page--v280 .ecsd-rating-compact{font-size:13px}
  .ecsd-page--v280 .ecsd-rating-compact strong{font-size:15px}
  .ecsd-page--v280 .ecsd-itinerary-guide__card{padding:20px 18px}
  .ecsd-page--v280 .ecsd-itinerary-guide__card h3{font-size:20px}
  .ecsd-page--v280 .ecsd-itinerary-guide__card li{font-size:15px}
  .ecsd-page--v280 .ecsd-day summary{grid-template-columns:60px minmax(0,1fr) 20px!important;padding:16px!important}
  .ecsd-page--v280 .ecsd-day summary h3{font-size:16px!important}
  .ecsd-page--v280 .ecsd-day>div.ecsd-day__body{padding:16px!important}
  .ecsd-page--v280 .ecsd-day__visual{height:210px}
  .ecsd-page--v280 .ecsd-day__content ul{font-size:15px!important}
}

/* =========================================================
   EcoSapa Cruise Pages v2.11.0 — high-resolution conversion gallery
   Clean white lightbox, decision-first image mosaic, no tiny image on black.
   ========================================================= */
.ecsd-page--v2110 .ecsd-topgallery{
  display:grid;
  grid-template-columns:minmax(0,1.72fr) minmax(320px,.78fr);
  gap:10px;
  height:560px;
  margin:0 0 32px;
}
.ecsd-page--v2110 .ecsd-topgallery__main{
  height:100%;
  border-radius:16px 0 0 16px;
  background:#f3f5f7;
  box-shadow:none;
}
.ecsd-page--v2110 .ecsd-topgallery__main img{width:100%;height:100%;object-fit:cover;display:block}
.ecsd-page--v2110 .ecsd-topgallery__main:after{height:30%;background:linear-gradient(transparent,rgba(15,23,42,.38))}
.ecsd-page--v2110 .ecsd-topgallery__mainlabel{
  position:absolute;left:18px;bottom:18px;z-index:2;max-width:55%;
  color:#fff;font-size:14px;font-weight:700;line-height:1.35;text-align:left;
  text-shadow:0 1px 3px rgba(0,0,0,.3)
}
.ecsd-page--v2110 .ecsd-topgallery__view{
  right:18px;bottom:16px;padding:10px 14px;border:1px solid rgba(255,255,255,.5);
  background:rgba(255,255,255,.95);color:#26313b;box-shadow:0 7px 20px rgba(15,23,42,.12)
}
.ecsd-page--v2110 .ecsd-topgallery__view svg{stroke:#26313b}
.ecsd-page--v2110 .ecsd-topgallery__rail{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));
  gap:10px;margin:0;min-width:0;
}
.ecsd-page--v2110 .ecsd-topgallery__rail button{
  position:relative;height:auto;min-height:0;border:0;border-radius:0;background:#f3f5f7;overflow:hidden;padding:0
}
.ecsd-page--v2110 .ecsd-topgallery__rail button:nth-child(2){border-radius:0 16px 0 0}
.ecsd-page--v2110 .ecsd-topgallery__rail button:nth-child(4){border-radius:0 0 16px 0}
.ecsd-page--v2110 .ecsd-topgallery__rail button:hover,.ecsd-page--v2110 .ecsd-topgallery__rail button.is-active{border-color:transparent}
.ecsd-page--v2110 .ecsd-topgallery__rail button:after{
  content:"";position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(transparent,rgba(15,23,42,.48));pointer-events:none
}
.ecsd-page--v2110 .ecsd-topgallery__rail img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.ecsd-page--v2110 .ecsd-topgallery__rail button:hover img{transform:scale(1.025)}
.ecsd-page--v2110 .ecsd-topgallery__rail button>span{
  position:absolute;left:12px;right:10px;bottom:10px;z-index:2;color:#fff;font-size:12.5px;font-weight:700;text-align:left;
  text-shadow:0 1px 3px rgba(0,0,0,.35)
}

[data-gallery-modal].ecsd-modal{padding:18px;background:transparent}
[data-gallery-modal] .ecsd-modal__backdrop{background:rgba(244,246,248,.94);backdrop-filter:blur(8px)}
[data-gallery-modal] .ecsd-modal__close{
  right:20px;top:18px;width:42px;height:42px;background:#fff;color:#26313b;border:1px solid #dfe4e8;
  box-shadow:0 5px 16px rgba(15,23,42,.1)
}
[data-gallery-modal] .ecsd-modal__close svg{stroke:#26313b}
.ecsd-gallery-modal{
  width:min(1420px,97vw);height:min(930px,94vh);overflow:hidden;background:#fff;border:1px solid #e3e7eb;border-radius:18px;
  box-shadow:0 28px 80px rgba(15,23,42,.16);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto
}
.ecsd-gallery-modal__head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:20px 76px 14px 24px;background:#fff;border-bottom:1px solid #edf0f2
}
.ecsd-gallery-modal__head>div>span{display:block;color:#8a949e;font-size:10.5px;font-weight:850;letter-spacing:.1em}
.ecsd-gallery-modal__head h2{margin:5px 0 3px;color:#2f3841;font-size:24px;line-height:1.15;font-weight:750;letter-spacing:-.02em}
.ecsd-gallery-modal__head p{margin:0;color:#7a848e;font-size:13px;line-height:1.45}
.ecsd-gallery-modal__head>strong{color:#6d7781;font-size:13px;font-weight:700;white-space:nowrap}
.ecsd-gallery-modal__filters{
  display:flex;gap:7px;overflow-x:auto;padding:10px 24px;background:#fff;border-bottom:1px solid #edf0f2;scrollbar-width:thin
}
.ecsd-gallery-modal__filters button{
  flex:0 0 auto;min-height:34px;padding:0 12px;border:1px solid #dfe4e8;border-radius:999px;background:#fff;color:#59636d;
  font-size:12.5px;font-weight:700;cursor:pointer
}
.ecsd-gallery-modal__filters button:hover{border-color:#bfc7ce;color:#26313b}
.ecsd-gallery-modal__filters button.is-active{border-color:#303942;background:#303942;color:#fff}
.ecsd-gallery-modal__stage{
  position:relative;height:auto;min-height:0;display:grid;place-items:center;padding:14px 64px;background:#f6f7f8;overflow:hidden
}
.ecsd-gallery-modal__stage img{
  display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:e-resize;
  filter:none;box-shadow:0 7px 24px rgba(15,23,42,.08)
}
.ecsd-gallery-modal__nav{
  position:absolute;top:50%;z-index:3;transform:translateY(-50%);display:grid;place-items:center;width:46px;height:46px;
  border:1px solid #d9dfe4;border-radius:50%;background:rgba(255,255,255,.96);color:#2f3841;font-size:29px;line-height:1;
  box-shadow:0 5px 16px rgba(15,23,42,.1);cursor:pointer
}
.ecsd-gallery-modal__nav:hover{background:#fff;border-color:#bbc4cc}
.ecsd-gallery-modal__nav--prev{left:16px}.ecsd-gallery-modal__nav--next{right:16px}
.ecsd-gallery-modal__hint{
  position:absolute;right:14px;bottom:11px;padding:5px 8px;border-radius:6px;background:rgba(255,255,255,.9);color:#8a949e;
  font-size:10.5px;font-weight:650;pointer-events:none
}
.ecsd-gallery-modal__footer{background:#fff;border-top:1px solid #edf0f2;padding:10px 16px 12px}
.ecsd-gallery-modal__meta{display:flex;align-items:center;gap:10px;padding:0 6px 9px;min-height:30px}
.ecsd-gallery-modal__meta>span{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#f0f2f4;color:#68727c;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.ecsd-gallery-modal__meta>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#39434d;font-size:13px;font-weight:700}
.ecsd-gallery-modal__caption{padding:0;color:inherit;font-size:inherit}
.ecsd-gallery-modal__rail{display:flex;gap:7px;overflow-x:auto;padding:0 4px 2px;scrollbar-width:thin}
.ecsd-gallery-modal__rail button{
  flex:0 0 96px;width:96px;height:60px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#eef1f3;cursor:pointer
}
.ecsd-gallery-modal__rail button[hidden]{display:none!important}
.ecsd-gallery-modal__rail button.is-active{border-color:#303942;box-shadow:0 0 0 1px rgba(48,57,66,.08)}
.ecsd-gallery-modal__rail img{width:100%;height:100%;object-fit:cover;display:block}

@media(max-width:1080px){
  .ecsd-page--v2110 .ecsd-topgallery{grid-template-columns:minmax(0,1.5fr) minmax(270px,.9fr);height:480px}
  .ecsd-gallery-modal{height:min(900px,95vh)}
}
@media(max-width:760px){
  .ecsd-page--v2110 .ecsd-topgallery{display:block;height:auto;margin-bottom:24px}
  .ecsd-page--v2110 .ecsd-topgallery__main{height:300px;border-radius:12px}
  .ecsd-page--v2110 .ecsd-topgallery__mainlabel{left:12px;bottom:12px;max-width:48%;font-size:12px}
  .ecsd-page--v2110 .ecsd-topgallery__view{right:10px;bottom:10px;font-size:11.5px;padding:8px 10px}
  .ecsd-page--v2110 .ecsd-topgallery__rail{display:flex;gap:7px;margin-top:7px;overflow-x:auto}
  .ecsd-page--v2110 .ecsd-topgallery__rail button{flex:0 0 132px;height:78px;border-radius:8px!important}
  .ecsd-page--v2110 .ecsd-topgallery__rail button>span{left:8px;bottom:7px;font-size:10.5px}
  [data-gallery-modal].ecsd-modal{padding:0}
  .ecsd-gallery-modal{width:100vw;height:100dvh;border:0;border-radius:0;grid-template-rows:auto auto minmax(0,1fr) auto}
  [data-gallery-modal] .ecsd-modal__close{right:10px;top:10px;width:38px;height:38px}
  .ecsd-gallery-modal__head{padding:14px 58px 10px 14px;align-items:flex-start}
  .ecsd-gallery-modal__head h2{font-size:19px}.ecsd-gallery-modal__head p{display:none}
  .ecsd-gallery-modal__filters{padding:8px 12px}
  .ecsd-gallery-modal__stage{padding:10px 42px}
  .ecsd-gallery-modal__nav{width:36px;height:36px;font-size:24px}.ecsd-gallery-modal__nav--prev{left:4px}.ecsd-gallery-modal__nav--next{right:4px}
  .ecsd-gallery-modal__hint{display:none}
  .ecsd-gallery-modal__footer{padding:8px 8px 10px}.ecsd-gallery-modal__meta{padding:0 3px 7px}
  .ecsd-gallery-modal__rail button{flex-basis:82px;width:82px;height:52px}
}

/* =========================================================
   EcoSapa Cruise Pages v2.11.1 — balanced, zero-jump gallery
   Keep every photo inside one stable media frame and show a
   fast preview immediately while the original file sharpens.
   ========================================================= */
.ecsd-page--v2111 .ecsd-topgallery{
  height:520px;
  grid-template-columns:minmax(0,1.68fr) minmax(310px,.82fr);
  gap:8px;
}
.ecsd-page--v2111 .ecsd-topgallery__main,
.ecsd-page--v2111 .ecsd-topgallery__rail button{background:#f5f6f7}
.ecsd-page--v2111 .ecsd-topgallery__main img,
.ecsd-page--v2111 .ecsd-topgallery__rail img{object-fit:cover;object-position:center}

[data-gallery-modal].ecsd-modal{padding:16px}
[data-gallery-modal] .ecsd-modal__backdrop{background:rgba(247,248,249,.96);backdrop-filter:blur(6px)}
.ecsd-gallery-modal{
  width:min(1280px,96vw);
  height:min(880px,94vh);
  border-radius:16px;
  grid-template-rows:auto auto minmax(0,1fr) auto;
}
.ecsd-gallery-modal__head{padding:17px 70px 12px 20px}
.ecsd-gallery-modal__head h2{font-size:22px}
.ecsd-gallery-modal__filters{padding:9px 20px;gap:6px}
.ecsd-gallery-modal__stage{
  position:relative;
  display:grid;
  place-items:center;
  min-height:0;
  padding:12px 58px;
  background:#fff;
  overflow:hidden;
}
.ecsd-gallery-modal__stage:before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:30px;height:30px;
  margin:-15px 0 0 -15px;
  border:2px solid #e6e9ec;
  border-top-color:#8c969f;
  border-radius:50%;
  opacity:0;
  pointer-events:none;
  animation:ecsdGallerySpin .8s linear infinite;
  transition:opacity .12s ease;
}
.ecsd-gallery-modal__stage.is-loading:before{opacity:.75}
@keyframes ecsdGallerySpin{to{transform:rotate(360deg)}}
.ecsd-gallery-modal__stage img{
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:center;
  background:#fff;
  box-shadow:none;
  opacity:1;
  transition:opacity .16s ease,filter .18s ease;
  will-change:opacity;
}
.ecsd-gallery-modal__stage img.is-preview{filter:saturate(.98)}
.ecsd-gallery-modal__nav{
  width:42px;height:42px;
  background:#fff;
  color:#36404a;
  border-color:#dce1e5;
  box-shadow:0 5px 14px rgba(15,23,42,.08)
}
.ecsd-gallery-modal__nav--prev{left:10px}
.ecsd-gallery-modal__nav--next{right:10px}
.ecsd-gallery-modal__hint{display:none}
.ecsd-gallery-modal__footer{padding:8px 14px 11px;background:#fff}
.ecsd-gallery-modal__meta{padding:0 4px 7px;min-height:27px}
.ecsd-gallery-modal__rail{gap:6px;padding:0 2px 2px;scroll-behavior:smooth}
.ecsd-gallery-modal__rail button{
  flex:0 0 88px;
  width:88px;
  height:54px;
  border-radius:7px;
  background:#f1f3f5;
}
.ecsd-gallery-modal__rail img{object-fit:cover;object-position:center}

@media(max-width:1080px){
  .ecsd-page--v2111 .ecsd-topgallery{height:460px;grid-template-columns:minmax(0,1.55fr) minmax(270px,.9fr)}
  .ecsd-gallery-modal{width:min(1120px,97vw);height:min(820px,95vh)}
}
@media(max-width:760px){
  .ecsd-page--v2111 .ecsd-topgallery{height:auto}
  .ecsd-page--v2111 .ecsd-topgallery__main{height:290px}
  [data-gallery-modal].ecsd-modal{padding:0}
  .ecsd-gallery-modal{width:100vw;height:100dvh;border-radius:0}
  .ecsd-gallery-modal__stage{padding:8px 38px}
  .ecsd-gallery-modal__nav{width:34px;height:34px;font-size:23px}
  .ecsd-gallery-modal__nav--prev{left:3px}.ecsd-gallery-modal__nav--next{right:3px}
  .ecsd-gallery-modal__rail button{flex-basis:78px;width:78px;height:48px}
}


/* =========================================================
   EcoSapa Cruise Pages v2.11.2 — natural-fit gallery
   Prevents the modal image from feeling over-zoomed. The photo
   keeps its native proportions and sits inside a calm white frame.
   ========================================================= */
.ecsd-page--v2112 ~ [data-gallery-modal] .ecsd-gallery-modal__stage,
[data-gallery-modal] .ecsd-gallery-modal__stage{
  padding:20px 68px;
  background:#f7f8f9;
}
[data-gallery-modal] .ecsd-gallery-modal__stage img{
  width:auto!important;
  height:auto!important;
  max-width:min(1080px,88%)!important;
  max-height:calc(100% - 28px)!important;
  object-fit:contain!important;
  object-position:center!important;
  background:transparent!important;
  box-shadow:0 8px 26px rgba(15,23,42,.07)!important;
}
[data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:18px}
[data-gallery-modal] .ecsd-gallery-modal__nav--next{right:18px}

@media(max-width:1080px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{padding:16px 54px}
  [data-gallery-modal] .ecsd-gallery-modal__stage img{
    max-width:92%!important;
    max-height:calc(100% - 20px)!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:8px}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next{right:8px}
}
@media(max-width:760px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{padding:10px 38px;background:#fff}
  [data-gallery-modal] .ecsd-gallery-modal__stage img{
    max-width:100%!important;
    max-height:calc(100% - 12px)!important;
    box-shadow:none!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:3px}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next{right:3px}
}


/* =========================================================
   EcoSapa Cruise Pages v2.11.3 — locked centered gallery
   Fixes layout drift introduced by intrinsic-size photos.
   The stage stays fixed; the active image is independently
   centered so changing aspect ratios never moves the layout.
   ========================================================= */
[data-gallery-modal] .ecsd-gallery-modal__stage{
  position:relative!important;
  display:block!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:18px 70px!important;
  background:#f7f8f9!important;
}
[data-gallery-modal] .ecsd-gallery-modal__stage img[data-gallery-main]{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100% - 150px)!important;
  max-height:calc(100% - 30px)!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#fff!important;
  box-shadow:0 7px 22px rgba(15,23,42,.06)!important;
  cursor:e-resize;
}
[data-gallery-modal] .ecsd-gallery-modal__nav{
  top:50%!important;
  transform:translateY(-50%)!important;
}
[data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:18px!important}
[data-gallery-modal] .ecsd-gallery-modal__nav--next{right:18px!important}
[data-gallery-modal] .ecsd-gallery-modal__stage.is-loading img[data-gallery-main]{opacity:.82}

@media(max-width:1080px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{padding:14px 58px!important}
  [data-gallery-modal] .ecsd-gallery-modal__stage img[data-gallery-main]{
    max-width:calc(100% - 118px)!important;
    max-height:calc(100% - 24px)!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:10px!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next{right:10px!important}
}
@media(max-width:760px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{padding:8px 40px!important;background:#fff!important}
  [data-gallery-modal] .ecsd-gallery-modal__stage img[data-gallery-main]{
    max-width:calc(100% - 78px)!important;
    max-height:calc(100% - 14px)!important;
    box-shadow:none!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:3px!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next{right:3px!important}
}

/* =========================================================
   EcoSapa Cruise Pages v2.11.4 — true centered viewport
   The active image now lives inside an independent flex viewport.
   This removes the left:50%/transform dependency that could leave
   All/Ship photos starting at the midpoint on some browser/theme stacks.
   ========================================================= */
[data-gallery-modal] .ecsd-gallery-modal__stage{
  position:relative!important;
  display:block!important;
  padding:0 70px!important;
  min-height:0!important;
  overflow:hidden!important;
  background:#f7f8f9!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport{
  position:absolute!important;
  inset:0 70px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  min-height:0!important;
  padding:16px 0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport img[data-gallery-main]{
  position:static!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  display:block!important;
  flex:0 1 auto!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0 auto!important;
  object-fit:contain!important;
  object-position:center center!important;
  background:transparent!important;
  box-shadow:0 7px 22px rgba(15,23,42,.055)!important;
  transition:opacity .15s ease!important;
}
[data-gallery-modal] .ecsd-gallery-modal__stage.is-loading .ecsd-gallery-modal__viewport img[data-gallery-main]{opacity:.86!important}
[data-gallery-modal] .ecsd-gallery-modal__nav{z-index:8!important}
[data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:16px!important}
[data-gallery-modal] .ecsd-gallery-modal__nav--next{right:16px!important}
[data-gallery-modal] .ecsd-gallery-modal__hint{z-index:7!important}

@media(max-width:1080px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{padding:0 58px!important}
  [data-gallery-modal] .ecsd-gallery-modal__viewport{inset:0 58px!important;padding:12px 0!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:9px!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next{right:9px!important}
}
@media(max-width:760px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{padding:0 42px!important;background:#fff!important}
  [data-gallery-modal] .ecsd-gallery-modal__viewport{inset:0 42px!important;padding:8px 0!important}
  [data-gallery-modal] .ecsd-gallery-modal__viewport img[data-gallery-main]{box-shadow:none!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev{left:3px!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next{right:3px!important}
}

/* =========================================================
   EcoSapa Cruise Pages v2.11.5 — All / Ship presentation mode
   These two overview tabs deliberately use a CSS background canvas,
   not the intrinsic <img> box. That makes centering immune to source
   aspect ratio, browser image sizing and theme/global img rules.
   Other photo categories keep the approved natural-fit image layout.
   ========================================================= */
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage{
  background:#f7f8f9!important;
  padding:0 72px!important;
}
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport{
  position:absolute!important;
  inset:14px 76px!important;
  display:block!important;
  padding:0!important;
  overflow:hidden!important;
  background-color:#f7f8f9!important;
  background-repeat:no-repeat!important;
  background-position:50% 50%!important;
  background-size:contain!important;
  cursor:e-resize!important;
}
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport img[data-gallery-main]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  max-width:1px!important;
  max-height:1px!important;
  left:-9999px!important;
  top:-9999px!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  box-shadow:none!important;
}
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--prev{left:18px!important}
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--next{right:18px!important}
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage.is-loading .ecsd-gallery-modal__viewport{
  filter:saturate(.98);
}

@media(max-width:1080px){
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage{padding:0 58px!important}
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport{inset:12px 60px!important}
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--prev{left:9px!important}
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--next{right:9px!important}
}
@media(max-width:760px){
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage{padding:0 38px!important;background:#fff!important}
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport{inset:8px 40px!important;background-color:#fff!important}
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--prev{left:3px!important}
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--next{right:3px!important}
}

/* =========================================================
   EcoSapa Cruise Pages v2.11.6 — definitive All / Ship fix
   Use one full-width grid viewport and the real IMG element.
   This explicitly clears any inherited width/float/background rules.
   ========================================================= */
[data-gallery-modal] .ecsd-gallery-modal__stage,
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage{
  position:relative!important;
  display:grid!important;
  grid-template-columns:64px minmax(0,1fr) 64px!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  padding:0!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  background:#f7f8f9!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport,
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  grid-column:2!important;
  grid-row:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:14px 0!important;
  overflow:hidden!important;
  float:none!important;
  transform:none!important;
  box-sizing:border-box!important;
  background:#f7f8f9!important;
  background-image:none!important;
  filter:none!important;
  cursor:e-resize!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport img[data-gallery-main],
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport img[data-gallery-main]{
  position:static!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  float:none!important;
  clear:none!important;
  flex:0 1 auto!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:auto!important;
  padding:0!important;
  transform:none!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  background:transparent!important;
  box-shadow:0 7px 22px rgba(15,23,42,.055)!important;
  pointer-events:auto!important;
  cursor:e-resize!important;
}
[data-gallery-modal] .ecsd-gallery-modal__stage.is-loading .ecsd-gallery-modal__viewport img[data-gallery-main],
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage.is-loading .ecsd-gallery-modal__viewport img[data-gallery-main]{
  opacity:.88!important;
}
[data-gallery-modal] .ecsd-gallery-modal__nav--prev,
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--prev{left:10px!important}
[data-gallery-modal] .ecsd-gallery-modal__nav--next,
[data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--next{right:10px!important}

@media(max-width:1080px){
  [data-gallery-modal] .ecsd-gallery-modal__stage,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage{
    grid-template-columns:52px minmax(0,1fr) 52px!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__viewport,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport{padding:10px 0!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--prev{left:6px!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--next{right:6px!important}
}
@media(max-width:760px){
  [data-gallery-modal] .ecsd-gallery-modal__stage,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__stage{
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    background:#fff!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__viewport,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport{
    padding:7px 0!important;background:#fff!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__viewport img[data-gallery-main],
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__viewport img[data-gallery-main]{box-shadow:none!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--prev,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--prev{left:2px!important}
  [data-gallery-modal] .ecsd-gallery-modal__nav--next,
  [data-gallery-modal].is-overview-gallery .ecsd-gallery-modal__nav--next{right:2px!important}
}

/* =========================================================
   EcoSapa Cruise Pages v2.11.7 — All tab visual overview
   ALL is now a stable 5-photo mosaic rather than a single-image viewer.
   Ship and every other category keep the approved single-photo layout.
   ========================================================= */
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__stage{
  display:block!important;
  padding:0!important;
  background:#f7f8f9!important;
}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__viewport{
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  padding:14px!important;
  overflow:hidden!important;
  background:#f7f8f9!important;
}
[data-gallery-modal].is-all-overview img[data-gallery-main][hidden],
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__nav[hidden]{display:none!important}
[data-gallery-modal] .ecsd-gallery-modal__allgrid[hidden]{display:none!important}
[data-gallery-modal] .ecsd-gallery-modal__allgrid{
  width:min(1120px,100%)!important;
  height:100%!important;
  max-height:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.65fr) minmax(0,.82fr) minmax(0,.82fr)!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  margin:0 auto!important;
}
[data-gallery-modal] .ecsd-gallery-modal__alltile{
  position:relative!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:10px!important;
  background:#e8ecef!important;
  cursor:pointer!important;
  box-shadow:none!important;
}
[data-gallery-modal] .ecsd-gallery-modal__alltile.is-hero{grid-row:1 / 3!important}
[data-gallery-modal] .ecsd-gallery-modal__alltile img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:scale(1)!important;
  transition:transform .22s ease,filter .22s ease!important;
  box-shadow:none!important;
}
[data-gallery-modal] .ecsd-gallery-modal__alltile:hover img{transform:scale(1.018)!important;filter:brightness(.96)}
[data-gallery-modal] .ecsd-gallery-modal__alltile>span{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:2px!important;
  padding:26px 12px 10px!important;
  color:#fff!important;
  text-align:left!important;
  background:linear-gradient(180deg,transparent,rgba(7,12,18,.72))!important;
  pointer-events:none!important;
}
[data-gallery-modal] .ecsd-gallery-modal__alltile>span b{
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
}
[data-gallery-modal] .ecsd-gallery-modal__alltile>span em{
  display:block!important;
  max-width:100%!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  font-size:11.5px!important;
  line-height:1.25!important;
  font-style:normal!important;
  font-weight:500!important;
  opacity:.92!important;
}
[data-gallery-modal] .ecsd-gallery-modal__alltile.is-hero>span{padding:42px 16px 14px!important}
[data-gallery-modal] .ecsd-gallery-modal__alltile.is-hero>span b{font-size:13px!important}
[data-gallery-modal] .ecsd-gallery-modal__alltile.is-hero>span em{font-size:12.5px!important}

@media(max-width:900px){
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__viewport{padding:10px!important}
  [data-gallery-modal] .ecsd-gallery-modal__allgrid{
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)!important;
    grid-template-rows:repeat(4,minmax(0,1fr))!important;
    gap:7px!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__alltile.is-hero{grid-row:1 / 5!important}
  [data-gallery-modal] .ecsd-gallery-modal__alltile:nth-child(n+2){grid-column:2!important}
}
@media(max-width:620px){
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__viewport{padding:8px!important;background:#fff!important}
  [data-gallery-modal] .ecsd-gallery-modal__allgrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:minmax(0,1.35fr) repeat(2,minmax(0,.8fr))!important;
    gap:6px!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal__alltile.is-hero{grid-column:1 / 3!important;grid-row:1!important}
  [data-gallery-modal] .ecsd-gallery-modal__alltile:nth-child(n+2){grid-column:auto!important;grid-row:auto!important}
  [data-gallery-modal] .ecsd-gallery-modal__alltile:nth-child(5){display:none!important}
  [data-gallery-modal] .ecsd-gallery-modal__alltile>span em{display:none!important}
}


/* =========================================================
   EcoSapa Cruise Pages v2.11.8 — ALL tab hard layout reset
   The All mosaic now mounts directly in the stage, not inside the
   single-photo viewport. This prevents inherited grid-column/viewport
   rules from pushing the overview to the right.
   ========================================================= */
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__stage{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:min(66vh,640px)!important;
  min-height:500px!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  background:#f7f8f9!important;
}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__viewport{
  display:none!important;
  position:static!important;
  width:0!important;
  height:0!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__nav,
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__hint{
  display:none!important;
}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__allgrid{
  position:absolute!important;
  inset:14px 18px!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.62fr) minmax(0,.78fr) minmax(0,.78fr)!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  box-sizing:border-box!important;
  transform:none!important;
  float:none!important;
  justify-self:stretch!important;
  align-self:stretch!important;
}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile.is-hero{
  grid-column:1!important;
  grid-row:1 / 3!important;
}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(2){grid-column:2!important;grid-row:1!important}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(3){grid-column:3!important;grid-row:1!important}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(4){grid-column:2!important;grid-row:2!important}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(5){grid-column:3!important;grid-row:2!important}
[data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}

@media(max-width:1000px){
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__stage{height:min(64vh,600px)!important;min-height:440px!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__allgrid{
    inset:10px 12px!important;
    grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)!important;
    grid-template-rows:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
  }
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile.is-hero{grid-column:1!important;grid-row:1 / 5!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(2){grid-column:2!important;grid-row:1!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(3){grid-column:2!important;grid-row:2!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(4){grid-column:2!important;grid-row:3!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(5){grid-column:2!important;grid-row:4!important}
}
@media(max-width:620px){
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__stage{height:520px!important;min-height:520px!important;background:#fff!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__allgrid{
    inset:8px!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:minmax(0,1.35fr) repeat(2,minmax(0,.78fr))!important;
    gap:6px!important;
  }
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile.is-hero{grid-column:1 / 3!important;grid-row:1!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(2){grid-column:1!important;grid-row:2!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(3){grid-column:2!important;grid-row:2!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(4){grid-column:1!important;grid-row:3!important}
  [data-gallery-modal].is-all-overview .ecsd-gallery-modal__alltile:nth-child(5){grid-column:2!important;grid-row:3!important;display:block!important}
}


/* =========================================================
   EcoSapa Cruise Pages v2.11.9 — neutral All / Ship viewer
   All is only a filter state. Ship is only a data category.
   Neither is allowed to change stage geometry.
   ========================================================= */
[data-gallery-modal]:not(.is-all-overview) .ecsd-gallery-modal__allgrid{display:none!important}
[data-gallery-modal] .ecsd-gallery-modal__stage{
  position:relative!important;
  display:grid!important;
  grid-template-columns:64px minmax(0,1fr) 64px!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  padding:0!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  background:#f7f8f9!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport{
  position:relative!important;
  inset:auto!important;
  grid-column:2!important;
  grid-row:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:14px 0!important;
  overflow:hidden!important;
  background:#f7f8f9!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport img[data-gallery-main]{
  position:static!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:auto!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  background:transparent!important;
  box-shadow:0 7px 22px rgba(15,23,42,.055)!important;
}
@media(max-width:1080px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{grid-template-columns:52px minmax(0,1fr) 52px!important}
  [data-gallery-modal] .ecsd-gallery-modal__viewport{padding:10px 0!important}
}
@media(max-width:760px){
  [data-gallery-modal] .ecsd-gallery-modal__stage{grid-template-columns:38px minmax(0,1fr) 38px!important;background:#fff!important}
  [data-gallery-modal] .ecsd-gallery-modal__viewport{padding:7px 0!important;background:#fff!important}
}

/* =========================================================
   EcoSapa Cruise Pages v2.11.10 — ALL tab width containment
   Root cause: when ALL exposes every thumbnail, the footer rail's
   min-content width can enlarge the modal's implicit grid column.
   The stage then becomes wider than the visible modal and its centered
   photo appears pushed to the right. Force every modal row to shrink
   inside one minmax(0,1fr) column; the rail alone scrolls horizontally.
   ========================================================= */
[data-gallery-modal] .ecsd-gallery-modal{
  grid-template-columns:minmax(0,1fr)!important;
  min-width:0!important;
  max-width:97vw!important;
}
[data-gallery-modal] .ecsd-gallery-modal__head,
[data-gallery-modal] .ecsd-gallery-modal__filters,
[data-gallery-modal] .ecsd-gallery-modal__stage,
[data-gallery-modal] .ecsd-gallery-modal__footer{
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  box-sizing:border-box!important;
}
[data-gallery-modal] .ecsd-gallery-modal__footer{
  overflow:hidden!important;
}
[data-gallery-modal] .ecsd-gallery-modal__rail{
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain;
  box-sizing:border-box!important;
}
[data-gallery-modal] .ecsd-gallery-modal__rail > button{
  min-width:0!important;
}
/* ALL must use exactly the same stage geometry as every other tab. */
[data-gallery-modal] .ecsd-gallery-modal__stage{
  contain:layout paint!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport{
  min-width:0!important;
  max-width:100%!important;
}
[data-gallery-modal] .ecsd-gallery-modal__viewport img[data-gallery-main]{
  max-width:100%!important;
  max-height:100%!important;
}
@media(max-width:760px){
  [data-gallery-modal] .ecsd-gallery-modal{max-width:100vw!important}
}

/* v2.12.0 — cabin decision assist: fit, trade-off, nearby cabin and same-route price framing */
.ecsd-page--v2120 .ecsd-cabin--decision{scroll-margin-top:110px}
.ecsd-page--v2120 .ecsd-cabin__fit{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.ecsd-page--v2120 .ecsd-cabin__fit span{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#eef8f4;color:#0f6b50;font-size:10px;font-weight:900;letter-spacing:.08em}
.ecsd-page--v2120 .ecsd-cabin__fit strong{font-size:13px;color:#31554b}
.ecsd-page--v2120 .ecsd-cabin__fitcopy{margin:13px 0 13px!important;color:#4d5967!important;font-size:15px!important;line-height:1.55!important}
.ecsd-page--v2120 .ecsd-cabin__why{margin:12px 0 6px;padding:12px 14px;border:1px solid #e4ece8;border-radius:10px;background:#fbfdfc}
.ecsd-page--v2120 .ecsd-cabin__why>b{display:block;margin-bottom:7px;color:#223c35;font-size:12px}
.ecsd-page--v2120 .ecsd-cabin__why ul{margin:0!important}
.ecsd-page--v2120 .ecsd-cabin__detail p{margin:0 0 8px}
.ecsd-page--v2120 .ecsd-cabin__tradeoff{margin-top:10px!important;padding:10px 12px;border-left:3px solid #d7a45f;background:#fff8ee;color:#6a5132}
.ecsd-page--v2120 .ecsd-cabin__nudge{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px;padding-top:13px;border-top:1px dashed #d9e0dd}
.ecsd-page--v2120 .ecsd-cabin__nudge>a{display:grid;gap:2px;min-height:72px;padding:10px 11px;border:1px solid #e1e7e4;border-radius:9px;background:#fff;color:#264b42;text-decoration:none;transition:.16s ease}
.ecsd-page--v2120 .ecsd-cabin__nudge>a:hover{border-color:#9bc6ba;box-shadow:0 5px 14px rgba(7,70,56,.07);transform:translateY(-1px)}
.ecsd-page--v2120 .ecsd-cabin__nudge small{font-size:9px;font-weight:900;letter-spacing:.07em;color:#7b8782}
.ecsd-page--v2120 .ecsd-cabin__nudge strong{font-size:12px;line-height:1.25}
.ecsd-page--v2120 .ecsd-cabin__nudge span{font-size:10px;color:#6a7873}
.ecsd-page--v2120 .ecsd-cabin__action{align-items:stretch!important}
.ecsd-page--v2120 .ecsd-cabin__ratepending{display:block;margin:5px 0 7px;color:#173a33;font-size:25px;line-height:1.05}
.ecsd-page--v2120 .ecsd-cabin__action>p{margin:0 0 12px;color:#727f7a;font-size:11px;line-height:1.45}
.ecsd-page--v2120 .ecsd-cabin__cruisefrom{display:block;margin-bottom:16px;padding-top:10px;border-top:1px solid #ecefee;color:#6f7b77;font-size:10.5px;line-height:1.4}
.ecsd-page--v2120 .ecsd-cabin__cruisefrom b{color:#9d2d21;font-size:11.5px}
.ecsd-page--v2120 .ecsd-route-compare{margin-top:28px;padding:24px;border:1px solid #d8e6e1;border-radius:16px;background:linear-gradient(135deg,#f8fcfa,#f4f8f7);box-shadow:0 7px 22px rgba(12,71,57,.04)}
.ecsd-page--v2120 .ecsd-route-compare__lead>span{font-size:10px;font-weight:900;letter-spacing:.1em;color:#0b7359}
.ecsd-page--v2120 .ecsd-route-compare__lead h3{margin:5px 0 5px;color:#153a32;font-size:23px;line-height:1.2}
.ecsd-page--v2120 .ecsd-route-compare__lead p{max-width:780px;margin:0;color:#65736f;font-size:13px;line-height:1.5}
.ecsd-page--v2120 .ecsd-route-compare__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.ecsd-page--v2120 .ecsd-route-option{display:grid;gap:5px;padding:16px;border:1px solid #dce4e1;border-radius:12px;background:#fff;text-decoration:none;transition:.16s ease}
.ecsd-page--v2120 .ecsd-route-option:hover{border-color:#9fc9bd;box-shadow:0 8px 18px rgba(10,72,57,.07);transform:translateY(-2px)}
.ecsd-page--v2120 .ecsd-route-option small{font-size:9.5px;font-weight:900;letter-spacing:.08em;color:#71807b}
.ecsd-page--v2120 .ecsd-route-option strong{color:#183b34;font-size:16px;line-height:1.25}
.ecsd-page--v2120 .ecsd-route-option span{color:#6e7a76;font-size:11px}
.ecsd-page--v2120 .ecsd-route-option b{margin-top:4px;color:#a32e22;font-size:18px}
.ecsd-page--v2120 .ecsd-route-option em{font-size:10.5px;font-style:normal;line-height:1.4;color:#58736b}
.ecsd-page--v2120 .ecsd-route-compare>footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:15px;padding-top:14px;border-top:1px solid #dce6e2}
.ecsd-page--v2120 .ecsd-route-compare>footer>span{color:#72807b;font-size:10.5px}
.ecsd-page--v2120 .ecsd-route-compare>footer .ecsd-btn{flex:0 0 auto}
@media(max-width:980px){
  .ecsd-page--v2120 .ecsd-cabin__nudge{grid-template-columns:1fr}
  .ecsd-page--v2120 .ecsd-route-compare__options{grid-template-columns:1fr}
}
@media(max-width:720px){
  .ecsd-page--v2120 .ecsd-route-compare{padding:18px 15px}
  .ecsd-page--v2120 .ecsd-route-compare__lead h3{font-size:20px}
  .ecsd-page--v2120 .ecsd-route-compare>footer{display:block}
  .ecsd-page--v2120 .ecsd-route-compare>footer .ecsd-btn{width:100%;margin-top:12px}
}

/* =========================================================
   EcoSapa Cruise Pages v2.12.1 — live cabin rates + full cabin detail modal
   ========================================================= */
.ecsd-page--v2121 .ecsd-ratefinder--live{
  grid-template-columns:1.05fr 1.2fr .9fr .9fr 190px;
  overflow:visible;
  position:relative;
}
.ecsd-page--v2121 .ecsd-ratefinder--live>label{border-right:1px solid var(--ec-line)}
.ecsd-page--v2121 .ecsd-ratefinder--live>[data-live-rate-check]{border-radius:0 13px 13px 0;min-height:82px}
.ecsd-page--v2121 .ecsd-ratefinder--live.is-loading>[data-live-rate-check]{opacity:.7;cursor:wait}
.ecsd-page--v2121 .ecsd-ratefinder__ages{
  position:absolute;left:0;right:190px;top:100%;z-index:15;display:flex;gap:10px;padding:10px 12px;border:1px solid #d9e2df;border-top:0;border-radius:0 0 12px 12px;background:#fff;box-shadow:0 12px 24px rgba(14,45,38,.09)
}
.ecsd-page--v2121 .ecsd-ratefinder__ages[hidden]{display:none!important}
.ecsd-page--v2121 .ecsd-ratefinder__ages label{display:flex;align-items:center;gap:8px;padding:0;border:0;min-height:0;background:transparent;font-size:12px;font-weight:700;color:#53605c}
.ecsd-page--v2121 .ecsd-ratefinder__ages select{width:72px;border:1px solid #d0d8d5;border-radius:7px;padding:7px 8px;background:#fff;font-size:13px}
.ecsd-page--v2121 .ecsd-rate-status{display:flex;align-items:center;min-height:34px;margin:-12px 0 20px;padding:0 2px;color:#68756f;font-size:12px}
.ecsd-page--v2121 .ecsd-rate-status.is-loading{color:#8b641f}.ecsd-page--v2121 .ecsd-rate-status.is-success{color:#116149}.ecsd-page--v2121 .ecsd-rate-status.is-error{color:#a42a20}
.ecsd-page--v2121 .ecsd-cabin.has-live-rate{border-color:#bddbd2;box-shadow:0 8px 26px rgba(14,93,72,.07)}
.ecsd-page--v2121 .ecsd-cabin.has-live-rate .ecsd-cabin__action{background:#fbfefd!important}
.ecsd-page--v2121 [data-cabin-rate] small{font-size:11px;font-weight:800;color:#6c7874;letter-spacing:0}
.ecsd-page--v2121 .ecsd-cabin__tradeoff{margin:13px 0 0!important;padding:10px 12px;border-left:3px solid #d7a45f;background:#fff8ee;color:#6a5132;font-size:12px!important;line-height:1.45!important}

.ecsd-cabin-detail-modal{padding:12px!important}
.ecsd-cabin-detail-modal .ecsd-modal__backdrop{background:rgba(10,14,18,.90);backdrop-filter:blur(3px)}
.ecsd-cabin-detail-panel{
  position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,2.55fr) minmax(360px,1fr);width:min(1580px,98vw);height:min(880px,96vh);overflow:hidden;background:#fff;box-shadow:0 28px 85px rgba(0,0,0,.42)
}
.ecsd-cabin-detail-panel__media{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;background:#101315;overflow:hidden}
.ecsd-cabin-detail-panel__media>img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#101315;cursor:pointer}
.ecsd-cabin-detail-panel__nav{position:absolute;top:50%;z-index:4;transform:translateY(-50%);display:grid;place-items:center;width:46px;height:70px;border:0;background:rgba(0,0,0,.10);color:#fff;font-size:48px;font-weight:200;line-height:1;cursor:pointer;text-shadow:0 2px 6px rgba(0,0,0,.5)}
.ecsd-cabin-detail-panel__nav:hover{background:rgba(0,0,0,.24)}
.ecsd-cabin-detail-panel__nav--prev{left:10px}.ecsd-cabin-detail-panel__nav--next{right:10px}
.ecsd-cabin-detail-panel__counter{position:absolute;right:18px;bottom:16px;z-index:4;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.48);color:#fff;font-size:11px;font-weight:800}
.ecsd-cabin-detail-panel__thumbs{position:absolute;left:18px;bottom:14px;z-index:4;display:flex;gap:6px;max-width:70%;overflow-x:auto;padding:2px;scrollbar-width:none}
.ecsd-cabin-detail-panel__thumbs::-webkit-scrollbar{display:none}
.ecsd-cabin-detail-panel__thumbs button{flex:0 0 64px;width:64px;height:44px;padding:0;border:2px solid rgba(255,255,255,.38);border-radius:5px;overflow:hidden;background:#222;opacity:.72;cursor:pointer}
.ecsd-cabin-detail-panel__thumbs button.is-active{border-color:#fff;opacity:1}.ecsd-cabin-detail-panel__thumbs img{width:100%;height:100%;object-fit:cover}
.ecsd-cabin-detail-panel__info{position:relative;min-width:0;overflow-y:auto;padding:22px 24px 26px;background:#fff;color:#44505c}
.ecsd-cabin-detail-panel__close{position:absolute;right:16px;top:12px;display:grid;place-items:center;width:38px;height:38px;border:0;background:transparent;color:#111;cursor:pointer}
.ecsd-cabin-detail-panel__close svg{width:29px;height:29px;stroke-width:2.4}
.ecsd-cabin-detail-panel__eyebrow{display:block;margin:1px 48px 4px 0;color:#8a949e;font-size:10px;font-weight:900;letter-spacing:.09em}
.ecsd-cabin-detail-panel__info h2{margin:0 48px 0 0;padding:0 0 12px;border-bottom:2px solid #e5e7eb;color:#333;font-size:23px;line-height:1.25;letter-spacing:-.02em}
.ecsd-cabin-detail-panel__description{margin:15px 0 14px;color:#707982;font-size:13.5px;line-height:1.5}
.ecsd-cabin-detail-panel__specs{display:grid;gap:7px;padding-bottom:15px;border-bottom:1px dashed #d9dde1}
.ecsd-cabin-detail-panel__specs p{display:grid;grid-template-columns:105px minmax(0,1fr);gap:10px;margin:0;font-size:13px;line-height:1.45}.ecsd-cabin-detail-panel__specs span{color:#7a838b}.ecsd-cabin-detail-panel__specs strong{color:#4a535c;font-weight:600}
.ecsd-cabin-detail-panel__rate{display:grid;gap:3px;margin:15px 0;padding:13px 14px;border:1px solid #dce8e4;border-radius:9px;background:#f8fcfa}
.ecsd-cabin-detail-panel__rate small{color:#68756f;font-size:9.5px;font-weight:900;letter-spacing:.08em}.ecsd-cabin-detail-panel__rate strong{color:#b42318;font-size:21px;line-height:1.15}.ecsd-cabin-detail-panel__rate span{color:#6c7874;font-size:11px}
.ecsd-cabin-detail-panel__amenities h3{margin:17px 0 10px;color:#626d76;font-size:17px;font-weight:600}
.ecsd-cabin-detail-panel__amenities ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 16px;margin:0;padding:0;list-style:none}
.ecsd-cabin-detail-panel__amenities li{display:flex;gap:7px;align-items:flex-start;color:#707980;font-size:12.5px;line-height:1.35}.ecsd-cabin-detail-panel__amenities li span{color:#198754;font-weight:900}
.ecsd-cabin-detail-panel__fit{margin-top:17px;padding:13px 14px;border-radius:9px;background:#fff8ee}.ecsd-cabin-detail-panel__fit small{display:block;color:#8a6a3e;font-size:9.5px;font-weight:900;letter-spacing:.08em}.ecsd-cabin-detail-panel__fit strong{display:block;margin-top:3px;color:#5a452d;font-size:14px}.ecsd-cabin-detail-panel__fit p{margin:5px 0 0;color:#745f46;font-size:11.5px;line-height:1.45}
.ecsd-cabin-detail-panel__book{width:100%;margin-top:16px;min-height:48px}

@media(max-width:1180px){
  .ecsd-page--v2121 .ecsd-ratefinder--live{grid-template-columns:1fr 1.1fr 1fr 1fr}.ecsd-page--v2121 .ecsd-ratefinder--live>[data-live-rate-check]{grid-column:1/-1;border-radius:0 0 13px 13px;min-height:54px}.ecsd-page--v2121 .ecsd-ratefinder__ages{right:0;top:calc(100% - 54px)}
  .ecsd-cabin-detail-panel{grid-template-columns:minmax(0,1.8fr) minmax(330px,1fr)}
}
@media(max-width:820px){
  .ecsd-cabin-detail-modal{padding:0!important}.ecsd-cabin-detail-panel{display:block;width:100vw;height:100dvh;overflow-y:auto}.ecsd-cabin-detail-panel__media{height:48dvh;min-height:300px}.ecsd-cabin-detail-panel__info{overflow:visible;padding:20px 18px 28px}.ecsd-cabin-detail-panel__thumbs{max-width:72%}
  .ecsd-page--v2121 .ecsd-ratefinder--live{grid-template-columns:1fr 1fr}.ecsd-page--v2121 .ecsd-ratefinder--live>[data-live-rate-check]{grid-column:1/-1}.ecsd-page--v2121 .ecsd-ratefinder__ages{position:static;grid-column:1/-1;border:0;border-top:1px solid var(--ec-line);border-radius:0;box-shadow:none;padding:10px 14px}
}
@media(max-width:560px){
  .ecsd-page--v2121 .ecsd-ratefinder--live{grid-template-columns:1fr}.ecsd-page--v2121 .ecsd-ratefinder--live>label{min-height:66px;border-right:0;border-bottom:1px solid var(--ec-line)}.ecsd-page--v2121 .ecsd-ratefinder__ages{display:grid;grid-template-columns:1fr 1fr}.ecsd-cabin-detail-panel__media{height:42dvh;min-height:250px}.ecsd-cabin-detail-panel__amenities ul{grid-template-columns:1fr}.ecsd-cabin-detail-panel__info h2{font-size:21px}.ecsd-cabin-detail-panel__thumbs{left:10px;bottom:10px;max-width:74%}.ecsd-cabin-detail-panel__counter{right:10px;bottom:10px}
}

/* =========================================================
   EcoSapa Cruise Pages v2.14.1 — popup scope + typography sync
   IMPORTANT: v2.12.1 cabin cards are intentionally preserved.
   Only the cabin-details experience is rebuilt as a premium centered popup.
   ========================================================= */
.ecsd-cabin-detail-modal--premium{
  font-family:Roboto,Arial,sans-serif;
  font-size:14px;
  line-height:1.45;
  color:var(--ec-ink);
  padding:clamp(18px,2.4vw,38px)!important;
  align-items:center;
  justify-content:center;
}
.ecsd-cabin-detail-modal--premium .ecsd-modal__backdrop{
  background:rgba(17,28,27,.62);
  backdrop-filter:blur(4px);
}
.ecsd-cabin-popup{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.72fr) minmax(390px,.82fr);
  width:min(1460px,calc(100vw - 56px));
  height:min(800px,calc(100vh - 64px));
  min-height:620px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.22);
  border-radius:20px;
  background:#fff;
  box-shadow:0 32px 90px rgba(5,27,24,.30);
}
.ecsd-cabin-popup__visual{
  position:relative;
  min-width:0;
  min-height:0;
  overflow:hidden;
  background:#e9efed;
}
.ecsd-cabin-popup__visual:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:120px;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(4,25,22,.42));
}
.ecsd-cabin-popup__visual>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  background:#e9efed;
  cursor:pointer;
}
.ecsd-cabin-popup__nav{
  position:absolute;
  top:50%;
  z-index:5;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  padding:0;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.90);
  color:#173e38;
  box-shadow:0 8px 22px rgba(0,0,0,.14);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  transition:.16s ease;
}
.ecsd-cabin-popup__nav:hover{background:#fff;transform:translateY(-50%) scale(1.04)}
.ecsd-cabin-popup__nav--prev{left:20px}
.ecsd-cabin-popup__nav--next{right:20px}
.ecsd-cabin-popup__counter{
  position:absolute;
  right:20px;
  bottom:20px;
  z-index:5;
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 11px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:999px;
  background:rgba(5,31,27,.72);
  color:#fff;
  font-size:11px;
  font-weight:850;
  backdrop-filter:blur(6px);
}
.ecsd-cabin-popup__thumbs{
  position:absolute;
  left:20px;
  bottom:18px;
  z-index:5;
  display:flex;
  gap:7px;
  max-width:calc(100% - 110px);
  overflow-x:auto;
  padding:2px;
  scrollbar-width:none;
}
.ecsd-cabin-popup__thumbs::-webkit-scrollbar{display:none}
.ecsd-cabin-popup__thumbs button{
  flex:0 0 68px;
  width:68px;
  height:48px;
  padding:0;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.58);
  border-radius:7px;
  background:#dfe7e4;
  opacity:.78;
  cursor:pointer;
  transition:.15s ease;
}
.ecsd-cabin-popup__thumbs button:hover,
.ecsd-cabin-popup__thumbs button.is-active{border-color:#fff;opacity:1;transform:translateY(-1px)}
.ecsd-cabin-popup__thumbs img{display:block;width:100%;height:100%;object-fit:cover}

.ecsd-cabin-popup__info{
  position:relative;
  min-width:0;
  overflow-y:auto;
  padding:30px 30px 96px;
  background:#fff;
  color:#465650;
  scrollbar-width:thin;
}
.ecsd-cabin-popup__close{
  position:absolute;
  right:20px;
  top:18px;
  z-index:4;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid #dce5e2;
  border-radius:999px;
  background:#fff;
  color:#173e38;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(8,47,41,.05);
}
.ecsd-cabin-popup__close svg{width:20px;height:20px}
.ecsd-cabin-popup__eyebrow,
.ecsd-cabin-popup__advisor>span,
.ecsd-cabin-popup__note>span,
.ecsd-cabin-popup__section-title span{
  color:#55726b;
  font-size:9.5px;
  font-weight:900;
  letter-spacing:.11em;
}
.ecsd-cabin-popup__head{padding-right:42px}
.ecsd-cabin-popup__head h2{
  margin:5px 0 8px;
  color:#102f2b;
  font-size:30px;
  line-height:1.12;
  letter-spacing:-.035em;
}
.ecsd-cabin-popup__head p{
  margin:0;
  color:#687873;
  font-size:13px;
  line-height:1.58;
}
.ecsd-cabin-popup__specs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:20px 0 0;
  overflow:hidden;
  border:1px solid #dfe7e4;
  border-radius:12px;
  background:#fbfdfc;
}
.ecsd-cabin-popup__specs>div{
  min-width:0;
  padding:12px 11px;
  border-right:1px solid #e4ebe8;
}
.ecsd-cabin-popup__specs>div:last-child{border-right:0}
.ecsd-cabin-popup__specs small{display:block;color:#87928e;font-size:8.5px;font-weight:900;letter-spacing:.08em}
.ecsd-cabin-popup__specs strong{display:block;margin-top:3px;overflow:hidden;color:#294a44;font-size:11.5px;line-height:1.25;text-overflow:ellipsis}
.ecsd-cabin-popup__rate{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:18px 0;
  padding:15px 16px;
  border:1px solid #cfe3dc;
  border-radius:12px;
  background:#f5faf8;
}
.ecsd-cabin-popup__rate>div{display:grid;gap:2px;min-width:0}
.ecsd-cabin-popup__rate small{color:#517067;font-size:9px;font-weight:900;letter-spacing:.09em}
.ecsd-cabin-popup__rate strong{color:#b42318;font-size:23px;line-height:1.08;letter-spacing:-.02em}
.ecsd-cabin-popup__rate span{color:#70807a;font-size:10.5px;line-height:1.35}
.ecsd-cabin-popup__rate-link{
  flex:0 0 auto;
  min-height:38px;
  padding:0 13px;
  border:1px solid #bad8cf;
  border-radius:8px;
  background:#fff;
  color:#0d6958;
  font-size:10.5px;
  font-weight:850;
  cursor:pointer;
}
.ecsd-cabin-popup__advisor{
  margin:0 0 19px;
  padding:15px 16px;
  border-left:3px solid #c89450;
  border-radius:0 10px 10px 0;
  background:#fff9f1;
}
.ecsd-cabin-popup__advisor strong{display:block;margin:4px 0;color:#523d24;font-size:14px}
.ecsd-cabin-popup__advisor p{margin:0;color:#74614a;font-size:11.5px;line-height:1.48}
.ecsd-cabin-popup__advisor ul{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 0;padding:0;list-style:none}
.ecsd-cabin-popup__advisor li{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #eadcc9;border-radius:999px;background:#fff;color:#695640;font-size:9.8px;font-weight:750}
.ecsd-cabin-popup__advisor li:before{content:'✓';color:#178468;font-weight:900}
.ecsd-cabin-popup__section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:10px}
.ecsd-cabin-popup__section-title h3{margin:3px 0 0;color:#153832;font-size:18px;line-height:1.2}
.ecsd-cabin-popup__section-title>small{color:#9aa39f;font-size:9.5px}
.ecsd-cabin-popup__amenities{padding-top:18px;border-top:1px solid #e4eae7}
.ecsd-cabin-popup__amenities ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0;padding:0;list-style:none}
.ecsd-cabin-popup__amenities li{display:flex;align-items:flex-start;gap:7px;min-width:0;color:#5f706a;font-size:11px;line-height:1.35}
.ecsd-cabin-popup__amenities li span{color:#178468;font-weight:900}
.ecsd-cabin-popup__note{margin-top:18px;padding:13px 14px;border:1px solid #e6e2d9;border-radius:10px;background:#fbfaf7}
.ecsd-cabin-popup__note p{margin:4px 0 0;color:#6f685b;font-size:10.8px;line-height:1.45}
.ecsd-cabin-popup__bottom{
  position:absolute;
  left:0;right:0;bottom:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:78px;
  padding:12px 22px;
  border-top:1px solid #dfe7e4;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px);
}
.ecsd-cabin-popup__bottom>div{display:grid;gap:1px;min-width:0}
.ecsd-cabin-popup__bottom small{color:#8a9591;font-size:8.5px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
.ecsd-cabin-popup__bottom strong{overflow:hidden;color:#21423c;font-size:12.5px;text-overflow:ellipsis;white-space:nowrap}
.ecsd-cabin-popup__book{flex:0 0 auto;min-width:174px;min-height:46px}

@media(max-width:1120px){
  .ecsd-cabin-popup{grid-template-columns:minmax(0,1.35fr) minmax(360px,.9fr);width:calc(100vw - 34px);height:calc(100vh - 34px);min-height:0}
  .ecsd-cabin-popup__info{padding:24px 24px 92px}
  .ecsd-cabin-popup__head h2{font-size:27px}
}
@media(max-width:820px){
  .ecsd-cabin-detail-modal--premium{padding:0!important}
  .ecsd-cabin-popup{display:block;width:100vw;height:100dvh;border:0;border-radius:0;overflow-y:auto}
  .ecsd-cabin-popup__visual{height:44dvh;min-height:300px}
  .ecsd-cabin-popup__info{overflow:visible;padding:22px 18px 100px}
  .ecsd-cabin-popup__bottom{position:fixed;z-index:8}
}
@media(max-width:560px){
  .ecsd-cabin-popup__visual{height:38dvh;min-height:260px}
  .ecsd-cabin-popup__nav{width:40px;height:40px;font-size:25px}
  .ecsd-cabin-popup__nav--prev{left:10px}.ecsd-cabin-popup__nav--next{right:10px}
  .ecsd-cabin-popup__thumbs{left:10px;bottom:10px;max-width:calc(100% - 86px)}
  .ecsd-cabin-popup__thumbs button{flex-basis:56px;width:56px;height:40px}
  .ecsd-cabin-popup__counter{right:10px;bottom:10px}
  .ecsd-cabin-popup__specs{grid-template-columns:1fr 1fr}
  .ecsd-cabin-popup__specs>div:nth-child(2){border-right:0}.ecsd-cabin-popup__specs>div:nth-child(-n+2){border-bottom:1px solid #e4ebe8}
  .ecsd-cabin-popup__rate{align-items:flex-start;flex-direction:column}
  .ecsd-cabin-popup__amenities ul{grid-template-columns:1fr}
  .ecsd-cabin-popup__bottom{padding:10px 12px;min-height:72px}
  .ecsd-cabin-popup__book{min-width:150px}
}
\n\n/* EcoSapa Cruise Pages v2.14.2 — exact cabin price card cleanup */\n.ecsd-page--v2121 .ecsd-cabin__tradeoff,\n.ecsd-page--v2121 .ecsd-cabin__nudge{display:none!important}\n.ecsd-page--v2121 .ecsd-cabin__content{align-self:center}\n.ecsd-page--v2121 .ecsd-cabin__action{justify-content:center!important;gap:16px!important;background:#fff!important}\n.ecsd-page--v2121 .ecsd-cabin__exactrate{display:block;margin:0 0 4px;width:100%}\n.ecsd-page--v2121 .ecsd-cabin__exactrate[hidden]{display:none!important}\n.ecsd-page--v2121 .ecsd-cabin__exactrate>small{display:block;margin:0 0 7px;color:#667085;font-size:10px;font-weight:800;letter-spacing:.05em}\n.ecsd-page--v2121 .ecsd-cabin__exactrate>strong{display:block;margin:0;color:#b42318;font-size:34px;line-height:1;font-weight:800;letter-spacing:-.025em}\n.ecsd-page--v2121 .ecsd-cabin__exactrate>p{margin:7px 0 0;color:#667085;font-size:10.5px;line-height:1.4}\n.ecsd-page--v2121 .ecsd-cabin__cruisefrom,\n.ecsd-page--v2121 .ecsd-cabin__ratepending{display:none!important}\n.ecsd-page--v2121 .ecsd-rate-status[hidden]{display:none!important}\n.ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__rate[hidden]{display:none!important}\n@media(max-width:980px){\n  .ecsd-page--v2121 .ecsd-cabin__action{grid-template-columns:minmax(0,1fr) 190px!important}\n  .ecsd-page--v2121 .ecsd-cabin__exactrate{grid-column:1!important}\n  .ecsd-page--v2121 .ecsd-cabin__action .ecsd-btn{grid-column:2!important;grid-row:1!important}\n}\n@media(max-width:720px){\n  .ecsd-page--v2121 .ecsd-cabin__action{display:block!important}\n  .ecsd-page--v2121 .ecsd-cabin__exactrate{margin-bottom:14px}\n}\n

/* EcoSapa Cruise Pages v2.14.3 — persistent verified cabin totals.
   Incremental only: keep the v2.14.2 card and popup geometry unchanged. */
.ecsd-page--v2121 .ecsd-cabin__pricepair{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ecsd-page--v2121 .ecsd-cabin__oldrate{color:#8a8f98;font-size:16px;font-weight:500;text-decoration:line-through}
.ecsd-page--v2121 .ecsd-cabin__oldrate[hidden]{display:none!important}
.ecsd-page--v2121 .ecsd-cabin__exactrate>p{max-width:190px}

/* v2.14.4 — price bootstrap state only; no cabin-card layout changes. */
.ecsd-cabin__exactrate.is-reference-loading [data-cabin-rate]{font-size:24px;color:#98a2b3}.ecsd-cabin__exactrate.is-reference-loading [data-cabin-rate-note]{color:#667085}.ecsd-cabin__exactrate.is-reference-failed [data-cabin-rate]{font-size:24px;color:#98a2b3}


/* EcoSapa Cruise Pages v2.14.5 — cabin price column, BestPrice-like hierarchy.
   Scope is limited to the right action column; cabin cards and popup layout stay intact. */
.ecsd-page--v2121 .ecsd-cabin__action--bestprice{
  padding:20px 18px!important;gap:13px!important;align-items:stretch!important;background:#fff!important;
}
.ecsd-page--v2121 .ecsd-bprate{width:100%;min-height:106px;display:flex;flex-direction:column;justify-content:center}
.ecsd-page--v2121 .ecsd-bprate__top{display:flex!important;justify-content:space-between;align-items:flex-start;gap:8px;margin:0 0 5px!important;font-size:11px;line-height:1.35;color:#243447}
.ecsd-page--v2121 .ecsd-bprate__top[hidden],.ecsd-page--v2121 .ecsd-bprate__fees[hidden],.ecsd-page--v2121 .ecsd-bprate__prices[hidden],.ecsd-page--v2121 .ecsd-bprate__pending[hidden]{display:none!important}
.ecsd-page--v2121 .ecsd-bprate__top span{font-size:11px!important;font-weight:500!important;color:#243447!important}
.ecsd-page--v2121 .ecsd-bprate__top b{font-size:11px!important;font-weight:500!important;color:#243447!important;white-space:nowrap}
.ecsd-page--v2121 .ecsd-bprate__fees{font-size:11px;font-weight:700;color:#101828;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}
.ecsd-page--v2121 .ecsd-bprate__prices{display:flex!important;justify-content:flex-end;align-items:baseline;gap:10px;margin:0!important}
.ecsd-page--v2121 .ecsd-bprate__old{font-size:16px!important;font-weight:400!important;color:#7b8490!important;text-decoration:line-through;white-space:nowrap}
.ecsd-page--v2121 .ecsd-bprate__prices strong{font-size:31px!important;line-height:1!important;font-weight:800!important;color:#bd1d17!important;letter-spacing:-.02em;white-space:nowrap}
.ecsd-page--v2121 .ecsd-bprate__pending{font-size:12px;line-height:1.45;color:#667085;text-align:center;padding:24px 4px}
.ecsd-page--v2121 .ecsd-bprate__book{background:#f2690b!important;border-color:#f2690b!important;border-radius:5px!important;min-height:44px!important;font-size:15px!important;font-weight:800!important}
.ecsd-page--v2121 .ecsd-bprate__secure{display:block!important;text-align:center!important;color:#7b8490!important;font-size:10.5px!important;font-weight:400!important;letter-spacing:0!important;margin-top:-4px}
@media(max-width:980px){
  .ecsd-page--v2121 .ecsd-cabin__action--bestprice{grid-template-columns:minmax(0,1fr) 190px!important}
  .ecsd-page--v2121 .ecsd-bprate{grid-column:1!important}
  .ecsd-page--v2121 .ecsd-bprate__book{grid-column:2!important;grid-row:1!important;align-self:center}
  .ecsd-page--v2121 .ecsd-bprate__secure{grid-column:2!important;grid-row:2!important;align-self:start}
}
@media(max-width:720px){
  .ecsd-page--v2121 .ecsd-cabin__action--bestprice{display:block!important}
  .ecsd-page--v2121 .ecsd-bprate{min-height:auto;margin-bottom:12px}
  .ecsd-page--v2121 .ecsd-bprate__prices{justify-content:flex-start}
  .ecsd-page--v2121 .ecsd-bprate__secure{margin-top:7px}
}


/* v2.14.8 — EcoSapa managed cabin prices: clean price-first presentation */
.ecsd-page--v2121 .ecsd-ratefinder,
.ecsd-page--v2121 .ecsd-rate-status{display:none!important}
.ecsd-page--v2121 .ecsd-cabin__action--no-price{justify-content:center!important}
.ecsd-page--v2121 .ecsd-cabin__action--no-price .ecsd-bprate{display:none!important}
@media(max-width:980px){
  .ecsd-page--v2121 .ecsd-cabin__action--no-price{display:flex!important;grid-template-columns:none!important}
  .ecsd-page--v2121 .ecsd-cabin__action--no-price .ecsd-bprate__book{width:190px!important;align-self:center!important}
  .ecsd-page--v2121 .ecsd-cabin__action--no-price .ecsd-bprate__secure{align-self:center!important}
}
@media(max-width:720px){
  .ecsd-page--v2121 .ecsd-cabin__action--no-price .ecsd-bprate__book{width:100%!important}
}


/* =========================================================
   EcoSapa Cruise Pages v2.16.0 — BestPrice date-first rate flow
   Functional change only: preserve approved cards/popup; show live rates only
   after the visitor chooses a sailing date and clicks Check Rates.
   ========================================================= */
.ecsd-page--v2121 .ecsd-ratefinder--live{display:grid!important;margin:0 0 10px!important}
.ecsd-page--v2121 .ecsd-rate-status{display:flex!important;margin:0 0 18px!important}
.ecsd-page--v2121 .ecsd-cabin__action--no-price .ecsd-bprate{display:flex!important}
.ecsd-page--v2121 .ecsd-bprate__placeholder{display:flex;align-items:center;justify-content:center;min-height:92px;padding:12px;text-align:center;color:#667085;font-size:12px;line-height:1.45}
.ecsd-page--v2121 .ecsd-bprate__placeholder[hidden]{display:none!important}
.ecsd-page--v2121 [data-book-cabin][hidden],.ecsd-page--v2121 [data-cabin-secure][hidden]{display:none!important}
.ecsd-page--v2121 .ecsd-ratefinder--live input[type="date"]{color:#101828}
.ecsd-page--v2121 .ecsd-ratefinder--live button[data-live-rate-check]{background:#f2690b!important;color:#fff!important}
.ecsd-page--v2121 .ecsd-ratefinder--live button[data-live-rate-check]:hover{background:#d95700!important}
@media(max-width:980px){
  .ecsd-page--v2121 .ecsd-cabin__action--no-price{display:grid!important;grid-template-columns:1fr!important}
  .ecsd-page--v2121 .ecsd-cabin__action--no-price .ecsd-bprate{grid-column:1!important}
}

/* v2.16.7 Premium rate finder alignment override */
.ecsd-ratefinder{
    width:100%;
    max-width:1240px;
    margin:0 auto 22px;
    min-height:72px;
    grid-template-columns:1fr 1.15fr .9fr 210px;
    border-radius:14px;
    box-shadow:0 6px 18px rgba(15,23,42,.06);
}
.ecsd-ratefinder label{
    min-height:72px;
    padding:14px 20px;
    gap:12px;
}
.ecsd-ratefinder small{
    font-size:10px;
    line-height:1.2;
    letter-spacing:.06em;
}
.ecsd-ratefinder select,
.ecsd-ratefinder input{
    font-size:15px;
    line-height:1.4;
    padding-top:4px;
}
.ecsd-ratefinder button{
    min-height:72px;
    background:#f97316;
    color:#fff;
    font-size:15px;
    border-radius:0 14px 14px 0;
    transition:.2s ease;
}
.ecsd-ratefinder button:hover{
    background:#ea580c;
}
@media(max-width:768px){
 .ecsd-ratefinder{
    display:block;
 }
 .ecsd-ratefinder label,
 .ecsd-ratefinder button{
    width:100%;
    border-radius:0;
 }
 .ecsd-ratefinder button{
    border-radius:0 0 14px 14px;
 }
}


/* =========================================================
 EcoSapa v2.16.8 - Rate Finder Premium Redesign
 Real selector override
========================================================= */

.ecsd-page--v250 .ecsd-ratefinder,
.ecsd-page--v260 .ecsd-ratefinder,
.ecsd-page--v270 .ecsd-ratefinder,
.ecsd-page--v280 .ecsd-ratefinder {
    width:100%;
    max-width:1240px;
    margin:24px auto 28px;
    min-height:72px;
    display:grid;
    grid-template-columns: 1fr 1.25fr 1fr 220px;
    background:#ffffff;
    border:1px solid #e5e7eb;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 8px 24px rgba(15,23,42,.06);
}

.ecsd-page--v250 .ecsd-ratefinder label,
.ecsd-page--v260 .ecsd-ratefinder label,
.ecsd-page--v270 .ecsd-ratefinder label,
.ecsd-page--v280 .ecsd-ratefinder label {
    min-height:72px;
    padding:0 22px;
    gap:14px;
    border-right:1px solid #e5e7eb;
    display:flex;
    align-items:center;
}

.ecsd-page--v250 .ecsd-ratefinder label > span,
.ecsd-page--v260 .ecsd-ratefinder label > span,
.ecsd-page--v270 .ecsd-ratefinder label > span,
.ecsd-page--v280 .ecsd-ratefinder label > span {
    width:22px;
    height:22px;
    flex:none;
}

.ecsd-page--v250 .ecsd-ratefinder small,
.ecsd-page--v260 .ecsd-ratefinder small,
.ecsd-page--v270 .ecsd-ratefinder small,
.ecsd-page--v280 .ecsd-ratefinder small {
    font-size:10px;
    line-height:1.2;
    margin-bottom:5px;
    color:#64748b;
}

.ecsd-page--v250 .ecsd-ratefinder select,
.ecsd-page--v250 .ecsd-ratefinder input,
.ecsd-page--v260 .ecsd-ratefinder select,
.ecsd-page--v260 .ecsd-ratefinder input,
.ecsd-page--v270 .ecsd-ratefinder select,
.ecsd-page--v270 .ecsd-ratefinder input,
.ecsd-page--v280 .ecsd-ratefinder select,
.ecsd-page--v280 .ecsd-ratefinder input {
    height:auto;
    font-size:15px;
    font-weight:650;
    color:#0f172a;
}

.ecsd-page--v250 .ecsd-ratefinder button,
.ecsd-page--v260 .ecsd-ratefinder button,
.ecsd-page--v270 .ecsd-ratefinder button,
.ecsd-page--v280 .ecsd-ratefinder button {
    background:#f97316;
    color:#fff;
    font-size:15px;
    font-weight:700;
    border:0;
    transition:.2s ease;
}

.ecsd-page--v250 .ecsd-ratefinder button:hover,
.ecsd-page--v260 .ecsd-ratefinder button:hover,
.ecsd-page--v270 .ecsd-ratefinder button:hover,
.ecsd-page--v280 .ecsd-ratefinder button:hover {
    background:#ea580c;
}

@media(max-width:900px){
.ecsd-page--v250 .ecsd-ratefinder,
.ecsd-page--v260 .ecsd-ratefinder,
.ecsd-page--v270 .ecsd-ratefinder,
.ecsd-page--v280 .ecsd-ratefinder{
 grid-template-columns:1fr;
}
.ecsd-page--v250 .ecsd-ratefinder button,
.ecsd-page--v260 .ecsd-ratefinder button,
.ecsd-page--v270 .ecsd-ratefinder button,
.ecsd-page--v280 .ecsd-ratefinder button{
 min-height:60px;
}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.2
   Tour-style, source-order cruise itinerary
   ========================================================= */
.ecsd-page .ecsd-day__body.ecsd-day__body--tour-order{
  display:block!important;
}
.ecsd-page .ecsd-day__content--structured{
  max-width:980px;
  padding:8px 0 0;
}
.ecsd-page .ecsd-itinerary-phase{
  margin:0 0 24px;
}
.ecsd-page .ecsd-itinerary-phase:last-child{
  margin-bottom:12px;
}
.ecsd-page .ecsd-itinerary-phase h4{
  margin:0 0 11px;
  font-size:18px;
  line-height:1.35;
  font-weight:800;
  color:#17212b;
}
.ecsd-page .ecsd-itinerary-line{
  margin:0 0 12px;
  font-size:16px;
  line-height:1.78;
  color:#344454;
}
.ecsd-page .ecsd-itinerary-line--timed strong{
  color:#17212b;
  font-weight:800;
}
.ecsd-page .ecsd-itinerary-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px 24px;
  margin:20px 0 4px;
  padding:15px 17px;
  border:1px solid #e6eaee;
  border-radius:12px;
  background:#f8fafb;
  font-size:14px;
  color:#435363;
}
.ecsd-page .ecsd-day__visual.ecsd-day__visual--after-content{
  width:100%!important;
  max-width:980px!important;
  height:auto!important;
  margin:24px 0 4px!important;
  border-radius:14px;
  overflow:hidden;
  background:#f1f4f6;
}
.ecsd-page .ecsd-day__visual.ecsd-day__visual--after-content img{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  height:auto!important;
  object-fit:cover;
}
.ecsd-page .ecsd-day__visual.ecsd-day__visual--after-content figcaption{
  padding:9px 12px;
  font-size:12px;
  line-height:1.45;
  color:#667584;
  background:#fff;
}
@media(max-width:720px){
  .ecsd-page .ecsd-itinerary-phase h4{font-size:17px}
  .ecsd-page .ecsd-itinerary-line{font-size:15.5px;line-height:1.72}
  .ecsd-page .ecsd-itinerary-meta{display:block}
  .ecsd-page .ecsd-itinerary-meta span{display:block}
  .ecsd-page .ecsd-itinerary-meta span+span{margin-top:6px}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.3
   Itinerary vertical-flow + softer premium typography fix
   ========================================================= */

/* The older v2.8 content rule uses display:flex, which made
   Morning / Afternoon / Night sit side-by-side. Force a true
   reading flow: one phase after another. */
.ecsd-page--v280 .ecsd-day__content.ecsd-day__content--structured,
.ecsd-page .ecsd-day__content.ecsd-day__content--structured{
  display:block!important;
  align-items:initial!important;
  width:100%!important;
  max-width:980px!important;
  min-width:0!important;
  padding:8px 0 0!important;
}

/* Every itinerary phase occupies its own row. */
.ecsd-page--v280 .ecsd-itinerary-phase,
.ecsd-page .ecsd-itinerary-phase{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0 0 26px!important;
  padding:0!important;
  float:none!important;
  clear:both!important;
}

/* Softer than pure black; strong enough to scan without looking heavy. */
.ecsd-page--v280 .ecsd-itinerary-phase h4,
.ecsd-page .ecsd-itinerary-phase h4{
  margin:0 0 10px!important;
  color:#283541!important;
  font-size:18px!important;
  line-height:1.4!important;
  font-weight:700!important;
  letter-spacing:0!important;
}

/* More readable body copy, slightly larger, less dark. */
.ecsd-page--v280 .ecsd-itinerary-line,
.ecsd-page .ecsd-itinerary-line{
  display:block!important;
  width:100%!important;
  margin:0 0 13px!important;
  color:#3f4d5a!important;
  font-size:16.5px!important;
  line-height:1.78!important;
  font-weight:400!important;
}

/* Time is the visual anchor, but not extra-heavy. */
.ecsd-page--v280 .ecsd-itinerary-line--timed strong,
.ecsd-page .ecsd-itinerary-line--timed strong{
  color:#26333f!important;
  font-weight:700!important;
}

/* Day accordion header: premium dark grey instead of hard black. */
.ecsd-page--v280 .ecsd-day summary h3,
.ecsd-page .ecsd-day summary h3{
  color:#26333f!important;
  font-size:18px!important;
  line-height:1.42!important;
  font-weight:650!important;
}

/* Keep Day 1 visible but less aggressive. */
.ecsd-page--v280 .ecsd-day summary>span,
.ecsd-page .ecsd-day summary>span{
  font-weight:700!important;
}

/* Metadata reads as supporting information, not another heading. */
.ecsd-page--v280 .ecsd-itinerary-meta,
.ecsd-page .ecsd-itinerary-meta{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px 26px!important;
  margin:20px 0 6px!important;
  padding:14px 16px!important;
  color:#526170!important;
  font-size:14.5px!important;
  line-height:1.6!important;
  background:#f8fafb!important;
  border-color:#e4e9ed!important;
}
.ecsd-page .ecsd-itinerary-meta strong{
  color:#344250!important;
  font-weight:650!important;
}

/* The single image stays after the entire day's text. */
.ecsd-page--v280 .ecsd-day__visual.ecsd-day__visual--after-content,
.ecsd-page .ecsd-day__visual.ecsd-day__visual--after-content{
  display:block!important;
  width:100%!important;
  max-width:980px!important;
  height:auto!important;
  margin:28px 0 6px!important;
  float:none!important;
  clear:both!important;
}

/* Avoid legacy image overlay pseudo-elements affecting the new full-width image. */
.ecsd-page--v280 .ecsd-day__visual.ecsd-day__visual--after-content:after{
  display:none!important;
}

/* Make sure the day body itself never turns into the old two-column grid. */
.ecsd-page--v280 .ecsd-day>div.ecsd-day__body.ecsd-day__body--tour-order,
.ecsd-page .ecsd-day>div.ecsd-day__body.ecsd-day__body--tour-order{
  display:block!important;
  grid-template-columns:none!important;
  gap:0!important;
  padding:22px 20px 24px!important;
}

@media(max-width:720px){
  .ecsd-page--v280 .ecsd-itinerary-phase h4,
  .ecsd-page .ecsd-itinerary-phase h4{
    font-size:17px!important;
  }
  .ecsd-page--v280 .ecsd-itinerary-line,
  .ecsd-page .ecsd-itinerary-line{
    font-size:15.5px!important;
    line-height:1.72!important;
  }
  .ecsd-page--v280 .ecsd-day summary h3,
  .ecsd-page .ecsd-day summary h3{
    font-size:16.5px!important;
  }
  .ecsd-page--v280 .ecsd-itinerary-meta,
  .ecsd-page .ecsd-itinerary-meta{
    display:block!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.5
   About / Facilities / Activities source-order reading fix
   ========================================================= */

/* Old renderer used a 2-column grid; it split a title from its paragraph.
   v2.17.5 reads every source row vertically, in the exact saved order. */
.ecsd-page .ecsd-service-list--ordered details>div.ecsd-service-flow,
.ecsd-page--v280 .ecsd-service-list--ordered details>div.ecsd-service-flow{
  display:block!important;
  padding:4px 22px 24px!important;
}

.ecsd-page .ecsd-service-list--ordered .ecsd-service-flow ul{
  display:block!important;
  grid-template-columns:none!important;
}

/* Category heading such as "Sightseeing activities" / "Onboard Activities". */
.ecsd-page .ecsd-service-group{
  margin:20px 0 12px!important;
  padding:0!important;
  color:#344250!important;
  font-size:14px!important;
  line-height:1.45!important;
  font-weight:700!important;
  letter-spacing:.015em!important;
  text-transform:none!important;
}
.ecsd-page .ecsd-service-flow .ecsd-service-group:first-child{
  margin-top:8px!important;
}

/* Individual source item: Kayak in Tra Bau, Swimming Pool, Spa Room... */
.ecsd-page .ecsd-service-item-title{
  margin:18px 0 6px!important;
  padding:0!important;
  color:#293642!important;
  font-size:16px!important;
  line-height:1.45!important;
  font-weight:650!important;
}

/* Body copy is deliberately softer and not bold. */
.ecsd-page .ecsd-service-copy{
  max-width:940px!important;
  margin:0 0 11px!important;
  padding:0!important;
  color:#4b5967!important;
  font-size:15.5px!important;
  line-height:1.75!important;
  font-weight:400!important;
}

/* Source notes remain visible but visually secondary. */
.ecsd-page .ecsd-service-note{
  max-width:940px!important;
  margin:10px 0 14px!important;
  padding:11px 14px!important;
  border-left:3px solid #d8dee5!important;
  background:#f8fafb!important;
  color:#566473!important;
  font-size:14.5px!important;
  line-height:1.65!important;
  font-weight:400!important;
}

/* Accordion header: clear but not heavy black. */
.ecsd-page .ecsd-service-list--ordered summary strong{
  color:#2c3945!important;
  font-weight:650!important;
}
.ecsd-page .ecsd-service-list--ordered summary{
  color:#2c3945!important;
}

/* Prevent any inherited two-column or flex styles from re-ordering rows. */
.ecsd-page .ecsd-service-list--ordered .ecsd-service-flow>*{
  display:block!important;
  width:100%!important;
  float:none!important;
  clear:both!important;
  columns:auto!important;
}

@media(max-width:720px){
  .ecsd-page .ecsd-service-list--ordered details>div.ecsd-service-flow{
    padding:2px 16px 20px!important;
  }
  .ecsd-page .ecsd-service-item-title{
    font-size:15.5px!important;
  }
  .ecsd-page .ecsd-service-copy{
    font-size:15px!important;
    line-height:1.7!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.6
   Peony Cruise schematic route map pilot
   ========================================================= */
.ecsd-route-map{
  margin:24px 0 28px;
  padding:20px;
  border:1px solid #dfe8ea;
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 30px rgba(15,42,55,.05);
}
.ecsd-route-map__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:14px;
}
.ecsd-route-map__eyebrow{
  display:block;
  margin-bottom:4px;
  font-size:11px;
  line-height:1.3;
  font-weight:750;
  letter-spacing:.11em;
  color:#5d7480;
}
.ecsd-route-map__head h3{
  margin:0 0 6px;
  color:#22333d;
  font-size:22px;
  line-height:1.35;
  font-weight:700;
}
.ecsd-route-map__head p{
  max-width:700px;
  margin:0;
  color:#60717e;
  font-size:14.5px;
  line-height:1.6;
}
.ecsd-route-map__badge{
  flex:0 0 auto;
  padding:7px 10px;
  border:1px solid #d7e3e6;
  border-radius:999px;
  background:#f7fbfb;
  color:#647984;
  font-size:11.5px;
  font-weight:650;
  white-space:nowrap;
}
.ecsd-route-map__transfer{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
  padding:10px 13px;
  border-radius:12px;
  background:#f7fafb;
  color:#526471;
  font-size:13px;
}
.ecsd-route-map__transfer strong{color:#30424e;font-weight:700}
.ecsd-route-map__transfer-icon{
  display:inline-grid;
  place-items:center;
  width:26px;height:26px;
  border-radius:50%;
  background:#e4eff1;
  color:#0f766e;
  font-weight:800;
}
.ecsd-route-map__layout{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr);
  gap:18px;
  align-items:stretch;
}
.ecsd-route-map__canvas{
  min-width:0;
  position:relative;
  border-radius:16px;
  overflow:hidden;
}
.ecsd-route-map__canvas svg{
  display:block;
  width:100%;
  height:auto;
}
.ecsd-route-map__islands path{
  fill:#a9c8c4;
  opacity:.58;
}
.ecsd-route-map__water-label{
  fill:#6a8791;
  font-size:24px;
  font-weight:650;
  letter-spacing:.08em;
  opacity:.58;
}
.ecsd-route-map__land-label{
  fill:#54726e;
  font-size:20px;
  font-weight:700;
  letter-spacing:.08em;
  opacity:.64;
}
.ecsd-route-map__route{
  filter:drop-shadow(0 2px 2px rgba(12,54,60,.12));
}
.ecsd-route-map__stop-ring{
  fill:#fff;
  stroke:#607d86;
  stroke-width:2;
}
.ecsd-route-map__stop-dot{
  fill:#fff;
}
.ecsd-route-map__stop-number{
  fill:#344c56;
  font-size:8.5px;
  font-weight:800;
}
.ecsd-route-map__stop-label{
  fill:#243944;
  font-size:14px;
  font-weight:700;
  paint-order:stroke;
  stroke:#fff;
  stroke-width:5px;
  stroke-linejoin:round;
}
.ecsd-route-map__note{
  position:absolute;
  left:12px;
  bottom:10px;
  padding:5px 8px;
  border-radius:8px;
  background:rgba(255,255,255,.84);
  color:#6d7e88;
  font-size:10.5px;
  backdrop-filter:blur(3px);
}
.ecsd-route-map__days{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ecsd-route-map__day{
  padding:13px 14px;
  border:1px solid #e3eaec;
  border-radius:14px;
  background:#fbfdfd;
}
.ecsd-route-map__dayhead{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ecsd-route-map__dayhead span{
  width:max-content;
  padding:4px 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--route-day-color) 12%,white);
  color:var(--route-day-color);
  font-size:11px;
  font-weight:750;
}
.ecsd-route-map__dayhead strong{
  color:#334854;
  font-size:13.5px;
  line-height:1.55;
  font-weight:650;
}
.ecsd-route-map__chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}
.ecsd-route-map__chips span{
  padding:4px 7px;
  border:1px solid #e1e8ea;
  border-radius:7px;
  background:#fff;
  color:#61727d;
  font-size:10.5px;
  font-weight:600;
}
.ecsd-route-map__legend{
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
  padding:4px 2px 0;
  color:#6a7b84;
  font-size:11px;
}
.ecsd-route-map__legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ecsd-route-map__legend i{
  width:18px;height:4px;
  border-radius:999px;
}
@media(max-width:920px){
  .ecsd-route-map__layout{grid-template-columns:1fr}
  .ecsd-route-map__days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .ecsd-route-map__legend{grid-column:1/-1}
}
@media(max-width:640px){
  .ecsd-route-map{padding:14px;margin:18px 0 22px;border-radius:16px}
  .ecsd-route-map__head{display:block}
  .ecsd-route-map__badge{display:inline-block;margin-top:10px}
  .ecsd-route-map__transfer{align-items:flex-start}
  .ecsd-route-map__days{grid-template-columns:1fr}
  .ecsd-route-map__water-label{font-size:19px}
  .ecsd-route-map__land-label{font-size:16px}
  .ecsd-route-map__stop-label{font-size:12px}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.7
   Cleaner route overview map for Peony pilot
   ========================================================= */
.ecsd-route-map--clean{
  margin:24px 0 28px;
  padding:22px;
  border:1px solid #dfe9ea;
  border-radius:22px;
  background:#fff;
  box-shadow:0 10px 24px rgba(24,54,66,.045);
}
.ecsd-route-map--clean .ecsd-route-map__head{
  display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px;
}
.ecsd-route-map--clean .ecsd-route-map__eyebrow{
  display:block;margin-bottom:6px;font-size:11px;line-height:1.3;font-weight:800;letter-spacing:.12em;color:#667b84;
}
.ecsd-route-map--clean .ecsd-route-map__head h3{
  margin:0 0 6px;color:#263842;font-size:23px;line-height:1.35;font-weight:700;
}
.ecsd-route-map--clean .ecsd-route-map__head p{
  margin:0;max-width:680px;color:#60717d;font-size:14.5px;line-height:1.65;
}
.ecsd-route-map--clean .ecsd-route-map__meta{
  display:flex;flex-direction:column;gap:8px;min-width:240px;
}
.ecsd-route-map--clean .ecsd-route-map__meta span{
  padding:8px 11px;border:1px solid #dde7e8;border-radius:999px;background:#f8fbfb;color:#5d7079;font-size:12px;font-weight:650;white-space:nowrap;
}
.ecsd-route-map--clean .ecsd-route-map__transfer{
  display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 13px;border-radius:12px;background:#f7fafb;color:#556772;font-size:13px;
}
.ecsd-route-map--clean .ecsd-route-map__transfer-icon{
  display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e3efef;color:#0f766e;font-weight:800;
}
.ecsd-route-map--clean .ecsd-route-map__layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.72fr);gap:18px;align-items:start;}
.ecsd-route-map--clean .ecsd-route-map__canvas{position:relative;border-radius:18px;overflow:hidden;min-width:0;}
.ecsd-route-map--clean .ecsd-route-map__canvas svg{display:block;width:100%;height:auto;}
.ecsd-route-map--clean .ecsd-route-map__islands path{fill:#bcd3d0;opacity:.56;stroke:#829e9b;stroke-width:1.2;}
.ecsd-route-map--clean .ecsd-route-map__water-label{fill:#6f858c;font-size:25px;font-weight:650;letter-spacing:.08em;opacity:.54;}
.ecsd-route-map--clean .ecsd-route-map__land-label{fill:#6b817b;font-size:21px;font-weight:700;letter-spacing:.08em;opacity:.6;}
.ecsd-route-map--clean .ecsd-route-map__port-ring{fill:#fff;stroke:#5f767e;stroke-width:2.4;}
.ecsd-route-map--clean .ecsd-route-map__port-dot{fill:#eff6f5;stroke:#5f767e;stroke-width:1.4;}
.ecsd-route-map--clean .ecsd-route-map__anchor{fill:none;stroke:#35525d;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.ecsd-route-map--clean .ecsd-route-map__day-number{font-size:11px;font-weight:800;letter-spacing:.01em;}
.ecsd-route-map--clean .ecsd-route-map__stop-label{fill:#2b4049;font-size:15px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;}
.ecsd-route-map--clean .ecsd-route-map__stop-sub{fill:#667b84;font-size:11px;font-weight:650;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;}
.ecsd-route-map--clean .ecsd-route-map__note{position:absolute;left:14px;bottom:12px;padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.86);color:#6b7d85;font-size:10.5px;}
.ecsd-route-map--clean .ecsd-route-map__days{display:flex;flex-direction:column;gap:10px;}
.ecsd-route-map--clean .ecsd-route-map__day{padding:14px 14px;border:1px solid #e1eaeb;border-radius:14px;background:#fbfdfd;}
.ecsd-route-map--clean .ecsd-route-map__dayhead{display:flex;flex-direction:column;gap:6px;}
.ecsd-route-map--clean .ecsd-route-map__dayhead span{width:max-content;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--route-day-color) 12%,white);color:var(--route-day-color);font-size:11px;font-weight:800;}
.ecsd-route-map--clean .ecsd-route-map__dayhead strong{color:#334854;font-size:15px;line-height:1.4;font-weight:700;}
.ecsd-route-map--clean .ecsd-route-map__dayhead small{color:#687c86;font-size:12.5px;line-height:1.55;}
.ecsd-route-map--clean .ecsd-route-map__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.ecsd-route-map--clean .ecsd-route-map__chips span{padding:4px 8px;border:1px solid #e1e8ea;border-radius:999px;background:#fff;color:#61727d;font-size:10.5px;font-weight:650;}
@media(max-width:940px){
  .ecsd-route-map--clean .ecsd-route-map__head{display:block;}
  .ecsd-route-map--clean .ecsd-route-map__meta{flex-direction:row;flex-wrap:wrap;min-width:0;margin-top:12px;}
  .ecsd-route-map--clean .ecsd-route-map__layout{grid-template-columns:1fr;}
  .ecsd-route-map--clean .ecsd-route-map__days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  .ecsd-route-map--clean{padding:14px;border-radius:16px;}
  .ecsd-route-map--clean .ecsd-route-map__head h3{font-size:20px;}
  .ecsd-route-map--clean .ecsd-route-map__days{grid-template-columns:1fr;}
  .ecsd-route-map--clean .ecsd-route-map__water-label{font-size:19px;}
  .ecsd-route-map--clean .ecsd-route-map__land-label{font-size:16px;}
  .ecsd-route-map--clean .ecsd-route-map__stop-label{font-size:12.5px;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.8
   Cartographic route map pilot for Peony Cruise
   ========================================================= */
.ecsd-route-map--carto{
  margin:24px 0 28px;
  padding:22px;
  border:1px solid #dbe5ea;
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 26px rgba(11,39,64,.05);
}
.ecsd-route-map--carto .ecsd-route-map__head{
  display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px;
}
.ecsd-route-map--carto .ecsd-route-map__eyebrow{
  display:block;margin-bottom:6px;font-size:11px;line-height:1.3;font-weight:800;letter-spacing:.12em;color:#667b84;
}
.ecsd-route-map--carto .ecsd-route-map__head h3{
  margin:0 0 6px;color:#243740;font-size:23px;line-height:1.35;font-weight:700;
}
.ecsd-route-map--carto .ecsd-route-map__head p{
  margin:0;max-width:680px;color:#60707b;font-size:14.5px;line-height:1.65;
}
.ecsd-route-map--carto .ecsd-route-map__meta{display:flex;flex-direction:column;gap:8px;min-width:245px;}
.ecsd-route-map--carto .ecsd-route-map__meta span{
  padding:8px 11px;border:1px solid #dbe5ea;border-radius:999px;background:#f8fbfc;color:#5f717c;font-size:12px;font-weight:650;white-space:nowrap;
}
.ecsd-route-map--carto .ecsd-route-map__layout{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(280px,.72fr);gap:18px;align-items:start;}
.ecsd-route-map--carto .ecsd-route-map__canvas{position:relative;border-radius:18px;overflow:hidden;min-width:0;background:#0b2740;}
.ecsd-route-map--carto .ecsd-route-map__canvas svg{display:block;width:100%;height:auto;}
.ecsd-route-map--carto .ecsd-route-map__land path{fill:#7fa5d2;fill-opacity:.9;stroke:#9fc0e1;stroke-opacity:.65;stroke-width:1.1;}
.ecsd-route-map--carto .ecsd-route-map__islets circle{fill:#89add9;fill-opacity:.82;}
.ecsd-route-map--carto .ecsd-route-map__water-label{fill:#ffffff;font-size:20px;font-weight:750;letter-spacing:.04em;opacity:.95;}
.ecsd-route-map--carto .ecsd-route-map__water-label--small{font-size:16px;}
.ecsd-route-map--carto .ecsd-route-map__water-label--big{font-size:28px;}
.ecsd-route-map--carto .ecsd-route-map__land-label{fill:#b7d0ec;font-size:24px;font-weight:750;letter-spacing:.03em;opacity:.88;}
.ecsd-route-map--carto .ecsd-route-map__city-label{fill:#d8e8fb;font-size:14px;font-weight:650;letter-spacing:.03em;}
.ecsd-route-map--carto .ecsd-route-map__poi-ring{fill:#fff;stroke:#dbe7f3;stroke-width:2.2;}
.ecsd-route-map--carto .ecsd-route-map__poi-core{fill:#0b2740;stroke:#fff;stroke-width:1;}
.ecsd-route-map--carto .ecsd-route-map__poi-anchor{fill:none;stroke:#fff;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;}
.ecsd-route-map--carto .ecsd-route-map__poi-label{fill:#fff;font-size:14px;font-weight:700;paint-order:stroke;stroke:#0b2740;stroke-width:5px;stroke-linejoin:round;}
.ecsd-route-map--carto .ecsd-route-map__poi-daynum{font-size:10px;font-weight:800;letter-spacing:.01em;}
.ecsd-route-map--carto .ecsd-route-map__legend-box{fill:rgba(8,28,47,.75);stroke:rgba(255,255,255,.28);stroke-width:1.2;backdrop-filter:blur(4px);}
.ecsd-route-map--carto .ecsd-route-map__legend-title{fill:#fff;font-size:17px;font-weight:700;}
.ecsd-route-map--carto .ecsd-route-map__legend-text{fill:#d8e7f8;font-size:12.5px;font-weight:600;}
.ecsd-route-map--carto .ecsd-route-map__legend-port{fill:#fff;stroke:#dbe7f3;stroke-width:2.2;}
.ecsd-route-map--carto .ecsd-route-map__note{position:absolute;left:14px;bottom:12px;padding:6px 9px;border-radius:8px;background:rgba(255,255,255,.1);color:#d8e7f8;font-size:10.5px;backdrop-filter:blur(3px);}
.ecsd-route-map--carto .ecsd-route-map__days{display:flex;flex-direction:column;gap:10px;}
.ecsd-route-map--carto .ecsd-route-map__daycard{padding:14px 14px;border:1px solid #e1eaee;border-radius:14px;background:#fbfcfd;}
.ecsd-route-map--carto .ecsd-route-map__daytop{display:flex;flex-direction:column;gap:7px;}
.ecsd-route-map--carto .ecsd-route-map__daypill{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;}
.ecsd-route-map--carto .ecsd-route-map__daytop strong{color:#2d4049;font-size:15px;line-height:1.4;font-weight:700;}
.ecsd-route-map--carto .ecsd-route-map__daycard p{margin:7px 0 0;color:#687983;font-size:12.8px;line-height:1.55;}
.ecsd-route-map--carto .ecsd-route-map__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.ecsd-route-map--carto .ecsd-route-map__chips span{padding:4px 8px;border:1px solid #e1e8ea;border-radius:999px;background:#fff;color:#61727d;font-size:10.5px;font-weight:650;}
@media(max-width:940px){
  .ecsd-route-map--carto .ecsd-route-map__head{display:block;}
  .ecsd-route-map--carto .ecsd-route-map__meta{flex-direction:row;flex-wrap:wrap;min-width:0;margin-top:12px;}
  .ecsd-route-map--carto .ecsd-route-map__layout{grid-template-columns:1fr;}
  .ecsd-route-map--carto .ecsd-route-map__days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  .ecsd-route-map--carto{padding:14px;border-radius:16px;}
  .ecsd-route-map--carto .ecsd-route-map__head h3{font-size:20px;}
  .ecsd-route-map--carto .ecsd-route-map__days{grid-template-columns:1fr;}
  .ecsd-route-map--carto .ecsd-route-map__water-label{font-size:15px;}
  .ecsd-route-map--carto .ecsd-route-map__water-label--big{font-size:20px;}
  .ecsd-route-map--carto .ecsd-route-map__land-label{font-size:18px;}
  .ecsd-route-map--carto .ecsd-route-map__poi-label{font-size:11.5px;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.9
   Real map route view using Leaflet tiles
   ========================================================= */
.ecsd-route-map--leaflet{
  margin:24px 0 28px;
  padding:22px;
  border:1px solid #dbe5ea;
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 26px rgba(11,39,64,.05);
}
.ecsd-route-map--leaflet .ecsd-route-map__head{
  display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px;
}
.ecsd-route-map--leaflet .ecsd-route-map__eyebrow{
  display:block;margin-bottom:6px;font-size:11px;line-height:1.3;font-weight:800;letter-spacing:.12em;color:#667b84;
}
.ecsd-route-map--leaflet .ecsd-route-map__head h3{margin:0 0 6px;color:#243740;font-size:23px;line-height:1.35;font-weight:700;}
.ecsd-route-map--leaflet .ecsd-route-map__head p{margin:0;max-width:680px;color:#60707b;font-size:14.5px;line-height:1.65;}
.ecsd-route-map--leaflet .ecsd-route-map__meta{display:flex;flex-direction:column;gap:8px;min-width:245px;}
.ecsd-route-map--leaflet .ecsd-route-map__meta span{padding:8px 11px;border:1px solid #dbe5ea;border-radius:999px;background:#f8fbfc;color:#5f717c;font-size:12px;font-weight:650;white-space:nowrap;}
.ecsd-route-map--leaflet .ecsd-route-map__transfer{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 13px;border-radius:12px;background:#f7fafb;color:#556772;font-size:13px;}
.ecsd-route-map--leaflet .ecsd-route-map__transfer-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e3efef;color:#0f766e;font-weight:800;}
.ecsd-route-map--leaflet .ecsd-route-map__layout{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(280px,.72fr);gap:18px;align-items:start;}
.ecsd-route-map--leaflet .ecsd-route-map__canvaswrap{position:relative;min-width:0;}
.ecsd-lf-map{height:520px;border-radius:18px;overflow:hidden;border:1px solid #d9e4e9;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);}
.ecsd-lf-map .leaflet-control-attribution{font-size:10px;}
.ecsd-map-divicon{background:transparent;border:none;}
.ecsd-map-pin{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid #ef4444;color:#ef4444;font-size:11px;font-weight:800;box-shadow:0 3px 10px rgba(0,0,0,.18);}
.ecsd-map-pin--port{border-color:#1f2937;color:#1f2937;font-size:14px;}
.ecsd-map-pin--sleep{border-color:#0f766e;color:#0f766e;}
.ecsd-route-map--leaflet .ecsd-route-map__mapnote{position:absolute;left:14px;bottom:12px;padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.92);color:#60707a;font-size:11px;box-shadow:0 2px 8px rgba(0,0,0,.08);z-index:500;}
.ecsd-route-map--leaflet .ecsd-route-map__days{display:flex;flex-direction:column;gap:10px;}
.ecsd-route-map--leaflet .ecsd-route-map__daycard{padding:14px 14px;border:1px solid #e1eaee;border-radius:14px;background:#fbfcfd;}
.ecsd-route-map--leaflet .ecsd-route-map__daytop{display:flex;flex-direction:column;gap:7px;}
.ecsd-route-map--leaflet .ecsd-route-map__daypill{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;}
.ecsd-route-map--leaflet .ecsd-route-map__daytop strong{color:#2d4049;font-size:15px;line-height:1.4;font-weight:700;}
.ecsd-route-map--leaflet .ecsd-route-map__daycard p{margin:7px 0 0;color:#687983;font-size:12.8px;line-height:1.55;}
.ecsd-route-map--leaflet .ecsd-route-map__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.ecsd-route-map--leaflet .ecsd-route-map__chips span{padding:4px 8px;border:1px solid #e1e8ea;border-radius:999px;background:#fff;color:#61727d;font-size:10.5px;font-weight:650;}
@media(max-width:940px){
  .ecsd-route-map--leaflet .ecsd-route-map__head{display:block;}
  .ecsd-route-map--leaflet .ecsd-route-map__meta{flex-direction:row;flex-wrap:wrap;min-width:0;margin-top:12px;}
  .ecsd-route-map--leaflet .ecsd-route-map__layout{grid-template-columns:1fr;}
  .ecsd-route-map--leaflet .ecsd-route-map__days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .ecsd-lf-map{height:460px;}
}
@media(max-width:640px){
  .ecsd-route-map--leaflet{padding:14px;border-radius:16px;}
  .ecsd-route-map--leaflet .ecsd-route-map__head h3{font-size:20px;}
  .ecsd-route-map--leaflet .ecsd-route-map__days{grid-template-columns:1fr;}
  .ecsd-lf-map{height:360px;}
}


/* v2.17.10 same-origin map tile proxy diagnostic */
.ecsd-route-map__tilewarning{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  z-index:650;max-width:330px;padding:12px 15px;border-radius:12px;
  background:rgba(255,255,255,.95);box-shadow:0 4px 18px rgba(0,0,0,.12);
  color:#52636d;font-size:12.5px;line-height:1.55;text-align:center;
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.11
   Leaflet hidden-panel + tile URL fix
   ========================================================= */
.ecsd-route-map--leaflet .ecsd-lf-map{
  background:#dfe9eb!important;
}
.ecsd-route-map__tilewarning{
  position:absolute;
  left:50%;
  top:18px;
  transform:translateX(-50%);
  z-index:700;
  max-width:78%;
  padding:8px 12px;
  border:1px solid #ead8a8;
  border-radius:10px;
  background:rgba(255,250,235,.95);
  color:#6c5a2d;
  font-size:11.5px;
  line-height:1.45;
  box-shadow:0 4px 14px rgba(0,0,0,.08);
  pointer-events:none;
}
.ecsd-route-map--leaflet .leaflet-pane svg,
.ecsd-route-map--leaflet .leaflet-overlay-pane svg{
  overflow:visible;
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.12
   Map marker clarity upgrade
   ========================================================= */
.ecsd-route-map--leaflet .ecsd-route-map__legendoverlay{
  position:absolute;top:14px;right:14px;z-index:500;display:flex;flex-wrap:wrap;gap:8px;
  padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.92);box-shadow:0 3px 12px rgba(0,0,0,.08);
}
.ecsd-route-map--leaflet .ecsd-route-map__legendoverlay span{
  display:inline-flex;align-items:center;gap:6px;color:#495b66;font-size:11px;font-weight:700;
}
.ecsd-route-map--leaflet .ecsd-route-map__legenddot{
  width:11px;height:11px;border-radius:50%;display:inline-block;border:2px solid transparent;
}
.ecsd-route-map--leaflet .ecsd-route-map__legenddot--start{background:#1f2937;border-color:#ffffff;box-shadow:0 0 0 1px #1f2937;}
.ecsd-route-map--leaflet .ecsd-route-map__legenddot--day{background:#ef4444;border-color:#ffffff;box-shadow:0 0 0 1px #ef4444;}
.ecsd-route-map--leaflet .ecsd-route-map__legenddot--night{background:#0f766e;border-color:#ffffff;box-shadow:0 0 0 1px #0f766e;}
.ecsd-map-divicon{background:transparent!important;border:none!important;}
.ecsd-map-marker{position:relative;display:flex;align-items:center;gap:8px;white-space:nowrap;font-family:inherit;}
.ecsd-map-marker__pin{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff;border:3px solid #ef4444;
  color:#ef4444;font-size:15px;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.2);position:relative;z-index:2;
}
.ecsd-map-marker__pin svg{width:18px;height:18px;display:block;}
.ecsd-map-marker__tag{
  position:absolute;top:-12px;left:0;padding:3px 8px;border-radius:999px;background:#fff;font-size:10px;font-weight:800;letter-spacing:.04em;
  box-shadow:0 2px 8px rgba(0,0,0,.12);z-index:3;
}
.ecsd-map-marker__label{
  padding:8px 10px 8px 12px;border-radius:999px;background:rgba(255,255,255,.96);color:#22323a;font-size:12px;font-weight:700;
  box-shadow:0 3px 12px rgba(0,0,0,.12);line-height:1.2;
}
.ecsd-map-marker--start .ecsd-map-marker__pin{width:42px;height:42px;border-color:#1f2937;color:#1f2937;}
.ecsd-map-marker--start .ecsd-map-marker__tag{color:#1f2937;}
.ecsd-map-marker--night .ecsd-map-marker__pin{border-color:#0f766e;color:#0f766e;}
.ecsd-map-marker--night .ecsd-map-marker__tag{color:#0f766e;}
.ecsd-map-marker--day .ecsd-map-marker__tag{color:#ef4444;}
.ecsd-route-map--leaflet .ecsd-route-map__head p{max-width:760px;}
@media(max-width:640px){
  .ecsd-route-map--leaflet .ecsd-route-map__legendoverlay{left:14px;right:auto;max-width:calc(100% - 28px);}  
  .ecsd-map-marker__label{font-size:11px;padding:7px 9px 7px 10px;}
  .ecsd-map-marker__pin{width:32px;height:32px;font-size:13px;}
  .ecsd-map-marker--start .ecsd-map-marker__pin{width:36px;height:36px;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.13
   Decluttered map labels and clearer marker placement
   ========================================================= */
.ecsd-map-divicon{background:transparent!important;border:none!important;overflow:visible!important;}
.ecsd-map-marker{position:relative;width:0;height:0;font-family:inherit;}
.ecsd-map-marker__pin{
  position:absolute;left:0;top:0;transform:translate(-50%,-50%);
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:3px solid #ef4444;color:#ef4444;font-size:14px;font-weight:800;
  box-shadow:0 4px 12px rgba(0,0,0,.18);z-index:3;
}
.ecsd-map-marker__pin svg{width:18px;height:18px;display:block;}
.ecsd-map-marker__label{
  position:absolute;left:0;top:0;transform:translate(18px,-16px);
  display:flex;flex-direction:column;gap:1px;min-width:84px;max-width:150px;
  padding:7px 10px;border-radius:14px;background:rgba(255,255,255,.96);
  box-shadow:0 4px 14px rgba(0,0,0,.14);line-height:1.15;z-index:2;
}
.ecsd-map-marker__label strong{color:#243640;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}
.ecsd-map-marker__label em{color:#243640;font-size:12px;font-weight:700;font-style:normal;}
.ecsd-map-marker--start .ecsd-map-marker__pin{width:40px;height:40px;border-color:#1f2937;color:#1f2937;}
.ecsd-map-marker--start .ecsd-map-marker__label{transform:translate(22px,-52px);min-width:138px;max-width:178px;}
.ecsd-map-marker--night .ecsd-map-marker__pin{border-color:#0f766e;color:#0f766e;}
.ecsd-map-marker--night .ecsd-map-marker__label{transform:translate(18px,-22px);min-width:120px;}
.ecsd-map-marker--tra-bau .ecsd-map-marker__label{transform:translate(16px,-44px);min-width:88px;}
.ecsd-map-marker--viet-hai-village .ecsd-map-marker__label{transform:translate(18px,10px);min-width:110px;}
.ecsd-map-marker--trung-trang-cave .ecsd-map-marker__label{transform:translate(-130px,8px);min-width:116px;}
.ecsd-route-map--leaflet .ecsd-route-map__legendoverlay{gap:10px;padding:8px 12px;}
.ecsd-route-map--leaflet .ecsd-route-map__legendoverlay span{font-size:10.5px;}
@media(max-width:940px){
  .ecsd-map-marker__label{max-width:126px;}
}
@media(max-width:640px){
  .ecsd-map-marker__pin{width:30px;height:30px;font-size:12px;}
  .ecsd-map-marker--start .ecsd-map-marker__pin{width:34px;height:34px;}
  .ecsd-map-marker__label{padding:6px 8px;min-width:72px;max-width:112px;}
  .ecsd-map-marker__label strong{font-size:9px;}
  .ecsd-map-marker__label em{font-size:11px;}
  .ecsd-map-marker--start .ecsd-map-marker__label{transform:translate(18px,-46px);min-width:110px;max-width:140px;}
  .ecsd-map-marker--night .ecsd-map-marker__label{transform:translate(14px,-20px);}
  .ecsd-map-marker--tra-bau .ecsd-map-marker__label{transform:translate(14px,-42px);}
  .ecsd-map-marker--viet-hai-village .ecsd-map-marker__label{transform:translate(14px,8px);}
  .ecsd-map-marker--trung-trang-cave .ecsd-map-marker__label{transform:translate(-104px,8px);}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.14
   Itinerary day header prominence upgrade
   ========================================================= */
.ecsd-itinerary .ecsd-days{width:min(1120px,100%);}
.ecsd-itinerary .ecsd-day{border:1px solid #e3e8ec;border-radius:20px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.04);overflow:hidden;margin-bottom:14px;}
.ecsd-itinerary .ecsd-day summary{
  list-style:none;display:grid;grid-template-columns:56px minmax(0,1fr) 20px;align-items:center;gap:16px;
  padding:18px 22px;cursor:pointer;
}
.ecsd-itinerary .ecsd-day summary::-webkit-details-marker{display:none;}
.ecsd-itinerary .ecsd-day summary > span:not(.ecsd-day__icon){display:none;}
.ecsd-itinerary .ecsd-day__icon{
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:0 0 46px;
  background:linear-gradient(180deg,#ee8a3d 0%,#dd7a2e 100%);color:#fff;box-shadow:0 8px 18px rgba(221,122,46,.22);
}
.ecsd-itinerary .ecsd-day__icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.ecsd-itinerary .ecsd-day__summary{min-width:0;display:flex;flex-direction:column;gap:4px;}
.ecsd-itinerary .ecsd-day__summary b{
  display:block;margin:0;color:#c2410c;font-size:18px;line-height:1.15;font-weight:800;letter-spacing:-.01em;
}
.ecsd-itinerary .ecsd-day__summary h3{
  margin:0;color:#24323d;font-size:27px;line-height:1.3;font-weight:800;letter-spacing:-.02em;
}
.ecsd-itinerary .ecsd-day summary > svg{width:18px;height:18px;color:#6b7280;justify-self:end;transition:transform .2s ease;}
.ecsd-itinerary .ecsd-day[open] summary > svg{transform:rotate(180deg);}
.ecsd-itinerary .ecsd-day > div{padding:0 22px 22px 94px;}
.ecsd-itinerary .ecsd-day__body--tour-order{padding-top:4px;}
@media (max-width: 900px){
  .ecsd-itinerary .ecsd-day summary{grid-template-columns:50px minmax(0,1fr) 18px;gap:14px;padding:16px 18px;}
  .ecsd-itinerary .ecsd-day__icon{width:42px;height:42px;}
  .ecsd-itinerary .ecsd-day__icon svg{width:20px;height:20px;}
  .ecsd-itinerary .ecsd-day__summary b{font-size:16px;}
  .ecsd-itinerary .ecsd-day__summary h3{font-size:21px;}
  .ecsd-itinerary .ecsd-day > div{padding:0 18px 20px 82px;}
}
@media (max-width: 640px){
  .ecsd-itinerary .ecsd-day summary{grid-template-columns:44px minmax(0,1fr) 16px;gap:12px;padding:14px 14px;}
  .ecsd-itinerary .ecsd-day__icon{width:38px;height:38px;}
  .ecsd-itinerary .ecsd-day__icon svg{width:18px;height:18px;}
  .ecsd-itinerary .ecsd-day__summary b{font-size:15px;}
  .ecsd-itinerary .ecsd-day__summary h3{font-size:17px;line-height:1.35;}
  .ecsd-itinerary .ecsd-day > div{padding:0 14px 18px 70px;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.15
   Brand-wide red/white button consistency
   ========================================================= */
:root{
  --ec-brand-red:#ed1c24;
  --ec-brand-red-dark:#cf1520;
  --ec-brand-red-soft:#fff4f5;
}

/* Primary CTA system */
.ecsd-btn,
.ecsd-itinerary-tabs button,
.ecsd-ratefinder button,
.ecsd-mobilebar button{
  transition:all .2s ease;
}
.ecsd-btn--primary,
.ecsd-ratefinder button,
.ecsd-mobilebar button{
  background:var(--ec-brand-red)!important;
  border:1px solid var(--ec-brand-red)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(237,28,36,.16);
}
.ecsd-btn--primary:hover,
.ecsd-ratefinder button:hover,
.ecsd-mobilebar button:hover{
  background:var(--ec-brand-red-dark)!important;
  border-color:var(--ec-brand-red-dark)!important;
  color:#fff!important;
  transform:translateY(-1px);
}

/* Secondary / outline actions */
.ecsd-btn--outline,
.ecsd-btn--soft{
  background:#fff!important;
  border:1px solid var(--ec-brand-red)!important;
  color:var(--ec-brand-red)!important;
  box-shadow:none!important;
}
.ecsd-btn--outline:hover,
.ecsd-btn--soft:hover{
  background:var(--ec-brand-red-soft)!important;
  border-color:var(--ec-brand-red-dark)!important;
  color:var(--ec-brand-red-dark)!important;
}
.ecsd-btn--outline svg,
.ecsd-btn--soft svg{
  color:currentColor;
}

/* Inline action buttons / links that should feel branded */
.ecsd-cabin__detailbtn{
  color:var(--ec-brand-red)!important;
  font-weight:800;
}
.ecsd-cabin__detailbtn:hover{
  color:var(--ec-brand-red-dark)!important;
}

/* Itinerary tabs */
.ecsd-itinerary-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.ecsd-itinerary-tabs button{
  border:1px solid #e5e7eb!important;
  background:#fff!important;
  color:#5b6570!important;
  border-radius:999px!important;
  font-weight:800!important;
}
.ecsd-itinerary-tabs button:hover{
  border-color:var(--ec-brand-red)!important;
  color:var(--ec-brand-red)!important;
  background:#fff!important;
}
.ecsd-itinerary-tabs button.is-active{
  background:var(--ec-brand-red)!important;
  border-color:var(--ec-brand-red)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(237,28,36,.15)!important;
}

/* Day icons match brand */
.ecsd-itinerary .ecsd-day__icon{
  background:linear-gradient(180deg,#ff4350 0%, #ed1c24 100%)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(237,28,36,.22)!important;
}
.ecsd-itinerary .ecsd-day__summary b{
  color:var(--ec-brand-red)!important;
}

/* Gallery / utility buttons */
.ecsd-topgallery__view,
.ecsd-cabin__photos{
  background:rgba(237,28,36,.94)!important;
  color:#fff!important;
}
.ecsd-topgallery__rail button:hover,
.ecsd-topgallery__rail button.is-active,
.ecsd-gallery-modal__rail button.is-active{
  border-color:var(--ec-brand-red)!important;
}

/* Detail tab underline stays red and active text feels stronger */
.ecsd-detail-tabs a:hover,
.ecsd-detail-tabs a.is-active{
  color:#111827!important;
}
.ecsd-detail-tabs a.is-active:after,
.ecsd-detail-tabs a:hover:after{
  background:var(--ec-brand-red)!important;
}

/* Expert / compare / ask buttons remain consistent */
.ecsd-expert-strip .ecsd-btn,
.ecsd-transfer-card .ecsd-btn,
.ecsd-finalcta .ecsd-btn,
.ecsd-askbox .ecsd-btn,
.ecsd-booking-submit{
  border-radius:10px;
}

@media (max-width:640px){
  .ecsd-itinerary-tabs{gap:8px;}
  .ecsd-itinerary-tabs button{padding:10px 14px!important;font-size:13px!important;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.16
   Brand button/icon color correction
   ========================================================= */
.ecsd-itinerary .ecsd-day__icon,
.ecsd-itinerary .ecsd-day__icon svg,
.ecsd-itinerary .ecsd-day__icon svg *{
  color:#fff !important;
  stroke:#fff !important;
  fill:none !important;
}
.ecsd-itinerary .ecsd-day__icon{
  background:linear-gradient(180deg,#ff3b45 0%, #ed1c24 100%) !important;
  border:1px solid #ed1c24 !important;
}

/* Force all primary actions to EcoSapa red */
.ecsd-ratefinder > button,
.ecsd-tripcard__cta,
.ecsd-bprate__book,
.ecsd-cabin-popup__book,
.ecsd-booking-submit,
.ecsd-mobilebar button,
.ecsd-btn.ecsd-btn--primary{
  background:#ed1c24 !important;
  border:1px solid #ed1c24 !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(237,28,36,.16) !important;
}
.ecsd-ratefinder > button:hover,
.ecsd-tripcard__cta:hover,
.ecsd-bprate__book:hover,
.ecsd-cabin-popup__book:hover,
.ecsd-booking-submit:hover,
.ecsd-mobilebar button:hover,
.ecsd-btn.ecsd-btn--primary:hover{
  background:#cf1520 !important;
  border-color:#cf1520 !important;
  color:#fff !important;
}

/* Remove old orange tone from the floating price / rate cards */
.ecsd-page--v2121 .ecsd-bprate__book,
.ecsd-page--v2121 .ecsd-bprate__book:hover,
.ecsd-page--v2121 .ecsd-tripcard__cta,
.ecsd-page--v2121 .ecsd-tripcard__cta:hover{
  background:#ed1c24 !important;
  border-color:#ed1c24 !important;
  color:#fff !important;
}

.ecsd-btn--outline{
  border-color:#ed1c24 !important;
  color:#ed1c24 !important;
}
.ecsd-btn--outline:hover{
  border-color:#cf1520 !important;
  color:#cf1520 !important;
  background:#fff4f5 !important;
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.17
   Compact rate finder + final CTA red consistency
   ========================================================= */
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder,
body .ecsd-ratefinder{
  grid-template-columns: 1fr 1.08fr 1fr 220px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: none !important;
}
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder label,
body .ecsd-ratefinder label{
  min-height: 62px !important;
  padding: 10px 14px !important;
  gap: 10px !important;
  background: #fff !important;
}
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder label > span svg,
body .ecsd-ratefinder label > span svg{
  width: 18px !important;
  height: 18px !important;
}
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder small,
body .ecsd-ratefinder small{
  font-size: 10px !important;
  letter-spacing: .05em !important;
  line-height: 1.1 !important;
}
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder select,
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder input,
body .ecsd-ratefinder select,
body .ecsd-ratefinder input{
  font-size: 15px !important;
  padding-top: 2px !important;
}
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder > button,
body .ecsd-ratefinder > button,
body[class*="ecosapa-cruise-detail"] .ecsd-tripcard__cta,
body .ecsd-tripcard__cta{
  min-height: 62px !important;
  padding: 0 18px !important;
  background: #ed1c24 !important;
  border: 1px solid #ed1c24 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  border-radius: 0 12px 12px 0 !important;
  box-shadow: none !important;
}
body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder > button:hover,
body .ecsd-ratefinder > button:hover,
body[class*="ecosapa-cruise-detail"] .ecsd-tripcard__cta:hover,
body .ecsd-tripcard__cta:hover{
  background: #cf1520 !important;
  border-color: #cf1520 !important;
  color: #fff !important;
}
@media (max-width: 900px){
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder,
  body .ecsd-ratefinder{
    grid-template-columns: 1fr 1fr !important;
  }
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder label,
  body .ecsd-ratefinder label{
    min-height: 58px !important;
    padding: 9px 12px !important;
  }
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder > button,
  body .ecsd-ratefinder > button{
    grid-column: 1 / -1 !important;
    min-height: 50px !important;
    border-radius: 0 0 12px 12px !important;
  }
}
@media (max-width: 640px){
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder label,
  body .ecsd-ratefinder label{
    min-height: 54px !important;
    padding: 8px 10px !important;
  }
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder small,
  body .ecsd-ratefinder small{
    font-size: 9px !important;
  }
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder select,
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder input,
  body .ecsd-ratefinder select,
  body .ecsd-ratefinder input{
    font-size: 14px !important;
  }
  body[class*="ecosapa-cruise-detail"] .ecsd-ratefinder > button,
  body .ecsd-ratefinder > button{
    min-height: 48px !important;
    font-size: 14px !important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.18
   Final compact rate finder — external fallback
   ========================================================= */
.ecsd-page .ecsd-ratefinder.ecsd-ratefinder--live{
  height:60px!important;
  min-height:60px!important;
  grid-template-columns:1fr 1.08fr 1fr 190px!important;
  border-radius:12px!important;
  box-shadow:none!important;
}
.ecsd-page .ecsd-ratefinder.ecsd-ratefinder--live>label{
  height:60px!important;
  min-height:60px!important;
  padding:7px 14px!important;
}
.ecsd-page .ecsd-ratefinder.ecsd-ratefinder--live>button.ecsd-tripcard__cta{
  height:60px!important;
  min-height:60px!important;
  background:#ed1c24!important;
  border-color:#ed1c24!important;
  color:#fff!important;
  border-radius:0 12px 12px 0!important;
}
@media(max-width:900px){
  .ecsd-page .ecsd-ratefinder.ecsd-ratefinder--live{height:auto!important;min-height:0!important;grid-template-columns:1fr 1fr!important}
  .ecsd-page .ecsd-ratefinder.ecsd-ratefinder--live>label{height:56px!important;min-height:56px!important}
  .ecsd-page .ecsd-ratefinder.ecsd-ratefinder--live>button.ecsd-tripcard__cta{grid-column:1/-1!important;height:48px!important;min-height:48px!important;border-radius:0 0 12px 12px!important}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.19
   Compact Cabin & Rates search — isolated brand implementation
   ========================================================= */
.ecsd-booking-search{
  width:min(930px,100%);
  display:grid;
  grid-template-columns:minmax(0,1fr) 184px;
  gap:10px;
  align-items:stretch;
  margin:0 0 20px;
}
.ecsd-booking-search__fields{
  display:grid;
  grid-template-columns:1.12fr .92fr .9fr;
  min-width:0;
  height:64px;
  background:#fff;
  border:1px solid #e2e7eb;
  border-radius:10px;
  box-shadow:0 5px 16px rgba(15,23,42,.08);
  overflow:hidden;
}
.ecsd-booking-search__field{
  min-width:0;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
  column-gap:10px;
  padding:9px 14px;
  border-right:1px solid #e5e9ed;
  background:#fff;
  cursor:pointer;
  box-sizing:border-box;
}
.ecsd-booking-search__field:last-child{border-right:0;}
.ecsd-booking-search__icon{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  color:#718096;
}
.ecsd-booking-search__icon svg{
  width:24px;
  height:24px;
  stroke:currentColor;
  stroke-width:1.7;
  fill:none;
}
.ecsd-booking-search__copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
}
.ecsd-booking-search__copy small{
  color:#6b7280;
  font-size:10px;
  line-height:1.05;
  font-weight:700;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.ecsd-booking-search__copy select,
.ecsd-booking-search__copy input{
  width:100%;
  min-width:0;
  height:26px;
  margin:0;
  padding:0 22px 0 0;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background-color:transparent!important;
  color:#16212b!important;
  font-family:inherit;
  font-size:15px!important;
  line-height:1.25;
  font-weight:700!important;
  cursor:pointer;
}
.ecsd-booking-search__copy input[type="date"]{padding-right:4px;}
.ecsd-booking-search__submit{
  height:64px!important;
  min-height:64px!important;
  padding:0 20px!important;
  border:1px solid #ed1c24!important;
  border-radius:9px!important;
  background:#ed1c24!important;
  color:#fff!important;
  box-shadow:0 6px 16px rgba(237,28,36,.16)!important;
  font-family:inherit!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:800!important;
  cursor:pointer!important;
  transition:background .18s ease,border-color .18s ease,transform .18s ease!important;
}
.ecsd-booking-search__submit:hover{
  background:#cf1520!important;
  border-color:#cf1520!important;
  color:#fff!important;
  transform:translateY(-1px)!important;
}
.ecsd-booking-search__submit:focus-visible{
  outline:3px solid rgba(237,28,36,.18)!important;
  outline-offset:2px!important;
}
@media(max-width:900px){
  .ecsd-booking-search{width:100%;grid-template-columns:1fr;gap:8px;}
  .ecsd-booking-search__fields{height:auto;grid-template-columns:1fr 1fr;}
  .ecsd-booking-search__field{min-height:58px;padding:8px 12px;}
  .ecsd-booking-search__field--travelers{grid-column:1/-1;border-top:1px solid #e5e9ed;border-right:0;}
  .ecsd-booking-search__submit{height:50px!important;min-height:50px!important;}
}
@media(max-width:600px){
  .ecsd-booking-search__fields{grid-template-columns:1fr;}
  .ecsd-booking-search__field{min-height:56px;border-right:0;border-bottom:1px solid #e5e9ed;}
  .ecsd-booking-search__field--travelers{grid-column:auto;border-top:0;border-bottom:0;}
  .ecsd-booking-search__submit{height:48px!important;min-height:48px!important;font-size:14px!important;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.20
   Cabin & Rates unified booking bar refinement
   ========================================================= */
.ecsd-booking-search{
  width:min(980px,100%);
  display:grid;
  grid-template-columns:minmax(0,1fr) 176px;
  gap:8px;
  align-items:stretch;
  margin:0 0 24px;
  padding:10px;
  border:1px solid #e5e9ee;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.ecsd-booking-search__fields{
  height:56px;
  border:1px solid #e6eaef;
  border-radius:12px;
  box-shadow:none;
  background:#fff;
}
.ecsd-booking-search__field{
  grid-template-columns:24px minmax(0,1fr);
  column-gap:10px;
  padding:7px 14px;
  border-right:1px solid #edf0f3;
}
.ecsd-booking-search__icon{width:24px;height:24px;color:#7a8694;}
.ecsd-booking-search__icon svg{width:20px;height:20px;stroke-width:1.9;}
.ecsd-booking-search__copy{gap:1px;}
.ecsd-booking-search__copy small{
  color:#7a8593;
  font-size:9.5px;
  letter-spacing:.08em;
  font-weight:800;
}
.ecsd-booking-search__copy select,
.ecsd-booking-search__copy input{
  height:22px;
  padding:0 18px 0 0;
  font-size:14px!important;
  font-weight:800!important;
}
.ecsd-booking-search__submit{
  height:56px!important;
  min-height:56px!important;
  padding:0 18px!important;
  border-radius:12px!important;
  border:1px solid #ed1c24!important;
  background:linear-gradient(180deg,#ff3540 0%,#ed1c24 100%)!important;
  color:#fff!important;
  box-shadow:none!important;
  font-size:15px!important;
  font-weight:800!important;
}
.ecsd-booking-search__submit:hover{
  background:linear-gradient(180deg,#f92e39 0%,#cf1520 100%)!important;
  border-color:#cf1520!important;
  transform:none!important;
}
@media(max-width:900px){
  .ecsd-booking-search{
    width:100%;
    grid-template-columns:1fr;
    gap:8px;
    padding:8px;
    border-radius:14px;
  }
  .ecsd-booking-search__fields{height:auto;grid-template-columns:1fr 1fr;}
  .ecsd-booking-search__field{min-height:54px;padding:7px 12px;}
  .ecsd-booking-search__field--travelers{grid-column:1/-1;border-top:1px solid #edf0f3;border-right:0;}
  .ecsd-booking-search__submit{height:50px!important;min-height:50px!important;}
}
@media(max-width:600px){
  .ecsd-booking-search__fields{grid-template-columns:1fr;}
  .ecsd-booking-search__field{min-height:52px;border-right:0;border-bottom:1px solid #edf0f3;}
  .ecsd-booking-search__field--travelers{grid-column:auto;border-top:0;border-bottom:0;}
  .ecsd-booking-search__submit{height:48px!important;min-height:48px!important;font-size:14px!important;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.21
   Cabin & Rates spacing + alignment fix
   ========================================================= */
.ecsd-booking-search{
  width:100%;
  max-width:none;
  grid-template-columns:minmax(0,1fr) 180px;
  gap:8px;
  margin:0 0 12px;
  padding:8px;
  border-radius:14px;
}
.ecsd-booking-search__fields{
  width:100%;
}
.ecsd-booking-search__submit{
  width:100%;
}
/* tighten the section rhythm so the form sits closer to the cabin list */
.ecsd-booking-search + [data-live-rate-results],
.ecsd-booking-search + .ecsd-bprates,
.ecsd-booking-search + .ecsd-cabinrates__grid,
.ecsd-booking-search + .ecsd-cabinrates__list{
  margin-top:0 !important;
}
@media(max-width:900px){
  .ecsd-booking-search{
    grid-template-columns:1fr;
    margin:0 0 10px;
    padding:8px;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.22
   Cabin & Rates zero-gap fix
   ========================================================= */

/* Old v2.16 live-rate CSS forced the hidden status row to display:flex,
   which created a blank 34px+ vertical spacer even before any rate check. */
.ecsd-page--v2121 .ecsd-rate-status[hidden],
.ecsd-page .ecsd-rate-status[hidden]{
  display:none!important;
  min-height:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
}

/* When the status actually has content, keep it compact. */
.ecsd-page--v2121 .ecsd-rate-status:not([hidden]),
.ecsd-page .ecsd-rate-status:not([hidden]){
  display:flex!important;
  min-height:24px!important;
  margin:4px 0 8px!important;
  padding:0 2px!important;
}

/* Bring the first cabin as close as possible to the booking bar. */
.ecsd-booking-search{
  margin-bottom:6px!important;
}
.ecsd-cabins .ecsd-cabinlist{
  margin-top:0!important;
  padding-top:0!important;
}
.ecsd-cabins .ecsd-booking-search + .ecsd-rate-status[hidden] + .ecsd-cabinlist{
  margin-top:0!important;
}

/* Keep a tiny breathing space only — enough to avoid the blocks touching. */
.ecsd-cabins .ecsd-cabinlist > .ecsd-cabin:first-child{
  margin-top:0!important;
}

@media(max-width:720px){
  .ecsd-booking-search{
    margin-bottom:6px!important;
  }
  .ecsd-page--v2121 .ecsd-rate-status:not([hidden]),
  .ecsd-page .ecsd-rate-status:not([hidden]){
    margin:4px 0 7px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.23
   Global typography system — one visual language
   ========================================================= */

.ecsd-page,
.ecsd-page *,
.ecsd-cabin-detail-panel,
.ecsd-cabin-detail-panel *,
.ecsd-cabin-detail-modal,
.ecsd-cabin-detail-modal *{
  font-family:Roboto,"Helvetica Neue",Arial,sans-serif!important;
}

/* Base reading text */
.ecsd-page{
  font-size:15px!important;
  line-height:1.62!important;
  color:#243447!important;
}
.ecsd-page p,
.ecsd-page li,
.ecsd-page td,
.ecsd-page th,
.ecsd-page label,
.ecsd-page input,
.ecsd-page select,
.ecsd-page textarea{
  font-size:15px;
  line-height:1.62;
}

/* Main headings */
.ecsd-page h1{
  font-size:36px!important;
  line-height:1.16!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}
.ecsd-page .ecsd-section-title h2,
.ecsd-page section > h2,
.ecsd-page .ecsd-about h2{
  font-size:28px!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:-.018em!important;
  color:#101828!important;
}
.ecsd-page h3{
  font-size:21px;
  line-height:1.32;
  font-weight:800;
  letter-spacing:-.012em;
}

/* Standard body / descriptions */
.ecsd-section-title p,
.ecsd-cabin__content>p,
.ecsd-itinerary-line,
.ecsd-service-copy,
.ecsd-route-line,
.ecsd-cabin-popup__description,
.ecsd-cabin-detail-panel__description{
  font-size:15px!important;
  line-height:1.62!important;
  font-weight:400!important;
  color:#475467!important;
}

/* Card titles */
.ecsd-cabin__content h3,
.ecsd-route-option strong,
.ecsd-cabin-popup__section-title h3,
.ecsd-cabin-detail-panel__amenities h3{
  font-size:20px!important;
  line-height:1.3!important;
  font-weight:800!important;
  color:#172b34!important;
}

/* Specs / amenities / supportive content */
.ecsd-cabin__specs,
.ecsd-cabin__content li,
.ecsd-cabin-popup__amenities li,
.ecsd-cabin-detail-panel__amenities li,
.ecsd-cabin-detail-panel__specs p,
.ecsd-route-map__daycard p{
  font-size:13.5px!important;
  line-height:1.5!important;
  font-weight:400!important;
}

/* Small labels — never microscopic */
.ecsd-page small,
.ecsd-booking-search__copy small,
.ecsd-cabin-popup__eyebrow,
.ecsd-cabin-popup__specs small,
.ecsd-cabin-popup__rate small,
.ecsd-cabin-popup__section-title>small,
.ecsd-cabin-popup__bottom small,
.ecsd-cabin-detail-panel__eyebrow,
.ecsd-cabin-detail-panel__rate small,
.ecsd-cabin-detail-panel__fit small,
.ecsd-bprate__secure,
.ecsd-bprate__top,
.ecsd-bprate__top span,
.ecsd-bprate__top b{
  font-size:11px!important;
  line-height:1.35!important;
}

/* Eyebrows / chips / badges */
.ecsd-cabin__badge,
.ecsd-cabin__photos,
.ecsd-route-map__eyebrow,
.ecsd-route-map__daypill,
.ecsd-bookpanel__price-head>span,
.ecsd-overview-item b{
  font-size:11px!important;
  line-height:1.3!important;
  font-weight:800!important;
  letter-spacing:.05em!important;
}

/* Buttons */
.ecsd-btn,
.ecsd-booking-search__submit,
.ecsd-bprate__book,
.ecsd-tripcard__cta,
.ecsd-booking-submit,
.ecsd-mobilebar button,
.ecsd-itinerary-tabs button{
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:800!important;
}

/* Prices: one consistent scale */
.ecsd-bprate__prices strong,
.ecsd-cabin__exactrate>strong,
.ecsd-bookpanel__price strong{
  font-size:31px!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
}
.ecsd-bprate__old,
.ecsd-cabin__oldrate,
.ecsd-bookpanel__was{
  font-size:15px!important;
  line-height:1.3!important;
}

/* Price-card microcopy */
.ecsd-bprate__fees,
.ecsd-bprate__pending,
.ecsd-bprate__placeholder,
.ecsd-cabin__exactrate>small,
.ecsd-cabin__exactrate>p{
  font-size:12px!important;
  line-height:1.45!important;
}

/* Why-it-works / recommendation blocks */
.ecsd-cabin__content ul li,
.ecsd-cabin-popup__advisor p,
.ecsd-cabin-popup__note p,
.ecsd-cabin-detail-panel__fit p{
  font-size:13px!important;
  line-height:1.52!important;
}

/* Itinerary */
.ecsd-itinerary .ecsd-day__summary b{
  font-size:16px!important;
  line-height:1.2!important;
}
.ecsd-itinerary .ecsd-day__summary h3{
  font-size:20px!important;
  line-height:1.35!important;
  font-weight:800!important;
}
.ecsd-itinerary-phase h4{
  font-size:17px!important;
  line-height:1.4!important;
  font-weight:700!important;
}
.ecsd-itinerary-line{
  font-size:15px!important;
  line-height:1.7!important;
}

/* About / Facilities / Services */
.ecsd-service-list--ordered summary strong{
  font-size:15px!important;
  line-height:1.4!important;
  font-weight:800!important;
}
.ecsd-service-group{
  font-size:14px!important;
  line-height:1.4!important;
  font-weight:800!important;
}
.ecsd-service-item-title{
  font-size:15px!important;
  line-height:1.45!important;
  font-weight:700!important;
}
.ecsd-service-copy{
  font-size:14px!important;
  line-height:1.65!important;
}

/* Route comparison cards */
.ecsd-route-option span,
.ecsd-route-option em,
.ecsd-route-compare>footer>span{
  font-size:12px!important;
  line-height:1.45!important;
}
.ecsd-route-option b{
  font-size:18px!important;
  line-height:1.2!important;
  font-weight:800!important;
}

/* Map */
.ecsd-route-map__head h3{
  font-size:21px!important;
  line-height:1.3!important;
}
.ecsd-route-map__head p{
  font-size:14px!important;
  line-height:1.55!important;
}
.ecsd-route-map__daytop strong{
  font-size:15px!important;
  line-height:1.35!important;
}
.ecsd-route-map__chips span{
  font-size:11px!important;
}

/* Cabin popup: remove the old 8.5 / 9.5 / 10.5 px mix */
.ecsd-cabin-popup__head h2{
  font-size:26px!important;
  line-height:1.22!important;
}
.ecsd-cabin-popup__specs strong{
  font-size:12.5px!important;
  line-height:1.35!important;
}
.ecsd-cabin-popup__rate strong{
  font-size:26px!important;
  line-height:1.05!important;
}
.ecsd-cabin-popup__advisor strong{
  font-size:14px!important;
}
.ecsd-cabin-popup__advisor li{
  font-size:11.5px!important;
}
.ecsd-cabin-popup__bottom strong{
  font-size:13px!important;
}

/* Detail panel */
.ecsd-cabin-detail-panel__info h2{
  font-size:24px!important;
  line-height:1.25!important;
}
.ecsd-cabin-detail-panel__specs strong{
  font-size:13px!important;
}
.ecsd-cabin-detail-panel__rate strong{
  font-size:26px!important;
}
.ecsd-cabin-detail-panel__fit strong{
  font-size:14px!important;
}

/* Search bar */
.ecsd-booking-search__copy small{
  font-size:10px!important;
}
.ecsd-booking-search__copy select,
.ecsd-booking-search__copy input{
  font-size:14px!important;
  line-height:1.25!important;
  font-weight:800!important;
}

/* Detail tabs */
.ecsd-detail-tabs a{
  font-size:14px!important;
  line-height:1.3!important;
  font-weight:700!important;
}

/* Mobile keeps the same hierarchy, only slightly smaller */
@media(max-width:720px){
  .ecsd-page{
    font-size:14.5px!important;
  }
  .ecsd-page h1{
    font-size:30px!important;
  }
  .ecsd-page .ecsd-section-title h2,
  .ecsd-page section > h2,
  .ecsd-page .ecsd-about h2{
    font-size:24px!important;
  }
  .ecsd-cabin__content h3{
    font-size:19px!important;
  }
  .ecsd-itinerary .ecsd-day__summary h3{
    font-size:18px!important;
  }
  .ecsd-service-copy,
  .ecsd-itinerary-line{
    font-size:14px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.24
   Global typography +1px refinement
   ========================================================= */

/* Slightly enlarge the whole reading system */
.ecsd-page{
  font-size:16px!important;
  line-height:1.64!important;
}
.ecsd-page p,
.ecsd-page li,
.ecsd-page td,
.ecsd-page th,
.ecsd-page label,
.ecsd-page input,
.ecsd-page select,
.ecsd-page textarea{
  font-size:16px!important;
  line-height:1.64!important;
}

.ecsd-page h1{font-size:37px!important;}
.ecsd-page .ecsd-section-title h2,
.ecsd-page section > h2,
.ecsd-page .ecsd-about h2{font-size:29px!important;}
.ecsd-page h3{font-size:22px!important;}

.ecsd-section-title p,
.ecsd-cabin__content>p,
.ecsd-itinerary-line,
.ecsd-service-copy,
.ecsd-route-line,
.ecsd-cabin-popup__description,
.ecsd-cabin-detail-panel__description{
  font-size:16px!important;
}

.ecsd-cabin__content h3,
.ecsd-route-option strong,
.ecsd-cabin-popup__section-title h3,
.ecsd-cabin-detail-panel__amenities h3{font-size:21px!important;}

.ecsd-cabin__specs,
.ecsd-cabin__content li,
.ecsd-cabin-popup__amenities li,
.ecsd-cabin-detail-panel__amenities li,
.ecsd-cabin-detail-panel__specs p,
.ecsd-route-map__daycard p{font-size:14.5px!important;}

.ecsd-page small,
.ecsd-booking-search__copy small,
.ecsd-cabin-popup__eyebrow,
.ecsd-cabin-popup__specs small,
.ecsd-cabin-popup__rate small,
.ecsd-cabin-popup__section-title>small,
.ecsd-cabin-popup__bottom small,
.ecsd-cabin-detail-panel__eyebrow,
.ecsd-cabin-detail-panel__rate small,
.ecsd-cabin-detail-panel__fit small,
.ecsd-bprate__secure,
.ecsd-bprate__top,
.ecsd-bprate__top span,
.ecsd-bprate__top b{font-size:12px!important;}

.ecsd-cabin__badge,
.ecsd-cabin__photos,
.ecsd-route-map__eyebrow,
.ecsd-route-map__daypill,
.ecsd-bookpanel__price-head>span,
.ecsd-overview-item b{font-size:12px!important;}

.ecsd-btn,
.ecsd-booking-search__submit,
.ecsd-bprate__book,
.ecsd-tripcard__cta,
.ecsd-booking-submit,
.ecsd-mobilebar button,
.ecsd-itinerary-tabs button{font-size:15px!important;}

.ecsd-bprate__prices strong,
.ecsd-cabin__exactrate>strong,
.ecsd-bookpanel__price strong{font-size:32px!important;}
.ecsd-bprate__old,
.ecsd-cabin__oldrate,
.ecsd-bookpanel__was{font-size:16px!important;}

.ecsd-bprate__fees,
.ecsd-bprate__pending,
.ecsd-bprate__placeholder,
.ecsd-cabin__exactrate>small,
.ecsd-cabin__exactrate>p{font-size:13px!important;}

.ecsd-cabin__content ul li,
.ecsd-cabin-popup__advisor p,
.ecsd-cabin-popup__note p,
.ecsd-cabin-detail-panel__fit p{font-size:14px!important;}

.ecsd-itinerary .ecsd-day__summary b{font-size:17px!important;}
.ecsd-itinerary .ecsd-day__summary h3{font-size:21px!important;}
.ecsd-itinerary-phase h4{font-size:18px!important;}
.ecsd-itinerary-line{font-size:16px!important;}

.ecsd-service-list--ordered summary strong,
.ecsd-service-item-title{font-size:16px!important;}
.ecsd-service-group{font-size:15px!important;}
.ecsd-service-copy{font-size:15px!important;}

.ecsd-route-option span,
.ecsd-route-option em,
.ecsd-route-compare>footer>span{font-size:13px!important;}
.ecsd-route-option b{font-size:19px!important;}

.ecsd-route-map__head h3{font-size:22px!important;}
.ecsd-route-map__head p{font-size:15px!important;}
.ecsd-route-map__daytop strong{font-size:16px!important;}
.ecsd-route-map__chips span{font-size:12px!important;}

.ecsd-cabin-popup__head h2{font-size:27px!important;}
.ecsd-cabin-popup__specs strong{font-size:13.5px!important;}
.ecsd-cabin-popup__rate strong{font-size:27px!important;}
.ecsd-cabin-popup__advisor strong{font-size:15px!important;}
.ecsd-cabin-popup__advisor li{font-size:12.5px!important;}
.ecsd-cabin-popup__bottom strong{font-size:14px!important;}

.ecsd-cabin-detail-panel__info h2{font-size:25px!important;}
.ecsd-cabin-detail-panel__specs strong{font-size:14px!important;}
.ecsd-cabin-detail-panel__rate strong{font-size:27px!important;}
.ecsd-cabin-detail-panel__fit strong{font-size:15px!important;}

.ecsd-booking-search__copy small{font-size:11px!important;}
.ecsd-booking-search__copy select,
.ecsd-booking-search__copy input{font-size:15px!important;}

.ecsd-detail-tabs a{font-size:15px!important;}

/* Explicit fix for the tiny price-card top line shown by the user */
.ecsd-bprate__top,
.ecsd-bprate__top span,
.ecsd-bprate__top b,
.ecsd-bprate__top strong{
  font-size:13px!important;
  line-height:1.45!important;
  font-weight:700!important;
  color:#122230!important;
}

@media(max-width:720px){
  .ecsd-page{font-size:15px!important;}
  .ecsd-page h1{font-size:31px!important;}
  .ecsd-page .ecsd-section-title h2,
  .ecsd-page section > h2,
  .ecsd-page .ecsd-about h2{font-size:25px!important;}
  .ecsd-cabin__content h3{font-size:20px!important;}
  .ecsd-itinerary .ecsd-day__summary h3{font-size:19px!important;}
  .ecsd-service-copy,
  .ecsd-itinerary-line{font-size:15px!important;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.25
   Cabin rate top-line specificity fix
   ========================================================= */

/* Legacy v2.14.5 used a more-specific 11px selector with !important.
   Override it at equal/higher specificity so the typography system applies. */
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top,
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top span,
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top b,
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top strong{
  font-size:14px!important;
  line-height:1.45!important;
  font-weight:700!important;
  color:#16212b!important;
}

.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top{
  gap:10px!important;
  margin-bottom:7px!important;
}

.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__fees{
  font-size:13px!important;
  line-height:1.45!important;
  font-weight:700!important;
  color:#101828!important;
  margin-bottom:15px!important;
  padding-bottom:11px!important;
}

.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__secure{
  font-size:12px!important;
  line-height:1.4!important;
}

/* Keep the right-side price column readable on narrower desktop cards. */
@media(max-width:1100px){
  .ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top,
  .ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top span,
  .ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top b{
    font-size:13.5px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.26
   Softer dark-text palette for headings and strong text
   ========================================================= */
:root{
  --ec-soft-black:#2f3f4f;
  --ec-soft-black-2:#34485a;
}

/* Main heading system */
.ecsd-page h1,
.ecsd-page .ecsd-section-title h2,
.ecsd-page section > h2,
.ecsd-page .ecsd-about h2,
.ecsd-page h3,
.ecsd-page h4,
.ecsd-cabin__content h3,
.ecsd-route-option strong,
.ecsd-cabin-popup__section-title h3,
.ecsd-cabin-detail-panel__amenities h3,
.ecsd-itinerary .ecsd-day__summary h3,
.ecsd-itinerary-phase h4,
.ecsd-service-list--ordered summary strong,
.ecsd-service-group,
.ecsd-service-item-title,
.ecsd-route-map__head h3,
.ecsd-route-map__daytop strong,
.ecsd-cabin-popup__head h2,
.ecsd-cabin-detail-panel__info h2,
.ecsd-detail-tabs a:hover,
.ecsd-detail-tabs a.is-active{
  color:var(--ec-soft-black)!important;
}

/* Strong inline text that was too black */
.ecsd-page .ecsd-cabin__specs strong,
.ecsd-page .ecsd-cabin-popup__specs strong,
.ecsd-page .ecsd-cabin-detail-panel__specs strong,
.ecsd-page .ecsd-cabin-popup__advisor strong,
.ecsd-page .ecsd-cabin-popup__bottom strong,
.ecsd-page .ecsd-cabin-detail-panel__fit strong,
.ecsd-page .ecsd-route-option b,
.ecsd-page .ecsd-route-map__head strong,
.ecsd-page .ecsd-service-list--ordered b,
.ecsd-page .ecsd-bprate__top,
.ecsd-page .ecsd-bprate__top span,
.ecsd-page .ecsd-bprate__top b,
.ecsd-page .ecsd-bprate__top strong,
.ecsd-page .ecsd-bprate__fees,
.ecsd-page .ecsd-booking-search__copy select,
.ecsd-page .ecsd-booking-search__copy input,
.ecsd-page .ecsd-overview-item strong,
.ecsd-page .ecsd-overview-item b{
  color:var(--ec-soft-black-2)!important;
}

/* Keep brand / price accents untouched */
.ecsd-bprate__prices strong,
.ecsd-cabin__exactrate>strong,
.ecsd-bookpanel__price strong,
.ecsd-price,
.ecsd-btn,
.ecsd-booking-search__submit,
.ecsd-bprate__book,
.ecsd-tripcard__cta,
.ecsd-booking-submit,
.ecsd-mobilebar button,
.ecsd-itinerary-tabs button.is-active,
.ecsd-itinerary .ecsd-day__summary b,
.ecsd-cabin__badge,
.ecsd-route-map__daypill,
.ecsd-bookpanel__price-head>span{
  color:inherit;
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.27
   Cabin rate top-line layout cleanup
   ========================================================= */
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:4px!important;
  margin:0 0 8px!important;
}
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top span{
  display:block!important;
  font-size:14px!important;
  line-height:1.5!important;
  font-weight:700!important;
  color:#566978!important;
  max-width:100%!important;
  white-space:normal!important;
}
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top b,
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top strong{
  display:block!important;
  font-size:14px!important;
  line-height:1.35!important;
  font-weight:700!important;
  color:#566978!important;
  white-space:nowrap!important;
}
.ecsd-page .ecsd-bprate__fees{
  color:#566978!important;
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.28
   Hide pre-rate booking line correctly
   ========================================================= */
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__top[hidden],
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__fees[hidden],
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__prices[hidden],
.ecsd-page--v2121 .ecsd-cabin__action--bestprice .ecsd-bprate__pending[hidden]{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.29
   Unified content width alignment
   ========================================================= */
.ecsd-page{
  --ecsd-content-max:1240px;
}

/* Keep the major bands on one shared width so the upper and lower blocks feel aligned. */
.ecsd-page .ecsd-cruisehead,
.ecsd-page .ecsd-cabins > .ecsd-section-title,
.ecsd-page .ecsd-cabins > .ecsd-booking-search,
.ecsd-page .ecsd-cabins > .ecsd-rate-status,
.ecsd-page .ecsd-cabins > .ecsd-cabinlist{
  width:100%!important;
  max-width:var(--ecsd-content-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* The warm highlight strip should no longer run wider than the sections around it. */
.ecsd-page--v270 .ecsd-why,
.ecsd-page .ecsd-why{
  width:100%!important;
  max-width:var(--ecsd-content-max)!important;
  margin:4px auto 42px!important;
  padding:28px 34px!important;
  border-radius:18px!important;
  background:#fff0e4!important;
  box-shadow:none!important;
}
.ecsd-page--v270 .ecsd-why__inner,
.ecsd-page .ecsd-why__inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

/* Match the booking bar rhythm to the same aligned column width. */
.ecsd-page .ecsd-booking-search{
  max-width:var(--ecsd-content-max)!important;
}

@media(max-width:1280px){
  .ecsd-page{
    --ecsd-content-max:1180px;
  }
}
@media(max-width:980px){
  .ecsd-page{
    --ecsd-content-max:100%;
  }
  .ecsd-page--v270 .ecsd-why,
  .ecsd-page .ecsd-why{
    padding:22px 20px!important;
    margin:4px 0 32px!important;
    border-radius:16px!important;
  }
}
@media(max-width:720px){
  .ecsd-page--v270 .ecsd-why,
  .ecsd-page .ecsd-why{
    padding:18px 16px!important;
    margin:4px 0 26px!important;
    border-radius:14px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.30
   Main content + itinerary/map width lock
   ========================================================= */
.ecsd-page{
  --ecsd-content-max:1180px!important;
}

/* Overview / Why / Cabin & Rates: same centered content width. */
.ecsd-page .ecsd-cruisehead,
.ecsd-page--v270 .ecsd-why,
.ecsd-page .ecsd-why,
.ecsd-page .ecsd-cabins > .ecsd-section-title,
.ecsd-page .ecsd-cabins > .ecsd-booking-search,
.ecsd-page .ecsd-cabins > .ecsd-rate-status,
.ecsd-page .ecsd-cabins > .ecsd-cabinlist{
  width:100%!important;
  max-width:var(--ecsd-content-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Itinerary content, including the live map, now follows the exact same width. */
.ecsd-page #itinerary > .ecsd-section-title,
.ecsd-page #itinerary > .ecsd-itinerary-guide,
.ecsd-page #itinerary > .ecsd-itinerary-tabs,
.ecsd-page #itinerary > .ecsd-itinpanel{
  width:100%!important;
  max-width:var(--ecsd-content-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.ecsd-page #itinerary .ecsd-route-map--leaflet,
.ecsd-page #itinerary .ecsd-route-map{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Keep day cards aligned with the map instead of becoming a different width. */
.ecsd-page #itinerary .ecsd-days{
  width:100%!important;
  max-width:100%!important;
}

/* Slightly tighter overview composition after narrowing. */
.ecsd-page--v270 .ecsd-tour-overview,
.ecsd-page .ecsd-tour-overview{
  grid-template-columns:minmax(0,1fr) 360px!important;
  column-gap:34px!important;
}

/* Warm strip follows the same 1180px width, not the old wider band. */
.ecsd-page--v270 .ecsd-why,
.ecsd-page .ecsd-why{
  padding:26px 30px!important;
  margin-top:4px!important;
  margin-bottom:38px!important;
}

@media(max-width:1220px){
  .ecsd-page{
    --ecsd-content-max:calc(100% - 40px)!important;
  }
}
@media(max-width:980px){
  .ecsd-page{
    --ecsd-content-max:100%!important;
  }
  .ecsd-page--v270 .ecsd-tour-overview,
  .ecsd-page .ecsd-tour-overview{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.31
   Sticky navigation width alignment
   ========================================================= */

/* Keep the sticky bar background full-bleed, but align its actual content
   to the same 1180px column used by Overview / Why / Cabin & Rates / Map. */
.ecsd-page--v270 .ecsd-stickybar__inner{
  width:100%!important;
  max-width:1180px!important;
  min-height:64px!important;
  margin:0 auto!important;
  gap:22px!important;
}

/* Slightly tighten the tab rhythm after narrowing the bar. */
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs{
  gap:30px!important;
}
.ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs a{
  min-height:64px!important;
}

/* Keep price / CTA compact so it does not visually push the whole bar wider. */
.ecsd-page--v270 .ecsd-stickybar__buy{
  gap:15px!important;
  padding-left:20px!important;
}
.ecsd-page--v270 .ecsd-stickybar__cta{
  min-width:124px!important;
  padding:0 18px!important;
}

/* Match the top overview block exactly to the same width as a safety lock. */
.ecsd-page .ecsd-cruisehead,
.ecsd-page .ecsd-cruisehead__main,
.ecsd-page .ecsd-tour-overview{
  width:100%!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* cruisehead__main must not create an extra width layer */
.ecsd-page .ecsd-cruisehead__main{
  max-width:none!important;
}

/* Responsive: preserve side breathing room rather than touching viewport edges. */
@media(max-width:1220px){
  .ecsd-page--v270 .ecsd-stickybar__inner{
    width:calc(100% - 40px)!important;
    max-width:none!important;
  }
}
@media(max-width:980px){
  .ecsd-page--v270 .ecsd-stickybar__inner{
    width:calc(100% - 28px)!important;
    gap:14px!important;
  }
  .ecsd-page--v270 .ecsd-stickybar .ecsd-detail-tabs{
    gap:22px!important;
  }
  .ecsd-page--v270 .ecsd-stickybar__buy{
    gap:10px!important;
    padding-left:12px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.32
   Dragon Legend 3D2N map pilot
   ========================================================= */
.ecsd-map-via{position:relative;width:0;height:0;}
.ecsd-map-via>span{
  position:absolute;left:0;top:0;transform:translate(-50%,-50%);
  width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid #64748b;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
/* Keep permanent labels separated on the wider Bai Tu Long route. */
.ecsd-map-marker--cap-la-island .ecsd-map-marker__label{transform:translate(18px,-48px);min-width:96px;}
.ecsd-map-marker--cong-dam-area .ecsd-map-marker__label{transform:translate(18px,-10px);min-width:108px;}
.ecsd-map-marker--vung-vieng-village .ecsd-map-marker__label{transform:translate(-152px,8px);min-width:130px;}
@media(max-width:640px){
  .ecsd-map-marker--cap-la-island .ecsd-map-marker__label{transform:translate(14px,-44px);}
  .ecsd-map-marker--cong-dam-area .ecsd-map-marker__label{transform:translate(14px,-8px);}
  .ecsd-map-marker--vung-vieng-village .ecsd-map-marker__label{transform:translate(-118px,8px);min-width:104px;}
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.33
   Good-to-know cleanup + service accordion visuals
   ========================================================= */
.ecsd-important{
  max-width:100%;
}
.ecsd-important ul{
  margin-bottom:0!important;
}

/* One local image at the bottom of each About accordion: easier scanning,
   less text-wall feeling, no external image requests. */
.ecsd-service-visual{
  margin:20px 0 2px!important;
  border:1px solid #e3e9ed;
  border-radius:16px;
  overflow:hidden;
  background:#f5f7f8;
  box-shadow:0 8px 22px rgba(31,45,61,.05);
}
.ecsd-service-visual img{
  display:block;
  width:100%;
  aspect-ratio:16/7;
  max-height:340px;
  object-fit:cover;
  object-position:center;
}
.ecsd-service-visual figcaption{
  padding:9px 13px;
  background:#fff;
  color:#667784!important;
  font-size:12px!important;
  line-height:1.35!important;
  font-weight:600!important;
}
.ecsd-service-list--ordered details[open]{
  padding-bottom:14px;
}
@media(max-width:720px){
  .ecsd-service-visual{
    margin-top:15px!important;
    border-radius:12px;
  }
  .ecsd-service-visual img{
    aspect-ratio:4/3;
    max-height:300px;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.34
   Booking modal submit icon sizing fix
   ========================================================= */

/*
 * The shared arrow SVG has only a viewBox. Without an explicit CSS size,
 * browsers can render it at the SVG default intrinsic size (300x150),
 * which made the WhatsApp submit button explode into a huge red block
 * with a giant black arrow.
 */
.ecsd-booking-modal .ecsd-booking-submit{
  width:100%!important;
  min-height:52px!important;
  height:auto!important;
  margin-top:16px!important;
  padding:13px 18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  border-radius:10px!important;
  background:#ed1c24!important;
  border:1px solid #ed1c24!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1.2!important;
  box-shadow:0 8px 18px rgba(237,28,36,.14)!important;
}

.ecsd-booking-modal .ecsd-booking-submit svg{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  flex:0 0 18px!important;
  display:block!important;
  overflow:visible!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:2!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  color:#fff!important;
}

.ecsd-booking-modal .ecsd-booking-submit svg path{
  fill:none!important;
  stroke:currentColor!important;
}

.ecsd-booking-modal .ecsd-booking-submit:hover{
  background:#cf1520!important;
  border-color:#cf1520!important;
  color:#fff!important;
  transform:none!important;
}

/* Keep the bottom of the booking form compact and readable. */
.ecsd-booking-modal .ecsd-formnote{
  margin-top:8px!important;
  font-size:12px!important;
  line-height:1.45!important;
  color:#667085!important;
}

@media(max-width:640px){
  .ecsd-booking-modal .ecsd-booking-submit{
    min-height:50px!important;
    padding:12px 14px!important;
    font-size:14px!important;
  }
  .ecsd-booking-modal .ecsd-booking-submit svg{
    width:17px!important;
    height:17px!important;
    min-width:17px!important;
    max-width:17px!important;
    min-height:17px!important;
    max-height:17px!important;
    flex-basis:17px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.35
   Theme breadcrumb + top whitespace cleanup
   ========================================================= */

/*
 * Travel Monster outputs its own page breadcrumb/header before our custom
 * Cruise Detail template. That created:
 * 1) a duplicate/incomplete breadcrumb above the EcoSapa breadcrumb;
 * 2) a large empty vertical gutter before the cruise title.
 * Keep only the richer EcoSapa breadcrumb generated inside the detail page.
 */
body.ecosapa-cruise-detail-v220 .page-header-top,
body.ecosapa-cruise-detail-v220 .travel-monster-breadcrumb-main-wrap{
  display:none!important;
}

/* Use the same theme-frame reset already proven on the Cruise Storefront. */
body#ecosapa-root.ecosapa-cruise-detail-v220 #page.ecosapa-wp-site,
body#ecosapa-root.ecosapa-cruise-detail-v220 #content.site-content.ecosapa-wp-content{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

body#ecosapa-root.ecosapa-cruise-detail-v220 #content.site-content.ecosapa-wp-content{
  display:block!important;
  min-height:0!important;
}

body#ecosapa-root.ecosapa-cruise-detail-v220 #content.site-content.ecosapa-wp-content > main.ecsd-page{
  margin:0!important;
  padding-top:0!important;
}

/* Defensive reset if the theme injects a content wrapper around the custom page. */
body#ecosapa-root.ecosapa-cruise-detail-v220 #content.site-content.ecosapa-wp-content > .container,
body#ecosapa-root.ecosapa-cruise-detail-v220 #content.site-content.ecosapa-wp-content > .main-content-wrapper{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

/* Compact the EcoSapa breadcrumb itself. */
body.ecosapa-cruise-detail-v220 .ecsd-breadcrumb,
.ecsd-page .ecsd-breadcrumb{
  min-height:0!important;
  padding:12px 0 10px!important;
  margin:0!important;
  font-size:13px!important;
  line-height:1.35!important;
}

/* Pull the title area up and remove the oversized breathing room. */
.ecsd-page--v270 .ecsd-prehero{
  margin-top:0!important;
  margin-bottom:14px!important;
}
.ecsd-page--v270 .ecsd-prehero__main{
  padding:8px 0 12px!important;
}

/* Keep a clean but compact gap between title/meta and gallery. */
.ecsd-page--v251 .ecsd-topgallery{
  margin-top:0!important;
  margin-bottom:24px!important;
}

@media(max-width:720px){
  body.ecosapa-cruise-detail-v220 .ecsd-breadcrumb,
  .ecsd-page .ecsd-breadcrumb{
    padding:9px 0 8px!important;
    font-size:12px!important;
  }
  .ecsd-page--v270 .ecsd-prehero{
    margin-bottom:12px!important;
  }
  .ecsd-page--v270 .ecsd-prehero__main{
    padding:6px 0 10px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.17.36
   Compact top spacing + header typography alignment
   ========================================================= */

/*
 * Travel Monster still leaves a vertical slot where its hidden page-header
 * used to live. Pull only the EcoSapa cruise detail page upward so the
 * breadcrumb sits naturally below the site navigation.
 */
body#ecosapa-root.ecosapa-cruise-detail-v220 main.ecsd-page{
  margin-top:-56px!important;
}

/* Compact breadcrumb: same visual language as the rest of Cruise Pages. */
body.ecosapa-cruise-detail-v220 .ecsd-breadcrumb,
.ecsd-page .ecsd-breadcrumb{
  padding:8px 0 8px!important;
  gap:7px!important;
  color:#6b7785!important;
  font-size:13px!important;
  line-height:1.35!important;
  font-weight:400!important;
}
.ecsd-page .ecsd-breadcrumb a{
  color:#667787!important;
  font-weight:400!important;
}
.ecsd-page .ecsd-breadcrumb a:hover{
  color:#ed1c24!important;
}

/* Title block: use the same softer dark palette and typography scale
   already approved across Cabin & Rates / itinerary content. */
.ecsd-page--v251 .ecsd-prehero .ecsd-titleline h1,
.ecsd-page #ecsd-title{
  margin:0 0 8px!important;
  color:#34485a!important;
  font-family:Roboto,"Helvetica Neue",Arial,sans-serif!important;
  font-size:36px!important;
  line-height:1.16!important;
  font-weight:750!important;
  letter-spacing:-.025em!important;
}

.ecsd-page--v270 .ecsd-prehero{
  margin:0 0 10px!important;
}
.ecsd-page--v270 .ecsd-prehero__main{
  padding:6px 0 9px!important;
}

/* Rating row: remove the mixed tiny/large feeling. */
.ecsd-page .ecsd-titlemeta{
  gap:16px!important;
}
.ecsd-page .ecsd-stars{
  font-size:17px!important;
  line-height:1!important;
  letter-spacing:2px!important;
}
.ecsd-page .ecsd-rating-compact{
  gap:6px!important;
  color:#667787!important;
  font-size:14px!important;
  line-height:1.35!important;
}
.ecsd-page .ecsd-rating-compact strong{
  color:#34485a!important;
  font-size:15px!important;
  line-height:1.2!important;
  font-weight:800!important;
}
.ecsd-page .ecsd-rating-compact span{
  color:#667787!important;
  font-size:14px!important;
  font-weight:500!important;
}

/* Address / route line belongs to the body-text scale, not headline scale. */
.ecsd-page--v251 .ecsd-prehero .ecsd-route-line,
.ecsd-page .ecsd-route-line{
  margin-top:12px!important;
  color:#526575!important;
  font-size:15px!important;
  line-height:1.5!important;
  font-weight:400!important;
}
.ecsd-page .ecsd-route-line svg{
  width:18px!important;
  height:18px!important;
  color:#71808e!important;
}

/* Gallery should follow immediately after the decision header. */
.ecsd-page--v251 .ecsd-topgallery{
  margin-top:0!important;
  margin-bottom:22px!important;
}

/* Responsive safety: avoid pulling the page too far under smaller headers. */
@media(max-width:980px){
  body#ecosapa-root.ecosapa-cruise-detail-v220 main.ecsd-page{
    margin-top:-36px!important;
  }
  .ecsd-page--v251 .ecsd-prehero .ecsd-titleline h1,
  .ecsd-page #ecsd-title{
    font-size:32px!important;
  }
}

@media(max-width:720px){
  body#ecosapa-root.ecosapa-cruise-detail-v220 main.ecsd-page{
    margin-top:-18px!important;
  }
  body.ecosapa-cruise-detail-v220 .ecsd-breadcrumb,
  .ecsd-page .ecsd-breadcrumb{
    padding:7px 0 7px!important;
    font-size:12px!important;
  }
  .ecsd-page--v251 .ecsd-prehero .ecsd-titleline h1,
  .ecsd-page #ecsd-title{
    font-size:28px!important;
    line-height:1.2!important;
  }
  .ecsd-page .ecsd-rating-compact,
  .ecsd-page .ecsd-rating-compact span{
    font-size:13px!important;
  }
  .ecsd-page .ecsd-route-line{
    margin-top:10px!important;
    font-size:14px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.18.0
   Multi-source Advisor demo — content layer only
   ========================================================= */
.ecsd-advisor{
  width:min(1180px,calc(100% - 32px));
  margin:0 auto 42px;
  padding:30px;
  border:1px solid #dfe7ec;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 32px rgba(26,43,57,.045);
  color:#34485a;
}
.ecsd-advisor__head{
  display:flex;
  justify-content:space-between;
  gap:28px;
  align-items:flex-start;
  padding-bottom:22px;
  border-bottom:1px solid #e7edf1;
}
.ecsd-advisor__eyebrow{
  display:block;
  margin-bottom:6px;
  color:#ed1c24;
  font:800 11px/1.2 Roboto,"Helvetica Neue",Arial,sans-serif;
  letter-spacing:.095em;
}
.ecsd-advisor__head h2{
  margin:0 0 9px;
  color:#34485a;
  font:750 27px/1.2 Roboto,"Helvetica Neue",Arial,sans-serif;
  letter-spacing:-.02em;
}
.ecsd-advisor__head p{
  max-width:780px;
  margin:0;
  color:#5c6f7f;
  font-size:15px;
  line-height:1.65;
}
.ecsd-advisor__evidence{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 12px;
  border:1px solid #dce9e2;
  border-radius:10px;
  background:#f8fcfa;
  color:#345b4e;
}
.ecsd-advisor__evidence svg{width:18px;height:18px;color:#2f7a5c}
.ecsd-advisor__evidence span{display:flex;flex-direction:column}
.ecsd-advisor__evidence b{font-size:12px;line-height:1.2}
.ecsd-advisor__evidence small{margin-top:2px;color:#698076;font-size:11px}
.ecsd-advisor__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:22px;
}
.ecsd-advisor-card{
  padding:20px 21px;
  border:1px solid #e2e8ed;
  border-radius:14px;
  background:#fbfcfd;
}
.ecsd-advisor-card>span{
  color:#758391;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}
.ecsd-advisor-card h3{
  margin:5px 0 14px;
  color:#34485a;
  font-size:19px;
  line-height:1.25;
}
.ecsd-advisor-card ul{
  display:grid;
  gap:11px;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
}
.ecsd-advisor-card li{
  display:grid;
  grid-template-columns:18px 1fr;
  gap:9px;
  align-items:flex-start;
  color:#4d6273;
  font-size:14.5px;
  line-height:1.55;
}
.ecsd-advisor-card li svg{width:17px;height:17px;margin-top:2px;color:#3b7b61}
.ecsd-advisor-card--consider{background:#fffaf7;border-color:#efe3db}
.ecsd-advisor-card--consider li svg{color:#a86a40}
.ecsd-advisor__decisions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:18px;
}
.ecsd-advisor-decision{
  display:grid;
  grid-template-columns:38px 1fr;
  gap:12px;
  padding:18px 20px;
  border:1px solid #e2e8ed;
  border-radius:14px;
}
.ecsd-advisor-decision__icon{
  display:grid;
  place-items:center;
  width:38px;height:38px;
  border-radius:10px;
  background:#f2f6f8;
  color:#526979;
}
.ecsd-advisor-decision__icon svg{width:20px;height:20px}
.ecsd-advisor-decision b{display:block;margin-bottom:7px;color:#34485a;font-size:15px}
.ecsd-advisor-decision p{margin:5px 0;color:#5c6f7f;font-size:13.5px;line-height:1.55}
.ecsd-advisor-decision p strong{color:#34485a}
.ecsd-advisor__signals{
  margin-top:18px;
  border:1px solid #e2e8ed;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.ecsd-advisor__signals summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
  cursor:pointer;
  color:#34485a;
  font-size:14px;
  list-style:none;
}
.ecsd-advisor__signals summary::-webkit-details-marker{display:none}
.ecsd-advisor__signals summary svg{width:18px;height:18px}
.ecsd-signal-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid #e7edf1;
}
.ecsd-signal{
  display:grid;
  grid-template-columns:10px 1fr;
  gap:10px;
  padding:15px 18px;
  border-bottom:1px solid #edf1f4;
}
.ecsd-signal:nth-child(odd){border-right:1px solid #edf1f4}
.ecsd-signal__dot{
  width:8px;height:8px;
  margin-top:5px;
  border-radius:50%;
  background:#9aa8b3;
}
.ecsd-signal__dot--positive{background:#3b8062}
.ecsd-signal__dot--mixed{background:#b68142}
.ecsd-signal b{display:block;color:#34485a;font-size:13px}
.ecsd-signal small{display:block;margin:2px 0 4px;color:#85929d;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.ecsd-signal p{margin:0;color:#5b6e7d;font-size:13px;line-height:1.5}
.ecsd-advisor__method{
  margin:0!important;
  padding:11px 18px 13px;
  color:#7a8792!important;
  font-size:11px!important;
  line-height:1.5!important;
}
@media(max-width:860px){
  .ecsd-advisor{padding:22px;width:min(100% - 24px,1180px)}
  .ecsd-advisor__head{display:block}
  .ecsd-advisor__evidence{margin-top:16px;width:max-content}
  .ecsd-advisor__grid,.ecsd-advisor__decisions{grid-template-columns:1fr}
}
@media(max-width:640px){
  .ecsd-advisor{padding:18px;margin-bottom:30px}
  .ecsd-advisor__head h2{font-size:23px}
  .ecsd-signal-grid{grid-template-columns:1fr}
  .ecsd-signal:nth-child(odd){border-right:0}
}


/* =========================================================
   EcoSapa Cruise Pages v2.18.1
   Real traveler review evidence section
   ========================================================= */
.ecsd-review-evidence{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:22px;
  margin-top:6px;
}
.ecsd-review-evidence>article{
  border:1px solid var(--ec-line);
  border-radius:16px;
  padding:24px;
  background:#fff;
}
.ecsd-review-evidence__heading,
.ecsd-review-list-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.ecsd-review-kicker{
  display:block;
  margin-bottom:6px;
  color:#7a8794;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.08em;
}
.ecsd-review-evidence h3,
.ecsd-review-list-head h3{
  margin:0;
  color:#34485a;
  font-size:20px;
  line-height:1.3;
}
.ecsd-review-evidence__source{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#5d6d7c;
  font-size:12px;
  white-space:nowrap;
}
.ecsd-review-evidence__source svg{width:15px;height:15px;color:#16a36a}
.ecsd-review-bars{display:grid;gap:11px;margin-top:20px}
.ecsd-review-bar{
  display:grid;
  grid-template-columns:125px minmax(120px,1fr) 34px;
  gap:12px;
  align-items:center;
  font-size:13px;
  color:#4f6070;
}
.ecsd-review-bar i{
  position:relative;
  display:block;
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:#edf0f2;
}
.ecsd-review-bar i b{
  position:absolute;
  inset:0 auto 0 0;
  display:block;
  border-radius:999px;
  background:#ed1c24;
}
.ecsd-review-bar>strong{color:#34485a;text-align:right}
.ecsd-review-distribution{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #edf0f2;
  color:#697887;
  font-size:12px;
}
.ecsd-review-distribution b{color:#34485a}
.ecsd-review-evidence__summary>p{
  margin:14px 0 18px;
  color:#526575;
  font-size:15px;
  line-height:1.65;
}
.ecsd-review-fit{
  padding:14px 16px;
  border-radius:11px;
  background:#f7f9fb;
}
.ecsd-review-fit b,
.ecsd-review-fit span{display:block}
.ecsd-review-fit b{margin-bottom:4px;color:#34485a;font-size:13px}
.ecsd-review-fit span{color:#5e6f7f;font-size:14px;line-height:1.45}

.ecsd-review-list-head{margin:30px 0 14px}
.ecsd-review-source-badge{
  padding:7px 10px;
  border:1px solid #dfe5ea;
  border-radius:999px;
  background:#fff;
  color:#657585;
  font-size:12px;
  white-space:nowrap;
}
.ecsd-review-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.ecsd-review-card{
  min-width:0;
  padding:19px;
  border:1px solid var(--ec-line);
  border-radius:14px;
  background:#fff;
}
.ecsd-review-card__top{
  display:flex;
  align-items:center;
  gap:11px;
}
.ecsd-review-card__score{
  display:grid;
  place-items:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  border-radius:10px;
  background:#34485a;
  color:#fff;
  font-size:16px;
  font-weight:800;
}
.ecsd-review-card__person{min-width:0}
.ecsd-review-card__person strong{
  display:block;
  overflow:hidden;
  color:#34485a;
  font-size:14px;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ecsd-review-card__person span{
  display:block;
  margin-top:3px;
  color:#7a8794;
  font-size:12px;
  line-height:1.3;
}
.ecsd-review-card h4{
  margin:15px 0 8px;
  color:#34485a;
  font-size:16px;
  line-height:1.35;
}
.ecsd-review-card p{
  margin:0;
  color:#526575;
  font-size:14px;
  line-height:1.6;
}
.ecsd-review-card small{
  display:block;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #edf0f2;
  color:#7a8794;
  font-size:11.5px;
  line-height:1.4;
}
.ecsd-review-card--extra{display:none}
.ecsd-reviews--expanded .ecsd-review-card--extra{display:block}
.ecsd-review-more{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:16px;
  padding:9px 13px;
  border:1px solid #d9e0e6;
  border-radius:9px;
  background:#fff;
  color:#34485a;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.ecsd-review-more svg{width:15px;height:15px}
.ecsd-reviews--expanded .ecsd-review-more svg{transform:rotate(180deg)}
.ecsd-review-method{
  margin:14px 0 0;
  color:#7a8794;
  font-size:11.5px;
  line-height:1.5;
}
.ecsd-review-method a{color:#526d85;text-decoration:underline;text-underline-offset:2px}

@media(max-width:900px){
  .ecsd-review-evidence{grid-template-columns:1fr}
  .ecsd-review-cards{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .ecsd-review-evidence>article{padding:18px}
  .ecsd-review-evidence__heading,
  .ecsd-review-list-head{display:block}
  .ecsd-review-evidence__source,
  .ecsd-review-source-badge{display:inline-flex;margin-top:10px}
  .ecsd-review-cards{grid-template-columns:1fr}
  .ecsd-review-bar{grid-template-columns:108px minmax(90px,1fr) 30px;gap:8px}
}


/* =========================================================
   EcoSapa Cruise Pages v2.18.2
   Multi-source reviews — original EcoSapa visual system
   ========================================================= */

/* Remove every v2.18.1 source/methodology/clone-style element. */
.ecsd-reviews--v2182 .ecsd-review-evidence,
.ecsd-reviews--v2182 .ecsd-review-evidence__source,
.ecsd-reviews--v2182 .ecsd-review-source-badge,
.ecsd-reviews--v2182 .ecsd-review-method,
.ecsd-reviews--v2182 .ecsd-review-bars,
.ecsd-reviews--v2182 .ecsd-review-distribution{
  display:none!important;
}

.ecsd-reviews--v2182{
  padding-top:34px!important;
}

.ecsd-review-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:34px;
  align-items:end;
  margin-bottom:22px;
}

.ecsd-review-head__copy{
  max-width:760px;
}

.ecsd-review-eyebrow{
  display:block;
  margin-bottom:7px;
  color:#ed1c24;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.09em;
}

.ecsd-review-head h2{
  margin:0 0 8px!important;
  color:#34485a!important;
  font-family:Roboto,"Helvetica Neue",Arial,sans-serif!important;
  font-size:30px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
}

.ecsd-review-head__copy>p{
  margin:0;
  max-width:700px;
  color:#647586;
  font-size:15px;
  line-height:1.6;
}

.ecsd-review-trust{
  position:relative;
  min-height:148px;
  padding:19px 20px 18px;
  border:1px solid #e4e9ee;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 28px rgba(32,48,64,.06);
}

.ecsd-review-trust:before{
  content:"";
  position:absolute;
  top:0;
  left:20px;
  right:20px;
  height:3px;
  border-radius:0 0 99px 99px;
  background:#ed1c24;
}

.ecsd-review-trust__score{
  color:#34485a;
  font-size:34px;
  line-height:1;
  font-weight:850;
  letter-spacing:-.04em;
}
.ecsd-review-trust__score small{
  margin-left:2px;
  color:#7b8895;
  font-size:14px;
  font-weight:700;
  letter-spacing:0;
}
.ecsd-review-trust__stars{
  margin:9px 0 7px;
  color:#f6a700;
  font-size:15px;
  line-height:1;
  letter-spacing:2px;
}
.ecsd-review-trust>strong{
  display:block;
  color:#34485a;
  font-size:14px;
  line-height:1.25;
}
.ecsd-review-trust>span{
  display:block;
  margin-top:4px;
  color:#748290;
  font-size:12px;
  line-height:1.35;
}

.ecsd-review-proof{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0 0 18px;
  overflow:hidden;
  border:1px solid #e2e8ed;
  border-radius:14px;
  background:#f8fafb;
}
.ecsd-review-proof__item{
  min-width:0;
  padding:16px 20px;
  border-right:1px solid #e2e8ed;
}
.ecsd-review-proof__item:last-child{border-right:0}
.ecsd-review-proof__item strong{
  display:block;
  color:#34485a;
  font-size:20px;
  line-height:1.15;
  font-weight:850;
}
.ecsd-review-proof__item span{
  display:block;
  margin-top:4px;
  color:#738190;
  font-size:12px;
  line-height:1.35;
}

.ecsd-review-themes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:30px;
}
.ecsd-review-theme{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:7px 11px;
  border:1px solid #e1e7ec;
  border-radius:999px;
  background:#fff;
  color:#526575;
  font-size:12.5px;
  line-height:1.2;
  font-weight:650;
}
.ecsd-review-theme svg{
  width:14px;
  height:14px;
  flex:0 0 14px;
}
.ecsd-review-theme.is-positive svg{color:#1b9a67}
.ecsd-review-theme.is-mixed{
  border-color:#f0d7d9;
  background:#fffafb;
}
.ecsd-review-theme.is-mixed svg{color:#ed1c24}

.ecsd-review-list-head--clean{
  margin:0 0 15px!important;
  padding-top:4px;
  align-items:end!important;
}
.ecsd-review-list-head--clean h3{
  margin:0!important;
  color:#34485a!important;
  font-size:22px!important;
  line-height:1.3!important;
  font-weight:800!important;
}
.ecsd-review-list-head--clean>p{
  max-width:420px;
  margin:0;
  color:#7a8794;
  font-size:12px;
  line-height:1.45;
  text-align:right;
}

.ecsd-review-cards--clean{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:15px!important;
}

.ecsd-review-card--clean{
  position:relative;
  padding:20px!important;
  border:1px solid #e1e7ec!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 7px 22px rgba(35,52,70,.045)!important;
}
.ecsd-review-card--clean:before{
  content:"";
  position:absolute;
  top:0;
  left:20px;
  width:48px;
  height:3px;
  border-radius:0 0 99px 99px;
  background:#ed1c24;
}

.ecsd-review-card--clean .ecsd-review-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.ecsd-review-card__traveler{
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
}
.ecsd-review-flag{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border:1px solid #e2e7ec;
  border-radius:50%;
  background:#f8fafb;
  font-size:20px;
  line-height:1;
}
.ecsd-review-card__traveler>div{min-width:0}
.ecsd-review-card__traveler strong{
  display:block;
  overflow:hidden;
  color:#34485a;
  font-size:14px;
  line-height:1.25;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ecsd-review-card__traveler span{
  display:block;
  margin-top:4px;
  color:#82909d;
  font-size:11.5px;
  line-height:1.3;
}

.ecsd-review-card__rating{
  display:flex;
  flex:0 0 auto;
  align-items:baseline;
  padding:6px 8px;
  border-radius:8px;
  background:#34485a;
  color:#fff;
}
.ecsd-review-card__rating b{
  font-size:14px;
  line-height:1;
  font-weight:850;
}
.ecsd-review-card__rating span{
  margin-left:1px;
  font-size:10px;
  opacity:.82;
}

.ecsd-review-card--clean h4{
  margin:17px 0 8px!important;
  color:#34485a!important;
  font-size:16px!important;
  line-height:1.4!important;
  font-weight:800!important;
}
.ecsd-review-card--clean p{
  margin:0!important;
  color:#586b7a!important;
  font-size:14px!important;
  line-height:1.65!important;
}

.ecsd-review-card--extra{display:none!important}
.ecsd-reviews--expanded .ecsd-review-card--extra{display:block!important}

.ecsd-review-more--primary{
  display:inline-flex!important;
  min-height:44px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  margin-top:18px!important;
  padding:11px 17px!important;
  border:1px solid #ed1c24!important;
  border-radius:9px!important;
  background:#ed1c24!important;
  color:#fff!important;
  box-shadow:0 7px 16px rgba(237,28,36,.15)!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1.2!important;
}
.ecsd-review-more--primary:hover{
  border-color:#cf1520!important;
  background:#cf1520!important;
  color:#fff!important;
}
.ecsd-review-more--primary svg{
  width:15px!important;
  height:15px!important;
  color:#fff!important;
  stroke:currentColor!important;
}
.ecsd-reviews--expanded .ecsd-review-more--primary svg{
  transform:rotate(180deg);
}

@media(max-width:900px){
  .ecsd-review-head{
    grid-template-columns:minmax(0,1fr) 220px;
    gap:22px;
  }
  .ecsd-review-cards--clean{
    grid-template-columns:1fr 1fr!important;
  }
}

@media(max-width:680px){
  .ecsd-review-head{
    grid-template-columns:1fr;
    align-items:start;
  }
  .ecsd-review-trust{
    min-height:0;
  }
  .ecsd-review-proof{
    grid-template-columns:1fr;
  }
  .ecsd-review-proof__item{
    border-right:0;
    border-bottom:1px solid #e2e8ed;
  }
  .ecsd-review-proof__item:last-child{border-bottom:0}
  .ecsd-review-list-head--clean{
    display:block!important;
  }
  .ecsd-review-list-head--clean>p{
    margin-top:8px;
    text-align:left;
  }
  .ecsd-review-cards--clean{
    grid-template-columns:1fr!important;
  }
  .ecsd-review-card__traveler strong{
    white-space:normal;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.18.3
   Review polish: no floating box, no duplicate score,
   local flags, cleaner cards
   ========================================================= */

.ecsd-reviews--v2183{
  padding-top:30px!important;
}

.ecsd-review-intro{
  max-width:760px;
  margin-bottom:18px;
}
.ecsd-review-intro h2{
  margin:0 0 8px!important;
  color:#34485a!important;
  font-size:30px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
}
.ecsd-review-intro>p{
  margin:0!important;
  color:#647586!important;
  font-size:15px!important;
  line-height:1.6!important;
}

.ecsd-review-overview{
  display:grid;
  grid-template-columns:1.15fr 1fr 1fr;
  overflow:hidden;
  margin:0 0 16px;
  border:1px solid #e1e7ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(38,53,67,.04);
}
.ecsd-review-overview>article{
  min-width:0;
  min-height:96px;
  padding:17px 20px;
  border-right:1px solid #e1e7ec;
}
.ecsd-review-overview>article:last-child{border-right:0}
.ecsd-review-overview__score{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto auto;
  column-gap:14px;
  align-content:center;
}
.ecsd-review-overview__number{
  grid-row:1/4;
  align-self:center;
  color:#34485a;
  font-size:32px;
  line-height:1;
  font-weight:850;
  letter-spacing:-.04em;
}
.ecsd-review-overview__number small{
  margin-left:2px;
  color:#788694;
  font-size:12px;
  font-weight:700;
  letter-spacing:0;
}
.ecsd-review-overview__stars{
  color:#f6a700;
  font-size:14px;
  line-height:1;
  letter-spacing:1.5px;
}
.ecsd-review-overview__score>strong{
  color:#34485a;
  font-size:13px;
  line-height:1.2;
}
.ecsd-review-overview__score>span,
.ecsd-review-overview__stat>span{
  color:#7b8996;
  font-size:11.5px;
  line-height:1.35;
}
.ecsd-review-overview__stat{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ecsd-review-overview__stat>strong{
  color:#34485a;
  font-size:22px;
  line-height:1.15;
  font-weight:850;
}
.ecsd-review-overview__stat>span{
  margin-top:5px;
}

.ecsd-reviews--v2183 .ecsd-review-themes{
  margin:0 0 28px!important;
}

.ecsd-review-list-head--v2183{
  margin:0 0 14px!important;
}
.ecsd-review-list-head--v2183 h3{
  margin:0!important;
  color:#34485a!important;
  font-size:22px!important;
  line-height:1.3!important;
  font-weight:800!important;
}

.ecsd-review-cards--v2183{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:15px!important;
}
.ecsd-review-card--v2183{
  position:relative;
  min-width:0;
  padding:20px!important;
  border:1px solid #e1e7ec!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 8px 20px rgba(35,52,70,.04)!important;
}
.ecsd-review-card--v2183:before{
  content:none!important;
}
.ecsd-review-card--v2183:hover{
  border-color:#d5dde4!important;
  box-shadow:0 10px 25px rgba(35,52,70,.07)!important;
}

.ecsd-review-card--v2183 .ecsd-review-card__top{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
}

.ecsd-review-card--v2183 .ecsd-review-card__traveler{
  display:flex!important;
  min-width:0!important;
  align-items:center!important;
  gap:11px!important;
}
.ecsd-review-flag--img{
  display:grid!important;
  place-items:center!important;
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  overflow:hidden!important;
  border:1px solid #dfe5ea!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:0 2px 6px rgba(31,49,66,.06)!important;
}
.ecsd-review-flag--img img{
  width:30px!important;
  height:20px!important;
  object-fit:cover!important;
  border-radius:2px!important;
  display:block!important;
}
.ecsd-review-flag--img>span{
  font-size:18px!important;
  line-height:1!important;
}

.ecsd-review-card--v2183 .ecsd-review-card__traveler strong{
  display:block!important;
  overflow:visible!important;
  color:#34485a!important;
  font-size:13.5px!important;
  line-height:1.3!important;
  font-weight:800!important;
  white-space:normal!important;
  text-overflow:clip!important;
}
.ecsd-review-card--v2183 .ecsd-review-card__traveler span{
  display:block!important;
  margin-top:4px!important;
  color:#82909d!important;
  font-size:11.5px!important;
  line-height:1.35!important;
}

.ecsd-review-card--v2183 .ecsd-review-card__rating{
  display:flex!important;
  align-items:baseline!important;
  flex:0 0 auto!important;
  min-width:48px!important;
  justify-content:center!important;
  padding:7px 8px!important;
  border-radius:8px!important;
  background:#34485a!important;
  color:#fff!important;
}
.ecsd-review-card--v2183 .ecsd-review-card__rating b{
  font-size:14px!important;
  line-height:1!important;
  font-weight:850!important;
}
.ecsd-review-card--v2183 .ecsd-review-card__rating span{
  margin-left:1px!important;
  font-size:9px!important;
  opacity:.84!important;
}

.ecsd-review-card--v2183 h4{
  margin:17px 0 8px!important;
  color:#34485a!important;
  font-size:16px!important;
  line-height:1.42!important;
  font-weight:800!important;
}
.ecsd-review-card--v2183 p{
  margin:0!important;
  color:#596c7b!important;
  font-size:14px!important;
  line-height:1.65!important;
}

.ecsd-reviews--v2183 .ecsd-review-card--extra{
  display:none!important;
}
.ecsd-reviews--v2183.ecsd-reviews--expanded .ecsd-review-card--extra{
  display:block!important;
}

.ecsd-reviews--v2183 .ecsd-review-more--primary{
  margin-top:17px!important;
  min-height:42px!important;
  padding:10px 16px!important;
  border-radius:8px!important;
  background:#ed1c24!important;
  border-color:#ed1c24!important;
  color:#fff!important;
  box-shadow:0 6px 15px rgba(237,28,36,.13)!important;
}
.ecsd-reviews--v2183 .ecsd-review-more--primary:hover{
  background:#cf1520!important;
  border-color:#cf1520!important;
}
.ecsd-reviews--v2183 .ecsd-review-more--primary svg{
  width:14px!important;
  height:14px!important;
}

@media(max-width:900px){
  .ecsd-review-cards--v2183{
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:680px){
  .ecsd-review-overview{
    grid-template-columns:1fr!important;
  }
  .ecsd-review-overview>article{
    min-height:0!important;
    border-right:0!important;
    border-bottom:1px solid #e1e7ec!important;
  }
  .ecsd-review-overview>article:last-child{
    border-bottom:0!important;
  }
  .ecsd-review-cards--v2183{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.18.4
   Real reviewer identities + transparent platform totals
   ========================================================= */

.ecsd-reviews--v2184{
  padding-top:30px!important;
}
.ecsd-reviews--v2184 .ecsd-review-intro{
  max-width:780px!important;
  margin-bottom:18px!important;
}

.ecsd-review-platforms{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) 1.05fr;
  overflow:hidden;
  margin:0 0 16px;
  border:1px solid #e0e6eb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(38,53,67,.04);
}
.ecsd-review-platform,
.ecsd-review-platforms__synced{
  position:relative;
  min-width:0;
  min-height:100px;
  padding:17px 19px;
  border-right:1px solid #e0e6eb;
}
.ecsd-review-platforms>*:last-child{border-right:0}
.ecsd-review-platform.is-primary:before{
  content:"";
  position:absolute;
  top:0;
  left:18px;
  right:18px;
  height:3px;
  border-radius:0 0 99px 99px;
  background:#ed1c24;
}
.ecsd-review-platform>span{
  display:block;
  margin-bottom:8px;
  color:#677888;
  font-size:12px;
  line-height:1.2;
  font-weight:750;
}
.ecsd-review-platform>strong{
  display:block;
  color:#34485a;
  font-size:24px;
  line-height:1.1;
  font-weight:850;
}
.ecsd-review-platform>small{
  display:block;
  margin-top:5px;
  color:#7b8996;
  font-size:11.5px;
  line-height:1.4;
}
.ecsd-review-platforms__synced{
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#f8fafb;
}
.ecsd-review-platforms__synced>strong{
  color:#ed1c24;
  font-size:24px;
  line-height:1.1;
  font-weight:850;
}
.ecsd-review-platforms__synced>span{
  margin-top:5px;
  color:#6f7f8d;
  font-size:11.5px;
  line-height:1.4;
}

.ecsd-reviews--v2184 .ecsd-review-themes{
  margin:0 0 28px!important;
}

.ecsd-review-list-head--v2184{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:20px!important;
  margin:0 0 14px!important;
}
.ecsd-review-list-head--v2184 h3{
  margin:0!important;
  color:#34485a!important;
  font-size:22px!important;
  line-height:1.3!important;
  font-weight:800!important;
}
.ecsd-review-showing{
  color:#7c8996;
  font-size:12px;
  line-height:1.35;
  white-space:nowrap;
}

.ecsd-review-cards--v2184{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:15px!important;
}
.ecsd-review-card--v2184{
  min-width:0;
  padding:20px!important;
  border:1px solid #e0e6eb!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 7px 20px rgba(35,52,70,.04)!important;
}
.ecsd-review-card--v2184:hover{
  border-color:#d2dbe2!important;
  box-shadow:0 10px 24px rgba(35,52,70,.065)!important;
}
.ecsd-review-card--v2184 .ecsd-review-card__top{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
}
.ecsd-review-card--v2184 .ecsd-review-card__traveler{
  display:flex!important;
  min-width:0!important;
  align-items:center!important;
  gap:11px!important;
}
.ecsd-review-card__identity{
  min-width:0;
}
.ecsd-review-card__identity>strong{
  display:block;
  overflow:hidden;
  color:#34485a;
  font-size:14px;
  line-height:1.3;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ecsd-review-card__identity>span{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:#7c8996;
  font-size:11.5px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ecsd-review-card__rating--source{
  min-width:auto!important;
  padding:7px 9px!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap!important;
}

.ecsd-review-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:14px 0 11px;
}
.ecsd-review-card__meta span{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:5px 8px;
  border-radius:999px;
  background:#f5f7f9;
  color:#667786;
  font-size:10.8px;
  line-height:1.2;
}
.ecsd-review-card--v2184>p{
  margin:0!important;
  color:#596c7b!important;
  font-size:14px!important;
  line-height:1.65!important;
}
.ecsd-review-card__source{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:15px;
  padding-top:12px;
  border-top:1px solid #edf0f2;
  color:#788694;
  font-size:10.8px;
  line-height:1.3;
}
.ecsd-review-card__source span{
  color:#8b97a2;
  text-align:right;
}

.ecsd-reviews--v2184 .ecsd-review-card--extra{
  display:none!important;
}
.ecsd-reviews--v2184.ecsd-reviews--expanded .ecsd-review-card--extra{
  display:block!important;
}

.ecsd-reviews--v2184 .ecsd-review-more--primary{
  margin-top:17px!important;
  min-height:42px!important;
  padding:10px 16px!important;
  border:1px solid #ed1c24!important;
  border-radius:8px!important;
  background:#ed1c24!important;
  color:#fff!important;
  box-shadow:0 6px 15px rgba(237,28,36,.13)!important;
  font-size:13px!important;
  font-weight:800!important;
}
.ecsd-reviews--v2184 .ecsd-review-more--primary:hover{
  background:#cf1520!important;
  border-color:#cf1520!important;
}

@media(max-width:1000px){
  .ecsd-review-platforms{
    grid-template-columns:1fr 1fr;
  }
  .ecsd-review-platform,
  .ecsd-review-platforms__synced{
    border-bottom:1px solid #e0e6eb;
  }
  .ecsd-review-platforms>*:nth-child(2n){border-right:0}
  .ecsd-review-platforms>*:nth-last-child(-n+2){border-bottom:0}
  .ecsd-review-cards--v2184{
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:680px){
  .ecsd-review-platforms{
    grid-template-columns:1fr;
  }
  .ecsd-review-platform,
  .ecsd-review-platforms__synced{
    min-height:0;
    border-right:0!important;
    border-bottom:1px solid #e0e6eb!important;
  }
  .ecsd-review-platforms>*:last-child{border-bottom:0!important}
  .ecsd-review-list-head--v2184{
    display:block!important;
  }
  .ecsd-review-showing{
    display:block;
    margin-top:7px;
    white-space:normal;
  }
  .ecsd-review-cards--v2184{
    grid-template-columns:1fr!important;
  }
  .ecsd-review-card__identity>strong,
  .ecsd-review-card__identity>span{
    white-space:normal;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.19.0 — Review Center
   Server-rendered, scalable, independent-source presentation
   ========================================================= */
.ecsd-review-center{padding-top:34px!important}
.ecsrc-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:28px;
  align-items:end;
  margin-bottom:18px;
}
.ecsrc-head>div:first-child{max-width:780px}
.ecsrc-eyebrow{
  display:block;
  margin-bottom:7px;
  color:#ed1c24;
  font-size:11px;
  font-weight:850;
  line-height:1.2;
  letter-spacing:.09em;
}
.ecsrc-head h2{
  margin:0 0 8px!important;
  color:#34485a!important;
  font-size:30px!important;
  line-height:1.2!important;
  font-weight:850!important;
  letter-spacing:-.02em!important;
}
.ecsrc-head p{
  margin:0!important;
  color:#617383!important;
  font-size:15px!important;
  line-height:1.62!important;
}
.ecsrc-count{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:82px;
  padding:15px 17px;
  border:1px solid #e0e6eb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 20px rgba(35,52,70,.045);
}
.ecsrc-count strong{
  color:#ed1c24;
  font-size:30px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.04em;
}
.ecsrc-count span{
  color:#677888;
  font-size:11.5px;
  line-height:1.35;
  font-weight:650;
}

.ecsrc-platforms{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  overflow:hidden;
  margin-bottom:15px;
  border:1px solid #e0e6eb;
  border-radius:14px;
  background:#f9fbfc;
}
.ecsrc-platform{
  min-width:0;
  min-height:92px;
  padding:16px 18px;
  border-right:1px solid #e0e6eb;
}
.ecsrc-platform:last-child{border-right:0}
.ecsrc-platform>span{
  display:block;
  color:#687989;
  font-size:12px;
  font-weight:750;
}
.ecsrc-platform>strong{
  display:block;
  margin-top:6px;
  color:#34485a;
  font-size:21px;
  line-height:1.15;
  font-weight:900;
}
.ecsrc-platform>small{
  display:block;
  margin-top:4px;
  color:#83909c;
  font-size:11px;
  line-height:1.35;
}
.ecsrc-platform--policy{
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
}
.ecsrc-platform--policy svg{
  width:24px;
  height:24px;
  flex:0 0 24px;
  color:#1b9a67;
  stroke:currentColor;
  fill:none;
}
.ecsrc-platform--policy span b{
  display:block;
  color:#34485a;
  font-size:12.5px;
  line-height:1.3;
}
.ecsrc-platform--policy span small{
  display:block;
  margin-top:3px;
  color:#83909c;
  font-size:10.8px;
}

.ecsrc-signals{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 30px;
}
.ecsrc-signals>span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid #e0e6eb;
  border-radius:999px;
  background:#fff;
  color:#526575;
}
.ecsrc-signals svg{
  width:14px;height:14px;flex:0 0 14px;
  fill:none;stroke:currentColor;
}
.ecsrc-signals b{font-size:12px;line-height:1.1;font-weight:750}
.ecsrc-signals small{font-size:10.5px;color:#8995a0}
.ecsrc-signals .is-positive svg{color:#159567}
.ecsrc-signals .is-mixed{background:#fffafb;border-color:#efd7d9}
.ecsrc-signals .is-mixed svg{color:#ed1c24}

.ecsrc-subhead,.ecsrc-centerbar,.ecsrc-list-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  margin-bottom:14px;
}
.ecsrc-subhead h3,.ecsrc-centerbar h3{
  margin:0!important;
  color:#34485a!important;
  font-size:22px!important;
  line-height:1.3!important;
  font-weight:850!important;
}
.ecsrc-subhead>span{
  color:#81909d;
  font-size:12px;
  white-space:nowrap;
}
.ecsrc-centerbar>a{
  color:#536c80;
  font-size:12.5px;
  font-weight:700;
  text-decoration:none;
}
.ecsrc-centerbar>a:hover{color:#ed1c24}

.ecsrc-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.ecsrc-review{
  min-width:0;
  padding:20px;
  border:1px solid #e0e6eb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 18px rgba(35,52,70,.035);
}
.ecsrc-review:hover{
  border-color:#d4dce3;
  box-shadow:0 10px 24px rgba(35,52,70,.055);
}
.ecsrc-review__identity{
  display:flex;
  align-items:center;
  gap:11px;
}
.ecsrc-flag{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  overflow:hidden;
  border:1px solid #dfe5ea;
  border-radius:50%;
  background:#f8fafb;
  font-size:18px;
}
.ecsrc-flag img{
  width:30px;height:20px;display:block;object-fit:cover;border-radius:2px;
}
.ecsrc-review__identity>div{min-width:0;flex:1}
.ecsrc-review__identity strong{
  display:block;
  overflow:hidden;
  color:#34485a;
  font-size:14px;
  line-height:1.3;
  font-weight:850;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.ecsrc-review__identity span{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:#82909c;
  font-size:11.5px;
  line-height:1.3;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.ecsrc-review__rating{
  flex:0 0 auto;
  padding:7px 9px;
  border-radius:8px;
  background:#34485a;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:850;
}
.ecsrc-review__meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:14px 0 11px;
}
.ecsrc-review__meta span{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:5px 8px;
  border-radius:999px;
  background:#f5f7f9;
  color:#667786;
  font-size:10.8px;
  line-height:1.2;
}
.ecsrc-review__meta .is-caution{
  background:#fff3f3;
  color:#b4232b;
}
.ecsrc-review>p{
  margin:0!important;
  color:#586b7a!important;
  font-size:14px!important;
  line-height:1.68!important;
}
.ecsrc-review__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:15px;
  padding-top:12px;
  border-top:1px solid #edf0f2;
}
.ecsrc-review__foot>span{
  color:#536c80;
  font-size:10.8px;
  font-weight:800;
}
.ecsrc-review__foot small{
  color:#8b97a2;
  font-size:10.8px;
}

.ecsrc-viewall{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:46px;
  margin-top:18px;
  padding:11px 18px;
  border:1px solid #ed1c24;
  border-radius:9px;
  background:#ed1c24;
  color:#fff!important;
  box-shadow:0 7px 17px rgba(237,28,36,.15);
  font-size:13px;
  line-height:1.2;
  font-weight:850;
  text-decoration:none!important;
}
.ecsrc-viewall:hover{background:#cf1520;border-color:#cf1520;color:#fff!important}
.ecsrc-viewall svg{width:16px;height:16px;stroke:currentColor;fill:none}

.ecsrc-filters{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0 0 14px;
}
.ecsrc-filters a{
  display:inline-flex;
  min-height:34px;
  align-items:center;
  padding:7px 11px;
  border:1px solid #dfe5ea;
  border-radius:999px;
  background:#fff;
  color:#566a7a;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}
.ecsrc-filters a:hover{border-color:#ed1c24;color:#ed1c24}
.ecsrc-filters a.is-active{
  border-color:#ed1c24;
  background:#ed1c24;
  color:#fff;
}

.ecsrc-resultsbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
  padding:12px 14px;
  border:1px solid #e3e8ed;
  border-radius:10px;
  background:#f8fafb;
}
.ecsrc-resultsbar>strong{
  color:#34485a;
  font-size:12.5px;
}
.ecsrc-sort{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px 10px;
}
.ecsrc-sort>span{color:#8a96a1;font-size:11px}
.ecsrc-sort a{
  color:#627585;
  font-size:11.5px;
  font-weight:700;
  text-decoration:none;
}
.ecsrc-sort a.is-active,.ecsrc-sort a:hover{color:#ed1c24}

.ecsrc-pagination{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:22px;
}
.ecsrc-page{
  display:grid;
  place-items:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border:1px solid #dce3e8;
  border-radius:8px;
  background:#fff;
  color:#536777;
  font-size:12px;
  font-weight:800;
  text-decoration:none!important;
}
.ecsrc-page:hover{border-color:#ed1c24;color:#ed1c24}
.ecsrc-page.is-current{
  border-color:#ed1c24;
  background:#ed1c24;
  color:#fff;
  pointer-events:none;
}
.ecsrc-page--wide{display:flex;min-width:auto;padding:0 14px}
.ecsrc-pagegap{padding:0 3px;color:#93a0aa}

@media(max-width:960px){
  .ecsrc-platforms{grid-template-columns:1fr 1fr}
  .ecsrc-platform:nth-child(2n){border-right:0}
  .ecsrc-platform:nth-child(-n+2){border-bottom:1px solid #e0e6eb}
}
@media(max-width:760px){
  .ecsrc-head{grid-template-columns:1fr}
  .ecsrc-count{max-width:220px}
  .ecsrc-list{grid-template-columns:1fr}
  .ecsrc-subhead,.ecsrc-centerbar,.ecsrc-resultsbar{display:block}
  .ecsrc-subhead>span,.ecsrc-centerbar>a{display:inline-block;margin-top:8px}
  .ecsrc-sort{margin-top:9px}
}
@media(max-width:520px){
  .ecsrc-platforms{grid-template-columns:1fr}
  .ecsrc-platform{
    min-height:0;
    border-right:0!important;
    border-bottom:1px solid #e0e6eb!important;
  }
  .ecsrc-platform:last-child{border-bottom:0!important}
  .ecsrc-review{padding:17px}
  .ecsrc-review__identity strong,.ecsrc-review__identity span{white-space:normal}
}


/* =========================================================
   EcoSapa Cruise Pages v2.19.1 — Flag badge rendering fix
   ========================================================= */

/*
 * v2.19.0 used a small rectangular flag inside a large circular holder.
 * On Windows/Chrome this looked like a broken/tiny flag. Unknown countries
 * also fell back to a globe emoji, which looked like an image-loading error.
 *
 * v2.19.1 uses:
 * - real flags as compact rounded-rectangle badges;
 * - initials avatar when no country was published by the source.
 */
.ecsd-review-center .ecsrc-flag{
  flex:0 0 auto!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

.ecsd-review-center .ecsrc-flag.has-flag{
  display:block!important;
  width:38px!important;
  height:26px!important;
  min-width:38px!important;
  border:1px solid #d7dfe6!important;
  border-radius:5px!important;
  background:#fff!important;
  box-shadow:0 2px 6px rgba(31,49,66,.06)!important;
  font-size:0!important;
  line-height:0!important;
}

.ecsd-review-center .ecsrc-flag.has-flag img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  border:0!important;
  border-radius:4px!important;
  margin:0!important;
  padding:0!important;
}

.ecsd-review-center .ecsrc-flag.has-avatar{
  display:grid!important;
  place-items:center!important;
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  border:1px solid #dfe5ea!important;
  border-radius:50%!important;
  background:#f4f7f9!important;
  color:#526575!important;
  box-shadow:none!important;
}

.ecsd-review-center .ecsrc-flag.has-avatar b{
  display:block!important;
  margin:0!important;
  padding:0!important;
  color:#526575!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:.02em!important;
}

/* Keep text aligned whether the badge is a flag or an initials avatar. */
.ecsd-review-center .ecsrc-review__identity{
  min-height:42px!important;
}

@media(max-width:520px){
  .ecsd-review-center .ecsrc-flag.has-flag{
    width:36px!important;
    height:24px!important;
    min-width:36px!important;
  }
  .ecsd-review-center .ecsrc-flag.has-avatar{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.19.2
   Review Center typography normalization
   ========================================================= */

/* One type system for the entire review experience. */
.ecsd-review-center,
.ecsd-review-center button,
.ecsd-review-center a,
.ecsd-review-center input,
.ecsd-review-center select{
  font-family:Roboto,"Helvetica Neue",Arial,sans-serif!important;
}

/* Intro */
.ecsd-review-center .ecsrc-eyebrow{
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:.075em!important;
}
.ecsd-review-center .ecsrc-head h2{
  font-size:32px!important;
  line-height:1.2!important;
  font-weight:800!important;
}
.ecsd-review-center .ecsrc-head p{
  font-size:16px!important;
  line-height:1.62!important;
}
.ecsd-review-center .ecsrc-count strong{
  font-size:32px!important;
}
.ecsd-review-center .ecsrc-count span{
  font-size:12.5px!important;
  line-height:1.4!important;
}

/* Platform summary */
.ecsd-review-center .ecsrc-platform>span{
  font-size:13px!important;
  line-height:1.3!important;
  font-weight:750!important;
}
.ecsd-review-center .ecsrc-platform>strong{
  font-size:23px!important;
  line-height:1.2!important;
}
.ecsd-review-center .ecsrc-platform>small{
  font-size:12.5px!important;
  line-height:1.4!important;
}
.ecsd-review-center .ecsrc-platform--policy span b{
  font-size:13.5px!important;
  line-height:1.3!important;
}
.ecsd-review-center .ecsrc-platform--policy span small{
  font-size:12px!important;
  line-height:1.4!important;
}

/* Insight chips */
.ecsd-review-center .ecsrc-signals>span{
  min-height:36px!important;
  padding:8px 12px!important;
}
.ecsd-review-center .ecsrc-signals b{
  font-size:13px!important;
  line-height:1.2!important;
}
.ecsd-review-center .ecsrc-signals small{
  font-size:11.5px!important;
  line-height:1.2!important;
}

/* Review Center heading and toolbar */
.ecsd-review-center .ecsrc-subhead h3,
.ecsd-review-center .ecsrc-centerbar h3{
  font-size:24px!important;
  line-height:1.3!important;
  font-weight:800!important;
}
.ecsd-review-center .ecsrc-subhead>span,
.ecsd-review-center .ecsrc-centerbar>a{
  font-size:13px!important;
  line-height:1.4!important;
}
.ecsd-review-center .ecsrc-filters a{
  min-height:38px!important;
  padding:8px 13px!important;
  font-size:13px!important;
  line-height:1.2!important;
  font-weight:700!important;
}
.ecsd-review-center .ecsrc-resultsbar{
  min-height:48px!important;
  padding:12px 15px!important;
}
.ecsd-review-center .ecsrc-resultsbar>strong{
  font-size:13.5px!important;
  line-height:1.3!important;
}
.ecsd-review-center .ecsrc-sort>span{
  font-size:12px!important;
}
.ecsd-review-center .ecsrc-sort a{
  font-size:12.5px!important;
  line-height:1.3!important;
}

/* Review cards */
.ecsd-review-center .ecsrc-review{
  padding:22px!important;
}
.ecsd-review-center .ecsrc-review__identity strong{
  font-size:15px!important;
  line-height:1.35!important;
  font-weight:800!important;
}
.ecsd-review-center .ecsrc-review__identity span{
  font-size:12.5px!important;
  line-height:1.35!important;
}
.ecsd-review-center .ecsrc-review__rating{
  padding:8px 10px!important;
  font-size:13px!important;
  line-height:1!important;
}
.ecsd-review-center .ecsrc-review__meta{
  margin:15px 0 12px!important;
  gap:7px!important;
}
.ecsd-review-center .ecsrc-review__meta span{
  min-height:27px!important;
  padding:6px 9px!important;
  font-size:11.8px!important;
  line-height:1.2!important;
}
.ecsd-review-center .ecsrc-review>p{
  font-size:15px!important;
  line-height:1.7!important;
}
.ecsd-review-center .ecsrc-review__foot>span,
.ecsd-review-center .ecsrc-review__foot small{
  font-size:11.8px!important;
  line-height:1.35!important;
}

/* CTA + pagination */
.ecsd-review-center .ecsrc-viewall{
  min-height:48px!important;
  padding:12px 19px!important;
  font-size:14px!important;
  font-weight:800!important;
}
.ecsd-review-center .ecsrc-page{
  min-width:40px!important;
  height:40px!important;
  font-size:13px!important;
}
.ecsd-review-center .ecsrc-page--wide{
  padding:0 15px!important;
}

/* Responsive typography stays readable, not tiny. */
@media(max-width:760px){
  .ecsd-review-center .ecsrc-head h2{
    font-size:29px!important;
  }
  .ecsd-review-center .ecsrc-head p{
    font-size:15px!important;
  }
  .ecsd-review-center .ecsrc-subhead h3,
  .ecsd-review-center .ecsrc-centerbar h3{
    font-size:22px!important;
  }
  .ecsd-review-center .ecsrc-review{
    padding:19px!important;
  }
  .ecsd-review-center .ecsrc-review>p{
    font-size:14.5px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.20.0
   SEO architecture polish — internal link cluster
   ========================================================= */
.ecsd-page .ecsd-internal-links{
  margin-top:16px!important;
  padding-top:14px!important;
  border-top:1px solid #edf0f2!important;
  color:#667786!important;
  font-size:14px!important;
  line-height:1.65!important;
}
.ecsd-page .ecsd-internal-links strong{
  color:#34485a!important;
  font-weight:750!important;
}
.ecsd-page .ecsd-internal-links a{
  color:#405f78!important;
  font-weight:650!important;
  text-decoration:underline!important;
  text-decoration-color:#c9d3db!important;
  text-underline-offset:3px!important;
}
.ecsd-page .ecsd-internal-links a:hover{
  color:#ed1c24!important;
  text-decoration-color:#ed1c24!important;
}


/* v2.20.0 final polish: three independent review platforms only. */
.ecsd-review-center .ecsrc-platforms{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
@media(max-width:960px){
  .ecsd-review-center .ecsrc-platforms{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .ecsd-review-center .ecsrc-platform{
    border-bottom:0!important;
  }
  .ecsd-review-center .ecsrc-platform:nth-child(2n){
    border-right:1px solid #e0e6eb!important;
  }
  .ecsd-review-center .ecsrc-platform:last-child{
    border-right:0!important;
  }
}
@media(max-width:680px){
  .ecsd-review-center .ecsrc-platforms{
    grid-template-columns:1fr!important;
  }
  .ecsd-review-center .ecsrc-platform{
    border-right:0!important;
    border-bottom:1px solid #e0e6eb!important;
  }
  .ecsd-review-center .ecsrc-platform:last-child{
    border-bottom:0!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.22.0
   Universal itinerary map + source-safe decision labels
   ========================================================= */
.ecsd-route-map__mapnote{
  max-width:520px!important;
  line-height:1.35!important;
}
.ecsd-route-map__meta span:first-child{
  max-width:560px!important;
  white-space:normal!important;
  text-align:right!important;
}
@media(max-width:760px){
  .ecsd-route-map__meta span:first-child{text-align:left!important}
}


/* =========================================================
   EcoSapa Cruise Pages v2.23.0
   Hybrid overview + map declutter + frontend QA
   ========================================================= */

.ecsd-page .ecsd-tour-overview__left{min-width:0}
.ecsd-page .ecsd-tour-overview{
  grid-template-columns:minmax(0,1fr) 360px!important;
  align-items:start!important;
}
.ecsd-page .ecsd-overview-editorial{
  margin-top:22px;
  padding:22px 24px;
  border:1px solid #e2e8eb;
  border-radius:16px;
  background:#fff;
}
.ecsd-page .ecsd-overview-editorial__eyebrow{
  display:block;
  margin-bottom:5px;
  color:#ed1c24;
  font-size:11px;
  line-height:1.2;
  font-weight:850;
  letter-spacing:.08em;
}
.ecsd-page .ecsd-overview-editorial h2{
  margin:0 0 9px;
  color:#2f3f4f;
  font-size:23px!important;
  line-height:1.28!important;
  font-weight:800!important;
}
.ecsd-page .ecsd-overview-editorial__intro{
  margin:0;
  color:#566978;
  font-size:15px;
  line-height:1.68;
}
.ecsd-page .ecsd-overview-editorial__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:18px;
}
.ecsd-page .ecsd-overview-editorial__grid article{
  padding:16px;
  border:1px solid #e3e8eb;
  border-radius:13px;
  background:#fafcfd;
}
.ecsd-page .ecsd-overview-editorial__grid article.ecsd-overview-editorial__eco{
  background:#fff8f4;
  border-color:#f2ddd2;
}
.ecsd-page .ecsd-overview-editorial__grid article>span{
  display:block;
  margin-bottom:9px;
  color:#687a86;
  font-size:10.5px;
  font-weight:850;
  letter-spacing:.065em;
}
.ecsd-page .ecsd-overview-editorial__grid ul{
  display:grid;
  gap:9px;
  margin:0;
  padding:0;
  list-style:none;
}
.ecsd-page .ecsd-overview-editorial__grid li{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  gap:8px;
  align-items:start;
  color:#405566;
  font-size:13.5px;
  line-height:1.5;
}
.ecsd-page .ecsd-overview-editorial__grid li svg{
  width:16px;height:16px;margin-top:2px;color:#0f8a79;
}
.ecsd-page .ecsd-overview-editorial__eco li svg{color:#ed1c24}

/* The old separate warm "why" strip is now merged into Overview. */
.ecsd-page .ecsd-why{display:none!important}

/* Multi-duration badge. */
.ecsd-page .ecsd-duration-badge strong{
  font-size:31px!important;
  letter-spacing:-.04em;
}

/* Declutter dense attraction clusters such as Luon / Titop / Sung Sot. */
.ecsd-route-map--leaflet .ecsd-map-marker--compact{
  gap:0!important;
}
.ecsd-route-map--leaflet .ecsd-map-marker--compact .ecsd-map-marker__pin{
  width:24px!important;
  height:24px!important;
  border-width:2px!important;
  font-size:10px!important;
  box-shadow:0 3px 9px rgba(0,0,0,.18)!important;
}
.ecsd-route-map--leaflet .ecsd-map-marker--label-left{
  flex-direction:row-reverse!important;
  transform:translateX(-100%);
}
.ecsd-route-map--leaflet .ecsd-map-marker--label-left .ecsd-map-marker__label{
  text-align:right;
}
.ecsd-route-map--leaflet .ecsd-map-marker__label strong,
.ecsd-route-map--leaflet .ecsd-map-marker__label em{
  display:block;
}
.ecsd-route-map--leaflet .ecsd-map-marker__label strong{
  color:#ed1c24;
  font-size:9.5px;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.ecsd-route-map--leaflet .ecsd-map-marker__label em{
  margin-top:2px;
  color:#2f3f4f;
  font-size:11px;
  font-style:normal;
  font-weight:750;
}
.ecsd-route-map--leaflet .ecsd-lf-map{
  overflow:hidden!important;
}
.ecsd-route-map--leaflet .leaflet-tooltip{
  border:1px solid #dfe6ea;
  border-radius:8px;
  color:#34485a;
  font-size:11px;
  font-weight:650;
  box-shadow:0 3px 10px rgba(0,0,0,.1);
}

/* No more "0 review profiles" trust-killer. */
.ecsd-review-center .ecsrc-empty{
  padding:24px 26px;
  border:1px solid #e2e8eb;
  border-radius:16px;
  background:#fbfcfd;
}
.ecsd-review-center .ecsrc-empty h2{
  margin:5px 0 8px;
  color:#2f3f4f;
  font-size:24px!important;
  line-height:1.3!important;
}
.ecsd-review-center .ecsrc-empty p{
  margin:0;
  max-width:780px;
  color:#637583;
  font-size:14.5px;
  line-height:1.65;
}
.ecsd-rating-compact--source{
  cursor:default!important;
}

@media(max-width:1100px){
  .ecsd-page .ecsd-overview-editorial__grid{grid-template-columns:1fr}
}
@media(max-width:980px){
  .ecsd-page .ecsd-tour-overview{grid-template-columns:1fr!important}
  .ecsd-page .ecsd-overview-editorial__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .ecsd-page .ecsd-overview-editorial{padding:18px}
  .ecsd-page .ecsd-overview-editorial__grid{grid-template-columns:1fr}
}


/* =========================================================
   EcoSapa Cruise Pages v2.23.2
   Bottom-anchored cabin CTA + collision-safe itinerary map
   ========================================================= */

/* BEST FOR chips: charset-safe drawn check, never a text glyph. */
.ecsd-cabin-popup__advisor li:before{
  content:""!important;
  display:inline-block!important;
  flex:0 0 auto!important;
  width:5px!important;
  height:9px!important;
  margin:0 2px 2px 1px!important;
  border:0!important;
  border-right:2px solid #178468!important;
  border-bottom:2px solid #178468!important;
  transform:rotate(45deg)!important;
}

/* RIGHT PANEL: one fixed-height frame, content scrolls behind a true bottom footer. */
.ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__info{
  position:relative!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:0!important;
  box-sizing:border-box!important;
}
.ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__scroll{
  position:absolute!important;
  inset:0!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  padding:30px 30px 118px!important;
  box-sizing:border-box!important;
  scrollbar-width:thin;
}
.ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__bottom{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:auto!important;
  bottom:0!important;
  z-index:40!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  min-height:84px!important;
  margin:0!important;
  padding:14px 22px!important;
  border-top:1px solid #dfe7e4!important;
  background:#fff!important;
  box-shadow:0 -10px 28px rgba(20,48,43,.09)!important;
  backdrop-filter:none!important;
  box-sizing:border-box!important;
}
.ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__book{
  flex:0 0 auto!important;
  min-width:190px!important;
  min-height:52px!important;
  padding:0 24px!important;
  border-radius:11px!important;
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:850!important;
  white-space:nowrap!important;
}
.ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__bottom>div{
  min-width:0!important;
}
.ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__bottom strong{
  display:block!important;
  max-width:240px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* Amenities icon stays charset-safe. */
.ecsd-cabin-popup__amenities li span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 15px!important;
  width:15px!important;
  height:18px!important;
  color:#178468!important;
  font-family:Arial,sans-serif!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:800!important;
}

/* Collision-safe map markers: numbered stops only; names live in hover/tap tooltips.
   Close attractions are dynamically grouped into a +N cluster at the current zoom. */
.ecsd-map-divicon-v232{
  background:transparent!important;
  border:0!important;
}
.ecsd-map-marker-v232{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  font-family:Roboto,"Helvetica Neue",Arial,sans-serif;
}
.ecsd-map-marker-v232__pin{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border:3px solid #fff;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  box-shadow:0 4px 12px rgba(31,41,55,.22);
  font-size:11px;
  line-height:1;
  font-weight:900;
}
.ecsd-map-marker-v232--day-2 .ecsd-map-marker-v232__pin{background:#f97316}
.ecsd-map-marker-v232--day-3 .ecsd-map-marker-v232__pin{background:#0f766e}
.ecsd-map-marker-v232--day-4 .ecsd-map-marker-v232__pin{background:#2563eb}
.ecsd-map-marker-v232--cluster .ecsd-map-marker-v232__pin{
  width:34px;
  height:34px;
  background:#243b53;
  border-width:3px;
  font-size:11px;
  box-shadow:0 5px 15px rgba(31,41,55,.28);
}
.ecsd-map-marker-v232--cluster{cursor:zoom-in}
.ecsd-map-marker-v232--start{
  display:flex;
  align-items:center;
  width:188px;
  height:48px;
}
.ecsd-map-marker-v232--start .ecsd-map-marker-v232__pin{
  flex:0 0 40px;
  width:40px;
  height:40px;
  border:3px solid #fff;
  background:#fff;
  color:#1f2937;
  box-shadow:0 4px 14px rgba(31,41,55,.22);
}
.ecsd-map-marker-v232--start .ecsd-map-marker-v232__pin svg{width:19px;height:19px}
.ecsd-map-marker-v232__startlabel{
  display:grid;
  gap:1px;
  min-width:116px;
  max-width:146px;
  margin-left:8px;
  padding:7px 10px;
  border:1px solid #dfe6ea;
  border-radius:9px;
  background:rgba(255,255,255,.96);
  box-shadow:0 3px 12px rgba(31,41,55,.12);
}
.ecsd-map-marker-v232__startlabel strong{
  color:#ed1c24;
  font-size:9px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.05em;
}
.ecsd-map-marker-v232__startlabel em{
  overflow:hidden;
  color:#2f3f4f;
  font-size:10.5px;
  line-height:1.25;
  font-style:normal;
  font-weight:750;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ecsd-route-map--leaflet .ecsd-route-cluster-tooltip{
  max-width:250px;
  white-space:normal;
  line-height:1.55;
}

@media(max-width:1120px){
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__scroll{padding:24px 24px 112px!important}
}
@media(max-width:820px){
  .ecsd-cabin-detail-modal--premium{padding:0!important}
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(260px,42dvh) minmax(0,1fr)!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
  }
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__visual{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
  }
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__info{
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__scroll{
    padding:22px 18px 104px!important;
  }
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__bottom{
    min-height:76px!important;
    padding:10px 12px!important;
  }
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__book{
    min-width:164px!important;
    min-height:50px!important;
  }
}
@media(max-width:560px){
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup{
    grid-template-rows:minmax(230px,38dvh) minmax(0,1fr)!important;
  }
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__bottom>div{display:none!important}
  .ecsd-cabin-detail-modal--premium .ecsd-cabin-popup__book{width:100%!important;min-width:0!important}
}


/* =========================================================
   EcoSapa Cruise Pages v2.23.3
   Cabin image badge text visibility fix
   ========================================================= */

/*
 * A legacy typography rule set `.ecsd-cabin__badge { color: inherit; }`.
 * Because the cabin media is a <button>, some themes/browser rules can make
 * its inherited foreground white. The badge itself also has a white
 * background, producing the blank white pill shown on the frontend.
 */
.ecsd-page .ecsd-cabin__media .ecsd-cabin__badge,
.ecsd-page button.ecsd-cabin__media .ecsd-cabin__badge{
  color:#263d50!important;
  background:rgba(255,255,255,.97)!important;
  opacity:1!important;
  visibility:visible!important;
  -webkit-text-fill-color:#263d50!important;
  text-shadow:none!important;
  text-indent:0!important;
  font-family:Roboto,"Helvetica Neue",Arial,sans-serif!important;
  font-weight:800!important;
  line-height:1.25!important;
}

/* Keep the badge readable over both bright and dark cabin photos. */
.ecsd-page .ecsd-cabin__badge{
  border:1px solid rgba(218,225,230,.92)!important;
  box-shadow:0 4px 14px rgba(16,24,40,.10)!important;
}

/* Defensive reset for itinerary image captions: ensure old absolute overlay
   rules can never turn a below-image caption into an empty-looking chip. */
.ecsd-page .ecsd-day__visual.ecsd-day__visual--after-content figcaption{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  z-index:auto!important;
  display:block!important;
  width:100%!important;
  border-radius:0!important;
  color:#667584!important;
  -webkit-text-fill-color:#667584!important;
  text-shadow:none!important;
  background:#fff!important;
}


/* =========================================================
   EcoSapa Cruise Pages v2.23.4
   Similar-cruise class / star identification
   ========================================================= */

/* The dark pill on the right remains the guest score.
   The light pill on the left is the ship's star class + cruise style. */
.ecsd-page .ecsd-related-card__image>span:not(.ecsd-related-card__class):not(.ecsd-related-card__score){
  display:none!important;
}
.ecsd-page .ecsd-related-card__score{
  position:absolute;
  right:10px;
  top:10px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 9px;
  border-radius:8px;
  background:#22364a;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:850;
  box-shadow:0 4px 12px rgba(13,29,44,.16);
}
.ecsd-page .ecsd-related-card__class{
  position:absolute;
  left:10px;
  top:10px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 92px);
  min-height:32px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72);
  border-radius:9px;
  background:rgba(255,255,255,.95);
  box-shadow:0 4px 13px rgba(13,29,44,.12);
  backdrop-filter:blur(5px);
}
.ecsd-page .ecsd-related-card__class b{
  display:inline-flex;
  align-items:center;
  align-self:stretch;
  gap:2px;
  padding:0 8px;
  background:#fff5d8;
  color:#9a6500;
  font-size:12px;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
}
.ecsd-page .ecsd-related-card__class b i{
  color:#f0a000;
  font-size:12px;
  font-style:normal;
}
.ecsd-page .ecsd-related-card__class em{
  min-width:0;
  overflow:hidden;
  padding:0 9px;
  color:#34485a;
  font-size:11.5px;
  line-height:1.15;
  font-style:normal;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}


/* =========================================================
   EcoSapa Cruise Pages v2.23.5
   Gold star class next to similar-cruise name
   ========================================================= */

/* Cruise name + official star class read as one visual unit. */
.ecsd-page .ecsd-related-card__title{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin:0 0 5px!important;
}
.ecsd-page .ecsd-related-card__title>a{
  min-width:0;
}
.ecsd-page .ecsd-related-card__stars{
  display:inline-flex;
  align-items:center;
  gap:1px;
  flex:0 0 auto;
  transform:translateY(-1px);
  white-space:nowrap;
}
.ecsd-page .ecsd-related-card__stars i{
  color:#f5a400!important;
  -webkit-text-fill-color:#f5a400!important;
  font-size:14px!important;
  line-height:1!important;
  font-style:normal!important;
  filter:drop-shadow(0 1px 0 rgba(150,91,0,.12));
}

/* Top-left photo badge now carries only cruise style, avoiding duplicate stars. */
.ecsd-page .ecsd-related-card__class{
  min-height:30px!important;
  max-width:58%!important;
}
.ecsd-page .ecsd-related-card__class em{
  padding:0 10px!important;
  color:#355048!important;
  font-size:11.5px!important;
  font-weight:850!important;
}
.ecsd-page .ecsd-related-card__class b{
  display:none!important;
}

@media(max-width:680px){
  .ecsd-page .ecsd-related-card__stars i{
    font-size:13px!important;
  }
}


/* =========================================================
   EcoSapa Cruise Pages v2.23.27
   MOBILE CRUISE DETAIL UX PASS
   Scope: <=820px only. Desktop layout is intentionally untouched.
   ========================================================= */

@media(max-width:820px){

  /* ---------- Global containment / readable viewport ---------- */
  .ecsd-page{
    overflow-x:clip!important;
    padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))!important;
  }
  .ecsd-page .ecsd-shell,
  .ecsd-shell{
    width:calc(100% - 24px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .ecsd-page img,
  .ecsd-page video,
  .ecsd-page iframe{
    max-width:100%!important;
  }

  /* Breadcrumbs should never create a 2–3 line block on a phone. */
  .ecsd-page .ecsd-breadcrumb{
    flex-wrap:nowrap!important;
    gap:7px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:12px 0 10px!important;
    font-size:11.5px!important;
    white-space:nowrap!important;
    scrollbar-width:none;
  }
  .ecsd-page .ecsd-breadcrumb::-webkit-scrollbar{display:none}

  /* ---------- Product title / trust ---------- */
  .ecsd-page--v270 .ecsd-prehero,
  .ecsd-page--v251 .ecsd-prehero{
    margin:0 0 14px!important;
  }
  .ecsd-page--v270 .ecsd-prehero__main,
  .ecsd-page--v251 .ecsd-prehero__main{
    padding:8px 0 10px!important;
  }
  .ecsd-page--v251 .ecsd-prehero .ecsd-titleline h1,
  .ecsd-page .ecsd-prehero .ecsd-titleline h1{
    margin-bottom:7px!important;
    max-width:100%!important;
    font-size:28px!important;
    line-height:1.17!important;
    letter-spacing:-.028em!important;
    overflow-wrap:anywhere;
  }
  .ecsd-page--v280 .ecsd-titlemeta{
    gap:7px 11px!important;
    margin-top:5px!important;
  }
  .ecsd-page--v280 .ecsd-titlemeta .ecsd-stars{
    font-size:16px!important;
    letter-spacing:1.5px!important;
  }
  .ecsd-page--v280 .ecsd-rating-compact{
    gap:5px!important;
    font-size:12.5px!important;
  }
  .ecsd-page--v280 .ecsd-rating-compact strong{font-size:14px!important}
  .ecsd-page--v280 .ecsd-route-line,
  .ecsd-page--v251 .ecsd-prehero .ecsd-route-line{
    margin-top:10px!important;
    gap:6px!important;
    font-size:14px!important;
    line-height:1.45!important;
  }

  /* ---------- Photo gallery: responsive ratio + swipeable thumbs ---------- */
  .ecsd-page--v2110 .ecsd-topgallery,
  .ecsd-page--v2111 .ecsd-topgallery,
  .ecsd-page--v251 .ecsd-topgallery{
    display:block!important;
    width:100%!important;
    height:auto!important;
    margin:0 0 18px!important;
  }
  .ecsd-page--v2110 .ecsd-topgallery__main,
  .ecsd-page--v2111 .ecsd-topgallery__main,
  .ecsd-page--v251 .ecsd-topgallery__main{
    width:100%!important;
    height:auto!important;
    aspect-ratio:4/3!important;
    min-height:0!important;
    border-radius:12px!important;
  }
  .ecsd-page--v2110 .ecsd-topgallery__mainlabel{
    left:10px!important;
    bottom:10px!important;
    max-width:45%!important;
    padding:6px 8px!important;
    font-size:10.5px!important;
  }
  .ecsd-page--v2110 .ecsd-topgallery__view{
    right:9px!important;
    bottom:9px!important;
    min-height:34px!important;
    padding:7px 9px!important;
    font-size:10.5px!important;
  }
  .ecsd-page--v2110 .ecsd-topgallery__rail{
    display:flex!important;
    gap:7px!important;
    margin-top:7px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding-bottom:2px!important;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
  }
  .ecsd-page--v2110 .ecsd-topgallery__rail::-webkit-scrollbar{display:none}
  .ecsd-page--v2110 .ecsd-topgallery__rail button{
    flex:0 0 112px!important;
    width:112px!important;
    height:70px!important;
    border-radius:8px!important;
    scroll-snap-align:start;
  }

  /* ---------- Desktop sticky bar is too dense on phone/tablet ---------- */
  .ecsd-page--v270 .ecsd-stickybar{
    display:none!important;
  }

  /* One mobile conversion bar only. */
  .ecsd-mobilebar{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:99998!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    min-height:68px!important;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))!important;
    border-top:1px solid #dde3e7!important;
    background:rgba(255,255,255,.98)!important;
    box-shadow:0 -7px 24px rgba(16,24,40,.12)!important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }
  .ecsd-mobilebar>div{
    min-width:0!important;
    display:flex!important;
    align-items:baseline!important;
    gap:3px!important;
    white-space:nowrap!important;
  }
  .ecsd-mobilebar small,
  .ecsd-mobilebar span{
    color:#78838e!important;
    font-size:10.5px!important;
  }
  .ecsd-mobilebar strong{
    color:#ed1c24!important;
    font-size:22px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.025em!important;
  }
  .ecsd-mobilebar button{
    flex:0 0 auto!important;
    min-width:142px!important;
    min-height:48px!important;
    padding:0 15px!important;
    border-radius:9px!important;
    background:#ed1c24!important;
    color:#fff!important;
    font-size:13.5px!important;
    line-height:1.15!important;
    font-weight:800!important;
  }

  /* The floating ship must sit ABOVE the mobile booking bar. */
  .ecosapa-cruise-top-ship{
    right:8px!important;
    bottom:calc(78px + env(safe-area-inset-bottom,0px))!important;
    width:82px!important;
    height:64px!important;
  }
  .ecosapa-cruise-top-ship__boat,
  .ecosapa-cruise-top-ship__boat svg{
    width:80px!important;
    height:61px!important;
  }

  /* ---------- Content rhythm ---------- */
  .ecsd-page .ecsd-section{
    padding:26px 0!important;
  }
  .ecsd-page .ecsd-section-title{
    margin-bottom:15px!important;
  }
  .ecsd-page .ecsd-section-title h2{
    margin-bottom:5px!important;
    font-size:24px!important;
    line-height:1.22!important;
    letter-spacing:-.02em!important;
  }
  .ecsd-page .ecsd-section-title p{
    font-size:13.5px!important;
    line-height:1.55!important;
  }

  /* ---------- Overview: no desktop-sized whitespace ---------- */
  .ecsd-page--v270 .ecsd-tour-overview,
  .ecsd-page .ecsd-tour-overview{
    grid-template-columns:1fr!important;
    gap:18px!important;
    padding:20px 0 4px!important;
  }
  .ecsd-page--v260 .ecsd-tour-overview__facts,
  .ecsd-page .ecsd-tour-overview__facts{
    grid-template-columns:1fr!important;
    row-gap:14px!important;
    padding:0!important;
  }
  .ecsd-page .ecsd-tour-fact{
    grid-template-columns:23px minmax(0,1fr)!important;
    gap:10px!important;
  }
  .ecsd-page .ecsd-tour-fact__icon svg{
    width:19px!important;
    height:19px!important;
  }
  .ecsd-page--v260 .ecsd-tour-fact b,
  .ecsd-page--v260 .ecsd-tour-fact p,
  .ecsd-page .ecsd-tour-fact b,
  .ecsd-page .ecsd-tour-fact p{
    font-size:14.5px!important;
    line-height:1.5!important;
  }
  .ecsd-page .ecsd-overview-editorial{
    margin-top:16px!important;
    padding:16px!important;
    border-radius:13px!important;
  }
  .ecsd-page .ecsd-overview-editorial h2{
    font-size:21px!important;
    line-height:1.25!important;
  }
  .ecsd-page .ecsd-overview-editorial__intro{
    font-size:13.5px!important;
    line-height:1.6!important;
  }
  .ecsd-page .ecsd-overview-editorial__grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .ecsd-page .ecsd-overview-editorial__grid article{
    padding:13px!important;
  }
  .ecsd-page .ecsd-overview-editorial__grid li{
    font-size:13px!important;
  }

  .ecsd-page--v260 .ecsd-tripcard,
  .ecsd-page .ecsd-tripcard{
    width:100%!important;
    max-width:none!important;
    padding:16px!important;
    border-radius:13px!important;
  }
  .ecsd-page--v260 .ecsd-tripcard__top{
    grid-template-columns:72px minmax(0,1fr)!important;
    gap:13px!important;
  }
  .ecsd-page .ecsd-duration-badge strong{font-size:27px!important}
  .ecsd-page--v260 .ecsd-tripcard__summary p{
    margin-bottom:6px!important;
    font-size:13.5px!important;
  }
  .ecsd-page--v260 .ecsd-tripcard__trust{
    margin:14px 0 12px!important;
    padding-top:13px!important;
    font-size:12.5px!important;
  }
  .ecsd-page--v260 .ecsd-tripcard__cta{
    min-height:48px!important;
    font-size:14px!important;
  }
  .ecsd-page--v260 .ecsd-tripcard__links{
    gap:6px 12px!important;
    margin-top:11px!important;
  }

  /* ---------- Advisor ---------- */
  .ecsd-page .ecsd-advisor{
    width:100%!important;
    max-width:none!important;
    margin:18px 0 26px!important;
    padding:16px!important;
    border-radius:14px!important;
  }
  .ecsd-page .ecsd-advisor__head{
    display:block!important;
  }
  .ecsd-page .ecsd-advisor__head h2{
    font-size:22px!important;
    line-height:1.25!important;
  }
  .ecsd-page .ecsd-advisor__head p{
    font-size:13.5px!important;
  }
  .ecsd-page .ecsd-advisor__evidence{
    width:100%!important;
    margin-top:12px!important;
  }
  .ecsd-page .ecsd-advisor__grid,
  .ecsd-page .ecsd-advisor__decisions{
    grid-template-columns:1fr!important;
  }

  /* ---------- Cabin search / cards ---------- */
  .ecsd-page .ecsd-booking-search{
    width:100%!important;
    margin-bottom:14px!important;
  }
  .ecsd-page .ecsd-booking-search__fields{
    grid-template-columns:1fr 1fr!important;
    height:auto!important;
  }
  .ecsd-page .ecsd-booking-search__field{
    min-height:56px!important;
    padding:7px 10px!important;
  }
  .ecsd-page .ecsd-booking-search__field--travelers{
    grid-column:1/-1!important;
    border-right:0!important;
    border-top:1px solid #edf0f3!important;
  }
  .ecsd-page .ecsd-booking-search__submit{
    width:100%!important;
    min-height:48px!important;
    height:48px!important;
    font-size:14px!important;
  }

  .ecsd-page .ecsd-cabin{
    display:block!important;
    width:100%!important;
    overflow:hidden!important;
    border-radius:13px!important;
  }
  .ecsd-page .ecsd-cabin__media{
    width:100%!important;
    height:auto!important;
    aspect-ratio:4/3!important;
    min-height:0!important;
  }
  .ecsd-page .ecsd-cabin__content{
    padding:16px!important;
  }
  .ecsd-page .ecsd-cabin__fit{
    flex-wrap:wrap!important;
    gap:6px 8px!important;
  }
  .ecsd-page .ecsd-cabin__fitcopy{
    margin:10px 0!important;
    font-size:13.5px!important;
  }
  .ecsd-page .ecsd-cabin__specs{
    gap:7px 11px!important;
    font-size:12px!important;
  }
  .ecsd-page .ecsd-cabin__why{
    padding:10px 11px!important;
  }
  .ecsd-page .ecsd-cabin__detailbtn{
    min-height:42px!important;
  }
  .ecsd-page .ecsd-cabin__action,
  .ecsd-page--v2121 .ecsd-cabin__action{
    display:block!important;
    width:100%!important;
    padding:14px 16px!important;
  }
  .ecsd-page .ecsd-cabin__action .ecsd-btn{
    width:100%!important;
    min-height:48px!important;
  }

  /* ---------- Booking policy / accordion touch targets ---------- */
  .ecsd-page .ecsd-policy-list summary,
  .ecsd-page .ecsd-service-list summary,
  .ecsd-page .ecsd-faq-list summary{
    min-height:48px!important;
  }
  .ecsd-page .ecsd-policy-list summary{
    padding:14px 0!important;
    font-size:15px!important;
  }

  /* ---------- Itinerary ---------- */
  .ecsd-page .ecsd-itinerary-guide{
    grid-template-columns:1fr!important;
    gap:11px!important;
    margin-bottom:16px!important;
  }
  .ecsd-page .ecsd-itinerary-guide__card{
    padding:15px!important;
  }
  .ecsd-page .ecsd-itinerary-tabs{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    margin:13px 0!important;
    padding-bottom:2px!important;
    scrollbar-width:none;
  }
  .ecsd-page .ecsd-itinerary-tabs::-webkit-scrollbar{display:none}
  .ecsd-page .ecsd-itinerary-tabs button{
    flex:0 0 auto!important;
    min-height:40px!important;
    padding:9px 13px!important;
    font-size:13px!important;
  }

  .ecsd-page .ecsd-day summary{
    grid-template-columns:48px minmax(0,1fr) 18px!important;
    gap:10px!important;
    min-height:58px!important;
    padding:13px 0!important;
  }
  .ecsd-page .ecsd-day summary h3{
    font-size:16px!important;
    line-height:1.35!important;
  }
  .ecsd-page .ecsd-day>div{
    padding:0 0 17px!important;
  }
  .ecsd-page .ecsd-itinerary-line,
  .ecsd-page .ecsd-day p,
  .ecsd-page .ecsd-day li{
    font-size:13.5px!important;
    line-height:1.62!important;
  }
  .ecsd-page .ecsd-day__visual{
    margin-left:0!important;
    margin-right:0!important;
  }
  .ecsd-page .ecsd-day__visual img{
    width:100%!important;
    height:auto!important;
    border-radius:10px!important;
  }

  /* ---------- Route map: no overlays covering the map on phones ---------- */
  .ecsd-route-map--leaflet{
    margin:17px 0 19px!important;
    padding:12px!important;
    border-radius:14px!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__head{
    display:block!important;
    margin-bottom:10px!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__head h3{
    font-size:19px!important;
    line-height:1.3!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__head p{
    font-size:12.5px!important;
    line-height:1.55!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__meta{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    gap:6px!important;
    min-width:0!important;
    margin-top:9px!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__meta span{
    padding:6px 8px!important;
    font-size:10.5px!important;
    white-space:normal!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__layout{
    grid-template-columns:1fr!important;
    gap:11px!important;
  }
  .ecsd-route-map--leaflet .ecsd-lf-map{
    height:300px!important;
    border-radius:11px!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__legendoverlay{
    position:static!important;
    display:flex!important;
    width:100%!important;
    max-width:none!important;
    margin:7px 0 0!important;
    padding:7px 8px!important;
    box-shadow:none!important;
    border:1px solid #e2e8eb!important;
    background:#fbfcfd!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__mapnote{
    position:static!important;
    width:100%!important;
    max-width:none!important;
    margin:6px 0 0!important;
    padding:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#7b8790!important;
    font-size:9.5px!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__days{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .ecsd-route-map--leaflet .ecsd-route-map__daycard{
    padding:11px!important;
  }

  /* ---------- Reviews / FAQ ---------- */
  .ecsd-review-center .ecsrc-head{
    grid-template-columns:1fr!important;
  }
  .ecsd-review-center .ecsrc-platforms,
  .ecsd-review-center .ecsrc-list,
  .ecsd-review-center .ecsd-review-cards{
    grid-template-columns:1fr!important;
  }
  .ecsd-page .ecsd-faq-list summary strong{
    font-size:14.5px!important;
    line-height:1.45!important;
  }

  /* ---------- Similar cruises: horizontal swipe, less page length ---------- */
  .ecsd-page .ecsd-section-title--row{
    display:block!important;
  }
  .ecsd-page .ecsd-section-title--row .ecsd-all-link{
    margin-top:9px!important;
    width:max-content!important;
    font-size:13px!important;
  }
  .ecsd-page .ecsd-related-grid{
    display:flex!important;
    gap:11px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    margin-right:-12px!important;
    padding:1px 12px 7px 0!important;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .ecsd-page .ecsd-related-grid::-webkit-scrollbar{display:none}
  .ecsd-page .ecsd-related-card{
    flex:0 0 min(82vw,320px)!important;
    width:min(82vw,320px)!important;
    scroll-snap-align:start;
  }
  .ecsd-page .ecsd-related-card__image{
    height:180px!important;
  }

  /* ---------- Dialogs ---------- */
  .ecsd-modal{
    padding:8px!important;
  }
  .ecsd-booking-modal{
    width:calc(100vw - 16px)!important;
    max-height:calc(100dvh - 16px)!important;
    padding:20px 16px!important;
    border-radius:13px!important;
  }
  .ecsd-booking-modal__head h2{
    padding-right:32px!important;
    font-size:23px!important;
  }
  .ecsd-formgrid{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .ecsd-formgrid__wide{grid-column:auto!important}
  .ecsd-formgrid input,
  .ecsd-formgrid select,
  .ecsd-formgrid textarea{
    min-height:46px!important;
    font-size:16px!important; /* prevents iOS form zoom */
  }

  /* Gallery modal uses the viewport instead of a desktop-sized framed card. */
  [data-gallery-modal]{
    padding:0!important;
  }
  [data-gallery-modal] .ecsd-gallery-modal{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
  }
}

@media(max-width:520px){

  .ecsd-page .ecsd-shell,
  .ecsd-shell{
    width:calc(100% - 20px)!important;
  }

  .ecsd-page--v251 .ecsd-prehero .ecsd-titleline h1,
  .ecsd-page .ecsd-prehero .ecsd-titleline h1{
    font-size:26px!important;
  }

  .ecsd-mobilebar{
    gap:7px!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .ecsd-mobilebar strong{font-size:20px!important}
  .ecsd-mobilebar button{
    min-width:132px!important;
    padding:0 12px!important;
    font-size:13px!important;
  }

  .ecsd-page .ecsd-booking-search__fields{
    grid-template-columns:1fr!important;
  }
  .ecsd-page .ecsd-booking-search__field,
  .ecsd-page .ecsd-booking-search__field--travelers{
    grid-column:auto!important;
    min-height:54px!important;
    border-right:0!important;
    border-top:0!important;
    border-bottom:1px solid #edf0f3!important;
  }
  .ecsd-page .ecsd-booking-search__field--travelers{
    border-bottom:0!important;
  }

  .ecsd-page--v260 .ecsd-tripcard__top{
    grid-template-columns:66px minmax(0,1fr)!important;
    gap:11px!important;
  }

  .ecsd-route-map--leaflet .ecsd-lf-map{
    height:275px!important;
  }

  .ecsd-page .ecsd-related-card{
    flex-basis:86vw!important;
    width:86vw!important;
  }
}
