/*
Theme Name: Martinez PI
Theme URI: https://luisamartinezpc.com/
Author: Dan Gilroy Design
Author URI: https://www.dangilroy.com/
Description: Custom WordPress theme for the Law Offices of Luis A. Martinez, P.C. Salem personal injury firm representing clients throughout Oregon, bilingual English/Spanish. Built from the approved July 2026 home page prototype. Navy and sand palette from the firm logo, Lora display type, Source Sans 3 body, valley horizon-line motif. WCAG 2.2 AA target. ACF Pro required.
Version: 0.5.20
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
License: Proprietary, all rights reserved
License URI: https://luisamartinezpc.com/
Text Domain: martinez-pi
Tags: custom-menu, featured-images, translation-ready
*/

/* DESIGN TOKENS */
:root { --navy:#2C3B4C; --slate:#4E637B; --sand:#C8B7A2; --sand-light:#D1C3B3; --sand-deep:#5C4A38; /* was #7A6750: 3.3:1 on cream, failed AA; #5C4A38 = 5.1:1 cream, 7.5:1 mist, 8.4:1 white (2026-07-13 sweep) */ --slate-deep:#3A4B5E; /* slate for cream/veiled bands: slate was 3.8:1 on cream; this is 5.4:1 */ --cream:#D2C8BF; --mist:#F4F1EC; --warm-gray:#AFA9A6; /* hairlines and borders only, fails AA for text on light */ --white:#FFFFFF; --ink:#1A222B; --font-display:"Lora", Georgia, "Times New Roman", serif; --font-sans:"Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --maxw:1180px; --gutter:24px; --header-action-width:200px; --radius-btn:2px; --radius-field:6px; --radius-card:6px; --shadow-card:0 2px 8px rgba(44,59,76,0.06); --shadow-form:0 18px 50px rgba(26,34,43,0.16); --t-color:200ms ease-out; --t-transform:300ms ease-out; }

/* RESET / BASE */
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-sans); color:var(--ink); background:var(--white); font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:3px solid var(--slate); outline-offset:2px; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }

/* ACCESSIBILITY */
html { scroll-padding-top:142px; } /* sticky header must not obscure anchor/focus targets (WCAG 2.2); sized for the 72px logo header */
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:absolute; left:-9999px; top:0; background:var(--navy); color:var(--white); padding:12px 18px; z-index:2000; border-radius:0 0 4px 0; }
.skip-link:focus { left:0; width:auto; height:auto; clip:auto; clip-path:none; }
/* Slate outline fails 3:1 on dark surfaces; use sand there. */
.on-dark a:focus-visible, .on-dark button:focus-visible, .on-dark input:focus-visible, .site-footer a:focus-visible, .utility-bar a:focus-visible, .mobile-call-bar a:focus-visible { outline-color:var(--sand); }

