/* BVI Platinum public advertising page — modal wizard v4.0.7 */
.vipn-adpage,
.vipn-ad-modal{
  --ad-blue: var(--public-theme-accent, #2f6ea5);
  --ad-blue-dark: #153a5a;
  --ad-card: #ffffff;
  --ad-soft: #f6f9fc;
  --ad-text: #101827;
  --ad-muted: #647386;
  --ad-border: rgba(15, 23, 42, .11);
  --ad-shadow: 0 18px 42px rgba(15, 23, 42, .08);
  color: var(--ad-text);
}

.vipn-adpage .vipn-shell{
  width: min(980px, calc(100% - 32px));
  margin: 0 auto;
  display: grid;
  gap: 16px;
}

.vipn-adpage .vipn-surface,
.vipn-ad-modal .vipn-ad-wizard{
  background: var(--ad-card);
  border: 1px solid var(--ad-border);
  border-radius: 24px;
  box-shadow: var(--ad-shadow);
}

.vipn-kicker{
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(47, 110, 165, .09);
  color: var(--ad-blue-dark);
  font-size: .68rem;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.vipn-ad-hero{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 28px;
  align-items: end;
  padding: clamp(30px, 5vw, 56px);
  background:
    radial-gradient(circle at 0% 0%, rgba(47, 110, 165, .11), transparent 25rem),
    radial-gradient(circle at 100% 0%, rgba(243, 200, 75, .12), transparent 22rem),
    #fff;
}

.vipn-ad-hero h1{
  margin: 14px 0 12px;
  max-width: 680px;
  color: var(--ad-text);
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  line-height: .96;
  letter-spacing: -.06em;
  font-weight: 950;
}

.vipn-ad-hero p,
.vipn-ad-start p,
.vipn-ad-wizard__header p,
.vipn-wizard-panel__intro p{
  margin: 0;
  color: var(--ad-muted);
  line-height: 1.55;
}
.vipn-ad-hero p{ max-width: 650px; font-size: clamp(1rem, 1.3vw, 1.13rem); }

.vipn-ad-hero__actions,
.vipn-ad-start{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.vipn-ad-hero__actions{ margin-top: 20px; }

.vipn-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}
.vipn-btn:hover{ transform: translateY(-1px); text-decoration: none; }
.vipn-btn:disabled{ opacity: .48; cursor: not-allowed; transform: none; }
.vipn-btn--primary{
  color: #fff !important;
  background: linear-gradient(180deg, #347ab8, var(--ad-blue-dark));
  box-shadow: 0 12px 22px rgba(47,110,165,.22);
}
.vipn-btn--secondary{
  color: var(--ad-blue-dark) !important;
  background: rgba(47,110,165,.08);
  border-color: rgba(47,110,165,.22);
}
.vipn-btn--ghost{
  color: var(--ad-blue-dark) !important;
  background: transparent;
  border-color: rgba(47,110,165,.18);
}

.vipn-ad-contact{
  display: grid;
  gap: 6px;
  padding: 18px;
  border: 1px solid rgba(47, 110, 165, .14);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
}
.vipn-ad-contact span{ color: var(--ad-muted); font-weight: 800; }
.vipn-ad-contact strong{
  color: var(--ad-blue-dark);
  font-weight: 950;
  overflow-wrap: anywhere;
}

.vipn-ad-strip{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--ad-muted);
  font-size: .92rem;
}
.vipn-ad-strip span{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid var(--ad-border);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  font-weight: 850;
}

.vipn-ad-start{
  justify-content: space-between;
  padding: 22px;
}
.vipn-ad-start h2{
  margin: 8px 0 6px;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 950;
  letter-spacing: -.04em;
}
.vipn-ad-start p{ max-width: 590px; }

.vipn-form-alert{
  padding: 13px 15px;
  border-radius: 16px;
  font-weight: 850;
  background: rgba(25,135,84,.12);
  border: 1px solid rgba(25,135,84,.25);
  color: #12613d;
}
.vipn-form-alert--danger{
  background: rgba(220,53,69,.12);
  border-color: rgba(220,53,69,.25);
  color: #8b1d2a;
}

.vipn-ad-modal .modal-dialog{ max-width: min(1040px, calc(100% - 24px)); }
.vipn-ad-modal .modal-content{ max-height: calc(100vh - 48px); }
.vipn-ad-modal .modal-body{ overflow-y: auto; padding-bottom: 34px; }
.vipn-ad-modal .modal-content{ overflow: hidden; }
.vipn-ad-modal .btn-close{ box-shadow: none; }
.vipn-ad-wizard__header{
  align-items: flex-start;
  gap: 18px;
  padding: 22px 24px;
  border-color: var(--ad-border);
}
.vipn-ad-wizard__header h2{
  margin: 8px 0 6px;
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  font-weight: 950;
  letter-spacing: -.045em;
  color: var(--ad-text);
}
.vipn-ad-wizard__body{
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 22px;
  padding: 22px 24px;
  background: linear-gradient(180deg, rgba(246,249,252,.82), rgba(255,255,255,.96));
}
.vipn-wizard-rail{
  display: grid;
  align-content: start;
  gap: 10px;
}
.vipn-wizard-step{
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  width: 100%;
  min-height: 54px;
  padding: 9px 10px;
  border: 1px solid var(--ad-border);
  border-radius: 16px;
  background: #fff;
  color: var(--ad-muted);
  text-align: left;
  font-weight: 900;
}
.vipn-wizard-step b{
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: rgba(47,110,165,.08);
  color: var(--ad-blue-dark);
}
.vipn-wizard-step.is-active{
  color: var(--ad-text);
  border-color: rgba(47,110,165,.45);
  box-shadow: 0 0 0 4px rgba(47,110,165,.08);
}
.vipn-wizard-step.is-active b,
.vipn-wizard-step.is-complete b{
  background: var(--ad-blue-dark);
  color: #fff;
}

.vipn-wizard-panels{
  min-height: 0;
  padding: 22px;
  border: 1px solid var(--ad-border);
  border-radius: 22px;
  background: #fff;
}
.vipn-wizard-panel{ display: none; }
.vipn-wizard-panel.is-active{ display: grid; gap: 18px; align-content: start; }
.vipn-wizard-panel__intro{ display: grid; gap: 4px; }
.vipn-wizard-panel__intro h3{
  margin: 0;
  color: var(--ad-text);
  font-size: 1.35rem;
  font-weight: 950;
  letter-spacing: -.03em;
}

.vipn-ad-form__guard{
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.vipn-field-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}
.vipn-field--wide{ grid-column: 1 / -1; }
.vipn-field label{
  display: block;
  margin-bottom: 6px;
  color: var(--ad-text);
  font-size: .82rem;
  font-weight: 850;
}
.vipn-field b{ color: #c93f50; }
.vipn-field b.d-none{ display: none !important; }
.vipn-field input,
.vipn-field select,
.vipn-field textarea{
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--ad-border);
  border-radius: 13px;
  background: #fff;
  color: var(--ad-text);
  outline: none;
}
.vipn-field textarea{
  min-height: 128px;
  resize: vertical;
}
.vipn-field input:focus,
.vipn-field select:focus,
.vipn-field textarea:focus{
  border-color: rgba(47,110,165,.55);
  box-shadow: 0 0 0 4px rgba(47,110,165,.10);
}

.vipn-field-hint{
  display: block;
  margin-top: 6px;
  color: var(--ad-muted);
  font-size: .78rem;
  font-weight: 760;
  line-height: 1.35;
}
.vipn-field input:invalid:not(:placeholder-shown),
.vipn-field textarea:invalid:not(:placeholder-shown),
.vipn-field select:invalid{
  border-color: rgba(201, 63, 80, .55);
}
.vipn-creative-guide{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.vipn-creative-guide div{
  display: grid;
  gap: 4px;
  padding: 13px;
  border: 1px solid rgba(47,110,165,.16);
  border-radius: 16px;
  background: rgba(47,110,165,.045);
}
.vipn-creative-guide strong{
  color: var(--ad-text);
  font-weight: 950;
}
.vipn-creative-guide span{
  color: var(--ad-muted);
  font-size: .84rem;
  font-weight: 760;
  line-height: 1.35;
}
.vipn-service-section{
  display: grid;
  gap: 10px;
  padding-top: 4px;
}
.vipn-service-section__intro{
  display: grid;
  gap: 3px;
}
.vipn-service-section__intro strong{
  color: var(--ad-text);
  font-weight: 950;
}
.vipn-service-section__intro span{
  color: var(--ad-muted);
  font-size: .86rem;
  font-weight: 760;
}
.vipn-review-box__wide{ grid-column: 1 / -1; }
.vipn-review-box__wide strong{
  white-space: pre-wrap;
}
.vipn-review-box__wide{ min-height: 88px; }

.vipn-placement-help{
  display: block;
  margin-top: 6px;
  color: var(--ad-muted);
  font-size: .78rem;
  font-weight: 760;
}
.vipn-placement-empty{
  margin-top: 8px;
  padding: 9px 11px;
  border: 1px solid rgba(243, 156, 18, .24);
  border-radius: 12px;
  background: rgba(243, 156, 18, .08);
  color: #76510c;
  font-size: .82rem;
  font-weight: 820;
  line-height: 1.35;
}

.vipn-package-picker{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.vipn-package-picker label,
.vipn-service-picker label{
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  min-height: 54px;
  padding: 12px;
  border: 1px solid var(--ad-border);
  border-radius: 15px;
  background: var(--ad-soft);
  cursor: pointer;
}
.vipn-package-picker input,
.vipn-service-picker input,
.vipn-consent-box input{
  width: 17px;
  min-width: 17px;
  height: 17px;
  accent-color: var(--ad-blue);
}
.vipn-package-picker span,
.vipn-service-picker span{ display: grid; gap: 2px; }
.vipn-package-picker strong{ color: var(--ad-text); font-weight: 950; }
.vipn-package-picker small{ color: var(--ad-muted); font-weight: 760; }
.vipn-package-picker label:has(input:checked),
.vipn-service-picker label:has(input:checked){
  border-color: rgba(47,110,165,.62);
  box-shadow: 0 0 0 4px rgba(47,110,165,.10);
  background: rgba(47,110,165,.06);
}

.vipn-service-picker{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.vipn-service-picker label{ min-height: 46px; font-weight: 900; }

.vipn-review-box{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.vipn-review-box div{
  display: grid;
  align-content: start;
  gap: 5px;
  min-height: 76px;
  padding: 13px;
  border: 1px solid var(--ad-border);
  border-radius: 15px;
  background: var(--ad-soft);
}
.vipn-review-box span{
  color: var(--ad-muted);
  font-size: .75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.vipn-review-box strong{
  min-height: 20px;
  color: var(--ad-text);
  font-weight: 950;
  overflow-wrap: anywhere;
}
.vipn-consent-box{
  padding: 13px;
  border: 1px solid rgba(47,110,165,.18);
  border-radius: 16px;
  background: rgba(47,110,165,.045);
}
.vipn-consent-box label{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0;
  color: var(--ad-text);
  font-weight: 850;
  line-height: 1.35;
}

.vipn-ad-wizard__footer{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 24px;
  border-color: var(--ad-border);
}
.vipn-wizard-footer-note{
  margin-right: auto;
  color: var(--ad-muted);
  font-weight: 760;
}

@media (max-width: 980px){
  .vipn-ad-hero{ grid-template-columns: 1fr; }
  .vipn-ad-contact{ max-width: 460px; }
  .vipn-ad-wizard__body{ grid-template-columns: 1fr; }
  .vipn-wizard-rail{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vipn-wizard-step{ grid-template-columns: 1fr; justify-items: center; text-align: center; min-height: 78px; }
}
@media (max-width: 700px){
  .vipn-adpage .vipn-shell{ width: min(100% - 22px, 980px); gap: 14px; }
  .vipn-ad-hero{ padding: 25px 18px; border-radius: 18px; }
  .vipn-ad-hero h1{ font-size: clamp(2.15rem, 12vw, 3.2rem); letter-spacing: -.045em; }
  .vipn-ad-hero__actions,
  .vipn-ad-start{ align-items: stretch; }
  .vipn-btn{ width: 100%; }
  .vipn-ad-strip{ display: grid; }
  .vipn-ad-modal .modal-dialog{ max-width: calc(100% - 14px); margin: 7px auto; }
  .vipn-ad-wizard__header,
  .vipn-ad-wizard__body,
  .vipn-ad-wizard__footer{ padding: 16px; }
  .vipn-wizard-rail{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vipn-field-grid,
  .vipn-package-picker,
  .vipn-service-picker,
  .vipn-review-box,
  .vipn-creative-guide{ grid-template-columns: 1fr; }
  .vipn-ad-wizard__footer{ display: grid; grid-template-columns: 1fr; }
  .vipn-wizard-footer-note{ order: -1; margin: 0; text-align: center; }
}

html[data-theme="dark"] .vipn-adpage,
html[data-theme="dark"] .vipn-ad-modal{
  --ad-card: rgba(16, 31, 47, .96);
  --ad-soft: rgba(22, 39, 58, .92);
  --ad-text: rgba(255,255,255,.94);
  --ad-muted: rgba(224,236,248,.72);
  --ad-border: rgba(255,255,255,.12);
  --ad-shadow: 0 22px 54px rgba(0,0,0,.34);
}
html[data-theme="dark"] .vipn-ad-hero,
html[data-theme="dark"] .vipn-ad-contact,
html[data-theme="dark"] .vipn-ad-strip span,
html[data-theme="dark"] .vipn-ad-start,
html[data-theme="dark"] .vipn-wizard-panels,
html[data-theme="dark"] .vipn-wizard-step{
  background: rgba(16,31,47,.94);
}
html[data-theme="dark"] .vipn-ad-wizard__body{
  background: linear-gradient(180deg, rgba(9,18,30,.96), rgba(16,31,47,.96));
}
html[data-theme="dark"] .vipn-creative-guide div,
html[data-theme="dark"] .vipn-field input,
html[data-theme="dark"] .vipn-field select,
html[data-theme="dark"] .vipn-field textarea,
html[data-theme="dark"] .vipn-package-picker label,
html[data-theme="dark"] .vipn-service-picker label,
html[data-theme="dark"] .vipn-review-box div{
  background: rgba(9, 18, 30, .88);
  color: var(--ad-text);
}
html[data-theme="dark"] .vipn-form-alert{ color: #8ee2b4; }
html[data-theme="dark"] .vipn-form-alert--danger{ color: #ffb4bf; }


/* v4.0.7 production readiness refinements */
.vipn-ad-start__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;}
.vipn-ad-modal .modal-content{display:flex;flex-direction:column;}
.vipn-ad-modal .modal-body{flex:1 1 auto;min-height:0;}
.vipn-wizard-panels{overflow:visible;}
.vipn-wizard-panel.is-active{padding-bottom:8px;}
.vipn-review-box{align-items:stretch;}
.vipn-review-box div{height:auto;min-height:84px;}
.vipn-review-box__wide{min-height:110px;}
.vipn-ad-wizard__footer{position:sticky;bottom:0;z-index:5;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);}
.vipn-field input:invalid:focus,.vipn-field select:invalid:focus,.vipn-field textarea:invalid:focus{border-color:rgba(201,63,80,.75);box-shadow:0 0 0 4px rgba(201,63,80,.12);}
.vipn-package-picker label:focus-within,.vipn-service-picker label:focus-within,.vipn-consent-box label:focus-within{outline:3px solid rgba(47,110,165,.18);outline-offset:2px;}
.vipn-ad-modal .modal-dialog-scrollable .modal-content{max-height:min(920px,calc(100vh - 42px));}
html[data-theme="dark"] .vipn-ad-wizard__footer{background:rgba(16,31,47,.96);}
@media (max-width:700px){.vipn-ad-start__actions{width:100%;justify-content:stretch}.vipn-ad-start__actions .vipn-btn{width:100%;}.vipn-ad-modal .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 14px)}.vipn-ad-wizard__header h2{font-size:1.45rem}.vipn-wizard-step{min-height:62px}.vipn-wizard-panels{padding:16px;border-radius:18px}.vipn-ad-wizard__footer .vipn-btn{width:100%;}}
