    .ib-modal { position: fixed; inset: 0; background: rgba(10, 20, 35, 0.75); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; overflow-y: auto; }
    .ib-modal[hidden] { display: none; }
    .ib-modal-card { background: #fff; color: var(--ink); border-radius: 16px; max-width: 520px; width: 100%; padding: 28px; box-shadow: 0 30px 90px rgba(0,0,0,0.4); position: relative; max-height: 92vh; overflow-y: auto; }
    .ib-close { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--paper); font-size: 22px; line-height: 1; cursor: pointer; color: var(--ink-soft); }
    .ib-close:hover { background: var(--sand-deep, #e2d3b4); color: var(--ink); }
    .ib-header { margin-bottom: 18px; padding-right: 40px; }
    .ib-eyebrow { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sea); font-weight: 700; margin-bottom: 6px; }
    .ib-title { font-family: Fraunces, Georgia, serif; font-weight: 400; font-size: 26px; line-height: 1.15; margin: 0 0 8px; color: var(--ink); }
    .ib-dates { font-size: 14px; color: var(--ink-soft); font-weight: 500; }
    .ib-breakdown { background: var(--paper, #f6efe2); border-radius: 10px; padding: 14px 16px; margin-bottom: 20px; }
    .ib-brow { display: flex; justify-content: space-between; font-size: 14px; padding: 4px 0; }
    .ib-brow-total { border-top: 1px solid var(--sand-deep, #e2d3b4); margin-top: 6px; padding-top: 10px; font-weight: 700; font-size: 16px; color: var(--ink); }
    .ib-brow-note { color: var(--ink-soft); font-size: 12px; margin-top: 2px; }
    .ib-form { display: flex; flex-direction: column; gap: 14px; }
    .ib-row { display: flex; flex-direction: column; gap: 6px; }
    .ib-row-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .ib-form label { font-size: 12px; font-weight: 600; color: var(--ink-soft); letter-spacing: 0.03em; text-transform: uppercase; display: flex; flex-direction: column; gap: 6px; }
    .ib-form input[type=text], .ib-form input[type=email], .ib-form input[type=tel] { border: 1px solid var(--line, #d9d0bd); background: #fff; border-radius: 8px; padding: 11px 13px; font-size: 15px; font-family: inherit; color: var(--ink); text-transform: none; letter-spacing: normal; font-weight: 400; }
    .ib-form input:focus { outline: none; border-color: var(--sea); box-shadow: 0 0 0 3px rgba(10,107,122,0.15); }
    .ib-promo-toggle { background: transparent; border: 0; color: var(--sea); font-size: 13px; font-weight: 600; text-decoration: underline; cursor: pointer; padding: 4px 0; align-self: flex-start; font-family: inherit; text-transform: none; letter-spacing: normal; }
    .ib-promo-toggle:hover { color: var(--sea-deep, #084a55); }
    .ib-promo-wrap { display: flex; gap: 8px; align-items: stretch; margin-top: 4px; }
    .ib-promo-wrap input { flex: 1; padding: 10px 12px; border: 1px solid #d6cfbf; border-radius: 8px; font-size: 14px; font-family: inherit; text-transform: uppercase; letter-spacing: 0.5px; }
    .ib-promo-apply { background: var(--sea); color: #fff; border: 0; border-radius: 8px; padding: 0 16px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit; }
    .ib-promo-apply:hover { background: var(--sea-deep, #084a55); }
    .ib-promo-msg { font-size: 13px; font-weight: 600; margin-top: 4px; }
    .ib-brow-discount { color: #0a7a3d; }
    .ib-ack { background: #f7f2e8; border: 1px solid #e2d3b4; border-radius: 8px; padding: 12px 14px; display: flex; gap: 10px; align-items: flex-start; }
    .ib-ack-check { margin-top: 3px; width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--sea); cursor: pointer; }
    .ib-ack-label { flex: 1; font-size: 13px; line-height: 1.5; color: var(--ink); font-weight: 500; cursor: pointer; text-transform: none; letter-spacing: normal; }
    /* Ensure link taps are recognized as links, not label taps that toggle the checkbox */
    .ib-ack-label .ib-ack-link { color: var(--sea); font-weight: 700; text-decoration: underline; position: relative; z-index: 1; padding: 4px 2px; margin: -4px -2px; touch-action: manipulation; -webkit-tap-highlight-color: rgba(10,107,122,.25); }
    .ib-ack-label .ib-ack-link:hover, .ib-ack-label .ib-ack-link:focus-visible { color: var(--sea-deep, #084a55); outline: none; }
    .ib-submit { background: var(--sea); color: #fff; border: 0; border-radius: 999px; padding: 14px 20px; font-size: 16px; font-weight: 700; cursor: pointer; margin-top: 4px; transition: background 160ms ease; font-family: inherit; }
    .ib-submit:hover { background: var(--sea-deep, #084a55); }
    .ib-submit:disabled { opacity: 0.6; cursor: not-allowed; }
    .ib-note { font-size: 12px; color: var(--ink-soft); text-align: center; margin: 0; }
    .ib-talk { text-align: center; font-size: 13px; color: var(--ink-soft); padding-top: 8px; border-top: 1px solid var(--paper, #f6efe2); margin-top: 4px; }
    .ib-talk a { color: var(--sea); font-weight: 700; text-decoration: none; }
    .ib-talk a:hover { text-decoration: underline; }
    .ib-error { background: #fce8e8; border-left: 3px solid #c0202a; color: #7a1620; padding: 10px 14px; border-radius: 6px; font-size: 13px; font-weight: 500; }
    @media (max-width: 560px) {
      .ib-modal { padding: 12px; align-items: flex-end; }
      .ib-modal-card { padding: 22px 18px; border-radius: 16px 16px 0 0; max-height: 96vh; }
      .ib-title { font-size: 22px; }
      .ib-row-two { grid-template-columns: 1fr; }
    }
.ib-modal{--ink:#17394a;--ink-soft:#435765;--paper:#fcfbf7;--sea:#153e50;--line:#d8dfe0}
.ib-form label.ib-ack-label{text-transform:none;font-size:13px;letter-spacing:normal;display:block}
.ib-promo-wrap[hidden]{display:none}
.ib-form input{min-width:0}.ib-modal-card{color:#17394a;background:#fff}
.ib-modal-card input{color:#17394a!important}
.ib-ack-label,.ib-note,.ib-talk,.ib-dates,.ib-form label{color:#435765!important}
.ib-ack-label a,.ib-note a,.ib-talk a{color:#153e50!important}
.ib-submit{background:#153e50;color:#fff}
.ib-breakdown{background:#f5f1e8;color:#17394a}
.ib-modal .ib-close{background:#f5f1e8;color:#17394a}
#jnjBox{background:none;border:0;color:inherit;padding:10px;font:inherit}
