.elementor-kit-1523{--e-global-color-primary:#042541;--e-global-color-secondary:#D51F26;--e-global-color-text:#720E1D;--e-global-color-accent:#F6DFB3;--e-global-color-35d8e36:#E02128;--e-global-color-d8f197c:#11304B;--e-global-color-5f30ed2:#FFEABC;--e-global-color-5ed2764:#FFFFFF;--e-global-color-7fb9ce3:#B6D8E4;--e-global-color-e482bc5:#EEF1F5;--e-global-color-9712174:#212121;--e-global-color-ac32950:#E8E6EA;--e-global-color-44be6dc:#000000;--e-global-color-b4316b1:#B6D8E4;--e-global-typography-primary-font-family:"Libre Franklin";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Lato";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Lato";--e-global-typography-text-font-size:clamp(18px, 17.17px + 0.217vw, 20px);--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.55;--e-global-typography-text-letter-spacing:0;--e-global-typography-accent-font-family:"Lato";--e-global-typography-accent-font-weight:500;--e-global-typography-42e7b57-font-family:"Libre Franklin";--e-global-typography-42e7b57-font-size:clamp(38px, 30.98px + 1.848vw, 55px);--e-global-typography-42e7b57-font-weight:500;--e-global-typography-42e7b57-text-transform:capitalize;--e-global-typography-42e7b57-font-style:normal;--e-global-typography-42e7b57-line-height:1.05;--e-global-typography-42e7b57-letter-spacing:−0.025em;--e-global-typography-3d7f1ce-font-family:"Libre Franklin";--e-global-typography-3d7f1ce-font-size:clamp(38px, 30.98px + 1.848vw, 55px);--e-global-typography-3d7f1ce-font-weight:600;--e-global-typography-3d7f1ce-line-height:1.05;--e-global-typography-3d7f1ce-letter-spacing:−0.025em;--e-global-typography-999b4ec-font-family:"Libre Franklin";--e-global-typography-999b4ec-font-size:clamp(30px, 25.87px + 1.087vw, 40px);--e-global-typography-999b4ec-font-weight:500;--e-global-typography-999b4ec-line-height:1.2;--e-global-typography-999b4ec-letter-spacing:−0.025em;--e-global-typography-c075eec-font-family:"Libre Franklin";--e-global-typography-c075eec-font-size:clamp(30px, 25.87px + 1.087vw, 40px);--e-global-typography-c075eec-font-weight:600;--e-global-typography-c075eec-line-height:1.2;--e-global-typography-c075eec-letter-spacing:−0.025em;--e-global-typography-eb0b5fe-font-family:"Libre Franklin";--e-global-typography-eb0b5fe-font-size:clamp(24px, 21.52px + 0.652vw, 30px);--e-global-typography-eb0b5fe-font-weight:600;--e-global-typography-eb0b5fe-line-height:1.25;--e-global-typography-eb0b5fe-letter-spacing:−0.02em;--e-global-typography-bf3616f-font-family:"Libre Franklin";--e-global-typography-bf3616f-font-size:clamp(21px, 18.93px + 0.543vw, 26px);--e-global-typography-bf3616f-font-weight:600;--e-global-typography-bf3616f-line-height:1.3;--e-global-typography-bf3616f-letter-spacing:−0.01em;--e-global-typography-b503769-font-family:"Libre Franklin";--e-global-typography-b503769-font-size:clamp(19px, 17.76px + 0.326vw, 22px);--e-global-typography-b503769-font-weight:600;--e-global-typography-b503769-line-height:1.4;--e-global-typography-b503769-letter-spacing:−0.01em;--e-global-typography-64ad4c9-font-family:"Libre Franklin";--e-global-typography-64ad4c9-font-size:clamp(18px, 17.17px + 0.217vw, 20px);--e-global-typography-64ad4c9-font-weight:600;--e-global-typography-64ad4c9-line-height:1.5;--e-global-typography-64ad4c9-letter-spacing:−0.01em;--e-global-typography-2528ec8-font-family:"Lato";--e-global-typography-2528ec8-font-size:clamp(20px, 19.17px + 0.217vw, 22px);--e-global-typography-2528ec8-font-weight:400;--e-global-typography-2528ec8-line-height:1.55;--e-global-typography-2528ec8-letter-spacing:0;--e-global-typography-7f99bed-font-family:"Lato";--e-global-typography-7f99bed-font-size:clamp(18px, 17.17px + 0.217vw, 20px);--e-global-typography-7f99bed-font-weight:400;--e-global-typography-7f99bed-line-height:1.55;--e-global-typography-7f99bed-letter-spacing:0;--e-global-typography-cea58cc-font-family:"Lato";--e-global-typography-cea58cc-font-size:clamp(16px, 15.59px + 0.109vw, 17px);--e-global-typography-cea58cc-line-height:1.5;--e-global-typography-cea58cc-letter-spacing:0;--e-global-typography-5704cc9-font-family:"Lato";--e-global-typography-5704cc9-font-size:clamp(16px, 14.35px + 0.435vw, 20px);--e-global-typography-5704cc9-font-weight:600;--e-global-typography-5704cc9-text-transform:uppercase;--e-global-typography-5704cc9-line-height:1.5;--e-global-typography-5704cc9-letter-spacing:0.1em;--e-global-typography-215dfa5-font-family:"Lato";--e-global-typography-215dfa5-font-size:13px;--e-global-typography-215dfa5-font-weight:600;--e-global-typography-215dfa5-line-height:1.55;--e-global-typography-215dfa5-letter-spacing:0;--e-global-typography-05f606a-font-family:"Lato";--e-global-typography-05f606a-font-size:clamp(18px, 17.17px + 0.217vw, 20px);--e-global-typography-05f606a-font-weight:600;--e-global-typography-05f606a-line-height:1.55;--e-global-typography-05f606a-letter-spacing:0;--e-global-typography-5b5a251-font-family:"Lato";--e-global-typography-5b5a251-font-size:clamp(16px, 15.17px + 0.217vw, 18px);--e-global-typography-5b5a251-font-weight:600;--e-global-typography-5b5a251-line-height:1.55;--e-global-typography-5b5a251-letter-spacing:0;--e-global-typography-d7d8af4-font-family:"Lato";--e-global-typography-d7d8af4-font-size:clamp(15px, 13.97px + 0.272vw, 17.5px);--e-global-typography-d7d8af4-font-weight:600;--e-global-typography-d7d8af4-line-height:1.55;--e-global-typography-d7d8af4-letter-spacing:0;background-color:transparent;color:var( --e-global-color-9712174 );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );background-image:linear-gradient(270deg, #F3F1E0 -41.67%, #F1F1F5 163.33%);}.elementor-kit-1523 button,.elementor-kit-1523 input[type="button"],.elementor-kit-1523 input[type="submit"],.elementor-kit-1523 .elementor-button{background-color:var( --e-global-color-secondary );font-family:var( --e-global-typography-5b5a251-font-family ), Sans-serif;font-size:var( --e-global-typography-5b5a251-font-size );font-weight:var( --e-global-typography-5b5a251-font-weight );line-height:var( --e-global-typography-5b5a251-line-height );letter-spacing:var( --e-global-typography-5b5a251-letter-spacing );color:var( --e-global-color-5ed2764 );border-radius:8px 8px 8px 8px;padding:15px 30px 15px 30px;}.elementor-kit-1523 button:hover,.elementor-kit-1523 button:focus,.elementor-kit-1523 input[type="button"]:hover,.elementor-kit-1523 input[type="button"]:focus,.elementor-kit-1523 input[type="submit"]:hover,.elementor-kit-1523 input[type="submit"]:focus,.elementor-kit-1523 .elementor-button:hover,.elementor-kit-1523 .elementor-button:focus{background-color:var( --e-global-color-35d8e36 );color:var( --e-global-color-5ed2764 );border-radius:8px 8px 8px 8px;}.elementor-kit-1523 a{color:var( --e-global-color-secondary );}.elementor-kit-1523 a:hover{color:var( --e-global-color-35d8e36 );}.elementor-kit-1523 h1{color:var( --e-global-color-primary );font-family:var( --e-global-typography-3d7f1ce-font-family ), Sans-serif;font-size:var( --e-global-typography-3d7f1ce-font-size );font-weight:var( --e-global-typography-3d7f1ce-font-weight );line-height:var( --e-global-typography-3d7f1ce-line-height );letter-spacing:var( --e-global-typography-3d7f1ce-letter-spacing );}.elementor-kit-1523 h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-c075eec-font-family ), Sans-serif;font-size:var( --e-global-typography-c075eec-font-size );font-weight:var( --e-global-typography-c075eec-font-weight );line-height:var( --e-global-typography-c075eec-line-height );letter-spacing:var( --e-global-typography-c075eec-letter-spacing );}.elementor-kit-1523 h3{color:var( --e-global-color-primary );font-family:var( --e-global-typography-eb0b5fe-font-family ), Sans-serif;font-size:var( --e-global-typography-eb0b5fe-font-size );font-weight:var( --e-global-typography-eb0b5fe-font-weight );line-height:var( --e-global-typography-eb0b5fe-line-height );letter-spacing:var( --e-global-typography-eb0b5fe-letter-spacing );}.elementor-kit-1523 h4{color:var( --e-global-color-primary );font-family:var( --e-global-typography-bf3616f-font-family ), Sans-serif;font-size:var( --e-global-typography-bf3616f-font-size );font-weight:var( --e-global-typography-bf3616f-font-weight );line-height:var( --e-global-typography-bf3616f-line-height );letter-spacing:var( --e-global-typography-bf3616f-letter-spacing );}.elementor-kit-1523 h5{color:var( --e-global-color-primary );font-family:var( --e-global-typography-b503769-font-family ), Sans-serif;font-size:var( --e-global-typography-b503769-font-size );font-weight:var( --e-global-typography-b503769-font-weight );line-height:var( --e-global-typography-b503769-line-height );letter-spacing:var( --e-global-typography-b503769-letter-spacing );}.elementor-kit-1523 h6{color:var( --e-global-color-primary );font-family:var( --e-global-typography-64ad4c9-font-family ), Sans-serif;font-size:var( --e-global-typography-64ad4c9-font-size );font-weight:var( --e-global-typography-64ad4c9-font-weight );line-height:var( --e-global-typography-64ad4c9-line-height );letter-spacing:var( --e-global-typography-64ad4c9-letter-spacing );}.elementor-kit-1523 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-1523 textarea:focus,.elementor-kit-1523 .elementor-field-textual:focus{color:var( --e-global-color-5ed2764 );accent-color:var( --e-global-color-secondary );background-color:var( --e-global-color-e482bc5 );border-style:solid;border-width:1px 1px 1px 1px;}.elementor-kit-1523 input:not([type="button"]):not([type="submit"]),.elementor-kit-1523 textarea,.elementor-kit-1523 .elementor-field-textual{padding:5px 5px 5px 5px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1300px;}.e-con{--container-max-width:1300px;--container-default-padding-top:clamp(60px, 43.48px + 4.348vw, 100px);--container-default-padding-right:20px;--container-default-padding-bottom:clamp(60px, 43.48px + 4.348vw, 100px);--container-default-padding-left:20px;}.elementor-widget:not(:last-child){margin-block-end:30px;}.elementor-element{--widgets-spacing:30px 30px;--widgets-spacing-row:30px;--widgets-spacing-column:30px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-1523{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-1523 h1{font-size:var( --e-global-typography-3d7f1ce-font-size );line-height:var( --e-global-typography-3d7f1ce-line-height );letter-spacing:var( --e-global-typography-3d7f1ce-letter-spacing );}.elementor-kit-1523 h2{font-size:var( --e-global-typography-c075eec-font-size );line-height:var( --e-global-typography-c075eec-line-height );letter-spacing:var( --e-global-typography-c075eec-letter-spacing );}.elementor-kit-1523 h3{font-size:var( --e-global-typography-eb0b5fe-font-size );line-height:var( --e-global-typography-eb0b5fe-line-height );letter-spacing:var( --e-global-typography-eb0b5fe-letter-spacing );}.elementor-kit-1523 h4{font-size:var( --e-global-typography-bf3616f-font-size );line-height:var( --e-global-typography-bf3616f-line-height );letter-spacing:var( --e-global-typography-bf3616f-letter-spacing );}.elementor-kit-1523 h5{font-size:var( --e-global-typography-b503769-font-size );line-height:var( --e-global-typography-b503769-line-height );letter-spacing:var( --e-global-typography-b503769-letter-spacing );}.elementor-kit-1523 h6{font-size:var( --e-global-typography-64ad4c9-font-size );line-height:var( --e-global-typography-64ad4c9-line-height );letter-spacing:var( --e-global-typography-64ad4c9-letter-spacing );}.elementor-kit-1523 button,.elementor-kit-1523 input[type="button"],.elementor-kit-1523 input[type="submit"],.elementor-kit-1523 .elementor-button{font-size:var( --e-global-typography-5b5a251-font-size );line-height:var( --e-global-typography-5b5a251-line-height );letter-spacing:var( --e-global-typography-5b5a251-letter-spacing );}}@media(max-width:767px){.elementor-kit-1523{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-1523 p{margin-block-end:1.5vh;}.elementor-kit-1523 h1{font-size:var( --e-global-typography-3d7f1ce-font-size );line-height:var( --e-global-typography-3d7f1ce-line-height );letter-spacing:var( --e-global-typography-3d7f1ce-letter-spacing );}.elementor-kit-1523 h2{font-size:var( --e-global-typography-c075eec-font-size );line-height:var( --e-global-typography-c075eec-line-height );letter-spacing:var( --e-global-typography-c075eec-letter-spacing );}.elementor-kit-1523 h3{font-size:var( --e-global-typography-eb0b5fe-font-size );line-height:var( --e-global-typography-eb0b5fe-line-height );letter-spacing:var( --e-global-typography-eb0b5fe-letter-spacing );}.elementor-kit-1523 h4{font-size:var( --e-global-typography-bf3616f-font-size );line-height:var( --e-global-typography-bf3616f-line-height );letter-spacing:var( --e-global-typography-bf3616f-letter-spacing );}.elementor-kit-1523 h5{font-size:var( --e-global-typography-b503769-font-size );line-height:var( --e-global-typography-b503769-line-height );letter-spacing:var( --e-global-typography-b503769-letter-spacing );}.elementor-kit-1523 h6{font-size:var( --e-global-typography-64ad4c9-font-size );line-height:var( --e-global-typography-64ad4c9-line-height );letter-spacing:var( --e-global-typography-64ad4c9-letter-spacing );}.elementor-kit-1523 button,.elementor-kit-1523 input[type="button"],.elementor-kit-1523 input[type="submit"],.elementor-kit-1523 .elementor-button{font-size:var( --e-global-typography-5b5a251-font-size );line-height:var( --e-global-typography-5b5a251-line-height );letter-spacing:var( --e-global-typography-5b5a251-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:381px){.elementor-kit-1523{--e-global-typography-text-font-size:18px;--e-global-typography-text-line-height:1.65;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-1523 p{margin-block-end:2vh;}.elementor-kit-1523 h1{font-size:var( --e-global-typography-3d7f1ce-font-size );line-height:var( --e-global-typography-3d7f1ce-line-height );letter-spacing:var( --e-global-typography-3d7f1ce-letter-spacing );}.elementor-kit-1523 h2{font-size:var( --e-global-typography-c075eec-font-size );line-height:var( --e-global-typography-c075eec-line-height );letter-spacing:var( --e-global-typography-c075eec-letter-spacing );}.elementor-kit-1523 h3{font-size:var( --e-global-typography-eb0b5fe-font-size );line-height:var( --e-global-typography-eb0b5fe-line-height );letter-spacing:var( --e-global-typography-eb0b5fe-letter-spacing );}.elementor-kit-1523 h4{font-size:var( --e-global-typography-bf3616f-font-size );line-height:var( --e-global-typography-bf3616f-line-height );letter-spacing:var( --e-global-typography-bf3616f-letter-spacing );}.elementor-kit-1523 h5{font-size:var( --e-global-typography-b503769-font-size );line-height:var( --e-global-typography-b503769-line-height );letter-spacing:var( --e-global-typography-b503769-letter-spacing );}.elementor-kit-1523 h6{font-size:var( --e-global-typography-64ad4c9-font-size );line-height:var( --e-global-typography-64ad4c9-line-height );letter-spacing:var( --e-global-typography-64ad4c9-letter-spacing );}.elementor-kit-1523 button,.elementor-kit-1523 input[type="button"],.elementor-kit-1523 input[type="submit"],.elementor-kit-1523 .elementor-button{font-size:var( --e-global-typography-5b5a251-font-size );line-height:var( --e-global-typography-5b5a251-line-height );letter-spacing:var( --e-global-typography-5b5a251-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* .white-links, .white-links:visited {
	font-family: Montserrat !important;
	font-size: 20px !important;
	text-decoration: underline !important;
	font-weight: 700 !important;
	color: #fff !important;
}

