/* Custom overrides (non-Vite) */
/* Brand theme variables */
:root{
  --brand-500:#0C4DA2;/* primary */
  --brand-600:#08397A;/* hover/active */
  --brand-contrast:#FFFFFF;/* text on brand */
}
/* Navigation active/hover colors */
.main-menu .menu-primary-menu .menu-item.current-menu-item > a,
.main-menu .menu-primary-menu .menu-item > a:hover{
  color:var(--brand-500);
}
/* Primary buttons */
.tf-btn{
  background:var(--brand-500);
  border-color:var(--brand-500);
  color:var(--brand-contrast);
}
.tf-btn:hover,.tf-btn:focus{
  background:var(--brand-600);
  border-color:var(--brand-600);
  color:var(--brand-contrast);
}
/* CTA brand override */
/* Use brand primary for CTA bar background */
.wg-cta{background:var(--brand-500)!important}
/* CTA link contrast */
.wg-cta .tf-btn.no-bg{
  background:var(--brand-contrast) !important;
  color:var(--brand-600) !important;
  border-color:var(--brand-contrast) !important;
  padding:10px 40px;
  border-radius:12px;
  text-decoration:none !important;
  font-weight:700;
  min-width:160px;
}
.wg-cta .tf-btn.no-bg:hover{
  background:rgba(255,255,255,.9) !important;
  color:var(--brand-600) !important;
}
/* CTA text readability */
.wg-cta .left .icon i{color:var(--brand-contrast)!important}
.wg-cta .title{color:var(--brand-contrast)!important;font-size:18px;line-height:1.4;font-weight:600}
.wg-cta .title span{color:var(--brand-contrast)!important;text-decoration-color:rgba(255,255,255,.85)}
.wg-cta .right h5{color:var(--brand-contrast)!important}
.wg-cta .right .text,.wg-cta .right .text span{color:var(--brand-contrast)!important}
.wg-cta .left .tf-btn{margin-left:16px}
/* Emphasize CTA button label and accessibility */
.wg-cta .tf-btn.no-bg span{font-weight:700}
.wg-cta .tf-btn.no-bg:focus{outline:3px solid rgba(255,255,255,.6);outline-offset:2px}
/* Layout on small screens: keep text readable */
@media (max-width: 767.98px){
  .wg-cta .title{font-size:16px}
  .wg-cta .cta-inner{row-gap:12px}
}
/* Avatar contrast on brand */
.wg-cta .list-agent img{border:2px solid rgba(255,255,255,.85);border-radius:50%}
/* Header/nav layout */
.header .header-content{min-height:72px;align-items:center}
.logo-header a{display:inline-flex;align-items:center}
.logo-header .logo-img{height:auto;width:auto;display:block;max-height:44px;object-fit:contain;flex-shrink:0}
@media (min-width:992px){.logo-header .logo-img{max-height:52px}}
@media (min-width:1200px){.logo-header .logo-img{max-height:58px}}
.main-menu .menu-primary-menu{white-space:nowrap;display:flex;flex-wrap:nowrap;align-items:center;gap:28px;margin:0;padding:0;list-style:none}
.main-menu .menu-primary-menu .menu-item{white-space:nowrap}

