:root { --navy:#0a1e3f; --teal:#0e9bae; --teal-dark:#087987; --coral:#ff5a5f; --pink:#e91e63; --sand:#f6e7ba; --white:#fff; --seafoam:#f0f4f7; --ink-soft:#536878; --line:rgba(10,30,63,.13); --shadow:0 24px 60px rgba(10,30,63,.12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:var(--white); color:var(--navy); font-family:var(--font-geist-sans),"Segoe UI",Arial,sans-serif; text-rendering:optimizeLegibility; }
body, button, a { -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:700; letter-spacing:-.045em; }

.announcement { min-height:38px; display:flex; align-items:center; justify-content:center; gap:20px; padding:8px 20px; background:var(--navy); color:white; font-size:13px; font-weight:650; letter-spacing:.015em; }
.announcement-link { color:var(--sand); font-weight:850; }
.announcement-link span { margin-left:5px; }
.site-header { position:sticky; top:0; z-index:50; min-height:88px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:28px; padding:16px clamp(22px,4.5vw,76px); background:rgba(255,255,255,.94); border-bottom:1px solid rgba(10,30,63,.06); backdrop-filter:blur(16px); }
.wordmark { width:max-content; font-family:Georgia,"Times New Roman",serif; font-size:clamp(21px,2vw,30px); font-weight:800; letter-spacing:.075em; text-transform:uppercase; }
.wordmark span { color:var(--teal); }
.brand-logo { width:clamp(190px,18vw,270px); display:block; line-height:0; }
.brand-logo img { width:100%; height:auto; display:block; }
.desktop-nav { display:flex; align-items:center; gap:clamp(24px,3vw,48px); font-size:14px; font-weight:760; }
.desktop-nav a,.footer-links a { position:relative; }
.desktop-nav a:after,.footer-links a:after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--teal); transition:right .25s ease; }
.desktop-nav a:hover:after,.footer-links a:hover:after { right:0; }
.header-cta { justify-self:end; }
.menu-toggle,.mobile-menu { display:none; }

.button { display:inline-flex; align-items:center; justify-content:center; gap:13px; min-height:58px; padding:0 28px; border-radius:13px; background:var(--coral); color:white; font-weight:850; box-shadow:0 12px 28px rgba(255,90,95,.24); transition:transform .25s ease,box-shadow .25s ease,background .25s ease; }
.button:hover { transform:translateY(-3px); background:var(--pink); box-shadow:0 17px 34px rgba(233,30,99,.25); }
.button-small { min-height:48px; padding:0 21px; font-size:14px; }
.button span { transition:transform .25s ease; }
.button:hover span { transform:translate(2px,-2px); }
.text-link { width:max-content; color:var(--teal-dark); font-weight:850; border-bottom:2px solid rgba(14,155,174,.25); padding-bottom:4px; transition:border-color .2s ease,color .2s ease; }
.text-link:hover { color:var(--navy); border-color:var(--teal); }
a:focus-visible,button:focus-visible { outline:3px solid var(--teal); outline-offset:5px; border-radius:5px; }
.eyebrow { margin:0 0 20px; color:var(--teal-dark); font-size:12px; font-weight:900; letter-spacing:.19em; text-transform:uppercase; }