.white-links:hover, .white-links:active {
	color: #190D39 !important;
}

.footer-links {
    color: #fff;
}

.footer-links:hover {
    color: #de7d3b !important;
} */

/* ==========================================================================
   Fluid range: 380px (mobile) -> 1300px (desktop). Values are px/vw, so they
   work on a 16px-root WordPress site (Lovable uses a 20px root).
   Max = exact Lovable value. Min = recommended mobile size (the Lovable CSS
   pins headings with !important, so the mockup itself does not scale).
   ========================================================================== */

:root {
  /* ---- Colors ---- */
  --udr-navy:        #042541;
  --udr-red:         #D51F26;
  --udr-maroon:      #720E1D;
  --udr-cream:       #F6DFB3;
  --udr-sky:         #B6D8E4;
  --udr-mist:        #EEF1F5;
  --udr-ink:         #212121;
  --udr-white:       #FFFFFF;
  --udr-maroon-tint: #E8E6EA;
  --udr-mist-80:     rgba(238, 241, 245, .80);
  --udr-mist-70:     rgba(238, 241, 245, .70);
  --udr-cream-70:    rgba(246, 223, 179, .70);
  /* Button hover shades (measured from Lovable) */
  --udr-red-hover:   #E02128; /* red +5% brightness */
  --udr-navy-hover:  #042948; /* navy +10% brightness */
  --udr-cream-hover: #FFEABC; /* cream +5% brightness */

  /* ---- Fonts ---- */
  --udr-font-display: "Libre Franklin", system-ui, sans-serif;
  --udr-font-body:    "Lato", system-ui, sans-serif;

  /* ---- Custom Fonts (Elementor Global Fonts) ---- */
  --udr-fs-h1:        clamp(38px, 30.98px + 1.848vw, 55px);   /* lh 1.05  ls -0.025em */
  --udr-fs-h2:        clamp(30px, 25.87px + 1.087vw, 40px);   /* lh 1.2   ls -0.025em */
  --udr-fs-h3:        clamp(24px, 21.52px + 0.652vw, 30px);   /* lh 1.25  ls -0.02em  */
  --udr-fs-h4:        clamp(21px, 18.93px + 0.543vw, 26px);   /* lh 1.3   ls -0.01em  */
  --udr-fs-h5:        clamp(19px, 17.76px + 0.326vw, 22px);   /* lh 1.4   ls -0.01em  */
  --udr-fs-h6:        clamp(18px, 17.17px + 0.217vw, 20px);   /* lh 1.5   ls -0.01em  */
  --udr-fs-text-lg:   clamp(20px, 19.17px + 0.217vw, 22px);     /* lh 1.625 */
  --udr-fs-text-md:   clamp(18px, 17.17px + 0.217vw, 20px);   /* lh 1.55  */
  --udr-fs-text-sm:   clamp(16px, 15.59px + 0.109vw, 17px);   /* lh 1.5   */
  --udr-fs-label:     clamp(16px, 14.35px + 0.435vw, 20px);   /* 600 upper, ls 0.1em */
  --udr-fs-menu:      13px;                                   /* 600 */
  --udr-fs-btn-lg:    clamp(18px, 17.17px + 0.217vw, 20px);   /* 600 */
  --udr-fs-btn-md:    clamp(16px, 15.17px + 0.217vw, 18px);   /* 600 */
  --udr-fs-btn-sm:    clamp(15px, 13.97px + 0.272vw, 17.5px); /* 600 */
  --udr-fs-stat:      clamp(40px, 33.80px + 1.630vw, 55px);   /* lh 1 */

  /* ---- Spacing ---- */
  --udr-section-y:   clamp(60px, 43.48px + 4.348vw, 100px);
  --udr-band-y:      clamp(28px, 25.11px + 0.761vw, 35px);
  --udr-footer-y:    clamp(40px, 31.74px + 2.174vw, 60px);
  --udr-gutter:      20px;
  --udr-gap-xl:      clamp(40px, 31.74px + 2.174vw, 60px);
  --udr-gap-lg:      clamp(32px, 24.57px + 1.957vw, 50px);
  --udr-gap-md:      clamp(24px, 17.39px + 1.739vw, 40px);
  --udr-card-pad-xl: clamp(28px, 18.91px + 2.391vw, 50px);
  --udr-card-pad-lg: clamp(24px, 17.39px + 1.739vw, 40px);
  --udr-card-pad-md: clamp(20px, 15.87px + 1.087vw, 30px);
  --udr-btn-pad-x:   clamp(25px, 22.93px + 0.543vw, 30px);

  /* ---- Containers ---- */
  --udr-container:        1300px; /* main (incl. 20px side padding) */
  --udr-container-narrow: 960px;  /* intros, FAQ, final CTA */

  /* ---- Radius & shadow ---- */
  --udr-radius-btn:  8px;
  --udr-radius-card: 10px;
  --udr-radius-pill: 9999px;
  --udr-shadow-soft: 0 1px 2px rgba(33,33,33,.06), 0 4px 12px -4px rgba(4,37,65,.12);
  --udr-shadow-card: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px -1px rgba(0,0,0,.1);
  --udr-shadow-menu: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
}

