/* Moneron cruise modal — extracted from Boks Maps handoff */
  :root{
    --navy:#0A2540;
    --navy-2:#1B3A5C;
    --navy-3:#061829;
    --gold:#C9A961;
    --gold-2:#D4B56F;
    --gold-3:#A88B3D;
    --cream:#F5EFE0;
    --cream-2:#EDE5D0;
    --paper:#FAFAF5;
    --ink:#0A2540;
    --ink-2:#4A5968;
    --mute:#5C6B7A;
    --faint:#8A95A3;
    --line:rgba(10,37,64,0.15);
    --line-soft:rgba(10,37,64,0.08);
    --page-bg:#EEF1F5;
    --accent-red:#8B2635;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    font-family:'Inter',system-ui,sans-serif;
    color:var(--ink);
    background:var(--page-bg);
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit}
  button{font-family:inherit}

  
/* ---------- Modal ---------- */
  .m-backdrop{
    position:fixed;inset:0;z-index:1000;
    background:rgba(10,37,64,.55);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    display:flex;align-items:center;justify-content:center;
    padding:32px;
    opacity:0;pointer-events:none;
    transition:opacity .25s ease;
  }
  .m-backdrop.open{opacity:1;pointer-events:auto}

  .m-shell{
    width:100%;max-width:1040px;max-height:calc(100vh - 64px);
    background:var(--paper);
    border-radius:6px;overflow:hidden;
    display:flex;flex-direction:column;
    box-shadow:0 30px 80px rgba(6,24,41,.45), 0 0 0 1px rgba(10,37,64,.2);
    transform:translateY(14px) scale(.985);
    transition:transform .28s cubic-bezier(.2,.8,.2,1);
  }
  .m-backdrop.open .m-shell{transform:translateY(0) scale(1)}

  /* --- Modal header --- */
  .m-head{
    position:relative;
    background:
      radial-gradient(circle at 85% 0%, rgba(201,169,97,.18), transparent 60%),
      linear-gradient(180deg,#0C2A4A 0%, #0A2540 100%);
    color:var(--cream);
    padding:22px 28px 20px;
    border-bottom:1px solid rgba(201,169,97,.25);
    flex-shrink:0;
  }
  .m-head-top{display:flex;align-items:flex-start;gap:18px}
  .m-badge{
    display:inline-block;padding:4px 10px;background:var(--gold);color:var(--navy);
    font-size:9px;letter-spacing:1.6px;text-transform:uppercase;font-weight:600;
    border-radius:2px;
  }
  .m-title{
    font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:600;
    line-height:1.1;letter-spacing:-.4px;margin:6px 0 3px;
    color:#ffffff;
  }
  .m-head .m-title{color:#ffffff}
  .m-sub{font-size:12px;color:#cfd6df;letter-spacing:.3px;font-style:italic}
  .m-head .m-sub{color:#cfd6df}
  .m-close{
    margin-left:auto;flex-shrink:0;
    width:36px;height:36px;border-radius:50%;
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);
    color:var(--cream);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:background .15s;
  }
  .m-close:hover{background:rgba(255,255,255,.14)}
  .m-close svg{width:14px;height:14px}

  /* Facts strip */
  .m-facts{
    display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
    margin-top:18px;
    padding:14px 20px 2px;
    background:rgba(255,255,255,.03);
    border:1px solid rgba(201,169,97,.22);
    border-radius:4px;
  }
  .m-fact{padding:2px 0;border-right:1px solid rgba(255,255,255,.08);padding-right:20px}
  .m-fact:last-child{border-right:none;padding-right:0}
  .m-fact-k{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:var(--gold);opacity:.9;font-weight:500;margin-bottom:4px}
  .m-fact-v{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:#fff;letter-spacing:.2px;line-height:1.15}
  .m-fact-v small{font-family:'Inter';font-size:11px;color:#cfd6df;font-weight:400;margin-left:4px}

  /* --- Tabs --- */
  .m-tabs{
    display:flex;gap:0;padding:0 28px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    overflow-x:auto;scrollbar-width:none;
    flex-shrink:0;
  }
  .m-tabs::-webkit-scrollbar{display:none}
  .m-tab{
    padding:14px 18px 12px;font-size:11px;letter-spacing:1.3px;text-transform:uppercase;
    font-weight:600;color:var(--mute);cursor:pointer;
    border:none;background:transparent;position:relative;
    white-space:nowrap;
    transition:color .15s;
  }
  .m-tab:hover{color:var(--navy)}
  .m-tab.active{color:var(--navy)}
  .m-tab.active::after{
    content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--gold);
  }

  /* --- Body (scroll region) --- */
  .m-body{
    flex:1;overflow-y:auto;
    padding:26px 28px 28px;
    background:linear-gradient(180deg, var(--paper) 0%, #fff 360px);
  }
  .m-body::-webkit-scrollbar{width:8px}
  .m-body::-webkit-scrollbar-thumb{background:rgba(10,37,64,.18);border-radius:4px}
  .m-body::-webkit-scrollbar-track{background:transparent}

  .m-section{display:none}
  .m-section.active{display:block;animation:fade .22s ease}
  @keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

  .m-sec-title{
    font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;
    color:var(--navy);margin:0 0 4px;
  }
  .m-sec-sub{font-size:12px;color:var(--mute);margin-bottom:18px}

  /* --- Program timeline --- */
  .prog-day{
    background:#fff;border:1px solid var(--line-soft);border-radius:6px;
    margin-bottom:14px;overflow:hidden;
  }
  .prog-day-head{
    display:flex;align-items:center;gap:14px;
    padding:14px 18px;background:linear-gradient(180deg,#fff,#FAFAF5);
    border-bottom:1px solid var(--line-soft);
  }
  .prog-day-badge{
    background:var(--gold);color:var(--navy);
    padding:4px 10px;border-radius:4px;font-size:11px;letter-spacing:.5px;font-weight:600;
    font-family:'Cormorant Garamond',serif;
  }
  .prog-day-title{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--navy)}
  .prog-day-meta{font-size:11px;color:var(--mute);margin-left:auto;text-align:right;letter-spacing:.3px}
  .prog-day-body{padding:6px 20px 16px;position:relative}
  .prog-day-body{padding:6px 20px 16px;position:relative}
  .prog-day-body::before{
    content:"";position:absolute;left:28px;top:14px;bottom:14px;width:1px;
    background:linear-gradient(180deg, var(--gold) 0%, rgba(201,169,97,.25) 100%);
  }
  .prog-item{
    display:grid;grid-template-columns:68px 1fr;gap:18px;
    padding:10px 0 10px 22px;position:relative;align-items:start;
  }
  .prog-item::before{
    content:"";position:absolute;left:3px;top:16px;width:11px;height:11px;border-radius:50%;
    background:#fff;border:2px solid var(--gold);z-index:1;
  }
  .prog-time{
    font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--navy);
    font-variant-numeric:tabular-nums;letter-spacing:-.2px;white-space:nowrap;
  }
  .prog-ev{font-size:14px;font-weight:600;color:var(--navy);line-height:1.25}
  .prog-de{font-size:12.5px;color:var(--ink-2);margin-top:2px;line-height:1.5}
  .prog-aside{
    margin:10px 0 4px;padding:12px 14px;
    background:var(--cream);border-radius:4px;border-left:3px solid var(--gold);
  }
  .prog-aside-t{font-size:12px;color:var(--navy);font-weight:600;margin-bottom:4px}
  .prog-aside-l{font-size:12px;color:var(--ink-2);line-height:1.55}
  .prog-aside-l b{color:var(--navy);font-weight:500;font-variant-numeric:tabular-nums}

  /* --- Tariffs --- */
  .tariff-intro{
    padding:14px 16px;background:var(--cream);border-radius:4px;
    font-size:12.5px;color:var(--ink-2);line-height:1.55;margin-bottom:16px;
    border-left:3px solid var(--gold);
  }
  .tariff-table{
    width:100%;border-collapse:separate;border-spacing:0;
    background:#fff;border:1px solid var(--line-soft);border-radius:6px;overflow:hidden;
    font-size:13px;
  }
  .tariff-table thead th{
    background:var(--navy);color:var(--cream);
    padding:12px 14px;text-align:left;
    font-size:9px;letter-spacing:1.4px;text-transform:uppercase;font-weight:600;
  }
  .tariff-table thead th+th{text-align:center}
  .tariff-table tbody tr{border-top:1px solid var(--line-soft)}
  .tariff-table tbody tr:first-child{border-top:none}
  .tariff-table tbody td{padding:14px;vertical-align:middle}
  .tariff-table tbody td+td{text-align:center;font-variant-numeric:tabular-nums}
  .tariff-table tbody tr.premium{background:linear-gradient(90deg,#FBF6E9,#FAFAF5)}
  .tariff-name{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:var(--navy)}
  .tariff-desc{font-size:11px;color:var(--mute);margin-top:2px}
  .tariff-price{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;color:var(--navy)}
  .tariff-price small{font-family:'Inter';font-size:10px;color:var(--mute);font-weight:400;display:block;margin-top:2px;letter-spacing:.2px}
  .tariff-dash{color:var(--faint);font-size:14px}
  .tariff-prices-m{display:none}

  .incl-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
  .incl-card{
    background:#fff;border:1px solid var(--line-soft);border-radius:6px;padding:16px 18px;
  }
  .incl-card h4{
    font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;color:var(--navy);
    margin:0 0 10px;
  }
  .incl-card ul{margin:0;padding:0;list-style:none}
  .incl-card li{
    position:relative;padding:6px 0 6px 18px;font-size:12.5px;color:var(--ink-2);line-height:1.5;
  }
  .incl-card li::before{
    content:"";position:absolute;left:2px;top:13px;width:6px;height:6px;border-radius:50%;background:var(--gold);
  }

  /* --- On board --- */
  .board-hero{
    background:linear-gradient(135deg,var(--cream),var(--cream-2));
    border-radius:6px;padding:20px 22px;margin-bottom:18px;
    border:1px solid rgba(201,169,97,.3);
  }
  .board-hero-k{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-3);font-weight:600;margin-bottom:6px}
  .board-hero-t{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;color:var(--navy);margin-bottom:4px}
  .board-hero-d{font-size:12.5px;color:var(--ink-2);line-height:1.55;max-width:640px}

  .amen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  .amen-card{
    background:#fff;border:1px solid var(--line-soft);border-radius:6px;padding:14px 16px;
  }
  .amen-name{font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;color:var(--navy)}
  .amen-hours{font-size:11px;color:var(--mute);margin-top:2px;font-variant-numeric:tabular-nums;letter-spacing:.3px}
  .amen-desc{font-size:12px;color:var(--ink-2);margin-top:8px;line-height:1.5}

  /* --- FAQ --- */
  .faq{background:#fff;border:1px solid var(--line-soft);border-radius:6px;overflow:hidden}
  .faq-item{border-top:1px solid var(--line-soft)}
  .faq-item:first-child{border-top:none}
  .faq-q{
    padding:14px 18px;font-size:13.5px;font-weight:500;color:var(--navy);
    cursor:pointer;display:flex;align-items:center;gap:12px;
    background:#fff;
  }
  .faq-q:hover{background:#FAFAF5}
  .faq-q .q-ic{
    flex-shrink:0;width:22px;height:22px;border-radius:50%;
    background:var(--cream);color:var(--navy);
    display:flex;align-items:center;justify-content:center;
    font-family:'Cormorant Garamond',serif;font-weight:600;font-size:12px;
  }
  .faq-q .q-chev{margin-left:auto;transition:transform .2s;color:var(--mute)}
  .faq-item.open .q-chev{transform:rotate(180deg);color:var(--gold-3)}
  .faq-a{
    max-height:0;overflow:hidden;transition:max-height .25s ease;
    font-size:12.5px;color:var(--ink-2);line-height:1.6;
  }
  .faq-item.open .faq-a{max-height:320px}
  .faq-a-inner{padding:0 18px 16px 52px}

  /* --- Dates --- */
  .dates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:16px}
  .date-card{
    background:#fff;border:1px solid var(--line-soft);border-radius:6px;padding:12px 14px;
    cursor:pointer;transition:all .15s;
  }
  .date-card:hover{border-color:var(--gold);transform:translateY(-1px);box-shadow:0 4px 12px rgba(10,37,64,.08)}
  .date-card.picked{border-color:var(--gold);background:linear-gradient(180deg,#fff,#FBF6E9);box-shadow:0 4px 12px rgba(201,169,97,.2)}
  .date-m{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:var(--gold-3);font-weight:600}
  .date-d{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;color:var(--navy);margin-top:2px;letter-spacing:-.5px}
  .date-w{font-size:11px;color:var(--mute);margin-top:2px}
  .date-avail{margin-top:8px;font-size:10px;color:#2B7A3D;letter-spacing:.3px;font-weight:500}
  .date-avail.few{color:var(--accent-red)}

  /* --- Modal footer --- */
  .m-foot{
    background:linear-gradient(180deg,#fff,var(--cream));
    border-top:1px solid var(--line);
    padding:16px 28px;
    display:flex;align-items:center;gap:18px;
    flex-shrink:0;
  }
  .m-foot-price{display:flex;flex-direction:column;gap:2px}
  .m-foot-k{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:var(--mute);font-weight:600}
  .m-foot-v{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;color:var(--navy);letter-spacing:-.3px;line-height:1}
  .m-foot-v small{font-family:'Inter';font-size:11px;color:var(--mute);font-weight:400;margin-left:4px}
  .m-foot-spacer{flex:1}
  .m-foot-sec{
    background:transparent;border:1px solid var(--navy);color:var(--navy);
    padding:12px 18px;border-radius:4px;font-size:11px;letter-spacing:1.3px;text-transform:uppercase;
    font-weight:600;cursor:pointer;
  }
  .m-foot-sec:hover{background:rgba(10,37,64,.05)}
  .m-foot-cta{
    background:var(--gold);color:var(--navy);border:none;
    padding:12px 24px;border-radius:4px;font-size:11px;letter-spacing:1.3px;text-transform:uppercase;
    font-weight:700;cursor:pointer;box-shadow:0 2px 0 var(--gold-3);
    transition:transform .12s, box-shadow .12s, background .12s;
  }
  .m-foot-cta:hover{background:var(--gold-2);transform:translateY(-1px);box-shadow:0 3px 0 var(--gold-3)}
  .m-foot-cta:active{transform:translateY(1px);box-shadow:0 1px 0 var(--gold-3)}

  /* ---------- Mobile ---------- */
  @media (max-width: 760px){
    .nav-links, .lang{display:none}
    .nav-inner{padding:14px 18px}
    .cta-top{padding:10px 14px;font-size:12px}
    .page-body{padding:26px 16px 90px}
    .page-hero-h{font-size:28px}

    .m-backdrop{padding:0;align-items:flex-end}
    .m-shell{
      max-width:100%;max-height:calc(100vh - 32px);
      border-radius:16px 16px 0 0;
    }
    .m-head{padding:18px 20px 16px}
    .m-head-top{gap:10px}
    .m-title{font-size:22px}
    .m-sub{font-size:11px}
    .m-facts{
      grid-template-columns:1fr 1fr;gap:0;row-gap:10px;
      margin-top:14px;padding:12px 14px 6px;
    }
    .m-fact{padding:2px 0 6px 0}
    .m-fact:nth-child(2){border-right:none}
    .m-fact:nth-child(odd){padding-right:14px;border-right:1px solid rgba(255,255,255,.08)}
    .m-fact:nth-child(1),.m-fact:nth-child(2){border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:10px;margin-bottom:2px}
    .m-fact-v{font-size:15px}
    .m-tabs{padding:0 16px}
    .m-tab{padding:12px 14px 10px;font-size:10px}
    .m-body{padding:20px 18px}
    .m-sec-title{font-size:19px}

    /* Drag handle */
    .m-shell::before{
      content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);
      width:42px;height:4px;border-radius:2px;background:rgba(255,255,255,.35);
      z-index:3;pointer-events:none;
    }
    .m-shell{position:relative}
    .m-head{padding-top:22px}

    /* Program */
    .prog-item{grid-template-columns:58px 1fr;gap:10px;padding-left:18px}
    .prog-day-body::before{left:24px}
    .prog-item::before{left:1px;top:14px}
    .prog-time{font-size:16px}
    .prog-ev{font-size:13.5px}
    .prog-de{font-size:12px}
    .prog-day-meta{display:none}

    /* Tariff: convert to card list */
    .tariff-table thead{display:none}
    .tariff-table, .tariff-table tbody, .tariff-table tr, .tariff-table td{display:block;width:100%}
    .tariff-table{border:none;background:transparent}
    .tariff-table tbody tr{
      background:#fff;border:1px solid var(--line-soft);border-radius:6px;
      padding:14px 16px;margin-bottom:10px;
    }
    .tariff-table tbody tr.premium{background:linear-gradient(180deg,#fff,#FBF6E9)}
    .tariff-table tbody td{padding:0;border:none;text-align:left}
    .tariff-table tbody td+td{display:none}
    .tariff-row-head{margin-bottom:10px}
    .tariff-prices-m{
      display:grid;grid-template-columns:1fr 1fr;gap:8px;
      padding-top:10px;border-top:1px solid var(--line-soft);
    }
    .tariff-price-m{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--mute)}
    .tariff-price-m b{font-family:'Cormorant Garamond',serif;font-size:15px;color:var(--navy);font-weight:600;font-variant-numeric:tabular-nums}

    .incl-grid{grid-template-columns:1fr}
    .amen-grid{grid-template-columns:1fr 1fr;gap:10px}

    .m-foot{padding:14px 18px;gap:12px;flex-wrap:wrap}
    .m-foot-sec{display:none}
    .m-foot-cta{flex:1;padding:14px 18px;font-size:12px}
    .m-foot-v{font-size:20px}
  }

  

/* Minimal demo page so you can test the modal standalone */
.demo-page{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:#EEF1F5;padding:40px 20px;
  font-family:'Inter',system-ui,sans-serif;color:#0A2540;
}
.demo-card{
  background:#fff;padding:48px 40px;border-radius:12px;
  box-shadow:0 10px 40px rgba(10,37,64,.08);text-align:center;max-width:540px;
}
.demo-card h1{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:600;margin:0 0 10px;}
.demo-card p{color:#5C6B7A;font-size:14px;line-height:1.6;margin:0 0 26px;}
.demo-btn{
  display:inline-flex;align-items:center;gap:10px;
  background:#0A2540;color:#F5EFE0;border:none;padding:14px 24px;border-radius:4px;
  font-size:12px;letter-spacing:1.4px;text-transform:uppercase;font-weight:600;
  cursor:pointer;box-shadow:0 2px 0 #061829;
}
.demo-btn:hover{background:#1B3A5C;transform:translateY(-1px);box-shadow:0 3px 0 #061829}
.demo-btn:active{transform:translateY(1px);box-shadow:0 1px 0 #061829}
.demo-alt{margin-left:12px;background:transparent;color:#0A2540;border:1px solid #0A2540;box-shadow:none}
.demo-alt:hover{background:rgba(10,37,64,.05);box-shadow:none}
