/* FJT Law v4: alignment of the v3 practice-area pages (.pa-* templates) with the v4 homepage.
   Loaded only on pages whose body has .fjt-pa (added in functions.php for the practice-area templates). Overrides the v3 template's
   inline CSS and the WPForms rules in v3's main.css, which use !important, so form rules here do too.
   Rules: body text at least 17px, labels at least 13px, inputs 16px (stops iOS zooming on focus), 44px touch targets, WCAG AA
   contrast, corners 2px, no lift or spring on hover. Fonts and colours are v3's own (Cormorant Garamond, Jost, navy and gold). */

/* Hero */
body.fjt-pa .pa-eyebrow { font-size: .8125rem; }
body.fjt-pa .pa-hero-sub { font-size: 1.125rem; line-height: 1.7; color: rgba(255,255,255,.92); max-width: 640px; }
body.fjt-pa .pa-back-link { min-height: 44px; font-size: .9375rem; border-radius: 2px; border-color: rgba(227,199,142,.6); }

/* Main column */
body.fjt-pa .pa-section-label { font-size: 1.5rem; }
body.fjt-pa .pa-chevron { font-size: .8125rem; }
body.fjt-pa .pa-body { font-size: 1.0625rem; line-height: 1.75; color: #2F3B4B; }
body.fjt-pa .pa-list li { font-size: 1.0625rem; line-height: 1.65; color: #2F3B4B; margin-bottom: 7px; }
body.fjt-pa .pa-note { font-size: 1.0625rem; line-height: 1.7; border-radius: 0 2px 2px 0; }

/* Sidebar */
body.fjt-pa .pa-cta-label { font-size: .8125rem; }
body.fjt-pa .pa-cta-card h3 { font-size: 1.5rem; }
body.fjt-pa .pa-cta-card p { font-size: 1.0625rem; color: rgba(255,255,255,.88); }
body.fjt-pa .pa-cta-phone { font-size: 1.25rem; min-height: 44px; }
body.fjt-pa .pa-cta-card .btn-primary { min-height: 48px; font-size: .9375rem; border-radius: 2px; }
body.fjt-pa .pa-related h4 { font-size: .8125rem; }
body.fjt-pa .pa-related ul li a { font-size: 1.0625rem; min-height: 44px; padding: 10px 0; }
body.fjt-pa .pa-related ul li a i { font-size: .6875rem; }

/* Contact strip and form */
body.fjt-pa .pa-contact-strip h2 { font-size: 2.375rem; }
body.fjt-pa .pa-contact-strip p { font-size: 1.0625rem; color: rgba(255,255,255,.9); }
body.fjt-pa .pa-contact-strip .contact-form-box { border-color: rgba(198,161,91,.4); border-top: 2px solid var(--gold); border-radius: 2px; }
body.fjt-pa .pa-contact-strip .contact-form-label { font-size: .9375rem; color: rgba(255,255,255,.85); }
body.fjt-pa .pa-contact-strip .contact-form-disclaimer { font-size: .9375rem; color: rgba(255,255,255,.82); line-height: 1.6; }
body.fjt-pa .pa-contact-strip .contact-form-disclaimer strong { color: #fff; }
body.fjt-pa .pa-contact-strip .contact-form-disclaimer a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

body.fjt-pa .pa-contact-strip .wpforms-wrap .wpforms-field-label,
body.fjt-pa .pa-contact-strip .wpforms-wrap label { font-size: .8125rem !important; letter-spacing: .08em !important; color: #D5DCE6 !important; }
body.fjt-pa .pa-contact-strip .wpforms-wrap .wpforms-required-label { color: #E3C78E !important; }

body.fjt-pa .pa-contact-strip .wpforms-wrap input[type="text"],
body.fjt-pa .pa-contact-strip .wpforms-wrap input[type="email"],
body.fjt-pa .pa-contact-strip .wpforms-wrap input[type="tel"],
body.fjt-pa .pa-contact-strip .wpforms-wrap input[type="number"],
body.fjt-pa .pa-contact-strip .wpforms-wrap select,
body.fjt-pa .pa-contact-strip .wpforms-wrap textarea {
  font-size: 1rem !important; min-height: 46px !important; border-radius: 2px !important;
  border-color: #8A98AD !important; color: #F4F4F0 !important; background-color: rgba(255,255,255,.04) !important;
}
body.fjt-pa .pa-contact-strip .wpforms-wrap textarea { min-height: 110px !important; }
body.fjt-pa .pa-contact-strip .wpforms-wrap input:focus,
body.fjt-pa .pa-contact-strip .wpforms-wrap select:focus,
body.fjt-pa .pa-contact-strip .wpforms-wrap textarea:focus {
  border-color: #C6A15B !important; background-color: rgba(255,255,255,.07) !important; box-shadow: 0 0 0 3px rgba(198,161,91,.4) !important;
}
body.fjt-pa .pa-contact-strip .wpforms-wrap input::placeholder,
body.fjt-pa .pa-contact-strip .wpforms-wrap textarea::placeholder { color: rgba(255,255,255,.6) !important; }
body.fjt-pa .pa-contact-strip .wpforms-wrap .wpforms-submit,
body.fjt-pa .pa-contact-strip .wpforms-wrap button[type="submit"] {
  background: #C6A15B !important; color: #0A1829 !important; font-size: .9375rem !important; min-height: 52px !important;
  border-radius: 2px !important; box-shadow: none !important; transition: background-color .3s !important;
  line-height: 1.3 !important; letter-spacing: .06em !important; padding: 14px 20px !important;
}
body.fjt-pa .pa-contact-strip .wpforms-wrap .wpforms-submit:hover,
body.fjt-pa .pa-contact-strip .wpforms-wrap button[type="submit"]:hover { background: #E3C78E !important; opacity: 1 !important; transform: none !important; }
body.fjt-pa .pa-contact-strip .wpforms-wrap .wpforms-submit:active,
body.fjt-pa .pa-contact-strip .wpforms-wrap button[type="submit"]:active { transform: none !important; }
body.fjt-pa .pa-contact-strip .wpforms-wrap label.wpforms-error,
body.fjt-pa .pa-contact-strip .wpforms-wrap .wpforms-error { color: #F2A493 !important; font-size: .9375rem !important; }

/* Page layout for the nine rebuilt practice pages (.pa-content-new, set by the generated templates): a warm paper background with white
   cards, a navy card for the time-critical section, a two-column list, a call band and FAQ cards, so the text comes in separate blocks.
   Navy and gold stay as v3 has them; the page background is the homepage's paper tone. */
body.fjt-pa .pa-content-new { background: #EFECE5; padding: 56px 0 72px; }
body.fjt-pa .pa-content-new .pa-main { min-width: 0; }
body.fjt-pa .pa-content-new .pa-card { background: #fff; border: 1px solid #DCD7CC; border-radius: 2px; padding: 30px 36px 32px; margin: 0 0 20px; scroll-margin-top: 96px; }
body.fjt-pa .pa-content-new .pa-card .pa-section-label { margin-bottom: 16px; }
body.fjt-pa .pa-content-new .pa-card .pa-body { max-width: 66ch; }
body.fjt-pa .pa-content-new .pa-card .pa-body:last-child { margin-bottom: 0; }

/* Jump links under the hero: plain text links on a thin rule, no pills */
body.fjt-pa .pa-jump { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 26px; padding: 0 2px 16px; margin: 0 0 22px; border-bottom: 1px solid #C9C3B6; }
body.fjt-pa .pa-jump-label { font-size: .8125rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #5C6B7F; }
body.fjt-pa .pa-jump a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.0625rem; font-weight: 500; color: #0B1D3A; text-decoration: underline; text-decoration-color: #C6A15B; text-decoration-thickness: 2px; text-underline-offset: 6px; }
body.fjt-pa .pa-jump a:hover { color: #86672F; }

/* What We Handle in two columns, gold square markers */
body.fjt-pa .pa-list-cols { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 4px 36px; }
body.fjt-pa .pa-list-cols li { position: relative; margin: 0; padding: 7px 0 7px 22px; border-bottom: 1px solid #ECE8DF; }
body.fjt-pa .pa-list-cols li::marker { content: ""; }
body.fjt-pa .pa-list-cols li::before { content: ""; position: absolute; left: 2px; top: 1.05em; width: 7px; height: 7px; background: #C6A15B; }

/* The time-critical section: navy card, gold rule */
body.fjt-pa .pa-content-new .pa-card-dark { background: #0A1829; border-color: #0A1829; border-left: 4px solid #C6A15B; }
body.fjt-pa .pa-content-new .pa-card-dark .pa-section-label { color: #fff; }
body.fjt-pa .pa-content-new .pa-card-dark .pa-body { color: rgba(255,255,255,.92); }
body.fjt-pa .pa-alert { color: #E3C78E; margin-right: 6px; }

/* Call band between the body sections and the FAQ */
body.fjt-pa .pa-cta-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 28px; background: #122B55; border-top: 3px solid #C6A15B; padding: 26px 32px; margin: 0 0 20px; }
body.fjt-pa .pa-cta-band-copy { flex: 1 1 280px; }
body.fjt-pa .pa-cta-band-h { font-family: var(--serif); font-size: 1.625rem; font-weight: 700; color: #fff; line-height: 1.2; margin: 0 0 6px; }
body.fjt-pa .pa-cta-band-p { font-size: 1.0625rem; line-height: 1.55; color: rgba(255,255,255,.9); margin: 0; }
body.fjt-pa .pa-cta-band-act { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; }
body.fjt-pa .pa-cta-band-act .pa-cta-phone { margin: 0; }
body.fjt-pa .pa-band-btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; min-height: 48px; padding: 0 22px; font-size: .9375rem; border-radius: 2px; }

/* FAQ: a heading, then one card per question */
body.fjt-pa .pa-faq-title { margin: 8px 0 14px; }
body.fjt-pa .pa-faq-item { border-top: 3px solid #C6A15B; padding: 22px 32px 26px; margin-bottom: 14px; }
body.fjt-pa .pa-faq-q { font-family: var(--serif); font-size: 1.4375rem; font-weight: 700; line-height: 1.25; color: var(--navy); margin: 0 0 8px; }
body.fjt-pa .pa-faq-item .pa-body { margin-bottom: 0; }

@media (max-width: 700px) {
  body.fjt-pa .pa-content-new { padding: 36px 0 52px; }
  body.fjt-pa .pa-content-new .pa-card { padding: 22px 20px 24px; }
  body.fjt-pa .pa-list-cols { grid-template-columns: minmax(0,1fr); }
  body.fjt-pa .pa-faq-item { padding: 18px 20px 22px; }
  body.fjt-pa .pa-cta-band { padding: 22px 20px; }
  body.fjt-pa .pa-jump { gap: 0 20px; }
}

/* Contact section with the office card and map (new in 4.0.4). Desktop: copy, office and map stack on the left, the form on the right.
   Phone: copy, form, office, map. */
body.fjt-pa .pa-visit-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); grid-template-areas: "copy form" "office form" "map form"; grid-template-rows: auto auto 1fr; column-gap: 56px; row-gap: 28px; align-items: start; }
body.fjt-pa .pa-visit-copy { grid-area: copy; }
body.fjt-pa .pa-visit-form { grid-area: form; }
body.fjt-pa .pa-office { grid-area: office; }
body.fjt-pa .pa-map { grid-area: map; }
body.fjt-pa .pa-visit-copy .pa-cta-phone { margin-bottom: 6px; }
body.fjt-pa .pa-visit-mail { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.0625rem; color: #E3C78E; text-decoration: underline; text-underline-offset: 3px; }
body.fjt-pa .pa-visit-mail:hover { color: #fff; }

body.fjt-pa .pa-office { display: grid; grid-template-columns: 170px minmax(0,1fr); gap: 20px; padding: 16px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.16); border-radius: 2px; }
body.fjt-pa .pa-office-photo { margin: 0; min-height: 150px; position: relative; }
body.fjt-pa .pa-office-photo picture, body.fjt-pa .pa-office-photo img { display: block; width: 100%; height: 100%; }
body.fjt-pa .pa-office-photo img { object-fit: cover; border-radius: 2px; position: absolute; inset: 0; }
body.fjt-pa .pa-office-info h3 { font-family: var(--serif); font-size: 1.5rem; color: #fff; margin: 0 0 8px; line-height: 1.2; }
body.fjt-pa .pa-office-info address { font-style: normal; font-size: 1.0625rem; line-height: 1.55; color: rgba(255,255,255,.9); margin: 0 0 10px; }
body.fjt-pa .pa-office-info dl { margin: 0 0 8px; }
body.fjt-pa .pa-office-info dl div { display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 10px; margin-bottom: 4px; }
body.fjt-pa .pa-office-info dt { font-weight: 600; color: #E3C78E; font-size: 1.0625rem; }
body.fjt-pa .pa-office-info dd { margin: 0; font-size: 1.0625rem; line-height: 1.5; color: rgba(255,255,255,.9); }
body.fjt-pa .pa-office-dir { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.0625rem; font-weight: 500; color: #E3C78E; text-decoration: underline; text-underline-offset: 3px; }
body.fjt-pa .pa-office-dir:hover { color: #fff; }
body.fjt-pa .pa-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

body.fjt-pa .pa-map iframe { display: block; width: 100%; height: 300px; border: 1px solid rgba(255,255,255,.16); border-radius: 2px; background: #122b55; }

@media (max-width: 900px) {
  body.fjt-pa .pa-visit-grid { grid-template-columns: minmax(0,1fr); grid-template-areas: "copy" "form" "office" "map"; grid-template-rows: none; row-gap: 32px; }
}
@media (max-width: 600px) {
  body.fjt-pa .pa-office { grid-template-columns: minmax(0,1fr); }
  body.fjt-pa .pa-office-photo { min-height: 0; aspect-ratio: 16 / 9; }
  body.fjt-pa .pa-map iframe { height: 260px; }
}

/* Keyboard focus: navy on the light sections, light gold on the dark ones (3:1 or better on each) */
body.fjt-pa .pa-content a:focus-visible { outline: 2px solid #0B1D3A; outline-offset: 3px; }
body.fjt-pa .pa-hero a:focus-visible,
body.fjt-pa .pa-cta-card a:focus-visible,
body.fjt-pa .pa-contact-strip a:focus-visible, body.fjt-pa .pa-office a:focus-visible, body.fjt-pa .pa-cta-band a:focus-visible, body.fjt-pa .pa-card-dark a:focus-visible { outline: 2px solid #E3C78E; outline-offset: 3px; }

@media (max-width: 600px) {
  body.fjt-pa .pa-contact-strip .contact-form-box { padding: 22px; }
  body.fjt-pa .pa-contact-strip h2 { font-size: 2rem; }
}

/* 4.0.10: the hero photo is an <img> (AVIF/WebP from pa-img/) inside .pa-hero-bg, which keeps its brightness filter. */
body.fjt-pa .pa-hero-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