/* ---- Base ---- */
/*body {*/
/*  background: var(--udr-mist);*/
/*  color: var(--udr-ink);*/
/*  font-family: var(--udr-font-body);*/
/*  font-size: var(--udr-fs-text-md);*/
/*  line-height: 1.55;*/
/*  -webkit-font-smoothing: antialiased;*/
/*}*/
h1, h2, h3, h4, h5, h6 {
  font-family: var(--udr-font-display);
  font-weight: 600;
  color: var(--udr-navy);
  letter-spacing: -0.01em;
  text-wrap: balance;
}
h1 { font-size: var(--udr-fs-h1); line-height: 1.05; letter-spacing: -0.025em; }
h2 { font-size: var(--udr-fs-h2); line-height: 1.2;  letter-spacing: -0.025em; }
h3 { font-size: var(--udr-fs-h3); line-height: 1.25; letter-spacing: -0.02em; }
h4 { font-size: var(--udr-fs-h4); line-height: 1.3; }
h5 { font-size: var(--udr-fs-h5); line-height: 1.4; }
h6 { font-size: var(--udr-fs-h6); line-height: 1.5; }

/* ==========================================================================
   Blog article headings — add class "udr-blog" to the Post Content widget
   (or the article container). H2 = 25px, matching the Lovable blog post.
   ========================================================================== */
