@font-face{font-family:"Open Sans";src:url("fonts/open-sans-400.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("fonts/open-sans-600.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("fonts/open-sans-700.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("fonts/open-sans-800.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}

/* Keep the mobile navigation controls in the clinic's navy blue. */
#freeport-header .elementor-element-68e0c8f8 .elementor-icon,
#freeport-header .elementor-element-68e0c8f8 .elementor-icon:is(:hover,:focus),
body.freeport-site .mobile-dialog .brand-drawer-close,
body.freeport-site .mobile-dialog .brand-drawer-close:is(:hover,:focus) {color:#003366;fill:#003366;border-color:#003366}

/* Keep the compact logo and both navigation controls the same size. */
#freeport-header .elementor-element-50564d11 img,
.mobile-dialog .brand-drawer-heading img {width:180px;max-width:100%;height:auto}
#freeport-header .elementor-element-68e0c8f8 .elementor-icon,
.mobile-dialog .brand-drawer-close {display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0}
#freeport-header .elementor-element-68e0c8f8 .elementor-icon svg,
.mobile-dialog .brand-drawer-close svg {display:block;width:24px;height:24px;fill:none;stroke-width:2.5}

/* Center navigation between the logo and the bottom appointment action. */
.mobile-dialog .brand-drawer-content {display:grid;grid-template-rows:minmax(min-content,1fr) auto minmax(min-content,1fr);gap:24px;box-sizing:border-box;height:100vh;height:100dvh;min-height:480px;padding:24px 24px max(24px,env(safe-area-inset-bottom))}
.mobile-dialog .brand-drawer-heading {align-self:start;margin-bottom:0}
.mobile-dialog .brand-drawer-nav {align-self:center;min-width:0}
.mobile-dialog .brand-drawer-nav ul {margin:0;padding:0}
.mobile-dialog .brand-drawer-appointment {align-self:end;margin:0}

/* A sliding panel with a staggered entrance for the large navigation links. */
.mobile-dialog {--ffc-menu-close-ms:600;transform:translate3d(100%,0,0);transition:transform 740ms cubic-bezier(.33,.85,.3,1);overflow-x:hidden;overscroll-behavior:contain;will-change:transform}
.mobile-dialog.is-open {transform:translate3d(0,0,0)}
.mobile-dialog.is-closing {transition-duration:600ms;pointer-events:none}
.mobile-backdrop {opacity:0;transition:opacity 600ms ease}
.mobile-backdrop.is-open {opacity:1}
.mobile-dialog .brand-drawer-nav ul {display:grid;gap:18px}
.mobile-dialog .brand-drawer-nav li {--ffc-link-delay:0ms;border:0;opacity:0;transform:translate3d(48px,0,0);transition:opacity 360ms ease,transform 600ms cubic-bezier(.33,.85,.3,1)}
.mobile-dialog .brand-drawer-nav li:nth-child(2) {--ffc-link-delay:70ms}
.mobile-dialog .brand-drawer-nav li:nth-child(3) {--ffc-link-delay:140ms}
.mobile-dialog .brand-drawer-nav li:nth-child(4) {--ffc-link-delay:210ms}
.mobile-dialog.is-open .brand-drawer-nav li {opacity:1;transform:translate3d(0,0,0);transition-delay:calc(140ms + var(--ffc-link-delay))}
.mobile-dialog .brand-drawer-nav a {display:block;width:fit-content;max-width:100%;padding:6px 0;color:#003366;font:800 clamp(30px,8.2vw,36px)/1.15 "Open Sans",Arial,sans-serif;letter-spacing:-.035em;transition:color 200ms ease,transform 250ms ease}
.mobile-dialog .brand-drawer-nav a:focus-visible {outline:2px solid #fe9933;outline-offset:6px;border-radius:3px}
.mobile-dialog .brand-drawer-appointment {opacity:0;transform:translate3d(0,12px,0);transition:opacity 300ms ease,transform 500ms cubic-bezier(.33,.85,.3,1)}
.mobile-dialog.is-open .brand-drawer-appointment {opacity:1;transform:translate3d(0,0,0);transition-delay:320ms}
@media(hover:hover) {
  .mobile-dialog .brand-drawer-nav a:hover {color:#00264d;transform:translateX(8px)}
}
@media(prefers-reduced-motion:reduce) {
  .mobile-dialog,.mobile-backdrop,.mobile-dialog .brand-drawer-nav li,.mobile-dialog .brand-drawer-nav a,.mobile-dialog .brand-drawer-appointment {transition:none;transition-delay:0ms}
  .mobile-dialog .brand-drawer-nav li,.mobile-dialog .brand-drawer-appointment {transform:none}
}

/* Shared navy, orange, and neutral palette for the default Freeport theme. */
body.freeport-site {
  --ffc-green:#003366;
  --ffc-green-dark:#003366;
  --ffc-burgundy:#003366;
  --ffc-burgundy-dark:#00264d;
  --ffc-ink:#333;
  --ffc-navy:#003366;
  --ffc-soft:#f7f9fc;
  --ffc-border:#dce4ed;
  --ffc-section-soft:#f7f9fc;
  --ffc-orange:#fe9933;
  --e-global-color-primary:#003366;
  --e-global-color-secondary:#003366;
  --e-global-color-text:#333;
  --e-global-color-accent:#fe9933;
  --e-global-color-0750f4c:#003366;
  --e-global-color-3aa4c90:#003366;
  --e-global-color-e9e0598:#003366;
  --e-global-color-ea7194b:#003366;
  --e-global-typography-primary-font-family:"Open Sans";
  --e-global-typography-secondary-font-family:"Open Sans";
  --e-global-typography-text-font-family:"Open Sans";
  --e-global-typography-accent-font-family:"Open Sans";
  font-family:"Open Sans",Arial,sans-serif;
}

body.freeport-site :is(h1,h2,h3,h4,h5,h6),
body.freeport-site #content :is(h1,h2,h3,h4,h5,h6),
body.freeport-site #freeport-footer h2 {
  font-family:"Open Sans",Arial,sans-serif !important;
  font-weight:700;
  letter-spacing:-.025em;
}
body.freeport-site #content #clinic-cta-heading {font-weight:700}
body.freeport-site #content :is(.about-doctor__name,.first-visit__label,.first-visit__number) {font-weight:700}
body.freeport-site .first-visit__step--one .first-visit__copy h2 {font-size:min(40px,7.9cqw)}

/* Primary actions share the hero's simple, softly rounded shape. */
body.freeport-site .elementor-button,
body.freeport-site .first-visit__appointment,
body.freeport-site .first-visit__schedule summary,
body.freeport-site #our-services :is(.our-services__appointment,.our-services__view-all),
body.freeport-site #clinic-cta .clinic-cta__button,
body.freeport-site #content .ffc-hero__button {
  border-radius:8px;
  font-weight:700;
}
body.freeport-site .elementor-button,
body.freeport-site .first-visit__appointment,
body.freeport-site #our-services .our-services__appointment,
body.freeport-site #clinic-cta .clinic-cta__button--primary {
  background:#003366;
  border-color:#003366;
  color:#fff;
}
body.freeport-site .elementor-button:hover,
body.freeport-site .first-visit__appointment:hover,
body.freeport-site #our-services .our-services__appointment:hover,
body.freeport-site #clinic-cta .clinic-cta__button--primary:hover {
  background:#00264d;
  border-color:#00264d;
  color:#fff;
}
body.freeport-site #our-services .our-services__view-all,
body.freeport-site #clinic-cta .clinic-cta__button--phone,
body.freeport-site .first-visit__schedule summary {
  color:#003366;
  border-color:#003366;
}
/* Match the first-visit card with two equal, single-line appointment actions. */
body.freeport-site #clinic-cta .clinic-cta__actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.freeport-site #clinic-cta .clinic-cta__button {
  justify-content:center;gap:8px;min-width:0;min-height:50px;padding:12px 10px;
  font-size:14px;white-space:nowrap;text-align:center;
}
body.freeport-site #clinic-cta .clinic-cta__button svg {width:18px;height:18px}
body.freeport-site #clinic-cta :is(.clinic-cta__intro,.clinic-cta__note) {text-wrap:balance}
body.freeport-site #clinic-cta .clinic-cta__note a {color:#003366;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media(max-width:360px) {
  body.freeport-site #clinic-cta .clinic-cta__button {gap:6px;padding:12px 8px;font-size:13px}
  body.freeport-site #clinic-cta .clinic-cta__button svg {width:16px;height:16px}
}
body.freeport-site .experiencing__choice {border-radius:8px}
body.freeport-site .experiencing__choice.is-active {background:#edf3fa}
body.freeport-site .experiencing__icon {background:#edf3fa}
body.freeport-site .experiencing__choice:focus-visible {outline-color:#003366}

/* Orange accents echo the hero without competing with the headings. */
body.freeport-site #our-services .our-services__accent,
body.freeport-site #your-first-visit .first-visit__accent {background:#fe9933}
body.freeport-site .patient-reviews__stars {
  background:linear-gradient(90deg,#fe9933 98%,#dce4ed 98%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
body.freeport-site .review-card__avatar,
body.freeport-site .review-card:nth-child(even) .review-card__avatar {
  background:#edf3fa;
  border-color:#dce4ed;
  color:#003366;
}
body.freeport-site #clinic-marquee .clinic-marquee__icon {color:#003366}
body.freeport-site #freeport-header .elementor-icon {color:#003366}
body.freeport-site #freeport-footer .ffc-footer__social a {color:#003366}
body.freeport-site .skip-link {color:#003366 !important}


/* Keep linked Google review summaries styled as badges. */
a.patient-reviews__google, a.patient-reviews__google:hover, a.patient-reviews__google:focus { text-decoration:none; }
a.patient-reviews__google:focus-visible { outline:2px solid currentColor; outline-offset:6px; border-radius:6px; }

/* Compact contact links and a softly faded, left-to-right header announcement. */
#freeport-header .brand-contact-details,
#freeport-header .brand-social-links { flex-shrink:0; }
#freeport-header .brand-contact-ticker {
  flex:1 1 0; min-width:0; overflow:hidden;
  mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent);
  -webkit-mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent);
}
#freeport-header .brand-contact-ticker__track {
  display:flex; width:max-content; animation:freeport-contact-ticker 36s linear infinite;
  color:#fff; font:600 13px/1.5 "Open Sans",Arial,sans-serif; letter-spacing:.45px;
}
#freeport-header .brand-contact-ticker__group { display:flex; align-items:center; gap:32px; padding-right:32px; white-space:nowrap; }
#freeport-header .brand-contact-ticker__item { display:flex; align-items:center; gap:10px; }
#freeport-header .brand-contact-ticker__icon { display:flex; align-items:center; justify-content:center; flex:0 0 17px; width:17px; height:19px; color:#ffb463; }
#freeport-header .brand-contact-ticker__icon svg { display:block; width:17px; height:19px; }
#freeport-header .brand-contact-ticker:hover .brand-contact-ticker__track { animation-play-state:paused; }
@keyframes freeport-contact-ticker { from { transform:translateX(-50%); } to { transform:translateX(0); } }
@media(max-width:700px) {
  #freeport-header .brand-contact-details { display:flex; gap:14px; }
  #freeport-header .brand-contact-details a { font-size:12px; }
  #freeport-header .brand-contact-email { border-left:1px solid #ffffff80; padding-left:14px; }
  #freeport-header .brand-contact-ticker { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  #freeport-header .brand-contact-ticker__track { animation:none; }
}