.hero { min-height:730px; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:clamp(30px,5vw,84px); overflow:hidden; padding:clamp(55px,7vw,105px) clamp(25px,6vw,98px) 90px; background:linear-gradient(115deg,#fffdf8 0%,var(--white) 50%,var(--seafoam) 100%); }
.hero-copy { position:relative; z-index:2; max-width:790px; }
.hero h1 { margin-bottom:26px; font-size:clamp(56px,6.15vw,92px); line-height:.99; }
.hero h1 em { color:var(--teal-dark); font-style:italic; }
.hero-intro { max-width:600px; color:var(--ink-soft); font-size:clamp(18px,1.5vw,22px); line-height:1.62; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:34px; }
.trust-line { display:flex; align-items:center; gap:10px; margin:31px 0 0; color:var(--navy); font-size:14px; font-weight:720; }
.trust-line span { color:var(--coral); }
.hero-portrait { position:relative; min-height:560px; }
.hero-portrait:before { content:""; position:absolute; inset:2% -17% 8% 13%; border-radius:48% 8px 48% 8px; background:var(--sand); }
.portrait-frame { position:absolute; z-index:2; inset:0 7% 5% 0; padding:12px; background:white; border:1px solid rgba(10,30,63,.09); border-radius:48% 48% 28px 28px; box-shadow:var(--shadow); }
.portrait-frame img { width:100%; height:100%; object-fit:cover; object-position:center; border-radius:calc(48% - 8px) calc(48% - 8px) 18px 18px; }
.advisor-card { position:absolute; z-index:4; left:-9%; bottom:7%; display:flex; flex-direction:column; gap:4px; max-width:240px; padding:18px 22px; background:white; border-left:4px solid var(--coral); border-radius:9px; box-shadow:0 17px 40px rgba(10,30,63,.16); font-size:13px; }
.advisor-card strong { color:var(--teal-dark); }
.sun-mark { position:absolute; z-index:3; top:5%; right:-2%; width:82px; height:82px; display:grid; place-items:center; border-radius:50%; background:var(--coral); color:white; font-family:Georgia,serif; font-size:24px; font-weight:800; box-shadow:0 12px 24px rgba(255,90,95,.24); }

.specialty-rail { position:relative; z-index:5; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:-33px clamp(24px,5vw,82px) 0; padding:20px; background:var(--seafoam); border:1px solid rgba(14,155,174,.1); border-radius:28px; box-shadow:0 16px 40px rgba(10,30,63,.08); }
.specialty-rail>div { display:flex; align-items:center; gap:14px; min-height:88px; padding:14px 17px; background:white; border:1px solid rgba(10,30,63,.07); border-radius:16px; }
.service-icon { width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; border-radius:50%; background:var(--sand); color:var(--navy); font-size:23px; }
.specialty-rail strong { font-size:15px; line-height:1.3; }

.section { padding:clamp(85px,9vw,145px) clamp(24px,6vw,98px); }
.section-heading { max-width:930px; margin-bottom:58px; }
.section h2,.final-cta h2 { margin-bottom:24px; font-size:clamp(43px,5vw,76px); line-height:1.02; }
.split-heading { max-width:none; display:grid; grid-template-columns:1.5fr .7fr; align-items:end; gap:clamp(40px,8vw,140px); }
.split-heading h2 { margin-bottom:0; }
.split-heading>p { margin-bottom:4px; color:var(--ink-soft); font-size:18px; line-height:1.65; }
.difference { background:white; }
.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.benefit-grid article { min-height:310px; padding:32px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:24px; background:var(--seafoam); transition:transform .25s ease,box-shadow .25s ease; }
.benefit-grid article:nth-child(even) { background:#fffaf0; }
.benefit-grid article:hover { transform:translateY(-5px); box-shadow:0 18px 38px rgba(10,30,63,.1); }
.benefit-grid article>span { color:var(--coral); font-weight:900; }
.benefit-grid h3 { margin:auto 0 13px; font-size:25px; }
.benefit-grid p,.belonging-copy p,.about-copy p,.process-grid p { margin-bottom:0; color:var(--ink-soft); font-size:17px; line-height:1.65; }

.belonging { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:clamp(45px,7vw,110px); background:var(--sand); }
.belonging-photo { min-height:640px; border-radius:180px 26px 26px 26px; background:url("https://images.unsplash.com/photo-1540202404-a2f29016b523?auto=format&fit=crop&w=1600&q=84") center/cover; box-shadow:0 30px 65px rgba(10,30,63,.15); }
.belonging-copy { max-width:575px; }
.belonging-copy p { margin-bottom:32px; }

.process { text-align:center; background:var(--seafoam); }
.centered { margin-left:auto; margin-right:auto; text-align:center; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:0 auto 44px; text-align:left; }
.process-grid article { position:relative; min-height:340px; padding:34px; background:white; border:1px solid var(--line); border-radius:24px; overflow:hidden; }
.process-grid article>span { position:absolute; top:17px; right:23px; color:rgba(14,155,174,.12); font-family:Georgia,serif; font-size:105px; line-height:1; font-weight:800; }
.process-grid article>div { position:relative; z-index:2; display:flex; flex-direction:column; height:100%; }
.step-label { color:var(--coral)!important; font-size:12px!important; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.process-grid h3 { margin:auto 0 14px; font-size:27px; }

.inspiration { background:white; }
.inspiration-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.inspiration-card { position:relative; min-height:480px; overflow:hidden; border-radius:26px; color:white; box-shadow:0 18px 42px rgba(10,30,63,.12); }
.inspiration-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.8,.2,1); }
.inspiration-card:hover img { transform:scale(1.045); }
.image-shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 38%,rgba(10,30,63,.82) 100%); }
.inspiration-copy { position:absolute; z-index:2; left:31px; right:31px; bottom:29px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:5px 20px; }
.inspiration-copy small { grid-column:1/-1; color:var(--sand); font-size:11px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.inspiration-copy strong { font-family:Georgia,serif; font-size:clamp(28px,3vw,43px); line-height:1.05; }
.inspiration-copy i { width:46px; height:46px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.55); border-radius:50%; font-style:normal; }