:root {
  --udr-blog-h2: clamp(22px, 20.76px + 0.326vw, 25px); /* lh 1.35 ls -0.025em */
  --udr-blog-h3: clamp(20px, 19.17px + 0.217vw, 22px); /* lh 1.4  ls -0.02em  */
  --udr-blog-h4: clamp(19px, 18.59px + 0.109vw, 20px); /* lh 1.45 ls -0.01em  */
  --udr-blog-h5: clamp(18px, 17.59px + 0.109vw, 19px); /* lh 1.5  ls -0.01em  */
  --udr-blog-h6: clamp(17px, 16.59px + 0.109vw, 18px); /* lh 1.5  ls -0.01em  */
}
.udr-blog h2, .udr-blog h3, .udr-blog h4, .udr-blog h5, .udr-blog h6 {
  font-family: var(--udr-font-display); font-weight: 600; color: var(--udr-navy);
  margin: 1.6em 0 .5em;
}
.udr-blog h2 { font-size: var(--udr-blog-h2); line-height: 1.35; letter-spacing: -0.025em; }
.udr-blog h3 { font-size: var(--udr-blog-h3); line-height: 1.4;  letter-spacing: -0.02em; }
.udr-blog h4 { font-size: var(--udr-blog-h4); line-height: 1.45; letter-spacing: -0.01em; }
.udr-blog h5 { font-size: var(--udr-blog-h5); line-height: 1.5;  letter-spacing: -0.01em; }
.udr-blog h6 { font-size: var(--udr-blog-h6); line-height: 1.5;  letter-spacing: -0.01em; }
.udr-blog > :first-child, .udr-blog .elementor-widget-container > :first-child { margin-top: 0; }

