@font-face {
   font-family: 'geo';
   src: url('../fonts/geometos-webfont.woff2') format('woff2'),
        url('../fonts/geometos-webfont.woff') format('woff');
   font-weight: normal;
   font-style: normal;
   font-display: swap;
}

@font-face {
   font-family: 'rupee';
   src: url('../fonts/itf_rupee-webfont.woff2') format('woff2'),
        url('../fonts/itf_rupee-webfont.woff') format('woff');
   font-weight: normal;
   font-style: normal;
   font-display: swap;
}

@font-face {
   font-family: 'vag-bold';
   src: url('../fonts/vagroundedstd-bold-webfont.woff2') format('woff2'),
        url('../fonts/vagroundedstd-bold-webfont.woff') format('woff');
   font-weight: normal;
   font-style: normal;
   font-display: swap;
}

@font-face {
   font-family: 'vag-light';
   src: url('../fonts/vagroundedstd-light-webfont.woff2') format('woff2'),
        url('../fonts/vagroundedstd-light-webfont.woff') format('woff');
   font-weight: normal;
   font-style: normal;
   font-display: swap;
}

:root {
   --brand-maroon: #97262A;
   --nippon-red: #EE1132;
   --nippon-grey: #58595B;
   --nippon-grey-light: #d0d2d3;

   --brand-blue: #2a54a0;
   --brand-green: #36b24a;
   --brand-red: #97282a;
   --color-danger: #dc3545;
   --brand-yellow: #f8a51c;
   --light-brown: #eba374;
   --pink-vary-dark: #f7d8bc;
   --pink-dark: #f8e5d3;
   --pink-light: #fcf2e7;
   --grey-dark: #4d4e4e;
   --grey-light: #666666;
   --grey-very-light: #f1f1f2;
   --light-blue: #e4f5f9;
   --form-bg: #e6e7e8;
   --color-placeholder: #b8b8b8;
   --alice-blue: #E0F2FF;

   --ff-geo: 'geo';
   --ff-rupee: 'rupee';
   --ff-vag-light: 'vag-light';
   --ff-vag-bold: 'vag-bold';

   --nav-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
   --input-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
   --form-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
   --box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}

.font-geo { font-family: var(--ff-geo);}
.font-rupee { font-family: var(--ff-rupee);}
.font-vag-light { font-family: var(--ff-vag-light);}
.font-vag-bold { font-family: var(--ff-vag-bold);}

.bg-brand-blue { background-color: var(--brand-maroon); }
.bg-brand-green { background-color: var(--brand-green); }
.bg-brand-red { background-color: var(--brand-red); }
.bg-brand-yellow { background-color: var(--brand-yellow); }
.bg-pink-dark { background-color: var(--pink-dark); }
.bg-pink-light { background-color: var(--pink-light); }
.bg-grey-dark { background-color: var(--grey-dark); }
.bg-grey-light { background-color: var(--grey-light); }
.bg-grey-very-light { background-color: var(--grey-very-light); }
.bg-pink-very-dark { background-color: var(--pink-vary-dark); }
.bg-light-brown { background-color: var(--light-brown); }
.bg-form { background-color: var(--form-bg); }
.bg-light-blue { background-color: var(--light-blue); }
.bg-nippon-grey-light { background-color: var(--nippon-grey-light); }

.text-brand-blue {
    color: var(--brand-maroon);
}
.text-brand-green { color: var(--brand-green); }
.text-brand-red { color: var(--brand-red); }
.text-brand-yellow { color: var(--brand-yellow); }
.text-pink-dark { color: var(--pink-dark); }
.text-pink-light { color: var(--pink-light); }
.text-grey-dark { color: var(--grey-dark); }
.text-grey-light { color: var(--grey-light); }

.shadow-1 { box-shadow: var(--nav-shadow);}
.box-shadow { box-shadow: var(--box-shadow);}

.dark-pink-border { border: 4px solid var(--pink-dark); }
.light-pink-border { border: 4px solid var(--pink-light); }
.very-dark-pink-border { border: 4px solid var(--pink-vary-dark); }
.light-blue-border { border: 4px solid var(--grey-very-light) }