/* Affiliation section */
/* Service Hub CTA - make it pop */
.hub-cta-bar{
  background: linear-gradient(135deg, var(--brand-600) 0%, var(--brand-500) 60%);
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 12px 28px rgba(13, 63, 136, .28);
  position: relative;
  overflow: hidden;
}
.hub-cta-bar:before{
  content: "";
  position: absolute; inset: -40% -10% auto auto; height: 220px; width: 220px;
  background: radial-gradient(closest-side, rgba(255,255,255,.25), rgba(255,255,255,0));
  filter: blur(4px);
}
.hub-cta-bar .title{color: var(--brand-contrast); font-weight: 700; letter-spacing: .2px;}
.hub-cta-bar p{color: rgba(255,255,255,.9)}
.hub-cta-bar .cta-note{color: rgba(255,255,255,.85); font-size: 14px; margin-top: 6px}
.hub-cta-bar .tf-btn{height: 46px; padding: 0 18px; border-radius: 12px; font-weight: 700}
.hub-cta-bar .tf-btn i{margin-left: 8px}
.hub-cta-bar .tf-btn.white{background: #fff; color: var(--brand-700); border: 1px solid rgba(0,0,0,.06)}
.hub-cta-bar .tf-btn.white:hover{background: #f7f9fc}
.hub-cta-bar .tf-btn:not(.white){background: var(--brand-contrast); color: var(--brand-700)}
.hub-cta-bar .tf-btn:not(.white):hover{background: rgba(255,255,255,.92)}
.hub-cta-bar .trust{display:flex; align-items:center; gap:10px; margin-top:10px; color: rgba(255,255,255,.85)}
.hub-cta-bar .trust i{color: #ffd166}
@media (max-width: 991.98px){
  .hub-cta-bar{padding: 20px}
}
@media (max-width: 575.98px){
  .hub-cta-bar .title{font-size: 20px}
  .hub-cta-bar .flex{gap:12px}
}
.section-affiliation .section-affiliation-inner{gap:40px}
.section-affiliation .affiliation-logo img{max-width:260px;height:auto;display:block}
.section-affiliation .affiliation-logo.placeholder{padding:20px 24px;border:1px dashed rgba(0,0,0,.15);border-radius:12px}

/* Affiliation section: make it pop */
.section-affiliation{
  position: relative;
}
.section-affiliation .section-affiliation-inner{
  background: linear-gradient(90deg, rgba(12,77,162,0.12), rgba(12,77,162,0));
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.25);
}
.section-affiliation .heading-section .sub-title{color: var(--brand-500)}
.section-affiliation .heading-section .title{letter-spacing:-0.2px}
.section-affiliation .section-content p{opacity:.92}
.section-affiliation .affiliation-logo img{max-width:320px}
@media (max-width: 991.98px){
  .section-affiliation .section-affiliation-inner{padding:22px}
  .section-affiliation .affiliation-logo img{max-width:240px}
}

/* Footer newsletter tightening */
#footer .sib-form-container{background:transparent;border:0;padding:0}
#footer .sib-form-message-panel{display:none !important;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:rgba(255,255,255,.06);color:#EDEDEC}
#footer .sib-form-message-panel[style*="display: block"]{display:flex !important}
#footer .sib-form-message-panel__text{display:flex;align-items:center;gap:8px}
#footer .sib-icon{width:20px;height:20px;flex:0 0 20px}
#footer .sib-form-block__button{min-height:44px}
#footer .input{background:transparent;border-color:rgba(255,255,255,.15);color:#EDEDEC}
#footer .entry__error{color:#ff7a7a}

/* Footer newsletter: alignment-only (single row, gap retained) */
#footer #sib-container form#sib-form{display:flex !important;align-items:center;flex-wrap:wrap;gap:12px}
#footer #sib-container form#sib-form > .flex-grow-1{flex:1 1 360px;min-width:260px}
#footer #sib-container form#sib-form > div:last-child{flex:0 0 auto}
@media (min-width: 768px){#footer #sib-container form#sib-form{flex-wrap:nowrap !important;gap:12px}}
/* Flatten inner blocks so input and button are the only flex items */
#footer #sib-form .sib-form-block{display:contents}

/* Equal height, typography, and contrast */
#footer #sib-form .sib-input .entry__field{position:relative;display:flex;align-items:center}
#footer #sib-form .sib-input .entry__field .input{min-height:48px;line-height:15px;padding:0 14px 0 42px;font-size:16px;background:transparent;border:1px solid rgba(255,255,255,.18);color:#EDEDEC;border-radius:12px;transition:border-color .2s ease, box-shadow .2s ease;box-sizing:border-box}
#footer #sib-form .sib-input .entry__field .input::placeholder{color:rgba(237,237,236,.7)}
#footer #sib-form .sib-input .entry__field i.icon-email{position:absolute;left:14px;top:50%;transform:translateY(-50%);opacity:.9;color:#EDEDEC}
#footer .sib-form-block__button,
#footer .sib-form-block__button button,
#footer .sib-form-block__button a{min-height:48px !important;display:inline-flex;align-items:center;justify-content:center;padding:0 20px;white-space:nowrap;min-width:140px;border-radius:12px;box-sizing:border-box}
/* Focus + hover polish */
#footer #sib-form .sib-input .entry__field .input:focus{outline:none;border-color:rgba(67,186,255,.5);box-shadow:0 0 0 3px rgba(67,186,255,.15)}
#footer .sib-form-block__button:hover,
#footer .sib-form-block__button button:hover,
#footer .sib-form-block__button a:hover{filter:brightness(0.97)}
@media (max-width: 767.98px){#footer .sib-form-block__button, #footer .sib-form-block__button button, #footer .sib-form-block__button a{width:100%}}

/* AI Quote Assistant */
.ai-box{border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,0.02);backdrop-filter: blur(6px)}
.ai-input{width:100%;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 14px;color:var(--white);min-height:48px}
.ai-input::placeholder{color:rgba(255,255,255,0.55)}
.ai-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(67,186,255,.15)}
.ai-input-row{display:flex;gap:10px;align-items:center}
.ai-chat{border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(0,0,0,0.25);padding:14px;overflow:auto;min-height:220px;max-height:360px}
.ai-hint{color:rgba(255,255,255,0.7);font-size:14px}
.ai-pre{background:rgba(0,0,0,0.25);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px;color:var(--white);white-space:pre-wrap}

/* Head spacing */
.ai-box .heading-section .title{margin-bottom:8px}

/* Disabled buttons */
.tf-btn[disabled], .tf-btn.white[disabled]{opacity:.5;cursor:not-allowed}

/* Chat bubbles */
.ai-chat .d-flex{gap:8px;flex-direction:column}
.ai-chat .bg-light{background:rgba(255,255,255,0.06)!important;border-color:var(--stroke-2)!important;color:var(--white)!important}
.ai-chat .bg-primary{background:var(--brand-500)!important;border:1px solid var(--brand-500)!important}
.ai-chat .msg{display:flex;align-items:flex-end;gap:8px}
.ai-chat .msg.left{justify-content:flex-start}
.ai-chat .msg.right{justify-content:flex-end}
.ai-chat .msg .avatar{width:24px;height:24px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12)}
.ai-chat .msg.right .avatar{background:var(--brand-500);border-color:var(--brand-500)}
.ai-sep{height:6px}
.ai-chat .bubble{box-shadow:0 1px 0 rgba(0,0,0,.2);animation:bubbleIn .22s ease}

/* Typing indicator */
.ai-typing{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.75);font-size:14px}
.ai-typing .dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.7);opacity:.7;animation:blink 1.2s infinite ease-in-out}
.ai-typing .dot:nth-child(2){animation-delay:.2s}
.ai-typing .dot:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.2}40%{opacity:1}}