/* TYPE SCALE (tuned for Lora's larger x-height) */
h1, h2 { font-family:var(--font-display); font-weight:600; line-height:1.18; color:var(--navy); }
h1 { font-size:clamp(2rem,4vw,2.9rem); }
h2 { font-size:clamp(1.65rem,2.8vw,2.2rem); }
h3 { font-family:var(--font-sans); font-weight:600; font-size:1.05rem; color:var(--navy); }
.lede { font-size:1.1rem; color:var(--slate); max-width:56ch; }
/* Eyebrows: only where they add meaningful context (Dan's rule 2026-07-09); no ::before flourishes. */
.eyebrow { font-family:var(--font-sans); font-size:.85rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--sand-deep); margin-bottom:1rem; }
.on-dark .eyebrow { color:var(--sand-light); }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; gap:.55rem; font-family:var(--font-sans); font-weight:600; font-size:1rem; padding:.85rem 1.6rem; border-radius:var(--radius-btn); border:1px solid transparent; cursor:pointer; white-space:nowrap; transition:background var(--t-color),color var(--t-color),border-color var(--t-color); }
.btn .ic { width:16px; height:16px; flex:none; transition:transform var(--t-transform); }
.btn:hover .ic--arrow { transform:translateX(3px); }
.btn-primary { background:var(--navy); color:var(--white); }
.btn-primary:hover { background:#22303f; }
.btn-on-dark { background:var(--sand); color:var(--ink); }
.btn-on-dark:hover { background:var(--sand-light); }
.btn-ghost-dark { background:transparent; color:var(--white); border-color:rgba(255,255,255,.55); }
.btn-ghost-dark:hover { border-color:var(--white); background:rgba(255,255,255,.08); }
.btn-sm { padding:.6rem 1.2rem; font-size:.95rem; border-radius:999px; }
.btn-sand { background:var(--sand); color:var(--ink); }
.btn-sand:hover { background:var(--sand-light); }
.btn-outline-navy { background:transparent; color:var(--navy); border-color:var(--navy); }
.btn-outline-navy:hover { background:var(--navy); color:var(--white); }

/* CHIPS */
.chip-row { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.chip { display:inline-flex; align-items:center; gap:.45rem; font-size:1rem; font-weight:600; padding:.42rem .9rem; border-radius:999px; background:rgba(26,34,43,.55); color:var(--white); border:1px solid rgba(255,255,255,.32); }
.chip .dot { width:6px; height:6px; border-radius:50%; background:var(--sand); }

/* UTILITY BAR */
.utility-bar { background:var(--navy); color:var(--white); font-size:1rem; }
.utility-inner { display:flex; align-items:center; justify-content:flex-end; gap:1.35rem; padding:.35rem var(--gutter); max-width:1320px; margin:0 auto; }
.utility-promises { display:flex; align-items:center; gap:.85rem; margin-right:auto; font-size:1.05rem; font-weight:600; white-space:nowrap; }
.utility-fee { color:var(--white); }
.utility-divider { width:.35rem; height:.35rem; flex:none; border-radius:50%; background:var(--sand); }
.utility-bar .lang-switch { display:inline-flex; align-items:stretch; gap:0; width:var(--header-action-width); border:1px solid var(--sand); border-radius:3px; font-size:.95rem; font-weight:600; white-space:nowrap; }
.utility-bar .lang-switch a { display:flex; flex:1; align-items:center; justify-content:center; padding:.16rem .62rem; border:0; border-radius:0; color:var(--white); } /* one segmented language control, not two competing buttons */
.utility-bar .lang-switch a:first-child { border-radius:2px 0 0 2px; }
.utility-bar .lang-switch a:last-child { border-left:1px solid var(--sand); border-radius:0 2px 2px 0; }
.utility-bar .lang-switch .lang-es:not(.active) { color:var(--sand-light); }
.utility-bar .lang-switch .active { background:var(--sand); border-color:var(--sand); color:var(--ink); } /* ink on sand 8.2:1 */
.utility-bar .lang-switch a:not(.active):hover { background:rgba(255,255,255,.08); color:var(--sand-light); border-color:var(--sand-light); }
.utility-bar .lang-switch a:focus-visible { outline:2px solid var(--white); outline-offset:-3px; }
.utility-phone { font-weight:600; color:var(--white); white-space:nowrap; }
.utility-phone .ic { width:13px; height:13px; vertical-align:-1px; margin-right:.35rem; }
.utility-phone:hover { color:var(--sand-light); }

/* HEADER */
.site-header { position:sticky; top:0; z-index:50; background:var(--white); border-bottom:1px solid var(--warm-gray); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:.75rem var(--gutter); max-width:1320px; margin:0 auto; }
.logo img { height:64px; width:auto; }
/* Header squeeze zone: with the 72px logo, the desktop nav + button need
   tighter spacing between 981-1180px so the CTA never wraps. */
@media (max-width:1180px) and (min-width:981px) {
  .header-inner { gap:1.25rem; }
  .logo img { height:60px; }
  .main-nav { gap:1.1rem; }
  .main-nav a { font-size:1rem; }
  .header-utils { gap:.75rem; }
  .header-utils .btn-primary { padding:.75rem 1.1rem; font-size:.95rem; }
}
.main-nav { display:flex; align-items:center; gap:2rem; }
.main-nav a { font-size:1rem; font-weight:500; color:var(--navy); padding:.4rem 0; border-bottom:2px solid transparent; transition:border-color var(--t-color); }
.main-nav a:hover { border-bottom-color:var(--sand-deep); }
.main-nav a[aria-current="page"] { border-bottom-color:var(--sand-deep); }
.header-utils { display:flex; align-items:center; gap:1rem; }
.header-utils > .btn-primary { width:var(--header-action-width); justify-content:center; }
.nav-toggle { display:none; background:none; border:1px solid var(--navy); border-radius:var(--radius-btn); padding:.5rem .7rem; font-family:var(--font-sans); font-size:.95rem; font-weight:600; color:var(--navy); cursor:pointer; }

/* NAV DROPDOWN (Practice Areas) */
/* Parent label is a real link (navigates to the index); the caret is a separate toggle button for keyboard/touch. */
.has-dropdown { position:relative; display:inline-flex; align-items:center; gap:.1rem; }
.dropdown-toggle { display:inline-flex; align-items:center; background:none; border:none; cursor:pointer; color:var(--navy); padding:.45rem .25rem; border-bottom:2px solid transparent; transition:border-color var(--t-color); }
/* No hover underline on the caret button; the label link carries the underline (Dan, 2026-07-09). */
.dropdown-caret { flex:none; transition:transform var(--t-transform); }
.has-dropdown[data-open="true"] .dropdown-caret { transform:rotate(180deg); }
.dropdown { position:absolute; top:calc(100% + .55rem); left:50%; transform:translateX(-50%); min-width:250px; background:var(--white); border-radius:var(--radius-card); box-shadow:var(--shadow-form); border:1px solid var(--mist); padding:.5rem 0; list-style:none; opacity:0; visibility:hidden; transition:opacity var(--t-color),visibility var(--t-color); }
.has-dropdown[data-open="true"] .dropdown { opacity:1; visibility:visible; }
.dropdown a { display:block; padding:.55rem 1.2rem; font-size:1rem; line-height:1.35; font-weight:500; color:var(--navy); border-bottom:none; }
.dropdown a:hover { background:var(--mist); border-bottom:none; }
html[lang^="es"] .main-nav .dropdown { min-width:320px; }
@media (max-width:1280px) { html[lang^="es"] .main-nav { display:none; } html[lang^="es"] .nav-toggle { display:block; } }
@media (max-width:980px) { .utility-fee, .utility-divider { display:none; } }

/* MOBILE DRAWER (left slide-out; replaces the old inline mobile nav) */
.drawer-backdrop { position:fixed; inset:0; background:rgba(26,34,43,.5); z-index:1099; opacity:0; visibility:hidden; transition:opacity 250ms ease-out,visibility 0s linear 250ms; }
.drawer-backdrop.open { opacity:1; visibility:visible; transition-delay:0s; }
.mobile-drawer { position:fixed; top:0; left:0; bottom:0; width:min(340px, 86vw); background:var(--white); z-index:1100; display:flex; flex-direction:column; box-shadow:var(--shadow-form); transform:translateX(-105%); visibility:hidden; transition:transform 300ms ease-out,visibility 0s linear 300ms; }
.mobile-drawer.open { transform:none; visibility:visible; transition-delay:0s; }
.drawer-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1.2rem; border-bottom:1px solid var(--mist); }
.drawer-head img { height:42px; width:auto; }
.drawer-close { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; flex:none; background:none; border:1px solid var(--warm-gray); border-radius:50%; color:var(--navy); cursor:pointer; transition:border-color var(--t-color),color var(--t-color); }
.drawer-close:hover { border-color:var(--navy); color:var(--sand-deep); }
.drawer-nav { flex:1; overflow-y:auto; padding:.9rem 1.2rem; }
.drawer-nav > a, .drawer-nav .has-dropdown > a { display:block; padding:.6rem 0; font-size:1.05rem; font-weight:500; color:var(--navy); border-bottom:none; }
.drawer-nav a[aria-current="page"] { color:var(--sand-deep); }
.drawer-nav .has-dropdown { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; width:100%; }
.drawer-nav .has-dropdown > a { flex:1; }
.drawer-nav .dropdown-toggle { padding:.6rem .4rem; }
/* Drawer submenu: in-flow accordion with an animated height instead of the desktop pop-over. */
.drawer-nav .dropdown { position:static; transform:none; flex-basis:100%; min-width:0; background:none; box-shadow:none; border:none; padding:0 0 0 .9rem; opacity:1; visibility:visible; max-height:0; overflow:hidden; transition:max-height 320ms ease-out; }
.drawer-nav .has-dropdown[data-open="true"] .dropdown { max-height:560px; }
.drawer-nav .dropdown a { padding:.5rem 0; font-size:1rem; }
.drawer-nav .dropdown a:hover { background:none; color:var(--sand-deep); }
.drawer-utils { padding:1.1rem 1.2rem calc(1.3rem + env(safe-area-inset-bottom, 0px)); border-top:1px solid var(--mist); display:flex; flex-direction:column; gap:.7rem; }
.drawer-utils .btn { justify-content:center; }
.drawer-search-btn { display:flex; align-items:center; justify-content:center; gap:.6rem; background:var(--mist); border:none; border-radius:var(--radius-field); padding:.75rem .9rem; font-family:var(--font-sans); font-size:1rem; font-weight:600; color:var(--navy); cursor:pointer; transition:background var(--t-color); }
.drawer-search-btn:hover { background:var(--cream); }
@media (prefers-reduced-motion: reduce) { .mobile-drawer, .drawer-backdrop, .drawer-nav .dropdown { transition:none; } }

/* HERO */
.hero { position:relative; background:var(--navy); color:var(--white); overflow:hidden; }
/* Photo anchored as a right-side panel (Dan, 2026-07-09): a full-bleed cover
   image is width-bound at desktop ratios, so horizontal focal % does nothing
   and all overflow crops vertically (the recurring head-crop). The narrower
   panel is height-bound at most widths, so the full frame height (head
   included) renders and 68% x actually places Luis. Left edge fades to navy
   under the copy. */
.hero-bg { position:absolute; top:0; right:0; bottom:0; width:62%; background-size:cover; background-position:68% 15%; }
.hero-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--navy) 0%, rgba(44,59,76,0) 22%); }
.hero-scrim { position:absolute; inset:0; background:linear-gradient(100deg, rgba(26,34,43,.92) 0%, rgba(26,34,43,.82) 34%, rgba(44,59,76,.42) 62%, rgba(44,59,76,.18) 100%); }
/* Photo caption trial (Dan evaluating): identification register, not promotion. */
/* Chip-recipe pill (matches the hero chips) + backdrop blur for legibility over the busy desk area. */
.hero-caption { position:absolute; right:2rem; bottom:7rem; /* clears the consult-strip overlap */ z-index:1; font-family:var(--font-sans); font-size:.85rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--sand-light); background:rgba(26,34,43,.55); border:1px solid rgba(255,255,255,.22); border-radius:999px; padding:.45rem 1rem; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.hero-inner { position:relative; display:flex; align-items:center; min-height:clamp(620px,44vw,880px); padding:4rem var(--gutter) 7rem; max-width:var(--maxw); margin:0 auto; }
.hero-copy { max-width:620px; }
.hero h1 { color:var(--white); max-width:18ch; }
.hero .lede { color:rgba(255,255,255,.9); margin:1.2rem 0 1.7rem; }
.hero-lede-mobile { display:none; }
.hero-proof { display:grid; grid-template-columns:repeat(3,1fr); gap:0; list-style:none; margin:-.3rem 0 1.55rem; padding:1rem 0 .15rem; border-top:1px solid rgba(255,255,255,.28); }
.hero-proof li { min-width:0; padding-right:1rem; }
.hero-proof li + li { padding-left:1rem; border-left:1px solid rgba(255,255,255,.24); }
.hero-proof strong, .hero-proof span { display:block; }
.hero-proof strong { color:var(--sand-light); font-family:var(--font-display); font-size:clamp(1.15rem,2vw,1.35rem); line-height:1.2; }
.hero-proof span { margin-top:.25rem; color:rgba(255,255,255,.82); font-size:.88rem; line-height:1.3; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:0; }
.hero-copy--ctas-paused .hero-proof { margin-bottom:0; }
.hero-ctas--paused { display:none; }