.max-content {  max-width: max-content;}

.bg-alice-blue {
   background-color: var(--grey-very-light);
}

.content-wrapper {
   max-width: 120rem;
   margin-inline: auto;
   padding-inline: 1rem;

   @media (min-width: 768px) {
      padding-inline: 2rem;
   }

   @media (min-width: 992px) {
      padding-inline: 2.5rem;
   }

   @media (min-width: 1200px) {
      padding-inline: 4rem;
   }

   @media (min-width: 1680px) {
      padding-inline: 5rem;
   }
}

body {
   font-family: var(--ff-vag-light);
   background-color: var(--grey-very-light);
}

.btn {
   display: block;
   max-width: max-content;
   border-radius: .75rem;
}

.outlined-btn,
.outlined-btn:hover,
.outlined-btn:active,
.outlined-btn:focus,
.outlined-btn:focus-visible {
   border: 1px solid var(--brand-maroon);
   color: var(--brand-maroon);
}

.outlined-btn:focus,
.outlined-btn:focus-visible {
   outline: 2px solid var(--brand-maroon);
   outline-offset: 2px;
   color: var(--brand-maroon);
}

ul li,
ol li {
   list-style: none;
}

.btn.bg-brand-blue:hover,
.btn.bg-brand-blue:active,
.btn.bg-brand-blue:focus,
.btn.bg-brand-blue:focus-visible {
   background-color: var(--brand-maroon);
   color: white;
}

.btn.bg-brand-blue:focus,
.btn.bg-brand-blue:focus-visible {
   outline: 2px solid var(--brand-maroon);
   outline-offset: 2px;
   background-color: var(--brand-maroon);
   color: white;
}

.form-label,
.form-check-label {
   font-size: clamp(0.875rem, 0.8391rem + 0.1533vw, 1rem);
   font-weight: 500;
}

.form-check {
   padding-left: 2rem;
}

.form-control::placeholder,
.form-select::placeholder,
.form-select:invalid  {
   color: var(--color-placeholder);
}

.form-select {
   color: black !important;
}

.form-check-input:checked {
   background-color: var(--brand-maroon);
   border-color: var(--brand-maroon);
}

/* .form-check-input:checked[type=checkbox] {
   --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%232a54a0' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")
} */

.primary-header {
   border-bottom: 1px solid var(--nippon-red);
}

.primary-nav-inner {
   padding-block: .5rem;
   max-width: 120rem;
}

.header-logo {
   max-width: 8rem;
   padding-inline-start: 16px;

}

.hero-content {
   display: grid;
   grid-template-columns: 1fr;
}

.grey-form,
.main-premium-form {
   border-radius: 1rem;
}

.main-premium-form {
   background-color: var(--form-bg);
}

.main-premium-form h3 {
   font-size: clamp(1.25rem, 1.1782rem + 0.3065vw, 1.5rem);
}

.main-premium-form .single-check {
   font-size: .5rem
}

.custom-label {
   font-family: var(--ff-vag-light);
   color: grey;
   transition: all 0.2s ease;
}

.form-check-input:checked + .custom-label {
   font-family: var(--ff-vag-bold);
   color: black;
}

.otp-form-group label,
.otp-form-group button {
   font-size: clamp(0.625rem, 0.581rem + 0.1878vw, 0.75rem);
}

.otp-form-group input {
   max-width: 12.5rem;
}

.form-text.error-msg-text {
   min-height: .75rem;
   font-size: clamp(0.625rem, 0.5891rem + 0.1533vw, 0.75rem);
   display: block;
   visibility: hidden;
}
 
.was-validated .form-control:invalid ~ .error-msg-text,
.form-control.is-invalid ~ .error-msg-text,
.form-select.is-invalid ~ .error-msg-text {
   visibility: visible;
}

.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked {
   background-color: var(--brand-maroon);
   border-color: var(--brand-maroon);
}

.h2-heading,
.h3-heading {
   position: relative;
}