.about { display:grid; grid-template-columns:.85fr 1fr; align-items:center; gap:clamp(50px,9vw,145px); background:var(--seafoam); }
.about-photo { position:relative; }
.about-photo img { display:block; width:100%; max-height:710px; object-fit:cover; border-radius:24px 170px 24px 24px; box-shadow:var(--shadow); }
.location-tag { position:absolute; left:-24px; bottom:29px; padding:18px 23px; background:white; border-radius:12px; box-shadow:0 15px 34px rgba(10,30,63,.15); font-weight:800; }
.location-tag span { color:var(--coral); margin:0 5px; }
.about-copy { max-width:690px; }
.about-copy p { margin-bottom:22px; }
.about-links { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:34px; }
.email-link { color:var(--navy); font-weight:800; }
.email-link:hover { color:var(--teal-dark); }

.expect { padding:52px clamp(24px,6vw,98px); background:white; text-align:center; }
.expect-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.expect-grid span { padding:28px 18px; border-right:1px solid var(--line); font-family:Georgia,serif; font-size:20px; font-weight:700; }
.expect-grid span:last-child { border-right:0; }
.final-cta { padding:clamp(95px,10vw,150px) 24px; text-align:center; background:var(--sand); }
.final-cta h2 { max-width:850px; margin-left:auto; margin-right:auto; }
.final-cta>p:not(.eyebrow) { max-width:640px; margin:0 auto 34px; color:var(--ink-soft); font-size:19px; line-height:1.6; }
.centered-actions { justify-content:center; }

