/* Interior page styles.
   home.css covers the homepage sections; this covers the patterns every other
   page needs. Elementor-scoped selectors with !important for the same reason
   home.css uses them: Elementor's container defaults otherwise win. */

/* --- Take over Elementor's global colour variables ------------------------ */
/* Elementor 4.x regenerates its kit stylesheet from factory defaults, so
   anything inheriting a global resolves to stock Elementor blue (#6EC1E4) or
   grey (#7A7A7A) regardless of what the kit has saved. Rather than fix each
   symptom, point the variables themselves at the brand palette: anything added
   in the builder later then inherits correct colours by default.
   `body` prefix so this outranks Elementor's own `.elementor-kit-N` rule
   whatever order the stylesheets load in. */
body.elementor-kit-6,
body .elementor{
  --e-global-color-primary:#0b2138;
  --e-global-color-secondary:#c9845a;
  --e-global-color-text:#5f6870;
  --e-global-color-accent:#9b5c3c;
}

/* --- Heading colour default ---------------------------------------------- */
/* Elementor emits `.elementor-widget-heading .elementor-heading-title { color:
   var(--e-global-color-primary) }`, which outranks home.css's `.ac-section h2`
   on specificity. On this install that variable resolves to Elementor's factory
   blue (#6EC1E4) rather than the kit's navy, so headings came out washed out.
   Restate the brand colour at higher specificity and stop depending on
   Elementor's globals entirely. Dark-section overrides use !important and still
   win over this. */
.elementor .ac-section h1.elementor-heading-title,
.elementor .ac-section h2.elementor-heading-title,
.elementor .ac-section h3.elementor-heading-title{color:var(--ac-navy)}

/* Dark sections restated at the same specificity, or the navy default above
   would paint navy text onto a navy background. home.css covers most of these
   with !important already; `.ac-contact` did not, and would have gone invisible
   the moment the Contact page used it. */