.h2-heading::before,
.h3-heading::before {
   content: '';
   position: absolute;
   left: 50%;
   bottom: 0;
   transform: translateX(-50%);
   height: .25rem;
   width: 6.25rem;
   border-radius: 1rem;
   background-color: var(--nippon-grey);
}

.h2-heading {
   font-size: clamp(1.5rem, 1.3239rem + 0.7512vw, 2rem);
   padding: .75rem 0;
}

.h3-heading {
   font-size: clamp(1.125rem, 0.9878rem + 0.5854vw, 1.5rem);
   padding: .75rem 0;
}

.h4-heading {
   font-size: clamp(1.5rem, 1.3171rem + 0.7805vw, 2rem);
}

.section-para {
   font-size: clamp(0.9375rem, 0.8689rem + 0.2927vw, 1.125rem);
   max-width: 60rem;
   line-height: 1.3;
}

.highlights-list {
   max-width: 62.5rem;
}

.highlights-list li {
   grid-column: span 2;
   background-color: white;
   padding: 1rem;
   border-radius: .75rem;
   box-shadow: 6px 6px 0px 0px var(--brand-maroon);
   font-size: clamp(1rem, 0.868rem + 0.5634vw, 1.375rem);
   width: 15rem;
}

.option-para {
   max-width: 62.5rem;
   font-size: clamp(0.875rem, 0.787rem + 0.3756vw, 1.125rem);
   line-height: 1.4;
}

.option-para-lg {
   font-size: clamp(1rem, 0.912rem + 0.3756vw, 1.25rem);
   line-height: 1.4;
   font-weight: 500;
}

.term-grid {
   display: grid;
   align-items: center;
   justify-content: center;
   grid-template-columns: 1fr;
   gap: .5rem;
   margin: 1.5rem 0 2rem;
}

.term-grid .term-para {
   font-size: clamp(1rem, 0.8864rem + 0.4848vw, 1.25rem);
   background-color: white;
   border-radius: .325rem;
   padding: .5rem 1rem;
   text-align: center;
   width: 100%;
}

.scenario-heading {
   font-family: var(--ff-geo);
   font-size: clamp(1.125rem, 0.8963rem + 0.9756vw, 1.75rem);
   color: var(--brand-red);
}

.example-image-wrapper {
   max-width: 75rem;
}

#optionsAccordion .accordion-button {
   border-radius: .5rem;
   box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
   font-size: clamp(1rem, 0.7799rem + 0.939vw, 1.625rem);
   min-height: 2.5rem;
}

#optionsAccordion .accordion-button:not(.collapsed) {
   color: var(--brand-maroon);
   background-color: var(--form-bg);
}

#optionsAccordion .accordion-button::after,
#optionsAccordion .accordion-button:not(.collapsed)::after,
#disclaimerAccordion .accordion-button::after,
#disclaimerAccordion .accordion-button:not(.collapsed)::after {
   background-image: url('../images/chevron.svg');
   background-position: center;
}

.small-text {
   font-size: clamp(0.625rem, 0.581rem + 0.1878vw, 0.75rem);
}

.medium-text {
   font-size: clamp(0.75rem, 0.6782rem + 0.3065vw, 1rem);
}

.disc-checkbox-text {
   font-size: clamp(0.75rem, 0.7141rem + 0.1533vw, 0.875rem);
}

.table > :not(caption) > * > * {
   background: transparent;
   color: unset;
}

.accordion-body .table-responsive {
   width: calc(100vw - 2rem);
   overflow-x: auto;
   min-width: 0;
}

.table-responsive {
   font-size: clamp(0.9375rem, 0.8918rem + 0.1951vw, 1.0625rem);
   min-width: 0;
}

.criteria-table thead th {
   font-size: clamp(1rem, 0.912rem + 0.3756vw, 1.25rem);
   height: 2.75rem;
}

.criteria-table tbody td {
   height: 3.5rem;
}

#optionsAccordion .faq-accordion {
   max-width: 62.5rem;
}

#optionsAccordion .faq-accordion .accordion-item {
   border-color: var(--nippon-grey);
}