/* CONSULT STRIP (overlaps hero bottom) */
.consult-band { position:relative; z-index:5; margin-top:-72px; }
.consult-strip { background:var(--white); border-radius:var(--radius-card); box-shadow:var(--shadow-form); padding:1.7rem 1.8rem 1.4rem; }
/* Title block spans the full width above the field row (Dan, 2026-07-09). */
.consult-form { display:grid; grid-template-columns:.95fr .95fr 1fr 1.3fr auto; gap:1.1rem; align-items:end; }
.consult-form .consult-title { grid-column:1 / -1; }
.field { position:relative; }
.char-count { position:absolute; top:100%; right:2px; margin-top:.2rem; font-size:.95rem; color:var(--slate); }
.consult-title h2 { font-family:var(--font-sans); font-size:1.12rem; font-weight:700; color:var(--navy); line-height:1.3; }
.consult-title p { font-size:1rem; color:var(--slate); margin-top:.2rem; }
.field label { display:block; font-size:1rem; font-weight:600; color:var(--navy); margin-bottom:.3rem; }
.field input, .field select { width:100%; font-family:var(--font-sans); font-size:1rem; color:var(--ink); padding:.68rem .75rem; border:1px solid #B9B2AA; border-radius:var(--radius-field); background:var(--white); }
.consult-form .btn { white-space:nowrap; padding:.75rem 1.4rem; }
/* display:block kills the inline-block baseline gap that floated the box above the input bottoms; 45px matches the computed input height. */
.consult-form textarea.js-autogrow { display:block; height:45px; min-height:45px; max-height:140px; overflow-y:auto; resize:none; line-height:1.35; }
@media (max-width: 1100px) { .consult-form { grid-template-columns:1fr 1fr; } .consult-form .consult-title { grid-column:1 / -1; } .consult-form .btn { grid-column:1 / -1; justify-self:start; } }
.form-note { font-size:1rem; color:var(--slate); margin-top:.9rem; line-height:1.5; }

/* HORIZON DIVIDER (signature motif) */
.horizon { display:block; width:100%; height:56px; color:var(--sand); }

/* SECTIONS */
.section { padding:4.5rem 0; }
.sec-mist { background:var(--mist); }
.sec-navy { background:var(--navy); color:var(--white); }
.sec-cream { background:var(--cream); }

/* WHO WE ARE */
.about-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:3.5rem; align-items:start; }
.about-photo { border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-card); }
.about-photo img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 22%; }
.about-copy h2 { margin-bottom:1.25rem; }
.about-copy p { margin-bottom:1rem; color:var(--ink); }
.about-copy .lede { margin-bottom:1.2rem; }
.about-copy .about-service-area { margin:1.45rem 0 1.4rem; padding:.15rem 0 .15rem 1.25rem; border-left:3px solid var(--sand); }
.about-service-area strong { display:block; color:var(--navy); font-family:var(--font-display); font-size:clamp(1.2rem,1.6vw,1.5rem); line-height:1.3; }
.about-service-area span { display:block; margin-top:.35rem; color:var(--slate-deep); font-size:1.02rem; line-height:1.5; }