@keyframes bubbleIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* Chat timestamp */
.ai-chat .timestamp{font-size:12px;opacity:.6;margin-top:4px}

/* Progress steps */
.ai-steps{display:flex;gap:14px;align-items:center}
.ai-step{display:flex;align-items:center;gap:8px;opacity:.6}
.ai-step .idx{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.18);color:var(--white);font-size:13px}
.ai-step .label{font-size:14px;color:rgba(255,255,255,.8)}
.ai-step.active{opacity:1}
.ai-step.active .idx{background:var(--brand-500);border-color:var(--brand-500)}

/* Success modal */
.ai-modal{position:fixed;inset:0;z-index:1050;display:none}
.ai-modal.open{display:block}
.ai-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(2px);opacity:1}
.ai-modal-dialog{position:relative;max-width:520px;margin:10vh auto 0;z-index:1}
.ai-modal-body{border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(25,39,43,.98);padding:24px}

/* Safari-specific fixes for nice-select dropdown */
@supports (-webkit-appearance: none) {
  .form-contact-us.style-bg-dark-2 .nice-select {
    -webkit-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
    position: relative !important;
  }
  
  .form-contact-us.style-bg-dark-2 .nice-select::before {
    display: block !important;
    pointer-events: none !important;
    z-index: 2 !important;
  }
  
  .form-contact-us.style-bg-dark-2 .nice-select > span {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    padding-right: 30px !important;
  }
  
  .form-contact-us.style-bg-dark-2 .nice-select .list {
    background-color: var(--main-dark) !important;
    border: 1px solid var(--stroke-2) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
  }
  
  .form-contact-us.style-bg-dark-2 .nice-select .list .option {
    color: var(--white) !important;
    background-color: transparent !important;
  }
  
  .form-contact-us.style-bg-dark-2 .nice-select .list .option:hover,
  .form-contact-us.style-bg-dark-2 .nice-select .list .option.focus {
    background-color: rgba(255,255,255,0.1) !important;
  }
  
  .form-contact-us.style-bg-dark-2 .nice-select .list .option.selected {
    background-color: rgba(255,255,255,0.15) !important;
    color: var(--white) !important;
  }
}
