:root{--ink: #0a1727; --navy: #153651; --card: #21435f; --gold: #d5b363; --cream: #f6f2e9; --white: #fff; --muted: #ccd6df; --line: #ffffff2b; --text: #243b4a; --serif: 'Cormorant Garamond',Georgia,serif; --sans: 'Montserrat',Arial,sans-serif;}
*{box-sizing: border-box;}
html{scroll-behavior: smooth; scroll-padding-top: 96px;}
body{margin: 0px; background: var(--cream); color: var(--text); font-family: var(--sans); font-size: 15px; line-height: 1.65;}
a{color: inherit; text-decoration: none;}
button, input, select, textarea{font: inherit;}
button, a, input, select, textarea{-webkit-tap-highlight-color: transparent;}
button, a{touch-action: manipulation;}
button{cursor: pointer;}
button:disabled{cursor: default;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible{outline: 3px solid var(--gold); outline-offset: 4px;}
img{max-width: 100%; display: block;}
h1, h2, h3, p{margin: 0px;}
h1, h2, h3{font-family: var(--serif); font-weight: 500; line-height: 1.06;}
h1{font-size: clamp(45px, 5.5vw, 82px); text-wrap: balance;}
h2{font-size: clamp(35px, 3.7vw, 54px); text-wrap: balance;}
h3{font-size: 27px;}
p + p{margin-top: 18px;}
.wrap{width: min(1320px, 100% - 88px); margin: auto;}
.skip{position: fixed; left: 20px; top: -100px; background: var(--gold); padding: 12px; z-index: 99;}
.skip:focus{top: 12px;}
.site-header{background: var(--ink); color: white; position: sticky; top: 0px; z-index: 20; border-bottom: 1px solid var(--line);}
.header-inner{height: 88px; display: flex; align-items: center; gap: 36px;}
.brand{display: flex; align-items: center; gap: 12px; margin-right: auto;}
.brand img{width: 58px; height: 58px; object-fit: contain;}
.brand span{font-family: var(--serif); font-size: 25px; line-height: 1.1;}
.brand small{display: block; font-family: var(--sans); font-size: 10px; letter-spacing: 3.2px; margin-top: 5px; text-transform: uppercase;}
.nav{display: flex; gap: 24px; align-items: center;}
.nav a{font-size: 13px; min-height: 44px; display: flex; align-items: center;}
.nav a:hover, .nav a[aria-current="page"]{color: var(--gold);}
.button{display: inline-flex; gap: 16px; align-items: center; justify-content: center; min-height: 48px; padding: 12px 25px; border: 1px solid transparent; border-radius: 5px; background: var(--gold); color: var(--ink); font-size: 13px; font-weight: 600; line-height: 1.5; transition: background 0.2s, border-color 0.2s;}
.button:hover{background: rgb(229, 200, 121);}
.button.outline{background: transparent; border-color: rgba(255, 255, 255, 0.48); color: white;}
.button.outline:hover{background: rgba(255, 255, 255, 0.08);}
.button.light-outline{background: transparent; border-color: rgb(167, 173, 176); color: var(--ink);}
.menu-toggle{display: none; background: transparent; color: white; border: 1px solid var(--line); border-radius: 4px; width: 48px; height: 48px; font-size: 24px;}
.eyebrow{font: 600 11px/1.5 var(--sans); letter-spacing: 3px; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: 17px;}
.hero{position: relative; min-height: 520px; display: flex; align-items: center; background: var(--navy); color: white; isolation: isolate;}
.hero-photo{position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; object-position: 50% 53%; z-index: -2;}
.hero::after{content: ""; position: absolute; inset: 0px; background: linear-gradient(90deg, rgba(5, 21, 33, 0.9) 0%, rgba(5, 21, 33, 0.66) 43%, rgba(5, 21, 33, 0.14) 100%); z-index: -1;}
.hero-copy{max-width: 710px; padding: 68px 0px 76px;}
.hero h1{max-width: 650px;}
.hero .subtitle{font-family: var(--serif); font-size: 27px; color: rgb(242, 233, 211); margin-top: 20px;}
.hero-actions{display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px;}
.hero-foot{font-size: 11px; letter-spacing: 1px; display: flex; align-items: center; gap: 12px; margin-top: 26px; color: rgb(227, 231, 233);}
.hero-foot::before{content: ""; display: block; width: 32px; height: 1px; background: var(--gold);}
.terms-strip{background: rgb(238, 231, 217); border-bottom: 1px solid rgb(222, 214, 199);}
.terms-inner{display: flex; justify-content: space-between; gap: 35px; padding: 22px 0px; align-items: center;}
.terms-inner p{font-size: 12px; margin: 0px;}
.terms-inner p:first-child{max-width: 680px;}
.terms-inner strong{display: block; color: var(--ink); font-weight: 500;}
.terms-inner .review{border-left: 1px solid rgb(199, 192, 180); padding-left: 32px; white-space: nowrap;}
.review b{font-family: var(--serif); font-size: 24px; font-weight: 500;}
.fleet{padding: 72px 0px 84px; background: var(--navy); color: white;}
.section-heading{display: flex; align-items: end; gap: 30px; justify-content: space-between; margin-bottom: 32px;}
.section-heading p{color: var(--muted); font-size: 13px; max-width: 450px; margin-top: 14px;}
.toolbar{display: flex; gap: 16px; align-items: center; justify-content: space-between; margin: 30px 0px 20px; padding-top: 22px; border-top: 1px solid var(--line);}
.filters{display: flex; gap: 8px; flex-wrap: wrap;}
.filter{border: 1px solid rgba(147, 166, 182, 0.37); background: transparent; border-radius: 30px; min-height: 44px; padding: 10px 18px; color: rgb(227, 233, 238); font-size: 12px;}
.filter.active, .filter:hover{background: var(--gold); border-color: var(--gold); color: var(--ink);}
.search-wrap{display: flex; align-items: center; gap: 10px; border: 1px solid rgba(147, 166, 182, 0.475); border-radius: 5px; padding: 0px 14px; min-height: 44px;}
.search-wrap input{width: 190px; color: white; background: transparent; border: 0px; outline: none; min-height: 44px; font-size: 12px;}
.search-wrap input::placeholder{color: rgb(202, 212, 223);}
.count{color: rgb(186, 203, 216); font-size: 11px; margin-bottom: 22px; letter-spacing: 0.3px;}
.grid{display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 26px;}
.yacht-card{background: var(--card); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; position: relative; display: flex; flex-direction: column; transition: border-color 0.2s, box-shadow 0.2s;}
.yacht-card:hover{border-color: rgba(213, 179, 99, 0.6); box-shadow: rgba(8, 26, 43, 0.2) 0px 12px 30px;}
.photo-link{overflow: hidden; display: block; aspect-ratio: 1.48 / 1;}
.photo-link img{height: 100%; width: 100%; object-fit: cover; transition: transform 0.4s;}
.yacht-card:hover .photo-link img{transform: scale(1.025);}
.save{position: absolute; right: 14px; top: 14px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: rgba(10, 23, 39, 0.68); border: 1px solid rgba(255, 255, 255, 0.4); color: white; z-index: 1;}
.save svg{width: 21px; height: 21px; fill: none; stroke: currentcolor; stroke-width: 1.6;}
.save[aria-pressed="true"]{background: var(--gold); color: var(--ink);}
.save[aria-pressed="true"] svg{fill: currentcolor;}



.price{color: var(--gold); font-size: 13px; font-weight: 600; line-height: 1.7; margin-bottom: 12px; white-space: pre-line;}
.card-description{font-size: 12px; line-height: 1.8; color: rgb(209, 220, 229); margin-bottom: 15px;}
.card-terms{font-size: 10px; color: rgb(190, 205, 218); border-top: 1px solid var(--line); padding-top: 14px; margin-top: auto; line-height: 1.8;}
.card-terms p + p{margin-top: 4px;}
.card-link{margin-top: 16px; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: space-between; min-height: 36px; color: rgb(240, 218, 177);}
.arrow{font-size: 20px; font-weight: 400;}
.empty{padding: 35px; border: 1px solid var(--line); border-radius: 8px;}
.editorial{padding: 90px 0px;}
.editorial-intro{display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 75px;}
.editorial h2{margin-bottom: 26px;}
.editorial .eyebrow{color: rgb(133, 101, 36);}
.editorial .prose{font-size: 14px; line-height: 1.9;}
.editorial .prose h3{font-size: 30px; margin: 28px 0px 16px;}
.editorial-photo{width: 100%; aspect-ratio: 1.2 / 1; object-fit: cover; border-radius: 8px; margin-top: 36px;}
.contact-band{background: rgb(233, 226, 213); padding: 48px 0px;}
.contact-band .wrap{display: flex; align-items: center; justify-content: space-between; gap: 30px;}
.contact-band h2{max-width: 770px; font-size: 39px;}
.footer{background: var(--ink); color: rgb(185, 198, 208); padding: 48px 0px 98px;}
.footer-main{display: flex; justify-content: space-between; align-items: start; gap: 30px;}
.footer-links{display: flex; gap: 22px; flex-wrap: wrap; max-width: 550px; font-size: 12px;}
.footer-links a{min-height: 44px; display: inline-flex; align-items: center;}
.footer-bottom{border-top: 1px solid var(--line); margin-top: 32px; padding-top: 22px; font-size: 10px; display: flex; justify-content: space-between; gap: 20px;}
.contact-dock{position: fixed; bottom: 18px; right: 24px; display: flex; z-index: 25; background: var(--ink); color: white; border: 1px solid rgb(120, 144, 161); border-radius: 9px; box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 25px; overflow: hidden;}
.contact-dock a{padding: 13px 17px; font-size: 11px; min-height: 44px; display: flex; align-items: center;}
.contact-dock a + a{border-left: 1px solid var(--line);}
.contact-dock .whatsapp{background: var(--gold); color: var(--ink); font-weight: 600;}
.preview-note{background: rgb(237, 240, 241); color: rgb(72, 84, 94); font-size: 10px; text-align: center; padding: 8px 16px; line-height: 1.7;}
.preview-note a{text-decoration: underline;}
.page-head{background: var(--navy); color: white; padding: 48px 0px 52px;}
.breadcrumbs{font-size: 11px; color: rgb(207, 218, 227); margin-bottom: 28px; display: flex; flex-wrap: wrap; gap: 12px;}
.page-head h1{font-size: clamp(40px, 5vw, 65px);}
.page-head p{margin-top: 18px; font-size: 14px;}
.detail-layout{display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 42px; padding: 52px 0px 76px; align-items: start;}
.main-image{width: 100%; aspect-ratio: 1.43 / 1; object-fit: cover; border-radius: 10px;}
.thumbnails{display: flex; gap: 10px; overflow: auto; margin-top: 12px; padding: 3px;}
.thumbnail{padding: 0px; flex: 0 0 93px; height: 70px; border: 2px solid transparent; border-radius: 5px; overflow: hidden; background: transparent;}
.thumbnail[aria-pressed="true"]{border-color: rgb(148, 112, 42);}
.thumbnail img{width: 100%; height: 100%; object-fit: cover;}
.booking-panel{background: white; border: 1px solid rgb(222, 219, 212); border-radius: 10px; padding: 30px;}
.booking-panel h2{font-size: 36px; margin-bottom: 18px;}
.booking-panel .price{color: rgb(131, 96, 28); font-size: 16px;}
.booking-panel .terms{font-size: 12px; line-height: 1.9; margin-top: 18px;}
.booking-panel .button{width: 100%; margin-top: 12px;}
.detail-copy{margin-top: 35px;}
.detail-copy p{padding: 10px 0px; border-bottom: 1px solid rgb(221, 213, 198); font-size: 14px;}
.detail-actions{display: grid; gap: 10px;}
.detail-actions .button{margin: 0px;}
.contact-layout{display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 80px; padding: 65px 0px 80px;}
.contact-layout h2{font-size: 40px; margin-bottom: 18px;}
.contact-layout .phone{font-family: var(--serif); font-size: 31px; display: block; margin-bottom: 25px;}
.form{background: white; border: 1px solid rgb(222, 219, 212); padding: 32px; border-radius: 10px;}
.form-fields{display: grid; grid-template-columns: 1fr 1fr; gap: 20px;}
.field{display: flex; flex-direction: column; gap: 7px; min-width: 0px;}
.field:last-child{grid-column: 1 / -1;}
.field label{font-size: 12px; font-weight: 500;}
.field input, .field select, .field textarea{width: 100%; border: 1px solid rgb(164, 173, 180); background: rgb(255, 255, 255); border-radius: 4px; min-height: 48px; padding: 12px; color: var(--ink); font-size: 13px;}
.field textarea{min-height: 140px; resize: vertical;}
.form .button{margin-top: 22px;}
.form-status{font-size: 12px; margin-top: 15px; color: rgb(35, 92, 69);}
.demo{background: rgb(243, 236, 217); color: rgb(107, 84, 34); border: 1px solid rgb(217, 198, 147); border-radius: 5px; font-size: 12px; padding: 12px 16px; margin-bottom: 24px;}
.sr-only{position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;}
[hidden]{display: none !important;}
@media (min-width: 1550px) {.grid{grid-template-columns: repeat(4, minmax(0px, 1fr));}}
@media (max-width: 1100px) {.wrap{width: calc(100% - 48px);}
.header-inner{gap: 20px;}
.nav{gap: 16px;}
.brand span{font-size: 21px;}
.header-cta{display: none;}


.editorial-intro{gap: 38px;}
.contact-layout{gap: 35px;}}
@media (max-width: 800px) {.grid{grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 18px;}
.menu-toggle{display: block;}
.header-inner{height: 78px;}
.nav{display: none; position: absolute; left: 0px; right: 0px; top: 78px; background: var(--ink); padding: 20px 24px; border-top: 1px solid var(--line); flex-wrap: wrap;}
.nav.is-open{display: flex;}
.nav a{padding: 4px 10px;}
.hero{min-height: 470px;}
.hero-copy{padding: 55px 0px;}
.terms-inner{gap: 20px;}
.terms-inner .review{padding-left: 20px;}
.terms-inner p{font-size: 11px;}
.section-heading{align-items: start;}
.toolbar{flex-wrap: wrap;}
.editorial-intro, .contact-layout{grid-template-columns: 1fr;}
.editorial-photo{max-height: 380px; aspect-ratio: 1.6 / 1;}
.detail-layout{grid-template-columns: 1fr;}
.booking-panel{grid-row: 2;}
.footer-main{flex-direction: column;}
.contact-band .wrap{align-items: start; flex-direction: column;}}
@media (max-width: 520px) {.wrap{width: calc(100% - 36px);}
.brand img{width: 47px; height: 47px;}
.brand span{font-size: 21px;}
.brand small{font-size: 9px;}
.hero{min-height: 430px;}
.hero-photo{object-position: 63% center;}
.hero::after{background: linear-gradient(90deg, rgba(5, 21, 33, 0.863), rgba(5, 21, 33, 0.404));}
.hero-copy{padding: 43px 0px 48px;}
.hero h1{font-size: 52px;}
.hero .subtitle{font-size: 24px;}
.hero-actions{gap: 10px;}
.hero-actions .button{padding: 12px 20px;}
.terms-inner{align-items: start; flex-direction: column; gap: 14px; padding: 22px 0px;}
.terms-inner .review{border-left: 0px; border-top: 1px solid rgb(199, 192, 180); padding: 12px 0px 0px; width: 100%; white-space: normal;}
.review b{font-size: 23px;}
.terms-inner p{font-size: 11px;}
.fleet{padding: 45px 0px 55px;}
.section-heading{display: block; margin-bottom: 22px;}
.section-heading .button{margin-top: 20px;}
.section-heading h2{font-size: 42px;}
.filters{gap: 6px;}
.filter{padding: 10px 13px; font-size: 11px;}
.search-wrap{width: 100%;}
.search-wrap input{width: 100%;}
.grid{grid-template-columns: 1fr; gap: 24px;}
.photo-link{aspect-ratio: 1.45 / 1;}


.price{font-size: 14px;}
.card-description{font-size: 13px;}
.card-terms{font-size: 11px;}
.editorial{padding: 52px 0px;}
.editorial-intro{gap: 30px;}
.contact-band h2{font-size: 34px;}
.footer-bottom{flex-direction: column;}
.contact-dock{bottom: 0px; left: 0px; right: 0px; border-radius: 0px; border-width: 1px 0px 0px; padding-bottom: env(safe-area-inset-bottom); justify-content: stretch;}
.contact-dock a{flex: 1 1 0%; justify-content: center; padding: 15px 10px; font-size: 11px;}
.detail-layout{padding: 30px 0px 50px; gap: 26px;}
.booking-panel, .form{padding: 22px;}
.contact-layout{padding: 38px 0px 55px;}
.form-fields{grid-template-columns: 1fr;}
.page-head{padding: 35px 0px;}
.form .button{width: 100%;}
.preview-note{font-size: 9px;}}
@media (prefers-reduced-motion: reduce) {html{scroll-behavior: auto;}
*, ::before, ::after{transition: none !important; animation: auto ease 0s 1 normal none running none !important;}}
.detail-layout > *{min-width: 0px;}
.main-image, .editorial-photo{height: auto;}
.detail-layout{grid-template-columns: minmax(0px, 1.25fr) minmax(0px, 0.75fr);}
@media (max-width: 800px) {.detail-layout{grid-template-columns: minmax(0px, 1fr);}}
.grid{grid-template-columns: repeat(4, minmax(0px, 1fr)); gap: 20px; align-items: start;}
.photo-link{aspect-ratio: 1.7 / 1;}
.yacht-card{border-radius: 10px;}


.card-capacity{font-size: 12px; line-height: 1.5; color: rgb(234, 208, 153); font-weight: 500;}
.card-description{font-size: 12px; line-height: 1.5; margin: 4px 0px 0px; min-height: 18px;}
.primary-price{font-size: 14px; line-height: 1.5; margin: 14px 0px 0px; min-height: 21px;}
.dock-note{font-size: 10px; line-height: 1.5; color: rgb(209, 220, 229); margin: 5px 0px 0px; min-height: 30px;}

.card-link{margin: 0px; min-height: 44px; display: inline-flex; gap: 15px; font-size: 12px;}
.card-details{margin-left: auto; display: contents;}
.card-details summary{margin-left: auto; min-height: 44px; display: flex; align-items: center; font-size: 11px; cursor: pointer; color: rgb(225, 233, 239); list-style: none; gap: 8px;}
.card-details summary::-webkit-details-marker{display: none;}
.card-details summary::after{content: "+"; font-size: 18px;}
.card-details[open] summary::after{content: "−";}
.expanded-rates{flex-basis: 100%; padding: 12px 0px; border-top: 1px solid var(--line); font-size: 11px; color: rgb(209, 220, 229);}
.expanded-rates .price{font-size: 12px; margin: 0px 0px 10px;}
.expanded-rates p + p{margin-top: 7px;}
.fleet{padding: 38px 0px 60px;}
.section-heading{margin-bottom: 18px;}
.section-heading h2{font-size: 42px;}
.section-heading .eyebrow{margin-bottom: 10px;}
.toolbar{margin: 18px 0px 14px; padding-top: 16px;}
.count{margin-bottom: 16px;}
.save{width: 44px; height: 44px; right: 10px; top: 10px;}
.hero{min-height: 390px;}
.hero-copy{padding: 40px 0px;}
.hero h1{font-size: 64px;}
.hero-foot{margin-top: 18px;}
.terms-inner{padding: 16px 0px;}
@media (max-width: 1100px) {.grid{grid-template-columns: repeat(3, minmax(0px, 1fr));}}
@media (max-width: 800px) {.grid{grid-template-columns: repeat(2, minmax(0px, 1fr));}
.hero h1{font-size: 54px;}
.section-heading h2{font-size: 36px;}}
@media (max-width: 520px) {.grid{grid-template-columns: minmax(0px, 1fr); gap: 14px;}
.yacht-card{display: grid; grid-template-columns: 112px minmax(0px, 1fr); column-gap: 0px; align-items: stretch;}
.photo-link{aspect-ratio: auto; min-height: 170px; height: 100%; grid-row: 1;}
.photo-link img{object-position: center center;}


.card-capacity{font-size: 11px;}
.card-description{font-size: 11px; line-height: 1.4; min-height: 0px; margin-top: 3px;}
.primary-price{font-size: 13px; line-height: 1.45; margin-top: 10px; min-height: 0px;}
.dock-note{font-size: 10px; line-height: 1.4; margin-top: 5px; min-height: 0px;}
.save{left: 8px; right: auto; top: 8px;}

.card-link, .card-details summary{min-height: 44px;}
.fleet{padding: 22px 0px 42px;}
.section-heading{margin-bottom: 12px; display: flex; align-items: center; gap: 14px;}
.section-heading .eyebrow{display: none;}
.section-heading h2{font-size: 29px; max-width: 235px; line-height: 1.05;}
.section-heading > .button{display: none;}
.toolbar{margin: 14px 0px 10px; padding-top: 12px; gap: 10px;}
.filter{padding: 8px 12px; min-height: 44px;}
.search-wrap{min-height: 44px;}
.count{margin-bottom: 12px;}
.hero{min-height: 305px;}
.hero-copy{padding: 30px 0px;}
.hero h1{font-size: 44px;}
.hero .eyebrow{font-size: 10px; margin-bottom: 10px;}
.hero .subtitle{font-size: 23px; margin-top: 13px;}
.hero-actions{margin-top: 19px;}
.hero-foot{display: none;}
.terms-inner{padding: 14px 0px; gap: 8px;}
.terms-inner .review{padding-top: 8px;}
.review b{font-size: 20px;}}





@media (max-width: 520px) {.yacht-card{display: flex; flex-direction: column;}
.yacht-card .photo-link{display: block; aspect-ratio: 1.45 / 1; width: 100%; min-height: 0px; height: auto; flex: 0 0 auto;}
.yacht-card .photo-link img{width: 100%; height: 100%; object-fit: cover; object-position: center center;}
.yacht-card .save{left: auto; right: 12px; top: 12px;}


.yacht-card .card-capacity, .yacht-card .card-description{font-size: 12px;}
.yacht-card .primary-price{font-size: 14px;}
}
[hidden]{display: none !important;}
.sr-only{position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0px;}
.grid{grid-template-columns: repeat(4, minmax(0px, 1fr)); gap: 20px; align-items: start;}
.carousel{position: relative; overflow: hidden; background: var(--ink); isolation: isolate; touch-action: pan-y;}
.carousel .photo-link{display: block; width: 100%; aspect-ratio: 1.55 / 1; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; background: var(--ink);}
.carousel .photo-link img{width: 100%; height: 100%; object-fit: cover;}
.yacht-card:hover .photo-link img{transform: none;}
.capacity-badge{position: absolute; top: 12px; left: 12px; padding: 7px 11px; border: 1px solid rgba(255, 255, 255, 0.36); background: rgba(10, 23, 39, 0.85); color: rgb(255, 255, 255); border-radius: 30px; font-size: 10px; line-height: 1.5; font-weight: 500; max-width: calc(100% - 78px);}
.carousel .save{top: 10px; right: 10px; width: 36px; height: 36px;}
.photo-prev, .photo-next{position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 40px; border: 1px solid rgba(255, 255, 255, 0.42); border-radius: 50%; background: rgba(10, 23, 39, 0.576); color: white; font: 28px / 1 Georgia, serif; display: grid; place-items: center; padding: 0px 0px 3px;}
.photo-prev{left: 8px;}
.photo-next{right: 8px;}
.photo-prev:hover, .photo-next:hover{background: var(--ink);}
.photo-dots{position: absolute; bottom: 6px; left: 50%; transform: translateX(-50%); display: flex; justify-content: center; max-width: calc(100% - 20px); flex-wrap: wrap; gap: 0px;}
.photo-dots button{width: 24px; height: 24px; border: 0px; background: transparent; padding: 7px;}
.photo-dots button::after{content: ""; display: block; width: 8px; height: 8px; background: rgba(255, 255, 255, 0.533); border: 1px solid rgb(255, 255, 255); border-radius: 50%; box-shadow: rgba(0, 0, 0, 0.333) 0px 1px 4px;}
.photo-dots button[aria-pressed="true"]::after{background: var(--gold); border-color: var(--gold);}









.card-rates{display: contents;}




.card-rates .expanded-rates{width: 100%; flex-basis: 100%; font-size: 11px; color: rgb(224, 230, 236); border-top: 1px solid var(--line); padding: 14px 0px 4px; margin: 0px; background: transparent; border-radius: 0px;}
.published-rates{white-space: normal; line-height: 1.85;}
.expanded-rates ul{padding-left: 16px; margin: 10px 0px;}
.expanded-rates a{display: block; padding: 10px 0px; color: var(--gold);}
.search-wrap{gap: 8px;}
.search-wrap #guest-filter{width: 70px; border-left: 1px solid var(--line); padding-left: 10px;}
.search-wrap input:focus-visible{outline: 2px solid var(--gold);}
.fleet-all{font-size: 12px; color: var(--gold); padding: 10px 0px;}
.hero{min-height: 400px;}
.hero-copy{padding: 54px 0px;}
.hero h1{font-size: clamp(42px, 4.6vw, 67px); max-width: 660px;}
.fleet{padding-top: 46px;}
.section-heading{margin-bottom: 24px;}
.detail-carousel{border-radius: 12px;}
.detail-carousel .photo-link{aspect-ratio: 1.4 / 1; cursor: zoom-in;}
.detail-carousel .photo-dots{max-width: 90%; bottom: 8px; background: rgba(10, 23, 39, 0.38); border-radius: 20px; padding: 0px 8px;}
.detail-copy{padding: 36px 0px;}
.detail-copy > h2{margin-bottom: 24px;}
.prose{line-height: 1.85;}
.prose h2{font-size: 36px; margin: 30px 0px 16px;}
.prose h3{font-size: 30px; margin: 28px 0px 14px;}
.prose h4, .prose h5, .prose h6{font-size: 18px; margin: 22px 0px 12px;}
.prose p{margin: 0px 0px 16px;}
.prose img{max-height: 580px; width: auto; border-radius: 8px; margin: 24px auto;}
.prose a{text-decoration: underline; text-underline-offset: 3px;}
.prose .button{text-decoration: none;}
.prose table{width: 100%; border-collapse: collapse;}
.prose td, .prose th{border: 1px solid rgb(203, 210, 213); padding: 10px;}
.booking-panel{padding: 30px; background: white; border: 1px solid rgb(222, 223, 217); border-radius: 12px; position: sticky; top: 110px; color: var(--text);}
.booking-panel h2{font-size: 34px; color: var(--navy);}
.booking-panel .eyebrow{color: rgb(128, 99, 34);}
.booking-capacity{font-size: 14px; margin-top: 20px;}
.booking-panel > p{font-size: 12px;}
.booking-panel .button{margin-top: 24px; width: 100%;}
.detail-rates{margin-top: 25px; border-top: 1px solid rgb(221, 221, 221); padding-top: 22px; font-size: 13px;}
.detail-rates h3{margin-bottom: 14px;}
.detail-rates ul{padding-left: 18px;}
.data-note{padding: 14px; border-left: 3px solid var(--gold); background: rgb(246, 240, 223); font-size: 12px; margin: 20px 0px;}
.request-note{color: rgb(91, 101, 112); font-size: 12px; line-height: 1.8; margin: 18px 0px 0px;}
.article-copy{max-width: 900px; padding-top: 48px; padding-bottom: 64px;}
.original-copy{max-width: 960px;}
.original-copy h2:first-child{margin-top: 0px;}
.news-grid{display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 25px; padding-top: 50px; padding-bottom: 60px;}
.news-card{background: rgb(255, 255, 255); border: 1px solid rgb(222, 222, 217); border-radius: 10px; overflow: hidden;}
.news-card > img{width: 100%; aspect-ratio: 1.55 / 1; object-fit: cover;}
.news-card > div{padding: 24px;}
.news-card h2{font-size: 29px; margin-bottom: 22px;}
.news-card a{display: inline-block;}
.news-card div > a{font-size: 12px; font-weight: 600;}
.back-news{padding-bottom: 48px;}
.contact-layout{display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 55px; padding-top: 52px; padding-bottom: 70px; align-items: start;}
.contact-layout > .prose{font-size: 13px;}
.contact-layout > .prose h2{font-size: 34px;}
.request-form{padding: 30px; background: rgb(255, 255, 255); border: 1px solid rgb(218, 223, 220); border-radius: 12px;}
.request-form h2{font-size: 36px; margin-bottom: 15px;}
.request-form > p{font-size: 13px;}
.form-grid{display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 26px 0px;}
.form-grid .full{grid-column: 1 / -1;}
.form-grid label{font-size: 12px; font-weight: 500; min-width: 0px;}
.form-grid input, .form-grid select, .form-grid textarea{display: block; min-height: 46px; border: 1px solid rgb(157, 169, 174); border-radius: 5px; width: 100%; margin-top: 7px; padding: 10px 12px; background: white; color: var(--ink); font-size: 14px;}
.field-hint{font-size: 12px; color: rgb(89, 103, 109); margin: 0px;}
.request-form > button{margin-top: 22px;}
.request-review{margin-top: 28px; border-top: 1px solid rgb(215, 220, 217); padding-top: 22px;}
.request-review pre{font: 13px/1.8 var(--sans); white-space: pre-wrap; overflow-wrap: anywhere; background: var(--cream); padding: 20px; border-radius: 6px;}
.request-review p{font-size: 12px; margin-bottom: 18px;}
.request-review .button{margin: 5px 3px 5px 0px;}
#photo-dialog{border: 0px; padding: 50px 16px 16px; background: var(--ink); border-radius: 12px; max-width: 95vw; max-height: 95vh;}
#photo-dialog::backdrop{background: rgba(4, 16, 27, 0.93);}
#photo-dialog img{object-fit: contain; max-height: 80vh; max-width: 90vw;}
.close-lightbox{position: absolute; right: 10px; top: 4px; background: transparent; color: white; border: 0px; width: 44px; height: 44px; font-size: 32px;}

@media (max-width: 1100px) {.grid{grid-template-columns: repeat(3, minmax(0px, 1fr));}
.nav{gap: 14px;}
.nav a{font-size: 11px;}
.header-inner{gap: 20px;}}
@media (max-width: 800px) {.wrap{width: calc(100% - 36px);}
.grid{grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 18px;}
.menu-toggle{display: block; order: 3;}
.header-inner{height: 76px; gap: 14px;}
.brand img{width: 45px; height: 45px;}
.brand span{font-size: 23px;}
.nav{display: none; position: absolute; top: 76px; left: 0px; right: 0px; background: var(--ink); padding: 20px; border-bottom: 1px solid var(--line);}
.nav.open{display: flex; flex-direction: column; align-items: stretch; gap: 0px;}
.nav a{font-size: 14px; padding: 8px 12px;}
.header-book{padding: 10px 18px; min-height: 44px; font-size: 11px;}
.toolbar{flex-wrap: wrap; gap: 16px;}
.search-wrap{width: 100%;}
.search-wrap #boat-search{flex: 1 1 0%; width: 100px;}
.detail-layout, .contact-layout{grid-template-columns: 1fr; gap: 24px;}
.booking-panel{position: static;}
.news-grid{grid-template-columns: repeat(2, minmax(0px, 1fr));}
.section-heading{align-items: start;}
.fleet-all{max-width: 100px;}
.contact-dock{right: 12px; bottom: 12px;}}
@media (max-width: 520px) {.wrap{width: calc(100% - 32px);}
.hero{min-height: 340px;}
.hero-copy{padding: 36px 0px;}
.hero .subtitle{font-size: 23px;}
.hero-actions{margin-top: 23px;}
.grid{grid-template-columns: minmax(0px, 1fr); gap: 22px;}
.yacht-card{display: flex; flex-direction: column; border-radius: 12px;}
.yacht-card .carousel{width: 100%; flex: 0 0 auto;}
.carousel .photo-link{aspect-ratio: 1.45 / 1; width: 100%;}





.capacity-badge{font-size: 11px; left: 14px; top: 14px; padding: 8px 12px;}
.carousel .save{width: 42px; height: 42px; top: 10px; right: 10px;}
.photo-prev, .photo-next{width: 40px; height: 44px;}
.photo-dots button{width: 27px; height: 27px; padding: 9px;}
.fleet{padding: 38px 0px 48px;}
.section-heading h2{font-size: 36px;}
.filters{gap: 6px;}
.filter{font-size: 10px; padding: 9px 12px;}
.page-head{padding: 32px 0px;}
.page-head h1{font-size: 40px;}
.breadcrumbs{margin-bottom: 20px;}
.detail-layout{padding-top: 24px;}
.booking-panel, .request-form{padding: 24px 20px;}
.form-grid{grid-template-columns: 1fr;}
.news-grid{grid-template-columns: 1fr;}
.contact-layout{padding-top: 28px;}
.contact-band h2{font-size: 34px;}
.contact-band .wrap, .footer-main{flex-direction: column; align-items: start;}
.footer-bottom{flex-wrap: wrap;}
.footer-links{gap: 10px 20px;}
.header-inner{gap: 8px;}
.brand{gap: 8px;}
.brand img{width: 37px; height: 37px;}
.brand small{font-size: 8px; letter-spacing: 2px;}
.brand span{font-size: 22px;}
.menu-toggle{width: 42px; height: 42px;}
.header-book{padding: 8px 12px;}}
@media (prefers-reduced-motion: reduce) {*, ::before, ::after{scroll-behavior: auto !important; transition: none !important; animation: auto ease 0s 1 normal none running none !important;}}
.modal-open{overflow: hidden;}
#booking-dialog{width: min(640px, -24px + 100vw); max-height: calc(100dvh - 32px); border: 0px; border-radius: 14px; padding: 0px; background: rgb(255, 255, 255); color: var(--text);}
#booking-dialog::backdrop{background: rgba(7, 25, 41, 0.79); backdrop-filter: blur(4px);}
#booking-dialog .request-form{border: 0px; border-radius: 0px; padding: 34px;}
.close-booking{position: absolute; top: 6px; right: 8px; width: 44px; height: 44px; border: 0px; background: transparent; color: var(--navy); font-size: 30px; z-index: 1;}
.request-form .eyebrow{color: rgb(128, 99, 34); letter-spacing: 2px; margin-bottom: 9px;}
.phone-fields{display: grid; grid-template-columns: 170px 1fr; gap: 18px;}
.phone-fields select{text-overflow: ellipsis;}
.request-form .submit-request{width: 100%;}
.request-form .form-grid{gap: 14px 18px;}
.request-form .field-hint:empty{display: none;}
@media (max-width: 520px) {#booking-dialog .request-form{padding: 30px 20px 24px;}
#booking-dialog .form-grid{grid-template-columns: 1fr 1fr; gap: 14px 12px;}
#booking-dialog .form-grid input, #booking-dialog .form-grid select{font-size: 16px; padding: 9px 8px;}
.phone-fields{grid-template-columns: 110px 1fr; gap: 12px;}
.request-form h2{font-size: 33px; padding-right: 8px;}
.request-form .form-grid input, .request-form .form-grid select, .request-form .form-grid textarea{font-size: 16px;}}



.carousel .save{left: auto;}
#photo-dialog{width: min(1200px, 95vw);}
#photo-dialog img{max-width: 100%; width: auto; margin: auto;}
.boat-heading{background: var(--navy); color: white; padding: 32px 0px 35px;}
.boat-heading h1{font-size: clamp(30px, 3.8vw, 51px); line-height: 1.1; max-width: 1000px; overflow-wrap: anywhere;}
.boat-heading .breadcrumbs{margin-bottom: 16px;}
.boat-heading .eyebrow{margin-bottom: 8px;}
.boat-layout{display: grid; grid-template-columns: minmax(0px, 1.55fr) minmax(310px, 1fr); gap: 34px; align-items: start; padding-top: 36px; padding-bottom: 65px;}
.boat-main{min-width: 0px;}
.boat-main .detail-carousel .photo-link{aspect-ratio: 1.55 / 1;}
.boat-facts{display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); margin: 22px 0px; border: 1px solid rgb(211, 216, 213); border-radius: 10px; background: rgb(255, 255, 255);}
.boat-facts > div{padding: 19px 16px;}
.boat-facts > div + div{border-left: 1px solid rgb(211, 216, 213);}
.boat-facts dt{font-size: 11px; color: rgb(98, 108, 112); margin-bottom: 7px;}
.boat-facts dd{margin: 0px; font-size: 14px; font-weight: 600; line-height: 1.6; color: var(--navy);}
.boat-section{padding: 25px 0px 28px;}
.boat-section h2{font-size: 34px; margin-bottom: 20px;}
.amenities{display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 14px 24px; padding: 0px; list-style: none;}
.amenities li{display: flex; gap: 12px; align-items: start; font-size: 14px;}
.amenities li span{color: rgb(135, 104, 39);}
.full-description{border-top: 1px solid rgb(204, 210, 208); padding-top: 8px;}
.full-description summary{padding: 14px 0px; cursor: pointer; font-size: 14px; font-weight: 600;}
.full-description .prose{padding-top: 15px; font-size: 14px;}
.trip-panel{background: white; border: 1px solid rgb(211, 216, 213); border-radius: 14px; padding: 28px; position: sticky; top: 106px;}
.trip-panel .eyebrow{color: rgb(129, 99, 34); font-size: 10px; margin-bottom: 12px;}
.trip-panel h2{font-size: 36px; margin-bottom: 15px;}
.trip-panel-price{font-size: 21px; color: var(--navy); font-weight: 600; line-height: 1.4;}
.trip-subtitle{font-size: 12px; color: rgb(100, 111, 118); margin: 12px 0px 20px;}
.packages{display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 10px;}
.packages > p{grid-column: 1 / -1; font-size: 14px;}
.package-option{text-align: left; padding: 15px 12px; border: 1px solid rgb(194, 204, 207); background: rgb(249, 248, 243); border-radius: 8px; color: var(--navy); display: flex; flex-direction: column; gap: 7px;}
.package-option:hover{border-color: rgb(150, 117, 48); background: rgb(246, 239, 217);}
.package-option > span:first-child{font-size: 13px;}
.package-option strong{font-size: 19px;}
.package-option small{font-size: 10px;}
.package-action{font-size: 10px; margin-top: 6px;}
.trip-fee{display: flex; justify-content: space-between; gap: 12px; padding: 20px 0px; margin: 6px 0px; border-bottom: 1px solid rgb(224, 227, 221); font-size: 12px;}
.trip-fee strong{text-align: right; font-weight: 500;}
.trip-panel > .button{width: 100%; margin-top: 18px; padding: 13px 10px;}
.detail-contact-actions, .form-channels{display: grid; grid-template-columns: repeat(4, minmax(0px, 1fr)); gap: 6px; margin-top: 12px;}
.detail-contact-actions button, .form-channels button{min-height: 44px; border: 1px solid rgb(209, 215, 213); border-radius: 6px; background: white; color: var(--navy); font-size: 11px; padding: 8px 3px;}
.detail-contact-actions button:hover, .form-channels button:hover{background: rgb(244, 238, 223); border-color: rgb(149, 115, 48);}
.handoff-links{display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 18px;}
.handoff-links a{display: inline-flex; align-items: center; min-height: 44px; border: 1px solid rgb(165, 178, 182); padding: 9px 14px; border-radius: 6px; color: var(--navy); font-size: 12px;}
.handoff-links a.preferred{background: var(--gold); border-color: var(--gold);}
.handoff-links a[aria-disabled="true"]{opacity: 0.5; cursor: not-allowed;}
#form-status{font-size: 13px; margin-top: 15px;}
.request-form #selected-boat-label{color: var(--navy); font-weight: 500; margin-bottom: 8px; line-height: 1.5;}
.request-form .country-field{grid-column: auto;}
.request-form .phone-field{grid-column: auto;}
.request-form .form-grid{margin-top: 18px;}
#booking-dialog .request-form{padding-top: 28px;}
.request-review h3{font-size: 28px;}
.boat-overview{font-size: 15px; line-height: 1.8;}
@media (max-width: 1050px) {.boat-layout{grid-template-columns: minmax(0px, 1.3fr) minmax(280px, 1fr); gap: 24px;}
.trip-panel{padding: 22px;}
.boat-facts{grid-template-columns: 1fr;}
.boat-facts > div{display: flex; justify-content: space-between; align-items: center; padding: 12px 15px;}
.boat-facts dt{margin: 0px;}
.boat-facts > div + div{border-left: 0px; border-top: 1px solid rgb(211, 216, 213);}}
@media (max-width: 850px) {.boat-layout{grid-template-columns: minmax(0px, 1fr); gap: 24px;}
.trip-panel{position: static; grid-row: 2;}
.boat-heading{padding: 26px 0px;}
.boat-facts{grid-template-columns: repeat(3, minmax(0px, 1fr));}
.boat-facts > div{display: block; padding: 15px 12px;}
.boat-facts dt{margin-bottom: 6px;}
.boat-facts > div + div{border-top: 0px; border-left: 1px solid rgb(211, 216, 213);}}
@media (max-width: 520px) {.boat-layout{padding-top: 20px; gap: 20px;}
.boat-heading h1{font-size: 33px;}
.boat-facts dd{font-size: 12px;}
.boat-facts dt{font-size: 10px;}
.boat-facts > div{padding: 13px 9px;}
.amenities{gap: 12px 15px;}
.amenities li{font-size: 12px;}
.boat-section{padding: 18px 0px;}
.trip-panel h2{font-size: 32px;}
.trip-panel-price{font-size: 20px;}
.detail-contact-actions button, .form-channels button{font-size: 10px;}
#booking-dialog{max-height: calc(100dvh - 20px);}}
@media (max-width: 850px) {.boat-main{display: contents;}
.boat-main > *, .trip-panel{grid-area: auto / 1; min-width: 0px;}
.boat-main > .detail-carousel{order: 1;}
.boat-facts{order: 2; margin: 0px;}
.trip-panel{order: 3;}
.boat-section{order: 4;}
.full-description{order: 5;}}



.photo-stage{position: relative;}
.photo-navigation{display: flex; align-items: center; justify-content: center; gap: 5px; padding: 3px 5px; background: var(--card); min-height: 44px;}
.photo-navigation .photo-prev, .photo-navigation .photo-next{position: static; transform: none; flex: 0 0 auto; border: 0px; border-radius: 5px; width: 38px; height: 38px; background: transparent; font: 12px/1 var(--sans); padding: 0px;}
.photo-navigation .photo-prev:hover, .photo-navigation .photo-next:hover{background: rgba(255, 255, 255, 0.094);}
.carousel .photo-navigation .photo-dots{position: relative; inset: auto; transform: none; display: flex; flex-wrap: nowrap; overflow-x: auto; justify-content: center; max-width: none; min-width: 0px; flex: 1 1 0%; background: transparent; padding: 0px; border-radius: 0px; scrollbar-width: thin;}
.photo-navigation .photo-dots button{flex: 0 0 24px; width: 24px; height: 32px; padding: 12px 8px;}
.photo-navigation .photo-dots button::after{width: 7px; height: 7px;}
.photo-counter{display: none;}
.detail-carousel .photo-navigation{background: rgb(255, 255, 255); border-width: 0px 1px 1px; border-style: none solid solid; border-color: currentcolor rgb(211, 216, 213) rgb(211, 216, 213); border-image: none; border-radius: 0px 0px 12px 12px; padding: 7px 8px;}
.detail-carousel .photo-navigation .photo-prev, .detail-carousel .photo-navigation .photo-next{width: 44px; height: 44px; color: var(--navy);}
.detail-carousel .photo-navigation .photo-dots{justify-content: flex-start;}
.detail-carousel .photo-navigation .photo-dots button{flex-basis: 28px; width: 28px; height: 36px; padding: 13px 9px;}
.detail-carousel .photo-navigation .photo-dots button::after{background: rgb(196, 206, 210); border-color: rgb(138, 157, 167); box-shadow: none; width: 9px; height: 9px;}
.detail-carousel .photo-navigation .photo-dots button[aria-pressed="true"]::after{background: var(--navy); border-color: var(--navy);}
.detail-carousel .photo-counter{display: block; white-space: nowrap; color: var(--text); font-size: 11px; padding: 0px 6px;}
.detail-contact-actions button, .form-channels button{display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 10px 3px; min-height: 64px;}
.detail-contact-actions i, .form-channels i{font-size: 19px;}
.contact-dock{display: grid; grid-template-columns: repeat(4, minmax(0px, 1fr)); min-width: 340px; max-width: calc(-32px + 100vw); right: 16px; bottom: 16px;}
.contact-dock a{display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 10px 13px; min-height: 64px; font-size: 11px;}
.contact-dock a i{font-size: 20px;}
.contact-dock .dock-whatsapp{background: var(--gold); color: var(--ink);}
.contact-dock a + a{border-left: 1px solid var(--line);}
.tripadvisor-badge{display: inline-flex; flex-wrap: wrap; align-items: center; gap: 13px 18px; padding: 15px 18px; margin-top: 24px; background: rgba(10, 23, 39, 0.81); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 9px; color: white; font-size: 12px; max-width: 100%;}
a.tripadvisor-badge:hover{border-color: var(--gold); background: rgba(10, 23, 39, 0.91);}
.ta-brand{display: flex; align-items: center; gap: 9px;}
.ta-brand i{font-size: 30px; color: rgb(141, 227, 188);}
.ta-brand strong{font-size: 14px;}
.ta-rating{display: flex; align-items: center; gap: 9px;}
.ta-rating strong{font-size: 12px;}
.ta-stars{display: inline-block; position: relative; font-size: 11px; white-space: nowrap; color: rgb(120, 134, 124); letter-spacing: 2px; line-height: 1.5;}
.ta-stars-fill{position: absolute; top: 0px; left: 0px; overflow: hidden; color: var(--gold);}
.ta-arrow{margin-left: auto; font-size: 18px;}
.ta-count{color: rgb(225, 233, 229);}
@media (max-width: 1100px) {.header-inner{gap: 14px;}
.nav{gap: 12px;}
.nav a{font-size: 10px;}}
@media (max-width: 800px) {.nav a{font-size: 14px;}
.contact-dock{left: auto; right: 12px; bottom: 12px; width: 360px; min-width: 0px;}
.contact-dock a{padding: 10px 7px;}}
@media (max-width: 520px) {
.contact-dock{position: fixed; left: 0px; right: 0px; bottom: 0px; width: 100%; max-width: 100%; border-radius: 0px; min-width: 0px; padding-bottom: env(safe-area-inset-bottom,0px);}
.contact-dock a{font-size: 10px; min-height: 61px; padding: 8px 4px;}
.contact-dock a i{font-size: 21px;}
.tripadvisor-badge{gap: 9px 13px; padding: 12px 14px;}
.ta-brand{flex-basis: 100%;}
.ta-arrow{margin-left: 0px;}
.hero-copy{padding-bottom: 30px;}
.footer{padding-bottom: 115px;}}



.single-photo-label{font-size: 11px; color: var(--muted);}
.detail-carousel .single-photo-label{color: var(--text);}
.photo-navigation .photo-dots{scrollbar-width: none !important;}
.photo-navigation .photo-dots::-webkit-scrollbar{display: none;}
.welcome-editorial .prose{display: flow-root; max-width: 1180px;}
.welcome-editorial h2::before{content: ""; display: block; width: 64px; height: 3px; background: var(--gold); margin-bottom: 22px;}
.welcome-editorial .welcome-photo{float: right; width: 45%; margin: 8px 0px 32px 44px; position: relative; z-index: 0;}
.welcome-photo::before{content: ""; position: absolute; inset: 16px -12px -12px 16px; border: 1px solid var(--gold); border-radius: 12px; z-index: -1;}
.welcome-editorial .welcome-photo img{display: block; width: 100%; height: auto; max-height: none; margin: 0px; border-radius: 12px;}
.welcome-editorial blockquote{clear: both; margin: 32px 0px 0px; padding: 20px 26px; border-left: 3px solid var(--gold); background: rgb(234, 227, 214); border-radius: 0px 10px 10px 0px;}
.welcome-editorial blockquote p:last-child{margin-bottom: 0px;}
@media (max-width: 700px) {.welcome-editorial .welcome-photo{float: none; width: calc(100% - 12px); margin: 24px 12px 36px 0px;}
.welcome-editorial blockquote{padding: 18px;}}
.request-form .phone-fields{display: grid; grid-template-columns: minmax(0px, 3fr) minmax(0px, 7fr); gap: 12px; align-items: end;}
.request-form .phone-fields label{display: flex; flex-direction: column; justify-content: space-between; align-self: stretch;}
.request-form .phone-fields select{padding-left: 6px; padding-right: 0px;}
.country-control{position: relative; display: block;}
.request-form .country-control select{color: transparent; cursor: pointer;}
.request-form .country-control option{color: var(--ink);}
.country-value{pointer-events: none; position: absolute; left: 5px; right: 15px; top: 7px; height: 46px; display: flex; align-items: center; white-space: nowrap; font-size: 13px; color: var(--ink);}
.country-control::after{content: "⌄"; position: absolute; right: 5px; top: 20px; pointer-events: none; color: var(--ink); font-size: 12px;}
.request-form, #booking-dialog .request-form{padding: 22px;}
.request-form #selected-boat-label{font-family: var(--serif); font-size: 33px; font-weight: 400; line-height: 1.08; margin: 0px 32px 14px 0px; overflow-wrap: anywhere;}
.request-form .form-grid, #booking-dialog .form-grid{grid-template-columns: minmax(0px, 1fr) minmax(0px, 1fr); gap: 8px 12px; margin: 0px 0px 10px;}
.request-form .form-grid input, .request-form .form-grid select, .request-form .form-grid textarea{margin-top: 4px; min-height: 44px;}
.request-form .form-grid textarea{height: 60px; min-height: 60px; resize: vertical;}
.request-form .country-value{top: 4px; height: 44px;}
.request-form .country-control::after{top: 16px;}
.request-form .field-hint{font-size: 11px; line-height: 1.35;}
.request-form .field-hint:empty, #form-status:empty{display: none;}
.request-form > .submit-request{width: 100%; min-height: 44px; margin: 0px; padding: 10px 14px;}
.request-form .contact-instruction{font-size: 12px; line-height: 1.4; margin: 12px 0px 6px;}
.request-form .form-channels{margin: 0px; gap: 8px;}
.request-form .form-channels button{min-height: 44px;}
.request-form .request-note{font-size: 11px; line-height: 1.4; color: rgb(89, 103, 109); margin: 8px 0px 0px;}
@media (max-width: 520px) {.request-form, #booking-dialog .request-form{padding: 18px 16px;}
.request-form #selected-boat-label{font-size: 33px;}}
.yacht-card .capacity-badge{display: inline-flex; align-items: center; gap: 6px;}






@media (max-width: 520px) {.fleet .grid{gap: 16px;}
.yacht-card .carousel .photo-link{aspect-ratio: 1.6 / 1;}








.yacht-card .capacity-badge{padding: 6px 10px; font-size: 10px; top: 10px; left: 10px; max-width: calc(100% - 20px);}
.yacht-card .photo-navigation{padding: 0px 5px;}
.yacht-card .photo-navigation .photo-prev, .yacht-card .photo-navigation .photo-next{width: 44px; height: 44px;}}









.rating-circle{display: block; width: 8px; height: 8px; border: 1px solid rgb(124, 227, 195); border-radius: 50%; background: linear-gradient(to right,#7ce3c3 var(--fill),transparent var(--fill));}













.enquiry-thanks{max-width: 760px; min-height: 55vh; padding-top: 64px; padding-bottom: 64px; text-align: center;}
.thanks-icon{color: var(--gold, #d4b362); font-size: 48px;}
.enquiry-thanks h1{font-size: clamp(32px, 6vw, 48px); margin: 20px 0px 12px;}
.enquiry-thanks p{line-height: 1.65;}
#thanks-boat{font-weight: 600;}
.thanks-actions{display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin-top: 28px;}
.thanks-actions [hidden]{display: none;}
@media (max-width: 540px) {.enquiry-thanks{padding: 40px 20px;}
.thanks-actions .button{width: 100%;}}
.footer-grid{display: grid; grid-template-columns: 1.2fr 0.85fr 0.95fr 0.95fr 1.15fr; gap: 32px;}
.footer-column h2{font-family: Montserrat, Arial, sans-serif; font-size: 15px; color: rgb(255, 255, 255); margin: 0px 0px 16px; font-weight: 600;}
.footer-column > a{display: block; min-height: 38px; padding: 8px 0px; font-size: 13px; line-height: 1.6;}
.footer-column a:hover, .footer-bottom a:hover{color: var(--gold);}
.footer-identity > p{font-size: 14px; line-height: 1.8; margin: 20px 0px;}
.footer-social{display: flex; gap: 10px; flex-wrap: wrap;}
.footer-social a{display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid rgb(103, 120, 134); border-radius: 50%; color: rgb(255, 255, 255); font-size: 19px;}
.footer-social span{position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);}
.footer-contact > a{overflow-wrap: anywhere;}
.footer-contact > p{font-size: 13px; margin: 8px 0px 24px;}
.footer-column .app-heading{margin-top: 24px;}
.app-downloads{display: flex; flex-wrap: wrap; gap: 10px;}
.app-download{display: flex; align-items: center; gap: 12px; border: 1px solid rgb(103, 120, 134); border-radius: 8px; padding: 10px 14px; min-height: 62px; color: rgb(255, 255, 255);}
.app-download i{font-size: 28px;}
.app-download small, .app-download strong{display: block;}
.app-download small{font-size: 10px; line-height: 1.5;}
.app-download strong{font-size: 16px; font-weight: 600;}
.footer-experiences{border-top: 1px solid rgb(67, 83, 96); margin-top: 36px; padding-top: 20px; display: flex; align-items: center; gap: 12px 24px; flex-wrap: wrap; font-size: 12px;}
.footer-experiences span{color: rgb(255, 255, 255);}
.footer-experiences a{display: inline-flex; align-items: center; min-height: 44px;}
.footer-bottom{font-size: 11px; align-items: center;}
.footer-bottom nav{display: flex; flex-wrap: wrap; gap: 12px 24px;}
.footer-bottom a{display: inline-flex; align-items: center; min-height: 44px;}
.planning-guide, .rental-faq{padding-top: 52px; padding-bottom: 36px; scroll-margin-top: 115px;}
.guide-intro{max-width: 760px;}
.guide-intro h2, .rental-faq h2{font-size: clamp(30px, 4vw, 44px); margin: 10px 0px 18px;}
.guide-intro p, .guide-steps p, .rental-faq p{font-size: 15px; line-height: 1.8;}
.guide-steps{display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 32px;}
.guide-steps article{border-top: 1px solid rgb(188, 166, 117); padding-top: 20px;}
.guide-steps article > span{color: rgb(115, 89, 30); font-size: 13px; font-weight: 600;}
.guide-steps h3{font-size: 28px; margin: 12px 0px;}
.planning-guide a, .rental-faq a{text-decoration: underline; text-underline-offset: 3px;}
.rental-faq{max-width: 900px; padding-bottom: 56px;}
.rental-faq details{border-bottom: 1px solid rgb(187, 197, 201); padding: 4px 0px;}
.rental-faq summary{padding: 18px 30px 18px 0px; cursor: pointer; min-height: 48px; font-size: 16px; font-weight: 600; line-height: 1.6;}
.rental-faq details p{margin: 0px 0px 22px;}
.faq-contact{margin-top: 24px;}
@media (max-width: 1280px) {.footer-grid{grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 32px;}}
@media (max-width: 1050px) {.footer-grid{grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 36px;}
.guide-steps{gap: 20px;}}
@media (max-width: 600px) {.footer-grid{gap: 28px 20px;}
.footer-identity, .footer-contact{grid-column: 1 / -1;}
.footer-column > a{font-size: 12px; min-height: 44px;}
.footer-identity > p{margin: 14px 0px;}
.footer-social{margin-top: 16px;}
.app-downloads{flex-wrap: wrap;}
.footer-bottom{align-items: flex-start; gap: 10px;}
.guide-steps{grid-template-columns: 1fr;}
.planning-guide, .rental-faq{padding-top: 32px;}
.footer-experiences{gap: 8px 16px;}}
.conditions{list-style: none; margin: 0px; padding: 0px; display: grid; gap: 0.6rem;}
.conditions li{position: relative; padding-left: 1.4rem; line-height: 1.55;}
.conditions li::before{content: ""; position: absolute; left: 0.35rem; top: 0.65em; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--gold,#d5b363);}
.hero-price{font-size: 14px; color: rgb(242, 239, 230); margin: 14px 0px 0px; line-height: 1.6;}
.hero-price strong{color: rgb(255, 255, 255);}
.hero-price a{color: rgb(242, 239, 230); text-decoration: underline;}
.seo-page .lede{font-size: 18px; line-height: 1.7; color: var(--navy); border-left: 3px solid rgb(201, 162, 39); padding-left: 18px; margin-bottom: 34px;}
.seo-page h2{font-size: 28px; margin: 38px 0px 14px;}
.seo-page ul{padding-left: 20px;}
.seo-page li{margin-bottom: 9px;}
.price-table{width: 100%; border-collapse: collapse; margin: 20px 0px 24px; border: 1px solid rgb(211, 216, 213); border-radius: 10px; overflow: hidden; background: rgb(255, 255, 255);}
.price-table caption{caption-side: top; text-align: left; font-size: 12px; color: rgb(98, 108, 112); padding: 0px 0px 9px;}
.price-table th, .price-table td{padding: 14px 16px; text-align: left; font-size: 15px; border-bottom: 1px solid rgb(227, 231, 229);}
.price-table tr:last-child th, .price-table tr:last-child td{border-bottom: 0px;}
.price-table th{font-weight: 600; color: var(--navy);}
.price-table td{font-weight: 600; color: rgb(135, 104, 39); white-space: nowrap;}
@media (max-width: 560px) {.price-table th, .price-table td{padding: 12px 11px; font-size: 14px;}
.seo-page h2{font-size: 23px;}
.seo-page .lede{font-size: 16px; padding-left: 13px;}}
.boat-list thead th{font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: rgb(98, 108, 112); font-weight: 600; background: rgb(247, 248, 247);}
.boat-list th[scope="row"]{font-weight: 600; white-space: normal;}
.boat-list th[scope="row"] a{color: var(--navy); text-decoration: none; border-bottom: 1px solid rgb(214, 205, 180);}
.boat-list th[scope="row"] a:hover{border-bottom-color: rgb(135, 104, 39);}
.boat-list td:nth-child(2){color: rgb(98, 108, 112); font-weight: 500;}
.boat-list-quoted{list-style: none; padding: 0px; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 9px 22px;}
.boat-list-quoted li{font-size: 14px; margin: 0px;}
.boat-list-quoted a{color: var(--navy);}
@media (max-width: 560px) {.boat-list-quoted{grid-template-columns: 1fr;}
.boat-list caption{font-size: 11px;}}
.pick-grid{display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 22px; margin: 22px 0px 34px;}
.pick-card{border: 1px solid rgb(211, 216, 213); border-radius: 12px; overflow: hidden; background: rgb(255, 255, 255); display: flex; flex-direction: column;}
.pick-photo{display: block; aspect-ratio: 3 / 2; overflow: hidden;}
.pick-photo img{width: 100%; height: 100%; object-fit: cover; display: block;}
.pick-body{padding: 16px 16px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1 1 0%;}
.pick-body h3{font-size: 17px; margin: 0px; line-height: 1.35;}
.pick-body h3 a{color: var(--navy); text-decoration: none;}
.pick-cap{font-size: 12px; color: rgb(98, 108, 112); margin: 0px;}
.pick-price{font-size: 17px; font-weight: 600; color: rgb(135, 104, 39); margin: 0px;}
.pick-split{font-size: 12px; color: rgb(98, 108, 112); margin: 0px 0px 6px; line-height: 1.5;}
.pick-cta{margin-top: auto; width: 100%; text-align: center; font-size: 13px; padding: 11px 14px; border: 0px; cursor: pointer;}
.experience{border: 1px solid rgb(211, 216, 213); border-radius: 12px; background: rgb(247, 248, 247); padding: 26px 26px 22px; margin: 34px 0px;}
.experience h2{margin-top: 0px;}
.experience-list{display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 8px 24px; list-style: none; padding: 0px; margin: 16px 0px 18px;}
.experience-list li{font-size: 14px; padding-left: 20px; position: relative; margin: 0px;}
.experience-list li::before{content: "+"; position: absolute; left: 0px; color: rgb(135, 104, 39); font-weight: 700;}
.why-us{margin: 34px 0px;}
.why-list{list-style: none; padding: 0px; display: grid; gap: 12px;}
.why-list li{font-size: 14px; line-height: 1.65; padding-left: 20px; position: relative; margin: 0px;}
.why-list li::before{content: "✓"; position: absolute; left: 0px; color: rgb(135, 104, 39);}
@media (max-width: 900px) {.pick-grid{grid-template-columns: repeat(2, minmax(0px, 1fr));}}
@media (max-width: 560px) {.pick-grid{grid-template-columns: 1fr;}
.experience-list{grid-template-columns: 1fr;}
.experience{padding: 20px 18px;}}
.pp-table .pp-cap{font-weight: 400; color: rgb(98, 108, 112); font-size: 12px;}
.pp-table .pp-each{color: var(--navy);}
.pp-table th[scope="row"] a{color: var(--navy); text-decoration: none; border-bottom: 1px solid rgb(214, 205, 180);}
.ocasion-hero{margin: 0px 0px 26px; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 7;}
.ocasion-hero img{width: 100%; height: 100%; object-fit: cover; display: block;}
.ocasion-foto{margin: 24px 0px 30px; border-radius: 12px; overflow: hidden; aspect-ratio: 3 / 2;}
.ocasion-foto img{width: 100%; height: 100%; object-fit: cover; display: block;}
.ocasion-video{margin: 30px 0px; border-radius: 12px; overflow: hidden; background: rgb(13, 27, 38);}
.ocasion-video video{width: 100%; height: auto; display: block;}
.ocasion-galeria{display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 12px; margin: 26px 0px 32px;}
.ocasion-galeria figure{margin: 0px; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3;}
.ocasion-galeria img{width: 100%; height: 100%; object-fit: cover; display: block;}
@media (max-width: 700px) {.ocasion-hero{aspect-ratio: 4 / 3; border-radius: 10px;}
.ocasion-galeria{grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 9px;}}
.lang-switch{display: inline-flex; align-items: center; font-size: 12px; letter-spacing: 0.03em; color: rgb(232, 227, 214); text-decoration: none; padding: 9px 13px; border: 1px solid rgba(232, 227, 214, 0.35); border-radius: 7px; margin-right: 12px; white-space: nowrap;}
.lang-switch:hover{border-color: rgba(232, 227, 214, 0.75); color: rgb(255, 255, 255);}
.mxn{font-size: 0.82em; font-weight: 500; color: rgb(98, 108, 112); white-space: nowrap;}
@media (max-width: 900px) {.lang-switch{margin-right: 8px; padding: 8px 10px; font-size: 11px;}}
.editorial-page{overflow: clip;}
.editorial-hero{position: relative; isolation: isolate; min-height: 440px; display: flex; align-items: flex-end; background: var(--navy); color: white; margin-bottom: 56px;}
.editorial-hero > img{position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; z-index: -2;}
.editorial-hero::after{content: ""; position: absolute; inset: 0px; background: linear-gradient(0deg, rgba(10, 23, 39, 0.88), rgba(10, 23, 39, 0.12)); z-index: -1;}
.editorial-hero-copy{padding-block: 76px 46px;}
.editorial-hero h1{font-family: var(--serif); font-size: clamp(36px, 4.5vw, 68px); line-height: 1.06; max-width: 1000px; margin: 12px 0px 0px; text-wrap: balance; color: white;}
.editorial-eyebrow{text-transform: uppercase; letter-spacing: 0.13em; font-size: 12px; font-weight: 600; line-height: 1.6;}
.editorial-hero-compact{min-height: 300px;}
.editorial-reading{max-width: 1100px; display: flow-root; line-height: 1.85;}
.editorial-inline{float: right; width: 43%; margin: 8px 0px 30px 40px;}
.editorial-inline img{width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px;}
.editorial-reading h2{line-height: 1.15; margin-top: 32px; text-wrap: balance;}
.editorial-reading table{display: block; max-width: 100%; overflow-x: auto; clear: both;}
.editorial-aside{margin: 0px 0px 28px;}
.editorial-aside img{width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px;}
.editorial-page .contact-layout{align-items: start;}
.editorial-page .contact-layout > .prose{min-width: 0px;}
.editorial-page .contact-layout > .prose:empty{display: none;}
.editorial-recommendations{clear: both; padding-block: 56px 32px; border-top: 1px solid rgb(201, 201, 189); margin-top: 40px;}
.editorial-recommendations > h2{font-family: var(--serif); font-size: clamp(32px, 3.4vw, 48px); margin: 8px 0px 16px; line-height: 1.12;}
.editorial-recommendations > p{max-width: 700px; line-height: 1.7;}
.editorial-next{display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; padding-block: 32px 64px; clear: both;}
.editorial-next a{display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid rgb(177, 185, 185); padding: 20px 18px; text-decoration: none; color: var(--navy); font-weight: 600; line-height: 1.5; font-size: 14px; border-radius: 4px;}
.editorial-next a:hover{background: rgb(233, 225, 209); border-color: var(--navy);}
.editorial-next a:focus-visible{outline: 3px solid var(--navy); outline-offset: 3px;}
.editorial-page .news-card img{width: 100%; aspect-ratio: 3 / 2; object-fit: cover;}
.editorial-post .article-copy{max-width: 1000px; font-size: 18px;}
.editorial-post .editorial-inline{width: 42%;}
.editorial-page .pick-card{height: 100%;}
.editorial-page .pick-body{display: flex; flex-direction: column;}
.editorial-page .pick-cta{margin-top: auto;}
@media (min-width: 1000px) {.editorial-page .news-grid .news-card:first-child{grid-column: span 2; display: grid; grid-template-columns: 1.1fr 1fr;}
.editorial-page .news-grid .news-card:first-child img{height: 100%; min-height: 300px;}
.editorial-page .contact-layout{grid-template-columns: minmax(0px, 0.9fr) minmax(0px, 1.1fr); gap: 48px;}}
@media (max-width: 900px) {.editorial-next{grid-template-columns: repeat(2, 1fr);}
.editorial-inline{margin-left: 24px;}
.editorial-hero{min-height: 360px;}}
@media (max-width: 600px) {.editorial-hero{min-height: 310px; margin-bottom: 30px;}
.editorial-hero-compact{min-height: 240px;}
.editorial-hero-copy{padding-block: 52px 28px;}
.editorial-hero h1{font-size: 36px;}
.editorial-eyebrow{font-size: 10px;}
.editorial-inline, .editorial-post .editorial-inline{float: none; width: 100%; margin: 24px 0px;}
.editorial-reading{font-size: 16px; line-height: 1.75;}
.editorial-next{gap: 8px; padding-block: 20px 40px;}
.editorial-next a{font-size: 12px; padding: 15px 12px;}
.editorial-recommendations{padding-top: 32px; margin-top: 28px;}
.editorial-post .article-copy{font-size: 16px;}
.editorial-page .contact-layout{gap: 28px;}}
.editorial-inline img, .editorial-aside img{height: auto; aspect-ratio: 4 / 3; object-fit: cover;}
.editorial-page .news-card img{height: 230px; object-fit: cover;}
.editorial-page .pick-photo img{height: auto; aspect-ratio: 3 / 2; object-fit: cover;}
@media (max-width: 600px) {.editorial-page .news-card img{height: 210px;}}
@media (min-width: 1000px) {.editorial-page .news-grid .news-card:first-child{grid-column: auto; display: block;}
.editorial-page .news-grid .news-card:first-child img{height: 230px; min-height: 0px;}}
.editorial-page .news-card h2{font-size: clamp(23px, 2vw, 30px); line-height: 1.15; text-wrap: balance;}
.editorial-page .news-card > div{padding: 24px;}



.pick-price{font-size: 24px; font-weight: 700; line-height: 1.35; color: var(--navy);}
.pick-body h3{font-size: 24px; line-height: 1.2;}
.pick-cap{font-size: 16px; line-height: 1.5;}
.trip-panel-price{font-size: 30px; line-height: 1.3;}
.package-option strong{font-size: 25px; line-height: 1.25;}
.package-option > span:first-child, .trip-subtitle, .trip-fee{font-size: 16px; line-height: 1.5;}
.package-option small, .package-action{font-size: 13px; line-height: 1.4;}
.editorial-page .prose, .editorial .prose, .contact-layout > .prose, .full-description .prose, .detail-copy p, .amenities li, .card-description{font-size: 17px; line-height: 1.7;}
.card-rates .expanded-rates, .expanded-rates .price{font-size: 16px; line-height: 1.6;}
@media (max-width: 600px) {


.pick-price{font-size: 24px;}
.editorial-page .prose, .editorial-page .editorial-reading, .editorial-post .article-copy, .contact-layout > .prose, .full-description .prose, .detail-copy p, .amenities li{font-size: 17px; line-height: 1.7;}
.boat-facts dt{font-size: 12px;}
.boat-facts dd{font-size: 16px;}
.trip-panel-price{font-size: 30px;}}
@media (max-width: 380px) {.package-option{padding: 14px 9px;}
.package-option strong{font-size: 23px;}}
/* Catalog card: one shared layout at all viewport sizes. */
.yacht-card .card-body{display:flex;flex-direction:column;gap:6px;padding:10px 16px;flex:1;min-width:0}
.yacht-card .card-heading h3{font-size:27px;line-height:1.12;margin:0;min-width:0;overflow-wrap:normal}
.yacht-card .card-heading h3 a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-decoration:none;color:inherit}
.yacht-card .card-heading h3 a:hover{color:var(--gold)}
.yacht-card .compact-price{font-size:22px;line-height:1.35;font-weight:700;color:var(--gold);margin:0;width:100%;overflow-wrap:normal}
.yacht-card .compact-price i{font-size:16px;margin-right:4px}
.yacht-card .card-meta{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:8px}
.yacht-card .dock-line{font-size:15px;line-height:1.5;color:#d1dde6;margin:0}
.yacht-card .dock-line i{color:var(--gold);font-size:14px;margin-right:4px}
.card-tripadvisor{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px;padding:4px 0;color:white;text-decoration:none;width:100%;border-radius:4px}
.card-ta-brand{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;line-height:1.3}
.card-ta-brand i{font-size:30px;color:#7ce3c3}.card-ta-brand strong{font:600 17px/1.3 var(--sans)}
.card-ta-caption{font:400 14px/1.4 var(--sans);color:#e3eaf0;white-space:nowrap}
.card-tripadvisor:hover{background:#ffffff0a}
.card-tripadvisor:focus-visible,.card-footer a:focus-visible,.card-rates summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.yacht-card .card-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:start;gap:0 8px;margin:0;padding-top:2px;border-top:1px solid var(--line)}
.more-info,.card-rates summary{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:500;line-height:1.4;color:var(--gold);cursor:pointer;text-decoration:none;list-style:none}
.card-rates summary::-webkit-details-marker{display:none}
.card-rates[open] summary i{transform:rotate(180deg)}
.yacht-card .photo-dots button{width:36px;height:44px;padding:14px}
.yacht-card .photo-prev,.yacht-card .photo-next{min-width:44px;min-height:44px}
@media(min-width:1101px){.yacht-card .compact-price{font-size:20px}.yacht-card .card-heading h3{font-size:26px}}
@media(max-width:380px){.yacht-card .card-body{padding:10px 14px}.more-info,.card-rates summary{font-size:13px}}
/* Shared full-gallery dialog, for catalog cards and boat details. */
html.gallery-open{overflow:hidden}
.yacht-card button.photo-link{display:block;padding:0;border:0;background:transparent;cursor:zoom-in}
#photo-dialog{width:min(1100px,96vw);max-width:96vw;height:min(850px,94dvh);max-height:94dvh;padding:0;border:1px solid #527082;border-radius:12px;color:white;background:var(--ink);overflow:hidden}
#photo-dialog[open]{display:flex;flex-direction:column}
.gallery-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;flex-shrink:0}
.gallery-header h2{font-size:clamp(24px,3vw,36px);line-height:1.1;margin:0;overflow-wrap:anywhere}
#photo-dialog .close-lightbox{position:static;flex:0 0 44px;min-height:44px}
.gallery-stage{position:relative;flex:1;min-height:0;touch-action:pan-y pinch-zoom}
#photo-dialog .gallery-stage img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;margin:0}
.gallery-prev,.gallery-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid #ffffff80;border-radius:50%;color:white;background:#0a1727cc;font-size:36px;line-height:1;cursor:pointer}
.gallery-prev{left:10px}.gallery-next{right:10px}
.gallery-bottom{flex-shrink:0;padding:10px 18px 16px}.gallery-bottom p{text-align:center;font-size:16px;margin:0 0 10px}
.gallery-actions{display:flex;justify-content:center;gap:12px}.gallery-actions .button{min-height:44px;font-size:15px;padding:12px 20px;text-align:center}
#photo-dialog :focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(max-width:600px){#photo-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0}.gallery-header{padding:12px 14px;padding-top:max(12px,env(safe-area-inset-top))}.gallery-bottom{padding:10px 12px max(14px,env(safe-area-inset-bottom))}.gallery-actions{gap:8px}.gallery-actions .button{flex:1;padding:12px 8px;font-size:14px}.gallery-prev,.gallery-next{width:44px;height:44px}.gallery-prev{left:6px}.gallery-next{right:6px}}