/* PAIN POINTS */
/* Background: home sets --valley-photo inline from the help_background_image ACF field; falls back to the valley SVG. Overlay keeps AA contrast for text over a photo. */
.sec-valley { background-image:linear-gradient(rgba(244,241,236,.93), rgba(244,241,236,.82)), var(--valley-photo, url("assets/images/valley-placeholder.svg")); background-size:cover; background-position:center; }
.pain-intro { max-width:62ch; margin-bottom:2.5rem; }
.pain-intro .lede { margin-top:1rem; }
.pain-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
.pain-card { background:rgba(255,255,255,.96); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:1.5rem 1.6rem; border-top:3px solid var(--sand); }
.pain-card blockquote { font-family:var(--font-display); font-weight:600; font-size:1.12rem; color:var(--navy); line-height:1.35; margin-bottom:.6rem; }
.pain-card p { font-size:1rem; color:var(--slate); }

/* PRACTICE AREAS */
.pa-head { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2.2rem; flex-wrap:wrap; }
/* 3 columns: nine services make a perfect 3x3 (Dan, 2026-07-09). */
.pa-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.pa-card { background:var(--mist); border-radius:var(--radius-card); padding:1.5rem 1.4rem; display:flex; flex-direction:column; gap:.55rem; transition:background var(--t-color),transform var(--t-transform),box-shadow var(--t-color); }
.pa-card:hover { background:var(--white); box-shadow:var(--shadow-card); transform:translateY(-3px); }
.pa-card h3 { font-family:var(--font-display); font-weight:600; font-size:1.15rem; }
.pa-card p { font-size:1rem; color:var(--slate); flex-grow:1; }
.pa-card .more { font-size:.95rem; font-weight:600; color:var(--sand-deep); transition:color var(--t-color); }
.pa-card:hover .more { color:var(--navy); }
/* Arrow slides in on hover for all .more links (Dan, 2026-07-09); alt-empty content keeps it silent for screen readers. */
.more::after { content:"\2192"; content:"\2192" / ""; display:inline-block; margin-left:.35rem; opacity:0; transform:translateX(-4px); transition:opacity var(--t-color),transform var(--t-transform); }
/* Card-hover triggers only where the card itself IS the link (.pa-card); in the sidebar attorney card only the link's own hover counts. */
.more:hover::after, .pa-card:hover .more::after { opacity:1; transform:none; }
.section-more { margin-top:1.5rem; }
.section-more .more { font-weight:600; color:var(--sand-deep); }
.testi-grid + .section-more { text-align:center; }

/* STATS BAND */
.stats-band { position:relative; overflow:hidden; }
.stats-horizon { position:absolute; bottom:-6px; left:0; width:100%; height:120px; opacity:.16; color:var(--sand); }
.stats-inner { position:relative; }
.stats-intro { max-width:58ch; margin:0 auto 2.6rem; text-align:center; color:rgba(255,255,255,.88); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; text-align:center; }
.stat-num { font-family:var(--font-display); font-weight:600; font-size:clamp(1.9rem,3.4vw,2.6rem); color:var(--sand-light); line-height:1.15; }
.stat-num--text { font-size:clamp(1.5rem,2.4vw,1.9rem); padding-top:.4rem; }
.stat-label { font-size:.95rem; font-weight:500; color:rgba(255,255,255,.85); margin-top:.4rem; }

/* TESTIMONIALS */
.testi-head { text-align:center; }
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:2.2rem; }
.testi-card { position:relative; background:var(--white); border-radius:var(--radius-card); box-shadow:var(--shadow-card); padding:2.5rem 1.6rem 1.6rem; overflow:hidden; }
.testi-card::before { content:"\201C"; content:"\201C" / ""; position:absolute; top:.3rem; left:.95rem; font-family:var(--font-display); font-size:4.6rem; font-weight:600; line-height:1; color:var(--sand); opacity:.4; pointer-events:none; }
.testi-card blockquote { position:relative; font-size:1.05rem; color:var(--ink); margin-bottom:1rem; }
.testi-card cite { position:relative; font-style:normal; font-size:.95rem; font-weight:600; color:var(--sand-deep); display:inline-block; padding-top:.65rem; border-top:2px solid var(--sand); }