/* ---- Utility classes (Advanced > CSS Classes) ---- */
.udr-on-navy h1, .udr-on-navy h2, .udr-on-navy h3, .udr-on-navy h4, .udr-on-navy h5, .udr-on-navy h6 { color: var(--udr-mist); }
.udr-on-navy p { color: var(--udr-mist-80); }
.udr-label   { font-family: var(--udr-font-body); font-size: var(--udr-fs-label); font-weight: 600;
               line-height: 1.5; text-transform: uppercase; letter-spacing: .1em; color: var(--udr-red); }
.udr-stat    { font-family: var(--udr-font-display); font-size: var(--udr-fs-stat); font-weight: 600;
               line-height: 1; color: var(--udr-navy); }
.udr-step-num{ font-family: var(--udr-font-display); font-size: var(--udr-fs-h3); font-weight: 600;
               color: var(--udr-red); font-variant-numeric: tabular-nums; }
.udr-section { padding-block: var(--udr-section-y); }

/* Buttons */
.udr-btn .elementor-button {
  font-family: var(--udr-font-body); font-size: var(--udr-fs-btn-md); font-weight: 600; line-height: 1.55;
  padding: 15px var(--udr-btn-pad-x); border-radius: var(--udr-radius-btn);
  transition: all .15s cubic-bezier(.4,0,.2,1);
}
.udr-btn--lg .elementor-button { font-size: var(--udr-fs-btn-lg); padding: 17.5px 40px; }
.udr-btn--sm .elementor-button { font-size: var(--udr-fs-btn-sm); padding: 10px 15px; }
.udr-btn--red   .elementor-button { background: var(--udr-red);   color: #fff; }
.udr-btn--navy  .elementor-button { background: var(--udr-navy);  color: var(--udr-mist); }
.udr-btn--cream .elementor-button { background: var(--udr-cream); color: var(--udr-ink); }
.udr-btn--red   .elementor-button:hover { background: var(--udr-red-hover);   color: #fff; }
.udr-btn--navy  .elementor-button:hover { background: var(--udr-navy-hover);  color: var(--udr-mist); }
.udr-btn--cream .elementor-button:hover { background: var(--udr-cream-hover); color: var(--udr-ink); }

/* Cards */
.udr-card { background: #fff; border: 1px solid var(--udr-sky); border-radius: var(--udr-radius-card);
            padding: var(--udr-card-pad-md); }
.udr-card--navy  { background: var(--udr-navy); color: var(--udr-mist); padding: var(--udr-card-pad-lg); }
.udr-card--quote { background: #fff; border: 0; box-shadow: var(--udr-shadow-card); padding: var(--udr-card-pad-xl); }

/* Pulse dot effect */

.pulse-dot {
  position: relative;
  display: inline-flex;
  height: 12px;
  width: 12px;
  flex-shrink: 0;
  vertical-align: middle;
}

.pulse-dot__ping,
.pulse-dot__core {
  border-radius: 9999px;
  background-color: var(--pulse-color, #ef4444);
}

.pulse-dot__ping {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
  opacity: 0.6;
  animation: pulse-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.pulse-dot__core {
  position: relative;
  height: 12px;
  width: 12px;
}

@keyframes pulse-ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

/* ==========================================================================
   Urgent Dental Relief — Service grid: expand on hover
   Setup: add the class  udr-svc-grid  to the parent GRID container
          (Advanced > CSS Classes). Each child container = one card; the
          LAST widget in each card (the description) collapses/expands.
   Uses the tokens from udr-elementor-styles.css.
   ========================================================================== */

.udr-svc-grid {
  --svc-speed: .35s;
  --svc-ease: cubic-bezier(.4, 0, .2, 1);
  --svc-border-hover: color-mix(in srgb, var(--udr-maroon) 35%, #fff);
  --svc-icon-bg-hover: color-mix(in srgb, var(--udr-maroon) 22%, #fff);
  --svc-icon-path-color: #E02128;
}

/* Elementor grid gives every row 1fr (equal heights), which would make BOTH
   rows grow on hover. Let each row size to its own content instead. */
.udr-svc-grid.e-grid {
  grid-template-rows: none !important;
  grid-auto-rows: auto !important;
  align-items: stretch;             /* row mates stretch with the open card */
}

/* Card */
.udr-svc-grid > .e-con {
  justify-content: flex-start !important;
  transition: border-color var(--svc-speed) var(--svc-ease),
              box-shadow var(--svc-speed) var(--svc-ease);
}
.udr-svc-grid > .e-con:hover {
  border-color: var(--svc-border-hover) !important;
  box-shadow: var(--udr-shadow-soft);
}

/* Icon color */

.udr-svc-grid > .e-con .elementor-icon svg {
    stroke: var(--svc-icon-path-color);
}

/* Icon tile darkens on hover */
.udr-svc-grid > .e-con .elementor-icon {
  transition: background-color var(--svc-speed) var(--svc-ease);
}
.udr-svc-grid > .e-con:hover .elementor-icon {
  background-color: var(--svc-icon-bg-hover) !important; /* beats per-widget Elementor CSS */
}

/* Description: collapsed by default (0fr -> 1fr grid-row trick animates height:auto).
   The negative margin cancels the container gap so there's no empty space when closed. */
.udr-svc-grid > .e-con > .elementor-widget:last-child {
  display: grid;
  grid-template-rows: 0fr;
  margin-block-start: calc(var(--row-gap, 0px) * -1);
  transition: grid-template-rows var(--svc-speed) var(--svc-ease),
              margin-block-start var(--svc-speed) var(--svc-ease);
}
.udr-svc-grid > .e-con > .elementor-widget:last-child > .elementor-widget-container {
  min-height: 0;
  overflow: hidden;
}
.udr-svc-grid > .e-con > .elementor-widget:last-child p {
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .2s ease, transform .2s ease;
}

/* Open */
.udr-svc-grid > .e-con:hover > .elementor-widget:last-child {
  grid-template-rows: 1fr;
  margin-block-start: 0;
}
.udr-svc-grid > .e-con:hover > .elementor-widget:last-child p {
  opacity: 1;
  transform: none;
  transition-delay: .1s;
}

/* Touch screens can't hover: keep descriptions open */
@media (hover: none) {
  .udr-svc-grid > .e-con > .elementor-widget:last-child { grid-template-rows: 1fr; margin-block-start: 0; }
  .udr-svc-grid > .e-con > .elementor-widget:last-child p { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .udr-svc-grid *, .udr-svc-grid > .e-con { transition: none !important; }
}/* End custom CSS */