footer { display:grid; grid-template-columns:1fr auto; gap:55px; align-items:start; padding:70px clamp(24px,6vw,98px) 35px; background:var(--navy); color:white; }
footer .wordmark { color:white; }
.footer-logo { width:min(290px,80vw); padding:10px 14px; border-radius:16px; background:rgba(255,255,255,.96); }
footer p { margin:12px 0 0; color:#b8c8d2; }
.social-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.social-links a { display:inline-flex; align-items:center; gap:9px; min-height:42px; padding:0 15px; border:1px solid rgba(255,255,255,.2); border-radius:11px; font-weight:750; transition:background .2s ease,border-color .2s ease; }
.social-links a:hover { background:rgba(255,255,255,.08); border-color:var(--sand); }
.social-links span { width:21px; height:21px; display:grid; place-items:center; border-radius:50%; background:var(--sand); color:var(--navy); font-family:Arial,sans-serif; font-weight:900; }
.footer-links { display:flex; gap:28px; font-weight:700; }
.affiliation { grid-column:1/-1; display:flex; justify-content:space-between; gap:25px; padding-top:31px; border-top:1px solid rgba(255,255,255,.15); font-size:13px; }
.affiliation a { color:white; font-weight:800; }

[data-reveal] { opacity:0; transform:translateY(28px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1); }
[data-reveal].is-visible { opacity:1; transform:none; }

@media(max-width:1050px) {
  .site-header { grid-template-columns:1fr auto auto; }
  .desktop-nav { display:none; }
  .header-cta { justify-self:end; }
  .menu-toggle { width:47px; height:47px; display:grid; place-content:center; gap:7px; padding:0; border:1px solid var(--line); border-radius:12px; background:white; cursor:pointer; }
  .menu-toggle span { display:block; width:21px; height:2px; background:var(--navy); transition:transform .2s ease; }
  .mobile-menu { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:column; gap:0; padding:0 clamp(22px,5vw,60px); max-height:0; overflow:hidden; visibility:hidden; background:white; border-bottom:1px solid var(--line); transition:max-height .35s ease,padding .35s ease,visibility .35s; }
  .mobile-menu.is-open { max-height:430px; padding-top:22px; padding-bottom:28px; visibility:visible; }
  .mobile-menu>a:not(.button) { padding:14px 0; border-bottom:1px solid var(--line); font-weight:800; }
  .mobile-menu .button { margin-top:18px; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { max-width:850px; }
  .hero-portrait { width:min(670px,95%); min-height:660px; margin:30px auto 0; }
  .specialty-rail { grid-template-columns:1fr 1fr; margin-top:0; border-radius:0; }
  .benefit-grid { grid-template-columns:1fr 1fr; }
  .belonging,.about { grid-template-columns:1fr; }
  .belonging-photo { min-height:530px; }
  .about-photo { max-width:650px; }
  .cruise-photo-story { grid-template-columns:1fr; }
  .cruise-photo { min-height:430px; }
}

@media(max-width:720px) {
  .announcement { justify-content:space-between; }
  .site-header { min-height:76px; padding:13px 18px; gap:10px; }
  .header-cta { display:none; }
  .wordmark { font-size:18px; }
  .brand-logo { width:185px; }
  .hero { min-height:auto; padding:65px 22px 74px; }
  .hero h1 { font-size:clamp(47px,14vw,66px); }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:22px; }
  .trust-line { align-items:flex-start; }
  .hero-portrait { min-height:490px; width:100%; }
  .advisor-card { left:0; }
  .sun-mark { width:66px; height:66px; right:0; }
  .specialty-rail { grid-template-columns:1fr 1fr; margin:0; padding:13px; gap:10px; }
  .specialty-rail>div { min-height:120px; flex-direction:column; justify-content:center; text-align:center; }
  .split-heading { grid-template-columns:1fr; gap:22px; }
  .benefit-grid,.process-grid,.inspiration-grid,.expect-grid { grid-template-columns:1fr; }
  .benefit-grid article { min-height:270px; }
  .belonging-photo { min-height:390px; border-radius:100px 20px 20px 20px; }
  .process-grid article { min-height:290px; }
  .inspiration-card { min-height:390px; }
  .about-photo img { border-radius:20px 100px 20px 20px; }
  .location-tag { left:8px; bottom:18px; font-size:13px; }
  .expect-grid span { border-right:0; border-bottom:1px solid var(--line); }
  .expect-grid span:last-child { border-bottom:0; }
  footer { grid-template-columns:1fr; }
  .footer-links { flex-direction:column; gap:18px; }
  .affiliation { flex-direction:column; }
  .cruise-line-grid { grid-template-columns:1fr; }
  .cruise-photo { min-height:350px; }
}

@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  [data-reveal] { opacity:1; transform:none; }
}