/* WPFORMS (embeds inherit the theme's field design; WPForms global styling is "base only") */
/* Beat wpforms-base.css specificity (it enqueues after theme CSS). */
.consult-wpforms .wpforms-form .wpforms-field, .aside-form .wpforms-form .wpforms-field, .cpage-wpforms .wpforms-form .wpforms-field { padding:0; }
/* WPForms' modern honeypot (decoy field, aria-hidden input) is hidden by their FULL stylesheet only; we run base-only, so hide it ourselves. */
.wpforms-field:has(> input[aria-hidden="true"]) { display:none !important; }
.consult-wpforms .wpforms-field-label, .aside-form .wpforms-field-label, .cpage-wpforms .wpforms-field-label { display:block; font-size:1rem; font-weight:600; color:var(--navy); margin:0 0 .3rem; }
.wpforms-required-label { color:var(--sand-deep); }
.consult-wpforms input[type="text"], .consult-wpforms input[type="tel"], .consult-wpforms input[type="email"], .consult-wpforms select, .consult-wpforms textarea,
.aside-form input[type="text"], .aside-form input[type="tel"], .aside-form input[type="email"], .aside-form select, .aside-form textarea,
.cpage-wpforms input[type="text"], .cpage-wpforms input[type="tel"], .cpage-wpforms input[type="email"], .cpage-wpforms select, .cpage-wpforms textarea { width:100%; max-width:100%; font-family:var(--font-sans); font-size:1rem; color:var(--ink); padding:.68rem .75rem; border:1px solid #B9B2AA; border-radius:var(--radius-field); background:var(--white); }
.consult-wpforms .wpforms-submit, .aside-form .wpforms-submit, .cpage-wpforms .wpforms-submit { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; font-family:var(--font-sans); font-weight:600; font-size:1rem; padding:.75rem 1.4rem; border-radius:var(--radius-btn); border:1px solid transparent; cursor:pointer; background:var(--navy); color:var(--white); white-space:nowrap; transition:background var(--t-color); }
/* Clearly visible hover (Dan, 2026-07-09): navy → sand, matching the search toggle. */
.consult-wpforms .wpforms-submit:hover, .aside-form .wpforms-submit:hover, .cpage-wpforms .wpforms-submit:hover { background:var(--sand); color:var(--ink); }
.wpforms-error { display:block; font-size:.875rem; font-weight:600; color:#A94438; margin-top:.3rem; }
.wpforms-field.wpforms-has-error input, .wpforms-field.wpforms-has-error textarea { border-color:#A94438; }
/* Strip context: one horizontal row, fields + button bottom-aligned, like the static form. */
.consult-wpforms .wpforms-form { display:grid; grid-template-columns:.95fr .95fr 1fr 1.3fr auto; gap:1.1rem; align-items:end; }
.consult-wpforms .wpforms-field-container { display:contents; }
.consult-wpforms .wpforms-field { position:relative; }
.consult-wpforms textarea { display:block; height:45px; min-height:45px; max-height:140px; overflow-y:auto; resize:none; line-height:1.35; }
.consult-wpforms .wpforms-field-limit-text { position:absolute; top:100%; right:2px; margin-top:.2rem; font-size:.95rem; color:var(--slate); }
.consult-wpforms .wpforms-submit-container { padding:0; }
/* Sidebar + contact-page contexts: vertical stack. */
.aside-form .wpforms-field, .cpage-wpforms .wpforms-field { margin-bottom:.95rem; }
.cpage-wpforms .wpforms-field { margin-bottom:1.1rem; }
.aside-form .wpforms-submit { width:100%; }
.aside-form .wpforms-field-limit-text, .cpage-wpforms .wpforms-field-limit-text { font-size:.95rem; color:var(--slate); margin-top:.25rem; }
@media (max-width: 1100px) { .consult-wpforms .wpforms-form { grid-template-columns:1fr 1fr; } .consult-wpforms .wpforms-submit-container { grid-column:1 / -1; justify-self:start; } }
@media (max-width: 600px) { .consult-wpforms .wpforms-form { grid-template-columns:1fr; } }

/* WPFORMS VALIDATION (plugin CSS disabled; errors need our styling) */
.wpforms-form label.wpforms-error { display:block; margin-top:.3rem; font-size:.875rem; font-weight:600; color:#A4262C; }
.wpforms-form input.wpforms-error, .wpforms-form textarea.wpforms-error, .wpforms-form select.wpforms-error { border-color:#A4262C; }

/* SITE MAP */
.sitemap-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; align-items:start; }
.sitemap-grid h2 { font-size:1.15rem; margin-bottom:.7rem; }
.sitemap-grid h2 + .sitemap-list { margin-bottom:2rem; }
.sitemap-list { list-style:none; }
.sitemap-list li { margin-bottom:.45rem; }
.sitemap-list a { font-weight:500; color:var(--navy); transition:color var(--t-color); }
.sitemap-list a:hover { color:var(--sand-deep); }

/* THANK YOU PAGE */
.ty-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin:1.8rem 0 2.6rem; }
.ty-step { background:var(--mist); border-radius:var(--radius-card); padding:1.5rem 1.6rem; }
.ty-step h3 { font-family:var(--font-display); font-weight:600; font-size:1.15rem; margin-bottom:.45rem; }
.ty-step p { font-size:1rem; color:var(--slate); }
.ty-callout { color:var(--slate); max-width:62ch; margin-bottom:1.2rem; }
.ty-extra { margin-top:2.4rem; }

/* SEARCH */
/* Normal state is the old hover look (Dan, 2026-07-09); hover steps up to sand. */
.search-toggle { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; background:transparent; border:none; border-radius:50%; color:var(--sand-deep); cursor:pointer; transition:background var(--t-color),color var(--t-color); }
.search-toggle:hover, .search-toggle:focus-visible { background:var(--mist); color:var(--sand-deep); }
.ic--search { width:19px; height:19px; }
.ic--close { width:22px; height:22px; }
.search-overlay { position:fixed; inset:0; background:rgba(255,255,255,.98); z-index:1001; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity 250ms ease-out; }
.search-overlay[hidden] { display:none; } /* author display:flex would otherwise override the hidden attribute and block the page with an invisible layer */
.search-overlay.open { opacity:1; }
.search-overlay-inner { width:min(680px, 88vw); }
.search-close { position:absolute; top:1.4rem; right:1.6rem; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; background:none; border:1px solid var(--warm-gray); border-radius:50%; color:var(--navy); cursor:pointer; transition:border-color var(--t-color),color var(--t-color); }
.search-close:hover { border-color:var(--navy); color:var(--sand-deep); }
.search-row { display:flex; gap:.9rem; align-items:stretch; }
.search-row input[type="search"] { flex:1; min-width:0; font-family:var(--font-display); font-size:clamp(1.15rem,2.4vw,1.6rem); color:var(--ink); padding:.6rem .2rem; background:transparent; border:none; border-bottom:2px solid var(--navy); border-radius:0; }
.search-overlay .search-row input[type="search"]:focus-visible { outline:2px solid transparent; outline-offset:0; border-bottom-color:var(--sand-deep); box-shadow:0 2px 0 var(--sand-deep); }
.search-row input[type="search"]::placeholder { color:var(--slate); } /* warm-gray was 2.3:1 */
.search-hint { margin-top:1rem; font-size:.95rem; color:var(--slate); }
.band-search { margin-top:1.6rem; max-width:600px; }
.band-search .search-row input[type="search"] { color:var(--white); border-bottom-color:rgba(255,255,255,.7); }
.band-search .search-row input[type="search"]::placeholder { color:rgba(255,255,255,.7); } /* .5 was 4.2:1 */
.search-main { min-width:0; }
.pa-grid--narrow { grid-template-columns:repeat(2,1fr); }
/* NEVER style bare .search or .search-results: WP puts both on <body> for search pages. */
.result-list { list-style:none; max-width:760px; }
.search-result { padding:1.4rem 0; border-bottom:1px solid var(--mist); }
.search-result:first-child { padding-top:0; }
.result-type { font-size:.85rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--sand-deep); margin-bottom:.25rem; }
.search-result h2 { font-size:1.35rem; }
.search-result h2 a { color:var(--navy); transition:color var(--t-color); }
.search-result h2 a:hover { color:var(--sand-deep); }
.result-excerpt { font-size:1rem; color:var(--slate); margin-top:.35rem; max-width:70ch; }
.search-none { margin-bottom:2.2rem; max-width:62ch; }
.search-none p { color:var(--slate); margin-top:.5rem; }
.pagination { margin-top:2.2rem; }
.pagination .nav-links { display:flex; gap:.5rem; flex-wrap:wrap; }
.pagination .page-numbers { display:inline-flex; align-items:center; padding:.45rem .85rem; border:1px solid var(--mist); border-radius:var(--radius-btn); font-size:.95rem; font-weight:600; color:var(--navy); }
.pagination .page-numbers.current { background:var(--navy); color:var(--white); border-color:var(--navy); }
.pagination a.page-numbers:hover { border-color:var(--sand-deep); }
@media (prefers-reduced-motion: reduce) { .search-overlay { transition:none; } }

/* CONTACT BAND */
.contact-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:3.5rem; align-items:center; }
.contact-copy h2 { color:var(--white); }
.contact-copy .lede { color:rgba(255,255,255,.85); margin:1rem 0 1.6rem; }
.contact-details { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2rem; }
.contact-details h3 { color:var(--sand-light); font-size:.9rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.4rem; }
.contact-details p { font-size:1rem; color:rgba(255,255,255,.88); }
.contact-details a { color:var(--white); font-weight:600; }
.contact-details a:hover { color:var(--sand-light); }
.contact-photo { border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-form); }
.contact-photo img { width:100%; height:100%; max-height:540px; object-fit:cover; object-position:center 30%; }

