:root { --navy:#071522; --ivory:#fbf6ed; --ink:#252321; --taupe:#756d63; --gold:#c9a85b; --gold-soft:#e4d1a5; --line:rgba(37,35,33,.16); --serif:Georgia,"Times New Roman",serif; --sans:Inter,Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:var(--sans); line-height:1.65; }
a { color:inherit; }
.site-header { position:sticky; z-index:10; top:0; display:flex; align-items:center; gap:clamp(18px,3vw,46px); padding:12px clamp(22px,4vw,64px); background:var(--navy); }
.brand img { display:block; width:138px; height:auto; }
.main-nav { display:flex; flex:1; align-items:center; justify-content:flex-end; gap:clamp(12px,1.5vw,24px); color:#fff; font-size:.86rem; }
.main-nav > a, .nav-dropdown summary { text-decoration:none; cursor:pointer; list-style:none; white-space:nowrap; }
.nav-dropdown summary::-webkit-details-marker { display:none; }
.nav-dropdown summary::after { content:""; }
.nav-dropdown[open] summary::after { content:""; }
.nav-dropdown { position:relative; }
.nav-dropdown-panel { position:absolute; top:calc(100% + 13px); left:0; width:min(430px,90vw); display:grid; gap:0; padding:18px 22px; background:var(--navy); border:1px solid rgba(228,209,165,.28); box-shadow:0 18px 50px rgba(0,0,0,.25); }
.nav-dropdown-panel a { color:#fff; text-decoration:none; padding:10px 0; border-bottom:1px solid rgba(228,209,165,.24); }
.nav-dropdown-panel a:last-child { border-bottom:0; }
.nav-dropdown-panel .nav-subitem { margin-left:18px; padding-left:14px; color:rgba(255,255,255,.82); border-left:1px solid rgba(228,209,165,.42); }
.nav-start { color:var(--gold-soft); font-weight:800; }
.hero { min-height:clamp(370px,48vw,610px); display:grid; align-items:end; padding:clamp(56px,9vw,130px) clamp(22px,9vw,150px); background:linear-gradient(90deg,rgba(7,21,34,.95),rgba(7,21,34,.67),rgba(7,21,34,.2)),url("/assets/image-b5ac3f9706c796338c.jpg") center/cover; color:#fff; }
.hero-wedding { background:linear-gradient(90deg,rgba(7,21,34,.94),rgba(7,21,34,.58),rgba(7,21,34,.16)),url("/assets/group-wedding-cover.jpg") center/cover; }
.hero-family { background:linear-gradient(90deg,rgba(7,21,34,.94),rgba(7,21,34,.58),rgba(7,21,34,.12)),url("/assets/group-family-cover.png") center/cover; }
.hero-retreat { background:linear-gradient(90deg,rgba(7,21,34,.94),rgba(7,21,34,.58),rgba(7,21,34,.12)),url("/assets/group-retreat-cover.jpg") center/cover; }
.hero-cruise { background:linear-gradient(90deg,rgba(7,21,34,.94),rgba(7,21,34,.58),rgba(7,21,34,.12)),url("/assets/group-cruise-cover.webp") center/cover; }
.hero-room-blocks { background:linear-gradient(90deg,rgba(7,21,34,.94),rgba(7,21,34,.58),rgba(7,21,34,.12)),url("/assets/group-retreat-cover.jpg") center/cover; }
.hero-content { max-width:880px; }
.eyebrow { margin:0 0 10px; color:var(--gold-soft); font-size:.72rem; font-weight:800; letter-spacing:.19em; text-transform:uppercase; }
h1,h2,h3 { font-family:var(--serif); line-height:1.05; }
h1 { max-width:14ch; margin:0; font-size:clamp(2.5rem,6vw,5.2rem); font-weight:600; }
.lead { max-width:67ch; margin:22px 0 0; color:rgba(255,255,255,.9); font-size:1.08rem; }
.section { max-width:1240px; margin:0 auto; padding:clamp(52px,8vw,110px) clamp(22px,5vw,48px); }
.section + .section { padding-top:0; }
.section-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(20px,4vw,58px); }
.card { padding:clamp(23px,3vw,36px); border:1px solid var(--line); background:rgba(255,255,255,.46); }
.card h2 { margin:0 0 14px; font-size:clamp(1.65rem,3vw,2.6rem); }
.card h3 { margin:0 0 10px; font-size:1.35rem; }
.card p { margin:0; color:#5c554d; }
.rule-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.rule-list li { padding:18px 0; border-bottom:1px solid var(--line); }
.rule-list strong { display:block; color:var(--navy); font-size:1.03rem; }
.callout { margin-top:clamp(32px,5vw,60px); padding:clamp(24px,4vw,44px); background:var(--navy); color:#fff; }
.callout h2 { margin:0; font-size:clamp(1.75rem,3.2vw,3rem); }
.callout p { max-width:65ch; color:rgba(255,255,255,.87); }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.button { display:inline-flex; align-items:center; min-height:46px; padding:11px 17px; border:1px solid var(--gold-soft); color:#fff; font-weight:800; text-decoration:none; }
.button.primary { background:var(--gold-soft); border-color:var(--gold-soft); color:var(--navy); }
.faq { border-top:1px solid var(--line); }
.faq h2 { margin:0 0 24px; font-size:clamp(2rem,4vw,3.5rem); }
.faq details { border-bottom:1px solid var(--line); padding:17px 0; }
.faq summary { cursor:pointer; color:var(--navy); font-weight:800; }
.faq p { max-width:70ch; margin:12px 0 0; color:#5c554d; }
.site-footer { display:flex; justify-content:space-between; gap:30px; padding:42px clamp(22px,6vw,94px); background:var(--navy); color:#fff; }
.site-footer p { max-width:60ch; margin:0; color:rgba(255,255,255,.72); font-size:.88rem; }
.site-footer a { color:var(--gold-soft); }
@media (max-width:900px) { .site-header { align-items:flex-start; flex-direction:column; } .main-nav { width:100%; justify-content:flex-start; flex-wrap:wrap; } .nav-dropdown-panel { position:static; width:min(100%,330px); margin-top:8px; } .section-grid { grid-template-columns:1fr; } }
@media (max-width:560px) { .site-header { padding:12px 18px; } .brand img { width:112px; } .main-nav { gap:12px; font-size:.78rem; } .hero { min-height:420px; padding:62px 22px; } h1 { font-size:clamp(2.3rem,12vw,3.5rem); } .site-footer { display:grid; } }

/* JR final teething fixes */
@media (min-width:901px) {
  .main-nav {
    gap: clamp(16px,1.65vw,30px);
    font-size: clamp(.9rem,.92vw,1.06rem);
  }
  .menu-more .nav-dropdown-panel {
    left: auto;
    right: 0;
    width: min(340px, calc(100vw - 32px));
  }
}