#optionsAccordion .faq-accordion .accordion-button {
   background-color: transparent;
   font-family: var(--ff-vag-bold);
   color: var(--grey-dark);
   font-size: clamp(1rem, 0.8628rem + 0.5854vw, 1.375rem);
   padding: 1rem .5rem;
}

#optionsAccordion .faq-accordion .accordion-item .accordion-body {
   padding: 0 .5rem 1rem;
   font-size: clamp(0.875rem, 0.7835rem + 0.3902vw, 1.125rem);
   color: var(--grey-light);
   line-height: 1.2;
}

#optionsAccordion .faq-accordion .accordion-button:not(.collapsed) {
   background-color: transparent;
   color: var(--brand-maroon);
} 

#optionsAccordion .faq-accordion .accordion-button::after,
#optionsAccordion .faq-accordion .accordion-button:not(.collapsed)::after {
   background-image: url('../images/down.svg');
}

.download-btn {
   font-size: clamp(1rem, 0.8922rem + 0.4598vw, 1.375rem);
   /* min-width: max-content; */
   box-sizing: border-box;
}

.download-btn img {
   aspect-ratio: 1;
   max-width: 1.25rem;
   height: auto;
}

.download-btn-sm {
   font-size: clamp(0.875rem, 0.787rem + 0.3756vw, 1.125rem);
}

.download-btn-sm img {
   aspect-ratio: 1;
   max-width: 1.125rem;
}

.annuity-calc-wrapper {
   max-width: 32rem;
}

.details-header {
   z-index: 10;
}

.details-header::before {
   position: absolute;
   content: '';
   height: 100%;
   width: 2px;
   border-right: 2px dashed grey;
   z-index: 5;
}

.details-header h4 {
   font-size: clamp(1.25rem, 1.1063rem + 0.613vw, 1.75rem);
   z-index: 10;
}

.h5-heading {
   font-size: clamp(1rem, 0.8563rem + 0.613vw, 1.5rem);
}

.h6-heading {
   font-size: clamp(0.875rem, 0.7672rem + 0.4598vw, 1.25rem);
}

.docs-heading {
   font-size: clamp(1.125rem, 0.9813rem + 0.613vw, 1.625rem);
}

.group-details-wrapper {
   margin-bottom: 1.5rem;
}

#disclaimerAccordion .accordion-button {
   font-size: clamp(1rem, 0.8563rem + 0.613vw, 1.5rem);
   letter-spacing: 1px;
}

#disclaimerAccordion .accordion-button:not(.collapsed) {
   color: var(--brand-maroon);
   background-color: transparent;
}

.file-input {
   display: none;
}

.file-label {
   padding: .5rem .5rem;
   background-color: white;
   box-shadow: var(--box-shadow);
   color: var(--color-placeholder);
   font-size: 16px;
   cursor: pointer;
   transition: background-color 0.3s ease;
}

.file-upload-container .file-name,
.remove-file-btn {
   font-size: clamp(0.75rem, 0.706rem + 0.1878vw, 0.875rem);
}

.file-upload-container .file-name {
   max-width: calc(100% - 50px);
   overflow: hidden;
   text-overflow: ellipsis;
}

.remove-file-btn {
   border: 0;
   padding-inline: 0;
}

.remove-file-btn:active {
   border: 0;
}