/* FOOTER */
.site-footer { background:var(--ink); color:rgba(255,255,255,.8); padding:3.5rem 0 2rem; font-size:.95rem; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1.5fr .8fr; gap:2.5rem; margin-bottom:2.5rem; }
.footer-services-list { columns:2; column-gap:1.5rem; }
.footer-services-list li { break-inside:avoid; }
.footer-brand > a { display:inline-block; }
.footer-brand img { height:44px; width:auto; margin-bottom:1rem; }
.footer-brand .footer-social { margin-top:.8rem; display:flex; gap:.8rem; }
.footer-social a { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:var(--sand-light); transition:color var(--t-color),border-color var(--t-color),background var(--t-color); }
.footer-social a:hover, .footer-social a:focus-visible { color:var(--white); border-color:var(--sand); background:rgba(255,255,255,.06); }
.ic--social { width:18px; height:18px; }
.footer-grid h3, .footer-service h3 { color:var(--sand-light); font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.9rem; }
.footer-grid ul { list-style:none; }
.footer-grid li { margin-bottom:.5rem; }
.footer-grid a:hover { color:var(--white); }
.footer-service { border-top:1px solid rgba(255,255,255,.15); padding:1.6rem 0; margin-bottom:1.6rem; }
.county-list { display:flex; flex-wrap:wrap; gap:.5rem; }
.county { font-size:.9rem; font-weight:500; color:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:.3rem .8rem; }
.footer-disclaimer { font-size:.875rem; line-height:1.65; color:rgba(255,255,255,.55); /* .45 was 4.3:1 on ink, below AA */ margin:2.5rem 0 1.5rem; }
.footer-legal { border-top:1px solid rgba(255,255,255,.15); padding-top:1.5rem; display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; font-size:.875rem; color:rgba(255,255,255,.55); }
.footer-legal a:hover { color:var(--white); }

/* PAGE BAND (interior page header) */
.page-band { position:relative; background:var(--navy); color:var(--white); padding:3.75rem 0 4.5rem; overflow:hidden; }
/* Photo variant: practice area singles set --band-photo inline from the Site Settings interior_band_image field; the navy overlay keeps AA contrast for the white band text. Taller so the photo reads. */
.page-band--photo { background-image:linear-gradient(rgba(44,59,76,.91), rgba(44,59,76,.81)), var(--band-photo); background-size:cover; background-position:center 30%; padding:6.5rem 0 7.5rem; }
/* PA singles only (Dan 2026-09-09): slightly lighter horizontal veil, still darkest behind the copy and opening toward the photo on the right. Serves the 1300x600 mpi-band crop at center center. */
.single-practice_area .page-band--photo { background-image:linear-gradient(90deg, rgba(44,59,76,.94) 0%, rgba(44,59,76,.88) 46%, rgba(44,59,76,.52) 70%, rgba(44,59,76,.11) 100%), var(--band-photo); background-position:center center; }
@media (max-width:980px) { .single-practice_area .page-band--photo { background-image:linear-gradient(90deg, rgba(44,59,76,.93), rgba(44,59,76,.83)), var(--band-photo); } } /* narrow screens: text spans the band, keep the veil near-uniform */
.band-horizon { position:absolute; bottom:-6px; left:0; width:100%; height:110px; opacity:.16; color:var(--sand); }
.band-inner { position:relative; }
.page-band h1 { color:var(--white); max-width:22ch; }
.page-band .lede { color:rgba(255,255,255,.9); margin:1rem 0 1.6rem; }
.page-band .hero-ctas { margin-bottom:0; }
.band-title { margin-bottom:1.8rem; }

