.cruise-planner-page { background:#f7faf9; color:#183947; }
.cruise-planner-main { padding:1.25rem 0 5rem; }
.cruise-planner-main .breadcrumb { margin-bottom:1.25rem; }
.cruise-planner-main * { box-sizing:border-box; }
.cruise-planner-main .container { min-width:0; }
.planner-hero { display:grid; gap:1.5rem; background:#064c5e; color:#fff; border-radius:24px; padding:clamp(1.4rem,4vw,3.5rem); overflow:hidden; }
.planner-hero h1 { color:#fff; max-width:760px; font-size:clamp(2.25rem,5vw,4.5rem); line-height:1.04; margin:.8rem 0 1rem; }
.planner-hero p { max-width:660px; color:#e7f3f4; font-size:1.04rem; }
.planner-hero .section-badge { background:#d4ece5; color:#064c5e; }
.planner-hero__call { font-size:1.18rem!important; }
.planner-hero__times { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.planner-hero__times span { display:inline-flex; padding:.55rem .8rem; border:1px solid #82adb1; border-radius:10px; font-weight:750; }
.planner-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.35rem; }
.planner-actions .btn { min-height:48px; }
.planner-hero .btn-secondary { background:#fff; color:#064c5e; border-color:#fff; }
.planner-hero .btn-secondary:hover { background:#e9f4f2; color:#064c5e; }
.planner-hero__visual { display:none; align-content:space-between; min-height:260px; padding:1.4rem; border-radius:18px; background:radial-gradient(circle at 75% 20%,#d6b978 0 8%,transparent 8.5%),linear-gradient(145deg,#2b8c89,#0b394c); }
.planner-hero__visual span { align-self:start; width:max-content; padding:.3rem .6rem; background:#fff; color:#064c5e; border-radius:6px; font-size:.7rem; font-weight:800; letter-spacing:.08em; }
.planner-hero__visual strong { align-self:end; font-family:Georgia,serif; color:#fff; font-size:clamp(1.8rem,3vw,3rem); line-height:1; text-shadow:0 2px 14px #153845; }
.planner-time,.planner-section { margin-top:1.5rem; padding:clamp(1.2rem,3vw,2rem); border:1px solid #dae7e8; border-radius:20px; background:#fff; box-shadow:0 8px 28px rgba(14,60,69,.035); }
.planner-section-heading { margin-bottom:1.1rem; }
.planner-section-heading h2 { color:#103d4a; font-size:clamp(1.65rem,3vw,2.35rem); margin:.55rem 0 .4rem; }
.planner-section-heading p { color:#536975; margin:.25rem 0; }
.planner-time__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; }
.planner-time__grid div { min-width:0; padding:1.15rem; background:#edf5f3; border-radius:14px; }
.planner-time__grid span { display:block; color:#5c7279; font-size:.82rem; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.planner-time__grid strong { display:block; margin-top:.35rem; color:#064c5e; font-size:clamp(1.35rem,2.5vw,2rem); }
.planner-muted { color:#5a6e76; font-size:.9rem; margin:1rem 0 0; }
.planner-layout { display:grid; gap:1.5rem; min-width:0; }
.planner-layout>div { min-width:0; }
.planner-activity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.planner-activity { position:relative; display:grid; align-content:start; min-width:0; min-height:172px; padding:1rem; border:2px solid #dce8e9; border-radius:16px; background:#fbfdfc; cursor:pointer; transition:background .15s,border-color .15s,transform .15s; }
.planner-activity:hover { transform:translateY(-2px); border-color:#60a1a2; }
.planner-activity:has(input:checked) { border-color:#087d78; background:#eaf7f2; }
.planner-activity:focus-within { outline:3px solid #dbaa53; outline-offset:2px; }
.planner-activity input { position:absolute; top:1rem; right:1rem; width:22px; height:22px; accent-color:#087d78; }
.planner-activity__icon { display:grid; place-items:center; width:36px; height:36px; margin-bottom:.8rem; border-radius:10px; background:#d8efec; color:#006b6a; font-size:1.2rem; }
.planner-activity strong { padding-right:1.3rem; color:#103d4a; line-height:1.25; }
.planner-activity small { margin-top:.3rem; color:#607781; font-size:.8rem; }
.planner-activity em { margin-top:.75rem; color:#126c65; font-size:.75rem; font-style:normal; font-weight:750; }
.planner-recommend__grid,.planner-help-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.planner-recommend__grid div,.planner-help-grid div { min-width:0; padding:1rem; background:#f1f7f5; border-radius:12px; }
.planner-recommend__grid strong,.planner-help-grid strong { color:#0b5060; }
.planner-recommend__grid span { display:block; color:#4a6770; font-size:.82rem; }
.planner-recommend__grid p,.planner-help-grid p { margin:.4rem 0 0; font-size:.9rem; }
.planner-price-state { min-height:130px; padding:1.4rem; background:#eaf4f2; border-radius:16px; }
.planner-price-state h3 { color:#103d4a; margin:.3rem 0 .55rem; }
.planner-price-state__eyebrow { color:#247268; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.planner-price-state__amount { display:block; margin:.3rem 0; color:#075b55; font-size:1.8rem; }
.planner-price-state .btn { margin-top:.6rem; }
.planner-process { display:flex; flex-wrap:wrap; gap:.6rem; list-style:none; padding:0; margin:1.4rem 0 0; }
.planner-process li { padding:.65rem .8rem; background:#064c5e; color:#fff; border-radius:9px; font-size:.82rem; font-weight:750; }
.planner-process li:not(:last-child)::after { content:'→'; margin-left:.8rem; }
.planner-form { display:grid; gap:1.15rem; }
.planner-form fieldset { min-width:0; border:0; padding:0; margin:0; }
.planner-form legend { width:100%; margin-bottom:.7rem; padding-bottom:.4rem; border-bottom:1px solid #dce8e9; color:#114451; font-size:1.13rem; font-weight:800; }
.planner-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.planner-form label { display:grid; min-width:0; gap:.3rem; color:#244c58; font-size:.89rem; font-weight:700; }
.planner-form input:not([type=checkbox]),.planner-form select,.planner-form textarea { width:100%; min-width:0; min-height:46px; padding:.72rem .8rem; border:1px solid #b9ced2; border-radius:9px; color:#163d48; background:#fff; font:inherit; font-weight:500; }
.planner-form input:focus,.planner-form select:focus,.planner-form textarea:focus { outline:3px solid #acdcd2; border-color:#16786f; }
.planner-form-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
.planner-form-choices label { display:flex; align-items:center; gap:.55rem; padding:.6rem; border:1px solid #d8e6e7; border-radius:9px; background:#f9fcfb; cursor:pointer; }
.planner-form-choices input { width:20px; height:20px; flex:none; accent-color:#087d78; }
.planner-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.planner-error { color:#a63436; font-weight:700; }
.planner-submit { justify-self:start; min-height:48px; }
.planner-feedback { padding:1.2rem; border-radius:12px; }
.planner-feedback--success { background:#e4f6ed; }
.planner-feedback--error { margin-bottom:1.2rem; background:#fff1ef; }
.planner-feedback h3 { margin:.2rem 0; color:#0d5b48; }
.planner-feedback .lucon-contact-actions { margin-top:1rem; }
.planner-faq details { border-top:1px solid #dae7e8; padding:.85rem 0; }
.planner-faq summary { color:#103d4a; cursor:pointer; font-weight:750; }
.planner-faq details p { color:#506b73; margin:.7rem 0 0; }
.planner-sidebar { display:none; }
.planner-mobile-bar { display:none; }
.planner-dialog { width:min(420px,calc(100vw - 28px)); max-height:calc(100vh - 40px); padding:1.4rem; border:0; border-radius:17px; box-shadow:0 24px 60px rgba(0,30,40,.3); color:#153e4a; }
.planner-dialog::backdrop { background:rgba(5,37,46,.62); }
.planner-dialog h2 { margin:.2rem 0; color:#0a4a56; }
.planner-dialog__close { position:absolute; right:.8rem; top:.7rem; width:38px; height:38px; border:0; background:#eaf2f2; border-radius:50%; color:#0b4c58; font-size:1.5rem; cursor:pointer; }
.planner-dialog .lucon-contact-actions { display:grid; gap:.6rem; margin-top:1rem; }
@media (min-width:950px) {
  .planner-hero { grid-template-columns:minmax(0,1.4fr) minmax(250px,.7fr); }
  .planner-hero__visual { display:grid; }
  .planner-layout { grid-template-columns:minmax(0,1fr) 285px; align-items:start; }
  .planner-sidebar { display:grid; gap:.75rem; position:sticky; top:1rem; margin-top:1.5rem; padding:1.35rem; border:1px solid #dae7e8; border-radius:18px; background:#fff; box-shadow:0 10px 28px rgba(14,60,69,.06); }
  .planner-sidebar h2 { color:#103d4a; font-size:1.4rem; margin:0; }
  .planner-sidebar p { margin:0; }
  .planner-sidebar ul { padding-left:1.1rem; }
  .planner-activity-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .cruise-planner-main { padding-top:.7rem; }
  .planner-hero { border-radius:16px; }
  .planner-time__grid { grid-template-columns:1fr; }
  .planner-time__grid div { display:flex; align-items:center; justify-content:space-between; gap:.6rem; padding:.85rem; }
  .planner-time__grid strong { margin:0; white-space:nowrap; }
  .planner-activity-grid,.planner-recommend__grid,.planner-help-grid,.planner-fields,.planner-form-choices { grid-template-columns:1fr; }
  .planner-activity { min-height:135px; }
  .planner-actions .btn { flex:1 1 100%; }
  .planner-mobile-bar { display:flex; gap:.6rem; position:fixed; bottom:0; left:0; right:0; z-index:940; padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid #dce8e9; box-shadow:0 -8px 24px rgba(12,58,67,.13); }
  .planner-mobile-bar button,.planner-mobile-bar a { flex:1 1 0; display:grid; place-items:center; min-height:48px; border:0; border-radius:9px; background:#075d63; color:#fff; font:inherit; font-weight:800; text-decoration:none; cursor:pointer; }
  .planner-mobile-bar a { background:#e6f1ee; color:#075d63; }
  body.cruise-planner-page.has-mobile-sticky-cta { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
}
