/* Alinea theme hook stylesheet. Source styling is loaded via captured per-page <head>. */

/* ===== merged from a11y-overrides.css ===== */
/* Alinea Orthodontics — Accessibility overrides (WCAG 2.1 AA)
   Loaded after the captured inline styles. Fixes color contrast and link
   affordance flagged by axe-core, without altering layout. */

/* --- Dark footer band (#3f4636): the SEO text widget is set to opacity:0.3, which
   fades the cream text down to ~#797e72 (2.3:1) and fails contrast. Restore full
   opacity and keep the intended cream color (#F9F3EC = 8.5:1 on #3f4636). --- */
.elementor-element-0f91262 {
    opacity: 1 !important;
}
.elementor-element-3e5dc84,
.elementor-element-3e5dc84 p,
.elementor-element-3e5dc84 li,
.elementor-element-3e5dc84 a,
.elementor-element-3e5dc84 span,
.elementor-element-3e5dc84 .elementor-heading-title {
    color: #f9f3ec !important;
}

/* --- Link affordance: in-content links distinguishable by more than color --- */
.elementor-widget-text-editor a,
.page-content a {
    text-decoration: underline;
}
/* Do not underline buttons or image links */
.elementor-button,
.elementor-widget-text-editor a.elementor-button,
.elementor-widget-text-editor a:has(img) {
    text-decoration: none;
}


/* --- Dark band: neutralize mix-blend-mode + opacity so heading ("Best Orthodontist...")
   and SEO text render at the intended cream contrast --- */
.elementor-element-3e5dc84,
.elementor-element-3e5dc84 * {
    mix-blend-mode: normal !important;
    opacity: 1 !important;
}

/* --- Newsletter email input placeholder: default ~54% opacity made "Email" faint.
   Force full-opacity cream for AA contrast on the dark input. --- */
.elementor-location-footer input::placeholder,
.elementor-location-footer input::-webkit-input-placeholder,
.elementor-location-footer textarea::placeholder {
    color: #f9f3ec !important;
    opacity: 1 !important;
}