/* RICH TEXT (entry content) */
.entry-content h2 { margin:2.2rem 0 .8rem; }
.entry-content h3 { margin:1.6rem 0 .5rem; }
.entry-content p, .entry-content ul, .entry-content ol { margin-bottom:1rem; }
.entry-content ul, .entry-content ol { padding-left:1.3rem; }
.entry-content li { margin-bottom:.35rem; }
.entry-content a { color:var(--sand-deep); text-decoration:underline; text-underline-offset:3px; transition:color var(--t-color); }
.entry-content a:hover { color:var(--navy); }
.pa-content { max-width:760px; }

/* ATTORNEY CARD (cross-reference on practice pages) */
.pa-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:3.5rem; align-items:start; }
.pa-aside { display:flex; flex-direction:column; gap:1.5rem; }
.aside-atty { background:var(--mist); border-radius:var(--radius-card); padding:1.5rem; }
.aside-atty-photo { border-radius:var(--radius-card); overflow:hidden; margin-bottom:1rem; }
.aside-atty-photo img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 20%; }
.aside-atty-name { font-family:var(--font-display); font-size:1.3rem; margin-bottom:.2rem; }
.aside-form { background:var(--white); border-radius:var(--radius-card); box-shadow:var(--shadow-form); border-top:3px solid var(--sand); padding:1.5rem 1.5rem 1.3rem; }
.aside-form h2 { font-size:1.35rem; margin-bottom:.35rem; }
.aside-form-lede { font-size:1rem; color:var(--slate); margin-bottom:1.1rem; }
.aside-form .field { margin-bottom:.95rem; }
.aside-form .btn { width:100%; justify-content:center; }
.atty-title { font-size:.95rem; font-weight:600; color:var(--sand-deep); margin-bottom:.6rem; }
.atty-excerpt { font-size:1rem; color:var(--slate); margin-bottom:.7rem; }

/* FAQS */
/* Full-width accordion rows (Dan, 2026-07-09); answer text keeps a readable measure. */
.faq-list { max-width:none; }
.faq-answer { max-width:75ch; }
.faq-group-h { font-family:var(--font-sans); font-weight:700; font-size:.95rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sand-deep); margin:2.4rem 0 1rem; }
.faq-list .faq-group-h:first-child { margin-top:0; }
.faq-intro p, .page-intro p, .cpage-intro p { font-size:1.1rem; color:var(--slate-deep); max-width:62ch; } /* these ledes sit on cream/veiled bands where --slate is 3.8:1 */
.faq-item { background:rgba(255,255,255,.96); border-radius:var(--radius-card); box-shadow:var(--shadow-card); margin-bottom:.8rem; }
.faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.05rem 1.3rem; font-weight:600; color:var(--navy); cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-caret { flex:none; color:var(--sand-deep); transition:transform var(--t-transform); }
.faq-item[open] .faq-caret { transform:rotate(180deg); }
.faq-answer { padding:0 1.3rem 1.2rem; font-size:1.05rem; color:var(--ink); }
.faq-answer p { margin-bottom:.8rem; }
.faq-intro, .page-intro { margin-bottom:2.2rem; }
/* Page variant: CSS-columns masonry, natural card heights, every testimonial fully visible (no carousel, no read-more; Dan 2026-07-09). */
.testi-grid--page { display:block; columns:3; column-gap:1.25rem; margin-top:0; }
.testi-grid--page .testi-card { break-inside:avoid; margin-bottom:1.25rem; }

/* BIO HEADER */
.bio-band { padding:3.5rem 0 4rem; }
.bio-grid { display:grid; grid-template-columns:minmax(240px, 340px) 1fr; gap:3rem; align-items:center; }
.bio-photo { border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-card); }
.bio-photo img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 20%; }
.bio-role { font-size:.95rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--sand-deep); margin:.4rem 0 .9rem; }
.bio-langs { color:var(--slate); margin-bottom:1rem; }
.bio-contact { list-style:none; margin-bottom:1.5rem; display:flex; flex-wrap:wrap; gap:1.5rem; }
.bio-contact a { font-weight:600; color:var(--navy); transition:color var(--t-color); }
.bio-contact a:hover { color:var(--sand-deep); }
.ic--inline { width:15px; height:15px; vertical-align:-2px; margin-right:.4rem; }

/* CREDENTIALS */
.bio-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:3.5rem; align-items:start; }
.bio-aside { display:flex; flex-direction:column; gap:1.25rem; position:sticky; top:1.5rem; }
.bio-aside .cred-col { background:var(--mist); border-radius:var(--radius-card); padding:1.4rem 1.5rem; }
.cred-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:2.5rem; }
.cred-col h3, .cred-col .cred-h { font-family:var(--font-sans); font-weight:700; color:var(--sand-deep); font-size:.9rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.8rem; }
.cred-col ul { list-style:none; }
.cred-col li { margin-bottom:.8rem; font-weight:500; color:var(--ink); }
.cred-col li:last-child { margin-bottom:0; }
.cred-year { color:var(--slate); font-weight:400; margin-left:.5rem; }
.cred-detail { font-size:.95rem; font-weight:400; color:var(--slate); }
.cred-mail { font-size:.95rem; font-weight:400; color:var(--sand-deep); transition:color var(--t-color); }
.cred-mail:hover { color:var(--navy); }

/* HANDLED LIST (bio practice area links) */

/* CONSULT STRIP, STANDALONE PLACEMENT (interior pages; no hero overlap) */
.consult-standalone .consult-band { margin-top:0; padding:0 0 4.5rem; }