/* Base style for the range */
.custom-range {
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
   width: 100%;
   height: 8px;
   background: linear-gradient(to right, var(--brand-maroon) 50%, #ccc 50%);
   /* background-color: var(--brand-maroon); */
   border-radius: 5px;
   outline: none;
   margin: .75rem 0;
   padding: 0;
}

/* Track - Webkit (Chrome, Safari, Edge) */
.custom-range::-webkit-slider-runnable-track {
   height: 8px;
   background: transparent;
   border-radius: 5px;
}

/* Thumb - Webkit */
.custom-range::-webkit-slider-thumb {
   -webkit-appearance: none;
   appearance: none;
   margin-top: -8px; /* Align thumb center */
   width: 24px;
   height: 24px;
   background-color: var(--brand-yellow);
   border: 4px solid var(--brand-maroon);
   border-radius: 50%;
   cursor: pointer;
   position: relative;
   z-index: 2;
}

/* Track - Firefox */
.custom-range::-moz-range-track {
   height: 8px;
   background: transparent;
   border-radius: 5px;
}

/* Thumb - Firefox */
.custom-range::-moz-range-thumb {
   width: 24px;
   height: 24px;
   background-color: var(--brand-yellow);
   border: 4px solid var(--brand-maroon);
   border-radius: 50%;
   cursor: pointer;
   position: relative;
   z-index: 2;
}

/* Track - IE (if needed) */
.custom-range::-ms-track {
   height: 8px;
   background: transparent;
   border-color: transparent;
   color: transparent;
}

/* Thumb - IE */
.custom-range::-ms-thumb {
   width: 24px;
   height: 24px;
   background-color: var(--brand-yellow);
   border: 4px solid var(--brand-maroon);
   border-radius: 50%;
   cursor: pointer;
   position: relative;
   z-index: 2;
}

/* Hide ugly IE track */
.custom-range::-ms-fill-lower {
   background: var(--brand-maroon);
   border-radius: 5px;
}
.custom-range::-ms-fill-upper {
   background: #ccc;
   border-radius: 5px;
}

.custom-range-text-input:focus-visible {
   outline: 0;
}

.floating-download-brochure {
   position: fixed;
   top: 50%;
   transform: translateY(-50%);
   display: flex;
   background-color: var(--brand-maroon);
   z-index: 100;
   border-radius: 1.5rem 1.5rem 0 0;
   letter-spacing: .5px;
   right: -94px;
   transform: rotate(-90deg);
   overflow: hidden;
}

.download-brochure-link {
   padding: .5rem 1.5rem;
   cursor: pointer;
}

.dropdown-list {
   position: absolute;
   width: 100%;
   background: white;
   border: 1px solid #ccc;
   max-height: 200px;
   overflow-y: auto;
   display: none;
   z-index: 100;
}

.dropdown-list div {
   padding: 2px 12px;
   cursor: pointer;
}

.dropdown-list div:hover {
   background: #3c2afc;
   color: white;
}

.autocomplete-dropdown .form-control.is-invalid,.was-validated .form-control:invalid {
   padding-right: calc(1.5em + 2.5rem);
   background-position: right calc(.375em + 2rem) center;
}

/* comment this style if you want form field validation tick icon to be shown */
.form-control.is-valid,.was-validated .form-control:valid {
   padding-right: .75rem;
   background-image: none;
}

.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"] {
   --bs-form-select-bg-icon: none;
   padding-right: 2.125rem;
}

@media only screen and (min-width: 768px) {
   .term-grid {
      grid-template-columns: 1fr 1fr;
      gap: .5rem 1.5rem;
   }

   .term-grid .term-para {
      background-color: transparent;
   }

   .term-grid .term-para:nth-child(odd) {
      background: transparent;
      background: linear-gradient(90deg, transparent 65%, white);
   }

   .term-grid .term-para:nth-child(even) {
      background: transparent;
      background: linear-gradient(-90deg, transparent 65%, white);
   }

   .accordion-body .table-responsive {
      width: calc(100vw - 4rem);
   }

   .download-btn img {
      max-width: 1.5rem;
   }
   
   .details-header::before {
      height: 2px;
      width: 12.5rem;
      border-right: 0;
      border-top: 2px dashed grey;
   }
   
}