/* --- AEO FAQ section (appended to key pages) --- */
.alinea-faq { background:#f9f3ec; padding:64px 24px; }
.alinea-faq-inner { max-width:820px; margin:0 auto; }
.alinea-faq .alinea-faq-heading { font-size:30px !important; }
.alinea-faq-heading { font-size:30px; line-height:1.2; color:#3f4636; text-align:center; margin:0 0 36px; }
.alinea-faq-item { padding:20px 0; border-bottom:1px solid #e3ddd2; }
.alinea-faq-item:last-child { border-bottom:0; }
.alinea-faq .alinea-faq-q { font-size:20px !important; line-height:1.4 !important; font-weight:600 !important; color:#3f4636; margin:0 0 8px; font-family:inherit; }
.alinea-faq-a { font-size:16px; line-height:1.6; color:#4a4f43; margin:0; }
@media (max-width:600px){ .alinea-faq{padding:44px 18px;} .alinea-faq-heading{font-size:26px;} }

/* --- Treatments hub --- */
.alinea-hub{background:#f9f3ec;padding:64px 24px}
.alinea-hub-inner{max-width:1080px;margin:0 auto;text-align:center}
.alinea-hub-title{font-size:40px;line-height:1.15;color:#3f4636;margin:0 0 14px}
.alinea-hub-intro{font-size:18px;line-height:1.6;color:#4a4f43;max-width:760px;margin:0 auto 40px}
.alinea-hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left}
.alinea-hub-card{display:block;background:#fff;border:1px solid #e3ddd2;border-radius:12px;padding:22px 24px;text-decoration:none;transition:box-shadow .2s,transform .2s}
.alinea-hub-card:hover{box-shadow:0 8px 24px rgba(63,70,54,.12);transform:translateY(-2px)}
.alinea-hub-card h2{font-size:20px;color:#3f4636;margin:0 0 6px}
.alinea-hub-card p{font-size:15px;line-height:1.5;color:#6b6f62;margin:0}
.alinea-hub-cta{margin-top:40px}
.alinea-hub-btn{display:inline-block;background:#c7e3a8;color:#3f4636;font-weight:600;padding:16px 40px;border-radius:40px;text-decoration:none}
.alinea-hub-btn:hover{background:#b8d795}
@media(max-width:900px){.alinea-hub-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.alinea-hub-grid{grid-template-columns:1fr}.alinea-hub-title{font-size:30px}}

/* --- Blog -> pillar internal link block --- */
.alinea-related{max-width:820px;margin:24px auto 8px;padding:18px 22px;background:#f9f3ec;border-left:4px solid #c7e3a8;border-radius:8px}
.alinea-related p{margin:0;font-size:16px;line-height:1.6;color:#3f4636}
.alinea-related a{color:#3f6d4f;text-decoration:underline;font-weight:600}

/* --- Patient Referral Form (CF7 rebuild of the original MetForm form) --- */
.alinea-referral { background:#f9f3ec; padding:56px 20px; }
.alinea-referral-card { max-width:920px; margin:0 auto; background:#fff; border:1px solid #e3ddd2; border-radius:12px; padding:40px 44px; }
.alinea-ref-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:28px; }
.alinea-ref-title { font-size:34px; line-height:1.2; color:#3f4636; margin:0 0 8px; }
.alinea-ref-required-note { font-size:14px; color:#6b6f62; margin:0; }
.alinea-req { color:#c0392b; }
.alinea-ref-logo img { width:220px; height:auto; display:block; }
.alinea-ref-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 36px; }
.alinea-ref-col { min-width:0; }
.alinea-ref-note { font-size:15px; color:#3f4636; margin:0 0 10px; font-weight:600; }
.alinea-ref-heading { font-size:22px !important; line-height:1.3; color:#3f4636; margin:34px 0 6px; }
.alinea-ref-divider { border:0; border-top:1px solid #e3ddd2; margin:0 0 18px; }
.alinea-ref-filenote { font-size:13px; color:#6b6f62; margin:6px 0 0; }
.alinea-referral .mf-input-label { display:block; font-size:14px; font-weight:600; color:#3f4636; margin:14px 0 6px; }
.alinea-referral .wpcf7-form-control-wrap { display:block; }
.alinea-referral .mf-input { width:100%; max-width:100%; padding:12px; border:1px solid #eaeaea; border-radius:2px; background-color:#fafafa; box-sizing:border-box; font-size:16px; line-height:21px; -webkit-appearance:none; }
.alinea-referral .mf-input:focus { outline:0; border-color:#4285f478; }
.alinea-referral textarea.mf-input { min-height:140px; resize:vertical; }
.alinea-referral .alinea-ref-checks { display:block; }
.alinea-referral .alinea-ref-checks .wpcf7-list-item { display:block; margin:0 0 10px; }
.alinea-referral .alinea-ref-checks .wpcf7-list-item label { display:flex; align-items:center; gap:10px; font-size:15px; color:#3f4636; cursor:pointer; }
.alinea-referral .alinea-ref-checks input[type=checkbox] { width:17px; height:17px; accent-color:#3f6d4f; flex:0 0 auto; }
.alinea-referral input[type=file] { font-size:14px; margin-top:2px; }
.alinea-referral .metform-btn { background-color:#3f6d4f; color:#fff; border:none; display:inline-block; max-width:100%; padding:16px 48px; font-size:16px; font-weight:600; border-radius:40px; cursor:pointer; margin-top:26px; transition:background-color .2s; }
.alinea-referral .metform-btn:hover, .alinea-referral .metform-btn:focus { background-color:#345c42; outline:0; }
.alinea-referral .wpcf7-not-valid-tip { font-size:13px; color:#c0392b; margin-top:4px; display:block; }
.alinea-referral .wpcf7-response-output { margin:22px 0 0; padding:12px 16px; border-radius:8px; font-size:15px; }
.alinea-referral .wpcf7 form.sent .wpcf7-response-output { border-color:#3f6d4f; background:#eef6ea; color:#2d4a37; }
.alinea-referral .wpcf7 form.invalid .wpcf7-response-output,
.alinea-referral .wpcf7 form.failed .wpcf7-response-output { border-color:#c0392b; background:#fdf1ef; color:#7a2a20; }
.alinea-referral .wpcf7-spinner { display:inline-block; }
@media (max-width:760px){
  .alinea-referral-card { padding:28px 20px; }
  .alinea-ref-grid { grid-template-columns:1fr; }
  .alinea-ref-header { flex-direction:column-reverse; }
  .alinea-ref-logo img { width:180px; }
  .alinea-ref-title { font-size:28px; }
}

/* --- Santa Monica contact form (CF7 rebuild of the Elementor Pro Form widget 826bb72).
   The CF7 template reuses the captured elementor-field classes so the page's
   captured widget CSS applies; these rules only bridge CF7's extra wrappers. --- */
.elementor-element-826bb72 .wpcf7 .wpcf7-form-control-wrap { display:block; width:100%; }
.elementor-element-826bb72 .wpcf7 input.elementor-field, .elementor-element-826bb72 .wpcf7 textarea.elementor-field-textual { width:100%; box-sizing:border-box; padding:8px 12px; }
.elementor-element-826bb72 .wpcf7 .elementor-field-subgroup .wpcf7-form-control-wrap { display:inline-block; width:auto; }
.elementor-element-826bb72 .wpcf7 .wpcf7-radio .wpcf7-list-item { display:inline-block; margin:0 16px 0 0; }
.elementor-element-826bb72 .wpcf7 .wpcf7-radio .wpcf7-list-item label { display:flex; align-items:center; gap:6px; cursor:pointer; }
.elementor-element-826bb72 .wpcf7 .elementor-field-type-acceptance .wpcf7-form-control-wrap,
.elementor-element-826bb72 .wpcf7 .elementor-field-type-acceptance .wpcf7-acceptance,
.elementor-element-826bb72 .wpcf7 .elementor-field-type-acceptance .wpcf7-list-item { display:block; width:100%; margin:0; }
.elementor-element-826bb72 .wpcf7 .wpcf7-acceptance .wpcf7-list-item label { display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:13px; line-height:1.5; }
.elementor-element-826bb72 .wpcf7 .wpcf7-acceptance input[type=checkbox] { margin-top:3px; flex:0 0 auto; width:auto; }
.elementor-element-826bb72 .wpcf7 .e-form__buttons { text-align:right; }
.elementor-element-826bb72 .wpcf7 input.elementor-button { cursor:pointer; }
.elementor-element-826bb72 .wpcf7 .wpcf7-not-valid-tip { font-size:13px; color:#c0392b; margin-top:4px; display:block; }
.elementor-element-826bb72 .wpcf7 .wpcf7-response-output { margin:16px 0 0; padding:10px 14px; border-radius:8px; font-size:14px; }
.elementor-element-826bb72 .wpcf7 form.sent .wpcf7-response-output { border-color:#3f6d4f; background:#eef6ea; color:#2d4a37; }
.elementor-element-826bb72 .wpcf7 form.invalid .wpcf7-response-output,
.elementor-element-826bb72 .wpcf7 form.failed .wpcf7-response-output { border-color:#c0392b; background:#fdf1ef; color:#7a2a20; }

/* --- Booking iframe scroll shield (prevents the Greyfinch iframe from trapping page scroll) --- */
.alinea-iframe-wrap { position: relative; }
.alinea-iframe-shield {
  position: absolute; inset: 0; z-index: 5;
  display: flex; align-items: flex-start; justify-content: center;
  background: transparent; cursor: pointer;
}
.alinea-iframe-hint {
  margin-top: 14px;
  background: rgba(63,70,54,.88); color: #fff;
  font-size: 13px; line-height: 1; padding: 7px 16px; border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.15); pointer-events: none;
}