/* CONTACT PAGE */
.cpage-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:3.5rem; align-items:start; }
.cpage-form > h2 { margin-bottom:.6rem; }
.cpage-intro { margin-bottom:1.8rem; }
.cpage-map { border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-card); aspect-ratio:4/3; margin-top:1.8rem; }
.cpage-map iframe { width:100%; height:100%; border:0; display:block; }
.cpage-directions { margin-top:.8rem; font-size:1rem; }
.cpage-directions a { font-weight:600; color:var(--sand-deep); transition:color var(--t-color); }
.cpage-directions a:hover { color:var(--navy); }
.cpage-details { padding:0 1.6rem; background:var(--mist); border-top:3px solid var(--sand); border-radius:var(--radius-card); box-shadow:var(--shadow-card); }
.cpage-detail { padding:1.35rem 0; border-bottom:1px solid rgba(44,59,76,.14); }
.cpage-detail:last-child { border-bottom:0; }
.cpage-details h2 { font-family:var(--font-sans); color:var(--sand-deep); font-size:.9rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.6rem; }
.cpage-details p, .cpage-details address { font-size:1.05rem; line-height:1.55; color:var(--ink); font-style:normal; }
.cpage-details .cpage-firm { color:var(--navy); font-weight:600; margin-bottom:.15rem; }
.cpage-details .cpage-phone { line-height:1.2; }
.cpage-details .cpage-phone a { font-family:var(--font-display); font-size:1.45rem; font-weight:600; }
.cpage-details .cpage-spanish { color:var(--slate-deep); margin-top:.25rem; }
.cpage-details .cpage-email { margin-top:.6rem; overflow-wrap:anywhere; }
.cpage-details a { font-weight:600; color:var(--navy); }
.cpage-details a:hover { color:var(--sand-deep); }

/* FULL FORM (contact page; static until WPForms shortcode is set) */
.full-form { display:grid; gap:1.1rem; }
.full-form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.field textarea { width:100%; font-family:var(--font-sans); font-size:1rem; color:var(--ink); padding:.68rem .75rem; border:1px solid #B9B2AA; border-radius:var(--radius-field); background:var(--white); resize:vertical; }
.full-form .btn { justify-self:start; }

/* REVEAL (gentle, guarded) */
.reveal { opacity:0; transform:translateY(14px); transition:opacity .5s ease-out,transform .5s ease-out; }
.reveal.in { opacity:1; transform:none; }

/* REDUCED MOTION */
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { animation:none !important; transition:none !important; } .reveal { opacity:1; transform:none; } }

/* RESPONSIVE */
@media (max-width: 1080px) { .consult-form { grid-template-columns:1fr 1fr; gap:1rem; } .consult-title { grid-column:1 / -1; } .consult-form .btn { grid-column:1 / -1; justify-content:center; } }
@media (max-width: 980px) { html .field input, html .field select, html .field textarea, html .consult-wpforms input[type="text"], html .consult-wpforms input[type="tel"], html .consult-wpforms input[type="email"], html .consult-wpforms select, html .consult-wpforms textarea, html .aside-form input[type="text"], html .aside-form input[type="tel"], html .aside-form input[type="email"], html .aside-form select, html .aside-form textarea, html .cpage-wpforms input[type="text"], html .cpage-wpforms input[type="tel"], html .cpage-wpforms input[type="email"], html .cpage-wpforms select, html .cpage-wpforms textarea { font-size:16px; } /* prevents iPhone Safari zoom-on-focus */ .hero-inner { min-height:520px; padding-bottom:6rem; } .hero-bg { left:0; width:auto; background-position:68% center; } .hero-bg::after { background:none; } .hero-caption { display:none; } .pa-grid { grid-template-columns:repeat(2,1fr); } .stats-grid { grid-template-columns:repeat(2,1fr); } .about-grid, .contact-grid { grid-template-columns:1fr; gap:2.5rem; } .testi-grid { grid-template-columns:1fr; } .testi-grid--page { columns:2; } .footer-grid { grid-template-columns:1fr 1fr; } .main-nav { display:none; } .nav-toggle { display:block; } .bio-grid { grid-template-columns:1fr; gap:2rem; } .bio-photo { max-width:340px; } .bio-layout { grid-template-columns:1fr; gap:2.5rem; } .bio-aside { position:static; } .pa-layout { grid-template-columns:1fr; gap:2.5rem; } .cred-grid { grid-template-columns:1fr; gap:2rem; } .cpage-grid { grid-template-columns:1fr; gap:2.5rem; } .ty-steps { grid-template-columns:1fr; } .sitemap-grid { grid-template-columns:1fr; gap:2rem; } }
/* MOBILE CALL BAR (phones only; desktop/tablet never see it) */
.mobile-call-bar { display:none; position:fixed; left:0; right:0; bottom:0; z-index:90; background:var(--navy); gap:.6rem; padding:.6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom, 0px)); box-shadow:0 -4px 16px rgba(26,34,43,.22); }
.mobile-call-bar .btn { flex:1; justify-content:center; padding:.7rem .4rem; font-size:1rem; white-space:nowrap; }

@media (max-width: 600px) { body { padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px)); } .mobile-call-bar { display:flex; } .hero-scrim { background:linear-gradient(180deg, rgba(26,34,43,.24) 0%, rgba(26,34,43,.28) 24%, rgba(26,34,43,.82) 40%, rgba(26,34,43,.92) 58%, rgba(26,34,43,.92) 100%); } .hero-inner { min-height:0; align-items:flex-end; padding:15rem var(--gutter) 2.5rem; } .hero h1 { font-size:clamp(1.75rem, 7.7vw, 1.9rem); } .hero-lede-desktop { display:none; } .hero-lede-mobile { display:block; } .hero-proof { display:none; } .hero + .consult-band { margin-top:0; padding-top:1.25rem; } .pain-grid, .pa-grid, .consult-form { grid-template-columns:1fr; } .testi-grid--page { columns:1; } .stats-grid { grid-template-columns:1fr 1fr; gap:1.5rem; } .section { padding:3.25rem 0; } .logo img { height:48px; } .utility-inner { gap:.75rem; } .utility-promises { font-size:1rem; } .utility-bar .lang-switch { width:auto; } .header-utils .btn-primary { display:none; } .page-band { padding:2.75rem 0 3.5rem; } .full-form-row { grid-template-columns:1fr; } .cpage-details { grid-template-columns:1fr; } .footer-grid { grid-template-columns:1fr; } }