@media only screen and (min-width: 992px) {
   .header-logo {
      max-width: 11rem;
      padding-inline-start: 0;
   }

   .hero-content {
      grid-template-columns: 1fr 1fr;
      background-image: url('../images/hero-bg.webp');
      background-position: left bottom;
      background-size: cover;
      background-repeat: no-repeat;
   }

   .highlights-list li {
      width: 17.5rem;
   }

   .term-grid {
      gap: .75rem 3rem;
      margin: 2rem 0 3rem;
   }

   #optionsAccordion .accordion-button {
      min-height: 3.5rem;
   }

   .accordion-body .table-responsive {
      width: calc(100vw - 5rem);
   }

   #optionsAccordion .faq-accordion .accordion-button {
      padding: 1.25rem .5rem;
   }
   
   #optionsAccordion .faq-accordion .accordion-item .accordion-body {
      padding: 0 .5rem 1.25rem;
   }

   #optionsAccordion .faq-accordion .accordion-button::after,
   #optionsAccordion .faq-accordion .accordion-button:not(.collapsed)::after {
      width: 1.5rem;
      height: 1.5rem;
      background-size: 1.5rem;
   } 

   .group-details-wrapper {
      margin-bottom: 2rem;
   }

   .file-label {
      padding: .75rem .5rem;
   }

   .file-upload-label {
      min-height: 60px;
   }

}

@media only screen and (min-width: 1200px) {
   .hero-content {
      grid-template-columns: 1.5fr 1fr;
      min-height: 45rem;
   }

   .accordion-body .table-responsive {
      width: calc(100vw - 8rem);
   }

   .annuity-calc-wrapper {
      max-width: 48rem;
   }
}

@media only screen and (min-width: 1400px) {

   .hero-content {
      min-height: 50.625rem;
   }
}

@media only screen and (min-width: 1510px) {
   .file-upload-label {
      min-height: 40px;
   }
}

@media only screen and (min-width: 1680px) {
   /* .primary-nav-inner {
      padding-block: 1rem;
   } */

   /* .header-logo {
      max-width: 20rem;
   } */

   .hero-content {
      grid-template-columns: 1.4fr 1fr;
      background-size: contain;
   }

   .hero-image {
      padding-top: 4rem;
   }

   .accordion-body .table-responsive {
      width: calc(100vw - 10rem);
   }
}

/* ********   Expert pop-up styles for pop-up and button ************* */

.callback {
   position: relative;
   background-image: linear-gradient(234deg,#97262a 34%, #af464a 100%);
   color: white;
   border-radius: 10px;
   letter-spacing: 1px;
}
.callback:disabled {
   background-image: linear-gradient(234deg,#b93034 34%, #c34d51 100%);
}
.ask {
   position: relative;
   background-color: #FEF5ED;
   border-radius: 12px;
}
.contact-details {
   background-color: #f6f6f6;
   font-size: .875rem;
   border-radius: 10px;
}
.modal-sizing {
   border-radius: 16px;
}
.btn-ok {
   border-radius: 10px;
   background-color: var(--brand-maroon);
   color: #efefef;
   font-size: 14px;
   padding-top: 10px;
   padding-bottom: 10px;
}
.btn-ok:hover {
   background-color: var(--brand-maroon);
   color: #efefef;
}
.btn-expert {
   max-width: max-content;
   font-size: 12px;
   background-color: transparent;
   padding: 8px;
   color: var(--brand-maroon);
   font-weight: 600;
}
.btn-expert:hover,
.btn-expert:active,
.btn-expert:focus,
.btn-expert:focus-visible {
   background-color: transparent;
   color: var(--brand-maroon);
}
.btn-expert img {
   height: 24px;
   width: 24px;
}
.btn-expert span {
   white-space: nowrap;
}
.seperator {
   letter-spacing: .5px;
   color: var(--brand-maroon);
}

.call-center-div {
   gap: 10px;
}

.call-center-div p {
   margin-top: 2px;
}

.faqs-grid {
   display: grid;
   grid-template-columns: 1fr 1.5fr;
   gap: .5rem;
   padding-top: .5rem;
   font-size: clamp(0.875rem, 0.787rem + 0.3756vw, 1.125rem);
   max-width: 52rem;
}

.faqs-grid > div {
   box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}

.faqs-row-col-span-2 {
   grid-row: span 2;
}

.faqs-col-span-2 {
   grid-column: span 2;
}

@media screen and (min-width: 992px) {
   .btn-expert {            
       font-size: 16px;
   }
   .btn-ok {
       font-size: 16px;
   }
}