.elementor .ac-hero h1.elementor-heading-title,
.elementor .ac-hero h2.elementor-heading-title,
.elementor .ac-hero h3.elementor-heading-title,
.elementor .ac-approach h1.elementor-heading-title,
.elementor .ac-approach h2.elementor-heading-title,
.elementor .ac-approach h3.elementor-heading-title,
.elementor .ac-contact h1.elementor-heading-title,
.elementor .ac-contact h2.elementor-heading-title,
.elementor .ac-contact h3.elementor-heading-title,
.elementor .ac-card-copy h3.elementor-heading-title{color:#fff}

/* --- Interior page hero -------------------------------------------------- */
/* Deliberately not .ac-hero: that one is a full-viewport homepage treatment. */
.elementor .ac-page-hero{padding:96px 0 88px!important;background:var(--ac-navy)!important}
.elementor .ac-page-hero .ac-inner{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:22px!important}
.elementor .ac-page-hero .ac-inner>.elementor-element{width:100%!important;margin:0!important}
.elementor .ac-page-hero h1.elementor-heading-title{max-width:16ch;color:#fff!important;font-size:clamp(2.6rem,5vw,4rem)!important;font-weight:600;line-height:1.08;letter-spacing:-.035em}
.elementor .ac-page-hero .ac-eyebrow,.elementor .ac-page-hero .ac-eyebrow p{color:var(--ac-copper-light)!important}
.elementor .ac-page-hero .ac-lead,.elementor .ac-page-hero .ac-lead p{max-width:60ch;color:rgb(255 255 255/.8)!important}
.elementor .ac-page-hero .ac-actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:12px!important;width:auto!important}
.elementor .ac-page-hero .ac-actions>.elementor-element{width:auto!important;margin:0!important}

/* --- Coverage blocks ----------------------------------------------------- */
/* Three groups whose answers differ. The accent is the point: a reader must be
   able to tell at a glance which block applies to them before reading it. */
.elementor .ac-coverage{padding:112px 0!important;background:#fff!important}
.elementor .ac-coverage-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;margin-top:48px!important}
.elementor .ac-coverage-item{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:12px!important;padding:28px!important;border-radius:16px;border:1px solid rgb(11 33 56/.12);background:var(--ac-ivory)!important}
.elementor .ac-coverage-item>.elementor-element{width:100%!important;margin:0!important}
.elementor .ac-coverage-item h3.elementor-heading-title{font-size:1.15rem!important}
.elementor .ac-coverage-item p{color:var(--ac-muted)!important;font-size:.9375rem!important;line-height:1.65!important}
.elementor .ac-coverage-item .ac-status,.elementor .ac-coverage-item .ac-status p{font-family:"JetBrains Mono",monospace!important;font-size:.75rem!important;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.elementor .ac-covered{border-color:rgb(201 132 90/.55);background:#fff!important;box-shadow:inset 4px 0 0 var(--ac-copper)}
.elementor .ac-covered .ac-status p{color:var(--ac-copper-dark)!important}
.elementor .ac-not-covered .ac-status p{color:var(--ac-muted)!important}

/* --- Firsthand account --------------------------------------------------- */
.elementor .ac-account{padding:112px 0!important;background:var(--ac-ivory)!important}
.elementor .ac-account-panel{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:20px!important;max-width:78ch;margin-inline:auto!important;padding:44px!important;border-radius:20px;background:#fff!important;box-shadow:0 18px 55px rgb(11 33 56/.1)}
.elementor .ac-account-panel>.elementor-element{width:100%!important;margin:0!important}
.elementor .ac-account-panel p{color:var(--ac-ink)!important;font-size:1.0625rem!important;line-height:1.75!important}
.elementor .ac-account-panel p+p{margin-top:1em!important}
.elementor .ac-account-credit p{color:var(--ac-muted)!important;font-size:.875rem!important}

/* --- Plain lists --------------------------------------------------------- */
.elementor .ac-list ul{margin:0;padding:0;list-style:none}
.elementor .ac-list li{position:relative;padding:14px 0 14px 26px;border-bottom:1px solid rgb(11 33 56/.1);color:var(--ac-muted);line-height:1.6}
.elementor .ac-list li:last-child{border-bottom:0}
.elementor .ac-list li:before{content:"";position:absolute;left:0;top:23px;width:8px;height:8px;border-radius:50%;background:var(--ac-copper)}
.elementor .ac-list li strong{color:var(--ac-ink)}

/* --- Closing CTA band ---------------------------------------------------- */
.elementor .ac-cta-band{padding:96px 0!important;background:var(--ac-copper)!important}
.elementor .ac-cta-band .ac-inner{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:20px!important}
.elementor .ac-cta-band .ac-inner>.elementor-element{width:100%!important;margin:0!important}
.elementor .ac-cta-band h2.elementor-heading-title{color:var(--ac-navy)!important}
.elementor .ac-cta-band .ac-lead,.elementor .ac-cta-band .ac-lead p{max-width:62ch;color:rgb(11 33 56/.78)!important}
.elementor .ac-cta-band .ac-actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:14px!important;width:auto!important}
.elementor .ac-cta-band .ac-actions>.elementor-element{width:auto!important;margin:0!important}
.elementor .ac-cta-band .ac-phone-button .elementor-button{min-height:48px!important;padding:13px 18px!important;border-radius:10px!important;background:var(--ac-navy)!important;color:#fff!important;font-weight:600!important}
.elementor .ac-cta-band .ac-text-link .elementor-button{background:transparent!important;color:var(--ac-navy)!important}

/* --- Responsive ---------------------------------------------------------- */
@media(max-width:960px){
  .elementor .ac-page-hero{padding:64px 0 56px!important}
  .elementor .ac-coverage,.elementor .ac-account{padding:72px 0!important}
  .elementor .ac-coverage-grid{grid-template-columns:1fr!important}
  .elementor .ac-account-panel{padding:28px!important}
  .elementor .ac-cta-band{padding:64px 0!important}
}

/* --- Veterans strip on the homepage -------------------------------------- */
/* Was a cramped 89px band with a #7A7A7A eyebrow sitting at 1.42:1 against
   copper. Navy on copper measures 5.38:1, which clears AA for small text. */
.elementor .ac-veterans-band{padding:30px 0!important}
.elementor .ac-veterans-band>.e-con-inner,.elementor .ac-veterans-band .ac-inner{align-items:center!important;gap:18px!important;flex-wrap:wrap!important}
.elementor .ac-veterans-band h2.elementor-heading-title{color:var(--ac-navy)!important;font-size:1.5rem!important;letter-spacing:-.02em}
.elementor .ac-veterans-band .ac-eyebrow,.elementor .ac-veterans-band .ac-eyebrow p{color:var(--ac-navy)!important}
.elementor .ac-veterans-band .ac-eyebrow{padding-left:18px;border-left:1px solid rgb(11 33 56/.28)}
@media(max-width:700px){
  .elementor .ac-veterans-band .ac-eyebrow{padding-left:0;border-left:0}
}

/* --- Feature image focal point ------------------------------------------- */
/* .ac-feature-image forces a 4:3 landscape crop. On a portrait source that is a
   severe vertical cut, and centred it removes the bottom of the frame — which on
   the laser photo is the probe and the beam, the only reason the picture exists.
   Pull the crop down for images whose subject sits low. */
.elementor .ac-feature-image.ac-focus-low img{object-position:50% 82%!important}
.elementor .ac-feature-image.ac-focus-high img{object-position:50% 18%!important}

/* --- Portrait images and the doctors block ------------------------------- */
/* Feature images are 4:3 landscape, which butchers a portrait source. These sit
   at 4:5 with the focal point a little above centre so faces land properly —
   checked against both doctors' frames rather than guessed. */
.elementor .ac-portrait-image img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%;border-radius:20px}
.elementor .ac-doctors{padding:112px 0!important;background:#fff!important}
.elementor .ac-doctors .ac-inner{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:18px!important}
.elementor .ac-doctors .ac-inner>.elementor-element{width:100%!important;margin:0!important}
.elementor .ac-doctor-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:40px!important;margin-top:24px!important}
.elementor .ac-doctor{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:12px!important}
.elementor .ac-doctor>.elementor-element{width:100%!important;margin:0!important}
.elementor .ac-doctor h3.elementor-heading-title{font-size:1.35rem!important}
.elementor .ac-doctor p{color:var(--ac-muted)!important;font-size:.9375rem!important}
@media(max-width:760px){
  .elementor .ac-doctor-grid{grid-template-columns:1fr!important;gap:32px!important}
}

/* --- Care page grid ------------------------------------------------------ */
/* Inherits the homepage's four-column service grid deliberately. Seven cards in
   three columns leaves a single orphan on the last row; eight in four columns is
   two full rows. Symmetry at full width, and the two grids match.

   WARNING, learned the hard way on 2026-09-11: do not style a page by targeting
   a shared component class. A rule written here as
   `.ac-services .ac-service-grid { ... !important }` silently re-laid-out the
   HOMEPAGE, because Care reuses those exact class names — the homepage's cards
   went from four across to three and nobody was editing the homepage.
   Page-specific rules hang off a page-specific hook like .ac-care-grid. */
.elementor .ac-care-grid{margin-top:8px!important}

/* --- Fluent Forms ---------------------------------------------------------- */
/* The plugin ships default blue. Repaint it in the site's palette so the form
   reads as part of the page rather than pasted in. Scoped to .ac-form so the
   admin's own previews are untouched. */
.elementor .ac-form .fluentform{--ff-gap:18px}
.elementor .ac-form .ff-el-group{margin-bottom:var(--ff-gap)!important}
.elementor .ac-form .ff-el-input--label label{color:var(--ac-navy)!important;font-weight:600!important;font-size:.9375rem!important;margin-bottom:6px!important}
.elementor .ac-form .ff-el-input--label.ff-el-is-required label:after{color:var(--ac-copper-dark)!important}
.elementor .ac-form .ff-el-form-control{width:100%!important;min-height:48px!important;padding:12px 14px!important;border:1px solid rgb(11 33 56/.22)!important;border-radius:10px!important;background:#fff!important;color:var(--ac-ink)!important;font-family:Inter,Arial,sans-serif!important;font-size:1rem!important}
.elementor .ac-form textarea.ff-el-form-control{min-height:120px!important;line-height:1.6!important}
.elementor .ac-form .ff-el-form-control:focus{outline:2px solid var(--ac-focus)!important;outline-offset:2px!important;border-color:var(--ac-copper)!important;box-shadow:none!important}
.elementor .ac-form .ff-el-form-control::placeholder{color:rgb(95 104 112/.6)!important}
.elementor .ac-form .ff-el-help-message{color:var(--ac-muted)!important;font-size:.875rem!important;margin-top:6px!important}
.elementor .ac-form .ff-el-form-check-label{color:var(--ac-ink)!important;font-size:.9375rem!important}
.elementor .ac-form .ff-btn-submit{min-height:48px!important;padding:13px 22px!important;border:0!important;border-radius:10px!important;background:var(--ac-copper)!important;color:var(--ac-navy)!important;font-family:Inter,Arial,sans-serif!important;font-weight:600!important;font-size:1rem!important}
.elementor .ac-form .ff-btn-submit:hover{background:var(--ac-copper-dark)!important;color:#fff!important}
.elementor .ac-form .ff-el-is-error .ff-el-form-control{border-color:#b3261e!important}
.elementor .ac-form .error.text-danger{color:#b3261e!important;font-size:.875rem!important}
.elementor .ac-form .ff-message-success{padding:20px!important;border-radius:12px!important;border:1px solid rgb(201 132 90/.5)!important;background:#fff!important;color:var(--ac-ink)!important}
/* the form panel it sits in */
.elementor .ac-form-panel{padding:36px!important;border-radius:20px;background:#fff!important;box-shadow:0 18px 55px rgb(11 33 56/.1)}
.elementor .ac-form-panel>.elementor-element{width:100%!important;margin:0!important}
@media(max-width:760px){.elementor .ac-form-panel{padding:24px!important}}

/* --- Contact page --------------------------------------------------------- */
/* Shorter hero than the other pages: nothing here should push the phone number
   or the form below the fold. */
.elementor .ac-hero-compact{padding:72px 0 64px!important}
.elementor .ac-contact-top{padding:80px 0!important;background:var(--ac-ivory)!important}
.elementor .ac-contact-top .ac-split{align-items:start!important}
.elementor .ac-contact-details p{color:var(--ac-ink)!important;line-height:1.7!important}
.elementor .ac-contact-details p+p{margin-top:14px!important}
.elementor .ac-contact-details strong{display:inline-block;margin-bottom:2px;color:var(--ac-navy)}
.elementor .ac-contact-details a{color:var(--ac-copper-dark);text-decoration:none;border-bottom:1px solid rgb(155 92 60/.35)}
.elementor .ac-contact-details a:hover{color:var(--ac-navy);border-bottom-color:var(--ac-navy)}
@media(max-width:760px){.elementor .ac-hero-compact{padding:56px 0 48px!important}}

/* --- Back pain book page -------------------------------------------------- */
/* home.css sizes the cover for the homepage panel (96px). Here it leads the
   column, so it gets more room. Scoped to the cover, which the Contact page
   (the other .ac-contact-top user) does not have. */
.elementor .ac-contact-top .ac-book-cover img{width:160px!important;box-shadow:0 12px 30px rgb(11 33 56/.18)}
.elementor .ac-contact-top .ac-book-cover{margin-bottom:28px!important}

/* --- Google reviews, rendered from our own table -------------------------- */
/* Grid sizes itself to however many reviews have text, so a refresh that
   returns three or five cannot strand one on a row by itself. */
.elementor .ac-google{padding:112px 0!important;background:#fff!important}
.elementor .ac-google-grid{display:grid;gap:24px;margin:40px 0 28px}
.elementor .ac-google-grid-1{grid-template-columns:minmax(0,520px)}
.elementor .ac-google-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.elementor .ac-google-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.elementor .ac-google-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.elementor .ac-google-grid-5,
.elementor .ac-google-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}
.elementor .ac-google-review{display:flex;flex-direction:column;gap:12px;margin:0;padding:26px;border-radius:16px;border:1px solid rgb(11 33 56/.12);background:var(--ac-ivory)}
.elementor .ac-google-stars{color:var(--ac-copper);font-size:1rem;letter-spacing:.12em;line-height:1}
.elementor .ac-google-review blockquote{margin:0}
.elementor .ac-google-review blockquote p{color:var(--ac-ink)!important;font-size:.9375rem!important;line-height:1.65!important}
.elementor .ac-google-review figcaption{margin-top:auto;color:var(--ac-navy);font-size:.875rem;font-weight:600}
.elementor .ac-google-date{display:block;margin-top:2px;color:var(--ac-muted);font-weight:400}
@media(max-width:1000px){
  .elementor .ac-google-grid-3,.elementor .ac-google-grid-4,
  .elementor .ac-google-grid-5,.elementor .ac-google-grid-6{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .elementor .ac-google-grid{grid-template-columns:1fr!important}
}

/* --- Staff portraits (About) --------------------------------------------- */
/* Four people, one row at full width. Two across below desktop rather than one:
   a single-column stack of portraits turns the page into a scroll of faces.
   Deliberately a page-specific hook, not a reuse of .ac-doctor-grid — see the
   Care-grid warning above about styling pages through shared classes. */
.elementor .ac-staff{padding:112px 0!important;background:var(--ac-ivory)!important}
.elementor .ac-staff .ac-inner{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:18px!important}
.elementor .ac-staff .ac-inner>.elementor-element{width:100%!important;margin:0!important}
.elementor .ac-staff-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:24px!important;margin-top:24px!important}
.elementor .ac-staff-grid>.elementor-element{width:100%!important;margin:0!important}
@media(max-width:1000px){.elementor .ac-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.elementor .ac-staff{padding:72px 0!important}}

/* --- Footer legal links --------------------------------------------------- */
.ac-footer-legal{display:inline-flex;gap:18px;font-size:13px}
.ac-footer-legal a{color:rgb(255 255 255/.72);text-decoration:none;border-bottom:1px solid rgb(255 255 255/.24)}
.ac-footer-legal a:hover{color:#fff;border-bottom-color:rgb(255 255 255/.6)}

/* --- Privacy Policy and Terms of Service ---------------------------------- */
/* PAGE-PATTERNS: hero, then one plain column at a readable measure. The whole
   body is a single text-editor widget so it can be edited in one place. */
.elementor .ac-legal{padding:72px 0 112px!important;background:#fff!important}
.elementor .ac-legal .ac-legal-body{max-width:70ch!important}
.elementor .ac-legal .ac-legal-body h2{max-width:none!important;margin:44px 0 12px!important;color:var(--ac-navy)!important;font-size:1.45rem!important;font-weight:600;line-height:1.25;letter-spacing:-.015em}
.elementor .ac-legal-body h2:first-child{margin-top:0!important}
.elementor .ac-legal-body p,.elementor .ac-legal-body li{color:var(--ac-ink)!important;font-size:1.02rem;line-height:1.75!important}
.elementor .ac-legal-body p{margin:0 0 14px!important}
.elementor .ac-legal-body ul{margin:0 0 16px!important;padding-left:1.2em}
.elementor .ac-legal-body li+li{margin-top:6px}
.elementor .ac-legal-body a{color:var(--ac-copper-dark);text-decoration:none;border-bottom:1px solid rgb(155 92 60/.35)}
.elementor .ac-legal-body a:hover{color:var(--ac-navy);border-bottom-color:var(--ac-navy)}
@media(max-width:760px){.elementor .ac-legal{padding:48px 0 80px!important}}

/* --- Patient Reviews: second featured testimonial ------------------------- */
/* Two features stack; the second is a short quote, so it sits in a narrower
   panel rather than stretching one line across the long one's width. */
.elementor .ac-account .ac-account-panel+.ac-account-panel{margin-top:24px!important}
.elementor .ac-account .ac-account-panel-short{max-width:62ch}
