/* Ocean Miami Charters: sunny, sunset, yacht party vibe. Logo navy + turquoise + coral + sun yellow. */
:root{--navy:#0b2a5b;--navy2:#103a7a;--logo:#1a4f99;--aqua:#16c1d6;--aqua2:#7fe3ef;--coral:#ff6b57;--pink:#ff8fb1;--sun:#ffc857;--cream:#fff8ec;--sand:#fdeccd;--ink:#0d2247;--muted:#4f6285;--hf:'Unbounded',system-ui,sans-serif;--bf:'Plus Jakarta Sans',system-ui,sans-serif;--hand:'Caveat',cursive}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{width:100%;background:var(--cream);color:var(--ink);font-family:var(--bf);overflow-x:hidden;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit}
section{position:relative}
.wrap{max-width:1200px;margin:0 auto;padding-inline:1.6rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important}[data-reveal]{opacity:1!important;transform:none!important;transition:none!important}.hero-bg{transform:none!important}}
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
[data-reveal].is-visible{opacity:1;transform:none}
[data-reveal="left"]{transform:translateX(-40px)}
[data-reveal="right"]{transform:translateX(40px)}
[data-reveal="pop"]{transform:scale(.9)}
[data-reveal="left"].is-visible,[data-reveal="right"].is-visible,[data-reveal="pop"].is-visible{transform:none}
.tag{display:inline-block;padding:.4rem 1rem;border-radius:999px;background:var(--sun);color:#3a2800;font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem}
.tag.aqua{background:var(--aqua2);color:#053a44}
.tag.coral{background:var(--coral);color:#fff}
.h{font-family:var(--hf);font-weight:700;line-height:1.05;letter-spacing:-.03em;color:var(--navy)}
.h2{font-size:clamp(1.9rem,4.2vw,3.1rem)}
.h .hl{background:linear-gradient(90deg,var(--coral),var(--sun));-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{color:var(--muted);font-size:1.08rem;max-width:56ch}
.hand{font-family:var(--hand);font-size:1.6rem;color:var(--coral);line-height:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:1.05rem 2rem;font-family:var(--hf);font-weight:600;font-size:.82rem;letter-spacing:.03em;text-decoration:none;border:none;cursor:pointer;border-radius:999px;transition:transform .2s ease,box-shadow .2s ease,background .2s}
.btn-coral{background:linear-gradient(135deg,var(--coral),#ff9a57);color:#fff;box-shadow:0 18px 34px -14px rgba(255,107,87,.8)}
.btn-coral:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 24px 40px -14px rgba(255,107,87,.9)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{transform:translateY(-3px);background:var(--navy2)}
.btn-glass{background:rgba(255,255,255,.16);color:#fff;border:1.5px solid rgba(255,255,255,.55);backdrop-filter:blur(8px)}
.btn-glass:hover{transform:translateY(-3px);background:rgba(255,255,255,.28)}
.btn-line{background:transparent;color:var(--navy);border:2px solid var(--navy)}
.btn-line:hover{background:var(--navy);color:#fff;transform:translateY(-3px)}
.btn-block{width:100%}
/* nav */
.site-nav{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.8rem;transition:background .3s,padding .3s,box-shadow .3s}
.site-nav.scrolled,.site-nav.solid{background:rgba(255,248,236,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(11,42,91,.1);padding:.6rem 1.8rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.brand .lg{width:48px;height:48px;border-radius:50%;overflow:hidden;background:var(--cream);box-shadow:0 6px 18px rgba(0,0,0,.25);flex-shrink:0}
.brand .lg img{width:100%;height:100%;object-fit:cover;transform:scale(1.5)}
.brand .nm{font-family:var(--hf);font-weight:700;font-size:1.05rem;color:#fff;line-height:1.05;letter-spacing:-.02em}
.brand .nm small{display:block;font-family:var(--bf);font-weight:700;font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;opacity:.85;margin-top:.2rem}
.site-nav.scrolled .nm,.site-nav.solid .nm{color:var(--navy)}
.nav-links{display:flex;gap:1.8rem;list-style:none}
.nav-links a{font-weight:700;font-size:.88rem;text-decoration:none;color:#fff;padding:.3rem 0;border-bottom:2px solid transparent;transition:border-color .2s}
.site-nav.scrolled .nav-links a,.site-nav.solid .nav-links a{color:var(--navy)}
.nav-links a:hover,.nav-links a.active{border-color:var(--coral)}
.nav-right{display:flex;align-items:center;gap:.9rem}
.nav-tel{display:none;font-weight:800;text-decoration:none;color:#fff;font-size:.95rem}
.site-nav.scrolled .nav-tel,.site-nav.solid .nav-tel{color:var(--navy)}
.nav-cta{display:none;padding:.75rem 1.4rem}
@media(min-width:1000px){.nav-cta,.nav-tel{display:inline-flex}}
.nav-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.4rem}
.nav-toggle span{width:26px;height:2.5px;border-radius:2px;background:#fff}
.site-nav.scrolled .nav-toggle span,.site-nav.solid .nav-toggle span{background:var(--navy)}
@media(min-width:1000px){.nav-toggle{display:none}}
@media(max-width:999px){.nav-links{display:none}}
.mobile-menu{position:fixed;inset:0;z-index:99;background:linear-gradient(160deg,var(--navy),var(--logo));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;transform:translateY(-100%);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.mobile-menu.open{transform:none}
.mobile-menu a{font-family:var(--hf);font-size:1.8rem;font-weight:700;color:#fff;text-decoration:none}
.mobile-menu a.btn{font-size:.9rem}
/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:8rem 0 9rem;color:#fff;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:-6%;z-index:-3;background:url("../images/photo-04.jpg") 50% 30%/cover no-repeat;will-change:transform}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(11,42,91,.78) 0%,rgba(11,42,91,.25) 38%,rgba(255,107,87,.28) 70%,rgba(11,42,91,.75) 100%),radial-gradient(ellipse 70% 60% at 18% 60%,rgba(11,42,91,.55),transparent 70%)}
.sun{position:absolute;z-index:-1;width:min(46vw,520px);aspect-ratio:1;right:-6%;top:6%;border-radius:50%;background:radial-gradient(circle,rgba(255,200,87,.55),rgba(255,107,87,.18) 55%,transparent 70%);filter:blur(6px);animation:glow 6s ease-in-out infinite}
@keyframes glow{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}
.hero h1{font-family:var(--hf);font-weight:800;font-size:clamp(2.6rem,7.4vw,6.2rem);line-height:.96;letter-spacing:-.04em;max-width:12ch;text-shadow:0 8px 40px rgba(0,0,0,.35)}
.hero h1 .hl{background:linear-gradient(90deg,var(--sun),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.hero .hand{color:var(--sun);font-size:clamp(1.6rem,3vw,2.4rem);margin-bottom:.8rem;display:block;transform:rotate(-2deg)}
.hero p.lede{color:#e3ecfa;margin-top:1.5rem;font-size:1.15rem}
.hero .cta-row{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2.2rem}
.stats{display:flex;flex-wrap:wrap;gap:2.2rem;margin-top:2.6rem}
.stats div{border-left:3px solid var(--sun);padding-left:1rem}
.stats b{display:block;font-family:var(--hf);font-size:1.8rem;line-height:1}
.stats span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85;font-weight:700}
.waves{position:absolute;left:0;right:0;bottom:-2px;height:110px;overflow:hidden;z-index:1;pointer-events:none}
.waves svg{position:absolute;bottom:0;left:0;width:200%;height:100%}
.waves .w1{animation:wave 14s linear infinite;opacity:.55}
.waves .w2{animation:wave 9s linear infinite reverse;opacity:.8}
.waves .w3{animation:wave 20s linear infinite}
@keyframes wave{to{transform:translateX(-50%)}}
/* marquee */
.marquee{background:var(--navy);color:#fff;overflow:hidden;padding:1rem 0;border-block:3px solid var(--sun)}
.marquee-track{display:flex;gap:2.6rem;width:max-content;animation:slide 38s linear infinite}
.marquee-track span{font-family:var(--hf);font-weight:600;font-size:1.1rem;white-space:nowrap;display:flex;align-items:center;gap:2.6rem}
.marquee-track span::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--coral)}
@keyframes slide{to{transform:translateX(-50%)}}
/* sections */
.section{padding:6.5rem 0}
.section.white{background:#fff}
.section.sand{background:var(--sand)}
.section.navy{background:linear-gradient(170deg,var(--navy),#0e3a82);color:#fff}
.section.navy .h{color:#fff}
.section.navy .lede{color:#bcd0ef}
.sec-head{max-width:700px;margin-bottom:3.2rem}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head .lede{margin-top:1rem}
.sec-head.center .lede{margin-inline:auto}
/* vibe tabs */
.vibes{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem;align-items:center}
@media(max-width:900px){.vibes{grid-template-columns:1fr}}
.vibe-btns{display:grid;gap:.8rem;margin-top:2rem}
.vibe-btn{display:flex;align-items:center;gap:1rem;text-align:left;padding:1.1rem 1.3rem;border-radius:20px;border:2px solid rgba(11,42,91,.12);background:#fff;cursor:pointer;font-family:var(--bf);transition:transform .2s,border-color .2s,box-shadow .2s}
.vibe-btn:hover{transform:translateX(6px)}
.vibe-btn.on{border-color:var(--coral);box-shadow:0 20px 40px -24px rgba(255,107,87,.8)}
.vibe-btn .em{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--aqua),var(--logo));display:grid;place-items:center;color:#fff;flex-shrink:0}
.vibe-btn .em svg{width:24px;height:24px}
.vibe-btn.on .em{background:linear-gradient(135deg,var(--coral),var(--sun))}
.vibe-btn b{display:block;font-family:var(--hf);font-size:1.02rem;color:var(--navy)}
.vibe-btn span{font-size:.9rem;color:var(--muted)}
.vibe-stage{position:relative;aspect-ratio:4/5;border-radius:34px;overflow:hidden;box-shadow:0 50px 90px -40px rgba(11,42,91,.7);transform:rotate(1.5deg)}
.vibe-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .7s ease,transform 1.2s ease}
.vibe-stage img.on{opacity:1;transform:scale(1)}
.vibe-stage .cap{position:absolute;left:1.2rem;bottom:1.2rem;right:1.2rem;padding:1rem 1.2rem;border-radius:18px;background:rgba(11,42,91,.72);backdrop-filter:blur(10px);color:#fff;font-family:var(--hand);font-size:1.6rem;line-height:1.1}
/* offer */
.offer{background:linear-gradient(120deg,#ff6b57 0%,#ff9a57 45%,#ffc857 100%);color:#2b1500;position:relative;overflow:hidden}
.offer .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;padding-block:5rem}
@media(max-width:860px){.offer .wrap{grid-template-columns:1fr}}
.offer .h{color:#2b1500;font-size:clamp(2rem,5vw,3.8rem)}
.offer p{max-width:50ch;margin-top:1rem;font-size:1.08rem}
.ticket{background:#fff;color:var(--navy);border-radius:28px;padding:2rem;position:relative;box-shadow:0 40px 70px -30px rgba(120,30,0,.6);transform:rotate(-2.5deg)}
.ticket::before,.ticket::after{content:"";position:absolute;top:56%;width:34px;height:34px;border-radius:50%;background:#ff9a57}
.ticket::before{left:-17px}.ticket::after{right:-17px}
.ticket .top{border-bottom:2px dashed rgba(11,42,91,.25);padding-bottom:1.2rem;margin-bottom:1.2rem}
.ticket small{font-weight:800;letter-spacing:.18em;text-transform:uppercase;font-size:.7rem;color:var(--coral)}
.ticket .price{font-family:var(--hf);font-size:3.4rem;line-height:1;font-weight:800;margin:.3rem 0}
.ticket ul{list-style:none;display:grid;gap:.55rem;font-weight:600}
.ticket li{display:flex;gap:.6rem;align-items:center}
.ticket li svg{width:20px;height:20px;color:var(--aqua);flex-shrink:0}
.ticket .btn{margin-top:1.4rem}
/* polaroids */
.wall{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem 1.8rem;padding:1rem 0 2rem;max-width:1000px;margin-inline:auto}
@media(max-width:760px){.wall{grid-template-columns:repeat(2,1fr);gap:1.8rem 1.1rem}.wall .pol:last-child{grid-column:span 2}.wall .pol:last-child img{aspect-ratio:16/10}}
.pol{background:#fff;padding:.8rem .8rem 1rem;border-radius:6px;box-shadow:0 24px 40px -22px rgba(11,42,91,.55);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.pol:nth-child(odd){transform:rotate(-2.2deg)}
.pol:nth-child(even){transform:rotate(2deg) translateY(14px)}
.pol:hover{transform:rotate(0) scale(1.05) translateY(-6px);z-index:3;box-shadow:0 40px 60px -24px rgba(11,42,91,.7)}
.pol img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px}
.pol p{font-family:var(--hand);font-size:1.5rem;text-align:center;margin-top:.6rem;color:var(--navy);line-height:1}
/* phones */
.phones{display:flex;justify-content:center;gap:2.4rem;flex-wrap:wrap}
.phone{width:min(300px,86vw);aspect-ratio:9/15.45;border-radius:42px;background:#0a1226;padding:12px;box-shadow:0 50px 80px -30px rgba(0,0,0,.7),inset 0 0 0 2px rgba(255,255,255,.12);position:relative}
.phone::before{content:"";position:absolute;top:18px;left:50%;transform:translateX(-50%);width:84px;height:22px;border-radius:99px;background:#050913;z-index:2}
.phone .scr{position:relative;width:100%;height:100%;border-radius:32px;overflow:hidden;background:#000}
.phone iframe{position:absolute;inset:0;width:100%;height:100%;border:none}
.phone:nth-child(odd){transform:rotate(-3deg)}
.phone:nth-child(even){transform:rotate(3deg) translateY(20px)}
/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem}
.step{background:#fff;border-radius:26px;padding:2rem;position:relative;box-shadow:0 26px 50px -34px rgba(11,42,91,.5);transition:transform .25s}
.step:hover{transform:translateY(-6px) rotate(-1deg)}
.step .n{font-family:var(--hf);font-size:3rem;font-weight:800;line-height:1;background:linear-gradient(135deg,var(--aqua),var(--logo));-webkit-background-clip:text;background-clip:text;color:transparent}
.step h3{font-family:var(--hf);font-size:1.15rem;margin:.8rem 0 .4rem;color:var(--navy)}
.step p{color:var(--muted);font-size:.95rem}
/* faq */
.faq{max-width:820px;margin-inline:auto;display:grid;gap:.9rem}
.faq details{background:#fff;border-radius:20px;padding:1.2rem 1.5rem;border:2px solid rgba(11,42,91,.08);transition:border-color .2s}
.faq details[open]{border-color:var(--aqua)}
.faq summary{cursor:pointer;font-family:var(--hf);font-weight:600;font-size:1rem;color:var(--navy);list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.6rem;color:var(--coral);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin-top:.8rem;color:var(--muted)}
/* cta */
.cta{position:relative;text-align:center;padding:8rem 1.6rem 9rem;background:linear-gradient(180deg,var(--navy),#0e3a82 60%,#14529e);color:#fff;overflow:hidden}
.cta h2{font-family:var(--hf);font-weight:800;font-size:clamp(2.2rem,6vw,4.6rem);line-height:1;letter-spacing:-.04em;max-width:16ch;margin:0 auto;position:relative}
.cta h2 .hl{background:linear-gradient(90deg,var(--sun),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.cta p{max-width:50ch;margin:1.3rem auto 0;color:#c4d6f2;position:relative}
.cta .cta-row{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:center;margin-top:2.2rem;position:relative}
.cta .waves{height:90px}
/* page hero + forms */
.page-hero{padding:10rem 1.6rem 6rem;text-align:center;background:linear-gradient(180deg,var(--navy),var(--logo));color:#fff;position:relative;overflow:hidden}
.page-hero h1{font-family:var(--hf);font-weight:800;font-size:clamp(2.2rem,5.6vw,4.2rem);line-height:1;letter-spacing:-.04em}
.page-hero p{color:#c4d6f2;max-width:56ch;margin:1.2rem auto 0}
.book-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2.4rem;align-items:start}
@media(max-width:900px){.book-grid{grid-template-columns:1fr}}
.panel{background:#fff;border-radius:30px;padding:2.2rem;box-shadow:0 40px 70px -44px rgba(11,42,91,.6)}
.panel h2{font-family:var(--hf);font-size:1.6rem;color:var(--navy);letter-spacing:-.03em}
.panel .sub{color:var(--muted);margin:.4rem 0 1.5rem}
.fg{margin-bottom:1rem}
.fg label{display:block;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.fg input,.fg select,.fg textarea{width:100%;padding:.9rem 1.1rem;border:2px solid rgba(11,42,91,.12);border-radius:16px;background:var(--cream);font-family:inherit;font-size:1rem;color:var(--ink)}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--aqua);background:#fff;box-shadow:0 0 0 4px rgba(22,193,214,.18)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.row2{grid-template-columns:1fr}}
.note{margin-top:.9rem;font-size:.82rem;color:var(--muted)}
.info{background:#fff;border-radius:26px;padding:1.8rem;margin-bottom:1.2rem;box-shadow:0 30px 60px -44px rgba(11,42,91,.5)}
.info h3{font-family:var(--hf);font-size:1.1rem;color:var(--navy);margin-bottom:.8rem;letter-spacing:-.02em}
.info a,.info p{display:block;color:var(--muted);text-decoration:none;margin-bottom:.55rem}
.info a.big{font-family:var(--hf);font-size:1.5rem;color:var(--coral);font-weight:700}
.info a:hover{color:var(--logo)}
footer{background:#081d42;color:#b4c7e8;padding:4rem 0 1.8rem}
.foot{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2.4rem}
@media(max-width:800px){.foot{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot{grid-template-columns:1fr}}
.foot h4{color:var(--sun);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1rem}
.foot a,.foot p{display:block;color:#9fb4d8;text-decoration:none;font-size:.94rem;margin-bottom:.6rem}
.foot a:hover{color:#fff}
.foot .big{font-family:var(--hf);font-size:1.4rem;color:#fff;font-weight:700}
.foot-bottom{margin-top:2.4rem;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;font-size:.8rem}
.fab{position:fixed;right:1.2rem;bottom:1.2rem;z-index:95;display:none}
@media(min-width:1000px){.fab{display:block}}
.fab a{animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 18px 34px -14px rgba(255,107,87,.8),0 0 0 0 rgba(255,107,87,.5)}50%{box-shadow:0 18px 34px -14px rgba(255,107,87,.8),0 0 0 14px rgba(255,107,87,0)}}
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;background:linear-gradient(90deg,var(--coral),#ff9a57)}
.callbar a{flex:1;text-align:center;padding:1rem;font-family:var(--hf);font-weight:600;font-size:.8rem;color:#fff;text-decoration:none}
.callbar a+a{border-left:1px solid rgba(255,255,255,.35)}
@media(min-width:1000px){.callbar{display:none}}
body{padding-bottom:3.4rem}
@media(min-width:1000px){body{padding-bottom:0}}
.confetti{position:fixed;top:-12px;width:10px;height:16px;z-index:999;pointer-events:none;animation:fall 2.4s ease-in forwards}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg);opacity:.9}}

.phone .scr .fb-video,.phone .scr .fb_iframe_widget,.phone .scr .fb_iframe_widget span,.phone .scr iframe{display:block!important;width:100%!important;height:100%!important;border:none}
.phone .scr .fb_iframe_widget{position:absolute;inset:0}
.phone .scr::after{content:"";position:absolute;inset:0;background:#000;z-index:-1}