/* Multi-page expansion */
.home-hero { min-height:760px; }
.hero-collage { position:relative; min-height:585px; }
.hero-main-img { position:absolute; inset:0 3% 3% 0; width:88%; height:88%; object-fit:cover; border-radius:180px 24px 24px 24px; box-shadow:var(--shadow); }
.hero-small-img { position:absolute; z-index:3; right:-2%; bottom:0; width:43%; height:38%; object-fit:cover; border:10px solid white; border-radius:22px; box-shadow:0 18px 40px rgba(10,30,63,.17); }
.hero-collage .advisor-card { left:-6%; bottom:7%; }
.trust-strip { display:grid; grid-template-columns:repeat(4,1fr); margin:0 clamp(24px,5vw,82px); padding:24px 15px; border-radius:18px; background:var(--navy); color:white; text-align:center; font-size:14px; font-weight:800; }
.trust-strip span { padding:4px 20px; border-right:1px solid rgba(255,255,255,.2); }
.trust-strip span:last-child { border-right:0; }
.destination-card-grid { display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:300px 300px; gap:18px; }
.destination-card { position:relative; overflow:hidden; border-radius:24px; color:white; box-shadow:0 15px 40px rgba(10,30,63,.12); }
.destination-card.tall { grid-row:1/3; }
.destination-card.wide { grid-column:2/4; }
.destination-card img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.destination-card:hover img { transform:scale(1.045); }
.destination-card:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(10,30,63,.86)); }
.destination-card>span { position:absolute; z-index:2; left:28px; right:28px; bottom:25px; display:flex; flex-direction:column; align-items:flex-start; }
.destination-card small { color:var(--sand); font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.destination-card strong { margin:5px 0 10px; font-family:Georgia,serif; font-size:clamp(27px,3vw,42px); }
.destination-card i { font-style:normal; font-weight:800; }
.promise-section { display:grid; grid-template-columns:.95fr 1fr; align-items:center; gap:clamp(45px,8vw,120px); background:var(--sand); }
.promise-photo img { width:100%; height:610px; object-fit:cover; border-radius:24px 160px 24px 24px; box-shadow:var(--shadow); }
.promise-section>div:last-child>p:not(.eyebrow),.advisor-feature p,.about-story p,.page-hero p,.contact-options p,.future-gallery p,.hawaii-story p { color:var(--ink-soft); font-size:18px; line-height:1.7; }
.mini-benefits { display:grid; gap:0; margin:33px 0; border-top:1px solid rgba(10,30,63,.18); }
.mini-benefits span { display:flex; gap:16px; padding:17px 0; border-bottom:1px solid rgba(10,30,63,.18); font-weight:800; }
.mini-benefits b { color:var(--coral); }
.advisor-feature { display:grid; grid-template-columns:.65fr 1fr; align-items:center; gap:clamp(45px,9vw,145px); background:var(--seafoam); }
.advisor-feature img { width:100%; max-height:640px; object-fit:cover; border-radius:24px 150px 24px 24px; box-shadow:var(--shadow); }
.footer-columns { display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.footer-columns>div { display:flex; flex-direction:column; gap:12px; }
.footer-columns strong { color:var(--sand); margin-bottom:7px; text-transform:uppercase; font-size:12px; letter-spacing:.15em; }
.footer-columns a { color:#d9e3e8; font-weight:700; }
.footer-columns a:hover { color:white; }

.page-hero { min-height:640px; display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:clamp(45px,7vw,110px); padding:clamp(70px,8vw,125px) clamp(24px,6vw,98px); background:linear-gradient(120deg,#fffdf8,var(--seafoam)); }
.page-hero>div { max-width:720px; }
.page-hero h1 { margin-bottom:25px; font-size:clamp(53px,6vw,88px); line-height:1; }
.page-hero p:not(.eyebrow) { margin-bottom:30px; }
.page-hero>img { width:100%; height:520px; object-fit:cover; border-radius:160px 24px 24px 24px; box-shadow:var(--shadow); }
.service-page-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.service-page-grid>* { min-height:300px; display:flex; flex-direction:column; padding:32px; border:1px solid var(--line); border-radius:22px; background:var(--seafoam); transition:transform .25s ease,box-shadow .25s ease; }
.service-page-grid>*:nth-child(even) { background:#fffaf0; }
.service-page-grid>a:hover { transform:translateY(-4px); box-shadow:0 16px 35px rgba(10,30,63,.1); }
.service-page-grid span { color:var(--coral); font-weight:900; }
.service-page-grid h3 { margin:auto 0 13px; font-size:27px; }
.service-page-grid p { margin:0; color:var(--ink-soft); font-size:17px; line-height:1.65; }
.hawaii-story,.about-story { display:grid; grid-template-columns:1fr .9fr; align-items:center; gap:clamp(45px,8vw,120px); background:var(--sand); }
.hawaii-story img,.about-story img { width:100%; max-height:650px; object-fit:cover; border-radius:24px 150px 24px 24px; box-shadow:var(--shadow); }
.future-gallery { display:grid; grid-template-columns:1fr .7fr .7fr; gap:20px; align-items:stretch; }
.photo-placeholder { min-height:290px; display:grid; place-content:center; padding:30px; border:2px dashed rgba(14,155,174,.35); border-radius:22px; background:var(--seafoam); text-align:center; }
.photo-placeholder span { color:var(--teal); font-size:40px; }
.photo-placeholder p { margin:10px 0 0!important; font-size:14px!important; }
.travel-journal { background:linear-gradient(180deg,var(--white),var(--seafoam)); }
.travel-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-flow:dense; gap:18px; }
.gallery-photo,.labeled-photo { position:relative; overflow:hidden; margin:0; min-height:390px; border-radius:24px; background:var(--navy); box-shadow:0 16px 38px rgba(10,30,63,.13); }
.gallery-photo-wide { grid-column:span 2; }
.gallery-photo img,.labeled-photo img { width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }
.gallery-photo:hover img,.labeled-photo:hover img { transform:scale(1.035); }
.gallery-photo:after,.labeled-photo:after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(180deg,transparent,rgba(10,30,63,.9)); pointer-events:none; }
.gallery-photo figcaption,.labeled-photo figcaption { position:absolute; z-index:2; left:20px; right:20px; bottom:18px; display:flex; flex-direction:column; align-items:flex-start; color:white; }
.gallery-photo figcaption strong,.labeled-photo figcaption strong { font-family:Georgia,serif; font-size:23px; line-height:1.15; }
.gallery-photo figcaption span,.labeled-photo figcaption span { margin-top:5px; padding:5px 9px; border-radius:999px; background:rgba(255,255,255,.92); color:var(--navy); font-size:12px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.journal-note { max-width:900px; text-align:center; }
.journal-note p:not(.eyebrow) { color:var(--ink-soft); font-size:18px; line-height:1.7; }
.destination-preview { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; align-items:stretch; }
.destination-preview>div { align-self:center; padding-right:24px; }
.destination-preview>div p:not(.eyebrow) { color:var(--ink-soft); font-size:18px; line-height:1.7; }
.destination-preview .labeled-photo { min-height:360px; }
.hawaii-story .labeled-photo { min-height:470px; }
.experience-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.experience-grid article { min-height:310px; padding:32px; border-radius:22px; background:var(--seafoam); }
.experience-grid article:nth-child(even) { background:#fffaf0; }
.experience-grid article>span { font-size:34px; }
.experience-grid h3 { margin:65px 0 13px; font-size:25px; }
.experience-grid p { margin:0; color:var(--ink-soft); line-height:1.65; }
.support-list,.cruise-compare,.comparison,.contact-options { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(45px,8vw,130px); background:var(--sand); }
.support-list ul,.comparison ul { margin:0; padding:0; list-style:none; }
.support-list li { display:flex; flex-direction:column; gap:5px; padding:20px 0; border-bottom:1px solid rgba(10,30,63,.16); }
.support-list li:first-child { border-top:1px solid rgba(10,30,63,.16); }
.support-list li span { color:var(--ink-soft); }
.cruise-compare>div:last-child { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cruise-compare>div:last-child p { display:grid; place-items:center; min-height:120px; margin:0; padding:18px; border-radius:18px; background:white; text-align:center; font-family:Georgia,serif; font-size:20px; font-weight:700; }
.cruise-specialties { background:var(--white); }
.cruise-line-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.cruise-line-grid article { min-height:330px; display:flex; flex-direction:column; padding:34px; border:1px solid var(--line); border-radius:24px; background:var(--seafoam); }
.cruise-line-grid article:nth-child(2),.cruise-line-grid article:nth-child(3) { background:#fffaf0; }
.cruise-line-grid article>span { color:var(--coral); font-weight:900; }
.cruise-line-grid small { margin:auto 0 8px; color:var(--teal-dark); font-size:12px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.cruise-line-grid h3 { margin:0 0 13px; font-family:Georgia,serif; font-size:32px; }
.cruise-line-grid p { margin:0; color:var(--ink-soft); font-size:17px; line-height:1.65; }
.cruise-photo-story { display:grid; grid-template-columns:1.35fr .65fr; gap:18px; background:var(--navy); }
.cruise-photo { position:relative; min-height:520px; margin:0; overflow:hidden; border-radius:24px; }
.cruise-photo img { width:100%; height:100%; object-fit:cover; }
.cruise-photo:after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(180deg,transparent,rgba(10,30,63,.88)); }
.cruise-photo figcaption { position:absolute; z-index:2; left:26px; right:26px; bottom:24px; color:white; font-family:Georgia,serif; font-size:clamp(22px,2.5vw,34px); font-weight:700; line-height:1.12; }
.local-note { background:var(--navy); color:white; text-align:center; }
.local-note blockquote { max-width:950px; margin:15px auto 28px; font-family:Georgia,serif; font-size:clamp(36px,5vw,68px); line-height:1.08; }
.local-note>p:last-child { color:var(--sand); }
.comparison { background:var(--seafoam); }
.comparison>div { padding:36px; border-radius:22px; background:white; }
.comparison>div:last-child { color:white; background:var(--navy); }
.comparison li { padding:16px 0; border-bottom:1px solid var(--line); }
.comparison>div:last-child li { border-color:rgba(255,255,255,.17); }
.faq-list { max-width:980px; margin:auto; }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list details:first-child { border-top:1px solid var(--line); }
.faq-list summary { display:flex; justify-content:space-between; gap:20px; padding:25px 4px; cursor:pointer; font-family:Georgia,serif; font-size:23px; font-weight:700; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list details p { max-width:790px; padding:0 4px 25px; color:var(--ink-soft); font-size:17px; line-height:1.7; }
.article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.article-grid article { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:white; }
.article-grid img { width:100%; height:260px; object-fit:cover; }
.article-grid article>div { padding:27px; }
.article-grid small { color:var(--coral); font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.article-grid h3 { margin:14px 0 12px; font-size:25px; }
.article-grid p { color:var(--ink-soft); line-height:1.65; }
.article-grid article span { color:var(--teal-dark); font-size:13px; font-weight:900; }
.contact-options>div { padding:40px; border-radius:22px; background:white; }
.contact-options>div>span { color:var(--coral); font-weight:900; }
.contact-options h2 { margin:50px 0 18px; font-size:clamp(36px,4vw,58px); }
.contact-note { padding:30px 24px; background:var(--navy); color:white; text-align:center; }
.contact-note p { max-width:850px; margin:auto; line-height:1.6; }

.instagram-section { background:linear-gradient(135deg,#fffaf0 0%,var(--white) 52%,var(--seafoam) 100%); }
.instagram-section .split-heading { align-items:center; }
.instagram-section .split-heading>div:last-child p { color:var(--ink-soft); font-size:17px; line-height:1.65; }
.instagram-feed { min-height:360px; padding:24px; border:1px solid var(--line); border-radius:24px; background:var(--white); box-shadow:0 18px 42px rgba(10,30,63,.08); }

@media(max-width:1200px) { .desktop-nav { gap:20px; font-size:13px; } }
@media(max-width:1050px) {
  .hero-collage { min-height:660px; width:min(700px,100%); margin:auto; }
  .trust-strip { grid-template-columns:1fr 1fr; }
  .trust-strip span:nth-child(2) { border-right:0; }
  .trust-strip span { padding:12px; }
  .destination-card-grid { grid-template-columns:1fr 1fr; grid-template-rows:420px 310px 310px; }
  .destination-card.tall { grid-row:auto; }
  .destination-card.wide { grid-column:1/3; }
  .promise-section,.advisor-feature,.page-hero,.hawaii-story,.about-story,.support-list,.cruise-compare,.comparison,.contact-options { grid-template-columns:1fr; }
  .page-hero>img { height:560px; }
  .service-page-grid { grid-template-columns:1fr 1fr; }
  .experience-grid { grid-template-columns:1fr 1fr; }
  .future-gallery { grid-template-columns:1fr 1fr; }
  .future-gallery>div:first-child { grid-column:1/3; }
  .travel-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .destination-preview { grid-template-columns:1fr 1fr; }
  .destination-preview>div { grid-column:1/3; }
  .article-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:720px) {
  .home-hero { padding-top:65px; }
  .hero-collage { min-height:480px; }
  .hero-main-img { width:95%; height:92%; border-radius:100px 18px 18px 18px; }
  .hero-small-img { width:45%; height:32%; border-width:6px; }
  .trust-strip { margin:0; border-radius:0; grid-template-columns:1fr; }
  .trust-strip span { border-right:0; border-bottom:1px solid rgba(255,255,255,.15); }
  .destination-card-grid { grid-template-columns:1fr; grid-template-rows:repeat(4,360px); }
  .destination-card.wide { grid-column:auto; }
  .promise-photo img { height:430px; border-radius:18px 90px 18px 18px; }
  .footer-columns { grid-template-columns:1fr; gap:30px; }
  .page-hero { padding-top:65px; }
  .page-hero>img { height:390px; border-radius:90px 18px 18px 18px; }
  .service-page-grid,.experience-grid,.future-gallery,.article-grid { grid-template-columns:1fr; }
  .future-gallery>div:first-child { grid-column:auto; }
  .travel-gallery,.destination-preview { grid-template-columns:1fr; }
  .gallery-photo-wide,.destination-preview>div { grid-column:auto; }
  .gallery-photo { min-height:330px; }
  .cruise-compare>div:last-child { grid-template-columns:1fr; }
}
