/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ============================================================
   Irvine Legal — Design Tokens (SMBTeam Law Firm Design System)
   Brand colors + heading/body fonts live in Astra Global Colors &
   Typography. These mirror the full token set + add the component
   classes the Astra UI can't express. No hardcoded hex in blocks.
   ============================================================ */
/* Astra global palette — mirrored here so brand renders independent of Astra's
   dynamic-CSS cache. Values match Astra Global Colors (astra-settings, palette_1).
   Update both together if a brand color changes. */
:root {
  --ast-global-color-0: #D30101; /* accent / brand */
  --ast-global-color-1: #9F1414; /* hover */
  --ast-global-color-2: #140606; /* headings */
  --ast-global-color-3: #535353; /* body */
  --ast-global-color-4: #FFFFFF; /* surface */
  --ast-global-color-5: #F0F0F0; /* light section bg */
  --ast-global-color-6: #7A1212; /* secondary */
  --ast-global-color-7: #EBEBEB; /* card */
  --ast-global-color-8: #140606; /* dark */
}

:root {
  /* Brand (mirrors the Astra global palette) */
  --color-brand: #D30101;
  --color-alt-brand: #9F1414;
  --color-primary: #140606;
  --color-secondary: #7A1212;
  --color-headings: #140606;
  --color-body: #535353;
  --color-background: #FFFFFF;
  --color-accent: #D30101;

  /* Semantic */
  --text-cta: #FFFFFF;
  --bg-section-alt: #F0F0F0;
  --bg-card: #EBEBEB;
  --bg-form: #DEDEDE;
  --bg-footer: #EEEEEE;
  --gray-100: #F4F1F1; /* icon-box / subtle fill */
  --gray-200: #E6E1E1; /* hairline borders & dividers */
  --gray-300: #D6CFCF; /* stronger borders */
  --cta-bg: var(--color-accent);
  --cta-hover-bg: #A80101;
  --star-color: #F5A623;
  --link-color: var(--color-accent);
  --link-hover: var(--color-alt-brand);

  /* Fonts */
  --font-heading: 'Cormorant Garamond', 'Hoefler Text', Georgia, serif;
  --font-body: 'Source Sans 3', system-ui, sans-serif;
  --font-ui: 'Archivo', 'Helvetica Neue', Arial, sans-serif;

  /* Type scale (desktop) */
  --text-h1: 64px;
  --text-h2: 48px;
  --text-h3: 34px;
  --text-h4: 28px;
  --text-h5: 24px;
  --text-h6: 20px;
  --text-subheading: 18px;
  --tracking-subheading: 0.12em;
  --text-body: 18px;
  --lh-body: 1.6;
  --text-button: 18px;

  /* Spacing / layout */
  --container-max: 1200px;
  --container-pad: 40px;
  --section-pad-y: 80px;
  --gap-card: 28px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --transition-base: 0.2s ease;
}

/* ALL-CAPS tracked label above section titles (the design "subheading") */
.subheading {
  font-family: var(--font-ui);
  font-size: var(--text-subheading);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--tracking-subheading);
  color: var(--color-accent);
}
.subheading::before,
.subheading::after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 2px;
  vertical-align: middle;
  margin: 0 14px;
  background: var(--ast-global-color-0);
}

/* Buttons — use when a Spectra button can't express the design exactly */
.btn {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: var(--text-button);
  font-weight: 600;
  padding: 12px 28px;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  text-decoration: none;
  cursor: pointer;
  transition: background var(--transition-base), color var(--transition-base), border-color var(--transition-base);
}
.btn-primary { background: var(--cta-bg); color: var(--text-cta); border-color: var(--cta-bg); }
.btn-primary:hover { background: var(--cta-hover-bg); border-color: var(--cta-hover-bg); color: #fff; }
.btn-outline { background: transparent; color: var(--color-brand); border-color: var(--color-brand); }
.btn-outline:hover { background: var(--color-brand); color: #fff; }

/* Section background helpers (dark sections use a bg image + this as fallback) */
.section-alt { background: var(--bg-section-alt); }
.section-dark { background: var(--color-secondary); color: #fff; }
.section-dark :is(h1,h2,h3,h4,h5,h6) { color: #fff; }

/* Review stars + inline arrow link */
.stars { color: var(--star-color); letter-spacing: 2px; }
.link-arrow {
  font-family: var(--font-ui);
  font-weight: 600;
  color: var(--color-headings);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap var(--transition-base), color var(--transition-base);
}
.link-arrow:hover { color: var(--color-accent); gap: 8px; }

@media (max-width: 768px) {
  :root {
    --container-pad: 20px;
    --section-pad-y: 48px;
    --text-h1: 40px;
    --text-h2: 32px;
    --text-h3: 26px;
    --text-body: 16px;
  }
}

/* ============================================================
   SECTIONS
   ============================================================ */

/* Brand primary button (core button block + .irvine-btn-primary class) */
.irvine-btn-primary .wp-block-button__link {
  background: var(--ast-global-color-0);
  color: #fff;
  border: 0;
  border-radius: var(--radius-sm);
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: var(--text-button);
  padding: 15px 34px;
  transition: background var(--transition-base);
}
.irvine-btn-primary .wp-block-button__link:hover { background: var(--cta-hover-bg); color: #fff; }

/* ── §2 Hero (core Cover block, .irvine-hero) ─────────────── */
.irvine-hero { padding-block: 96px; }
.irvine-hero, .irvine-hero :where(h1, p) { color: #fff; text-shadow: 0 1px 14px rgba(0,0,0,.5); }
.irvine-hero .subheading { color: #fff; opacity: .85; margin-bottom: 14px; }
.irvine-hero h1,
.irvine-hero .hero-title {
  font-family: var(--font-heading);
  font-weight: 500;
  color: #fff;
  font-size: var(--text-h1);
  line-height: 1.0;
  max-width: 30ch;
  margin: 0 auto 18px;
}
.irvine-hero > p:not(.subheading):not(.hero-trust):not(.hero-title) { font-size: 20px; max-width: 60ch; margin-inline: auto; }
.irvine-hero .wp-block-buttons { margin-top: 30px; }
.irvine-hero .hero-trust {
  margin-top: 24px;
  font-family: var(--font-ui);
  font-size: 15px;
  letter-spacing: .02em;
}
.irvine-hero .hero-trust .stars { margin-right: 8px; }

@media (max-width: 768px) {
  .irvine-hero { padding-block: 60px; }
}

/* ── Content sections: text + image split (.irvine-section) ─ */
.irvine-section .wp-block-columns { gap: 56px; align-items: center; }
.irvine-section h2 {
  font-size: var(--text-h2);
  line-height: 1.12;
  color: var(--color-headings);
  margin: 0 0 18px;
}
.irvine-section .subheading { display: block; text-align: left; margin-bottom: 14px; }
.irvine-section .subheading::after { display: none; }   /* content eyebrow: leading dash only */
.irvine-section .subheading::before { margin-left: 0; }
.irvine-section p { color: var(--color-body); }
.irvine-section .wp-block-image img {
  border-radius: var(--radius-md);
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  .irvine-section .wp-block-columns { gap: 28px; }
}

/* ── §4 Practice Areas: dark Cover + white cards (.irvine-pa) */
.irvine-pa { padding-block: 90px; }
.irvine-pa h2, .irvine-pa .subheading { color: #fff; }
.irvine-pa .subheading { text-align: center; display: block; margin-bottom: 14px; }
.irvine-pa h2.wp-block-heading {
  font-size: var(--text-h2);
  margin: 0 auto 42px;
}
.irvine-pa .wp-block-columns { gap: 28px; align-items: stretch; }
.pa-card {
  background: #fff;
  padding: 38px 32px;
  border-radius: var(--radius-md);
  height: 100%;
}
.pa-card h3 {
  font-family: var(--font-heading);
  font-size: var(--text-h4);
  color: var(--color-headings);
  margin: 0 0 12px;
}
.pa-card p { color: var(--color-body); margin: 0 0 16px; }
.pa-card a { font-family: var(--font-ui); font-weight: 600; color: var(--color-accent); }
@media (max-width: 768px) {
  .irvine-pa .wp-block-columns { gap: 20px; }
}

/* ── §6 Client Success Stories (dark Cover, .irvine-reviews) */
.irvine-reviews { padding-block: 90px; text-align: center; }
.irvine-reviews h2, .irvine-reviews p, .irvine-reviews .subheading { color: #fff; }
.irvine-reviews .subheading { display: block; margin-bottom: 14px; }
.irvine-reviews h2.wp-block-heading {
  font-size: var(--text-h2);
  margin: 0 auto 14px;
}
.irvine-reviews .review-stars { color: var(--star-color); font-size: 24px; letter-spacing: 3px; margin-bottom: 18px; }
.irvine-reviews .review-quote {
  font-family: var(--font-heading);
  font-size: 26px;
  line-height: 1.5;
  max-width: 60ch;
  margin: 0 auto 16px;
}
.irvine-reviews .review-author { font-family: var(--font-ui); font-weight: 600; letter-spacing: .04em; margin-bottom: 30px; }
/* §6 white review card (dark text) — corrected from DS file (#fff card, --ink text) */
.irvine-reviews .review-card { background: #fff; max-width: 760px; margin: 0 auto 30px; padding: 48px 54px; }
.irvine-reviews .review-card p { color: var(--color-body); }
.irvine-reviews .review-card .review-quote { color: var(--color-headings); margin: 0 auto 16px; }
.irvine-reviews .review-card .review-stars { color: var(--star-color); margin-bottom: 16px; }

/* Every Container section: section padding + 1200px-constrained content.
   !important because an external Astra/Spectra stylesheet was overriding it. */
.wp-block-uagb-container.irvine-section,
.wp-block-uagb-container.irvine-hero,
.wp-block-uagb-container.irvine-pa,
.wp-block-uagb-container.irvine-reviews,
.wp-block-uagb-container.irvine-center,
.wp-block-uagb-container.irvine-contact,
.wp-block-uagb-container.irvine-footer {
  padding-top: var(--section-pad-y) !important;
  padding-bottom: var(--section-pad-y) !important;
  padding-left: var(--container-pad) !important;
  padding-right: var(--container-pad) !important;
  display: flex !important;
  flex-direction: column !important;
}
.wp-block-uagb-container.irvine-section > *,
.wp-block-uagb-container.irvine-hero > *,
.wp-block-uagb-container.irvine-pa > *,
.wp-block-uagb-container.irvine-reviews > *,
.wp-block-uagb-container.irvine-center > *,
.wp-block-uagb-container.irvine-contact > *,
.wp-block-uagb-container.irvine-footer > * {
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
}

/* bg-image sections (Containers replacing Covers). Relative urls = migration-safe. */
.irvine-hero, .irvine-pa, .irvine-reviews { position: relative; }
.irvine-hero { background: url('../../uploads/2026/06/hero-img.jpg') center/cover no-repeat; }
.irvine-pa { background: url('../../uploads/2026/06/practice-areas-background-scaled.jpg') center/cover no-repeat; }
.irvine-reviews { background: url('../../uploads/2026/06/testimonials-background-img.jpg') center/cover no-repeat; }
.irvine-hero::after, .irvine-pa::after, .irvine-reviews::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
}
.irvine-hero::after { background: rgba(0, 0, 0, .5); }
.irvine-pa::after, .irvine-reviews::after { background: rgba(18, 6, 6, .82); }
.irvine-hero { min-height: 620px; display: flex; flex-direction: column; justify-content: center; }
.irvine-hero > *, .irvine-pa > *, .irvine-reviews > * { position: relative; z-index: 2; }

/* ── Centered light sections: Why Choose Us, Blogs, FAQ (.irvine-center) ── */
.irvine-center .subheading { text-align: center; display: block; margin: 0 auto 14px; color: var(--color-accent); }
.irvine-center .subheading::before, .irvine-center .subheading::after { display: inline-block; }
.irvine-center > h2.wp-block-heading { text-align: center; font-size: var(--text-h2); margin: 0 auto 44px; }
.irvine-center .wp-block-columns { gap: 36px; margin-bottom: 36px; align-items: stretch; }

/* §10 Why Choose Us — bordered grid, icon box, left-aligned (match mockup) */
.irvine-why .wp-block-columns { gap: 0; margin: 0 auto !important; }       /* keep horizontal centering, kill vertical margin */
.irvine-why .wp-block-column { margin-bottom: 0 !important; }              /* kill WP/Astra 20px column-stacking margin = the row gap */
/* connected 3x2 grid: collapse adjacent 1px borders into single hairlines (desktop only — mobile keeps stacked bordered cards) */
@media (min-width: 782px) {
  .irvine-why .wp-block-columns + .wp-block-columns { margin-top: -1px !important; }
  .irvine-why .wp-block-column + .wp-block-column .why-card { margin-left: -1px; }
}
.why-card { padding: 40px 36px; text-align: left; height: 100%; border: 1px solid var(--gray-200); }
.why-card .why-icon { display: inline-flex; margin: 0; }
.why-card .why-icon img { width: 28px; height: 28px; padding: 14px; background: var(--gray-100); border-radius: var(--radius-sm); box-sizing: content-box; }
.why-card h4 { font-family: var(--font-heading); font-size: var(--text-h5); color: var(--color-headings); margin: 24px 0 14px; text-align: left; }
.why-card p { color: var(--color-body); margin: 0; text-align: left; }

/* §12 Latest Blogs — 3 cards */
.blog-card { background: transparent; height: 100%; }
.blog-card .wp-block-image { margin: 0; }
.blog-card .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; border-radius: 0; }
.blog-card .blog-body { padding: 30px 30px 34px; background: var(--color-primary); height: 100%; }
.blog-card .blog-date { font-family: var(--font-ui); font-size: 13px; letter-spacing: .08em; color: rgba(255,255,255,.55); text-transform: uppercase; margin: 0 0 16px; }
.blog-card h3 { font-family: var(--font-heading); font-size: var(--text-h4); color: #fff; margin: 0 0 14px; line-height: 1.2; }
.blog-card p { color: rgba(255,255,255,.7); margin: 0 0 18px; }
.blog-card a { font-family: var(--font-ui); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: 14px; color: var(--color-accent); }
/* blog section header: eyebrow + heading left, button right */
.irvine-blog .blog-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; max-width: var(--container-max); margin: 0 auto 44px; width: 100%; }
.irvine-blog .blog-head .subheading { text-align: left; display: block; margin: 0 0 14px; }
.irvine-blog .blog-head .subheading::after { display: none; }
.irvine-blog .blog-head h2.wp-block-heading { text-align: left; font-size: var(--text-h2); margin: 0; }
.irvine-blog .blog-head .wp-block-buttons { margin: 0; flex-shrink: 0; }

/* §14 FAQ — accordion (core/details) */
.irvine-faq details { max-width: 720px !important; margin: 0 auto; text-align: left; border-bottom: 1px solid var(--gray-200); padding: 22px 4px; }
.irvine-faq summary { font-family: var(--font-heading); font-size: 21px; color: var(--color-headings); cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.irvine-faq summary::-webkit-details-marker { display: none; }
.irvine-faq summary::after { content: "+"; color: var(--color-accent); font-size: 26px; line-height: 1; font-family: var(--font-ui); }
.irvine-faq details[open] summary::after { content: "\2212"; }
.irvine-faq details p { color: var(--color-body); margin: 14px 0 0; }

/* §15 Contact — dark bg + CF7 form */
.irvine-contact { position: relative; background: url('../../uploads/2026/06/contact-section-background-img.jpg') center/cover no-repeat; }
.irvine-contact::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(18, 6, 6, .85); pointer-events: none; }
.irvine-contact > * { position: relative; z-index: 2; }
.irvine-contact .subheading { text-align: center; display: block; margin: 0 auto 14px; }
.irvine-contact h2.wp-block-heading { color: #fff; text-align: center; font-size: var(--text-h2); margin: 0 auto 36px; }
/* §15 Contact — Gravity Forms (orbital theme handles the 50/50 grid via gfield--width-half) */
.irvine-contact .gform_wrapper { max-width: 760px; margin: 0 auto; background: #fff; padding: 48px; border-radius: var(--radius-md); box-shadow: 0 24px 60px rgba(0,0,0,.25); text-align: left; }
.irvine-contact .gform_wrapper .gform_required_legend { display: none; }
.irvine-contact .gform_wrapper .gfield_label { font-family: var(--font-ui); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--color-headings); margin: 0 0 10px; }
.irvine-contact .gform_wrapper .gfield_required { color: var(--color-accent); }
.irvine-contact .gform_wrapper input[type=text],
.irvine-contact .gform_wrapper input[type=email],
.irvine-contact .gform_wrapper input[type=tel],
.irvine-contact .gform_wrapper input[type=phone],
.irvine-contact .gform_wrapper textarea {
  width: 100% !important; padding: 15px 16px !important; border: 1px solid var(--gray-200) !important;
  border-radius: var(--radius-sm) !important; background: var(--bg-section-alt) !important;
  font-family: var(--font-body) !important; font-size: 16px !important; color: var(--color-headings) !important; box-sizing: border-box !important;
}
.irvine-contact .gform_wrapper input:focus, .irvine-contact .gform_wrapper textarea:focus { outline: 0 !important; border-color: var(--color-accent) !important; background: #fff !important; }
.irvine-contact .gform_wrapper textarea { resize: vertical; min-height: 150px; }
.irvine-contact .gform_wrapper .gform_footer { margin: 8px 0 0; padding: 0; display: block; }
.irvine-contact .gform_wrapper .gform_button {
  width: 100% !important; padding: 22px !important; border: 0; border-radius: var(--radius-sm); background: var(--color-accent) !important;
  color: #fff !important; font-family: var(--font-ui); font-weight: 700; letter-spacing: .06em; text-transform: uppercase !important;
  font-size: var(--text-button); cursor: pointer; transition: background var(--transition-base);
}
.irvine-contact .gform_wrapper .gform_button:hover { background: var(--cta-hover-bg) !important; }
@media (max-width: 600px) { .irvine-contact .gform_wrapper { padding: 32px 24px; } }

/* §16 Footer — light, 3-col (logo / contact / find-us map) + bottom bar */
.wp-block-uagb-container.irvine-footer { background: #EEEEEE; padding-top: 64px !important; padding-bottom: 0 !important; }
.irvine-footer, .irvine-footer p { color: #666; }
.irvine-footer a { color: #777; text-decoration: none; }
.irvine-footer a:hover { color: var(--color-accent); }
.irvine-footer .footer-grid { gap: 48px; margin-bottom: 0; padding-bottom: 48px; align-items: flex-start; }
.irvine-footer .footer-grid .wp-block-column:nth-child(3) { flex-grow: 1.3; }
.irvine-footer .footer-logo img { height: 90px; width: auto; }
.irvine-footer .footer-head { font-family: var(--font-heading); font-size: 15px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-headings); margin: 0 0 20px; }
/* contact rows w/ inline icons */
.irvine-footer .fc-phone, .irvine-footer .fc-addr { padding-left: 28px; background-repeat: no-repeat; background-position: left 3px; background-size: 17px 17px; margin: 0 0 14px; line-height: 1.5; }
.irvine-footer .fc-phone { background-image: url('../../uploads/2026/06/footer-phone.svg'); font-size: 16px; }
.irvine-footer .fc-phone a { color: var(--color-headings); font-weight: 600; }
.irvine-footer .fc-addr { background-image: url('../../uploads/2026/06/footer-pin.svg'); font-size: 15px; color: #666; }
/* find-us styled map placeholder */
.irvine-footer .footer-map { position: relative; height: 190px; border-radius: 2px; overflow: hidden; margin: 0;
  background:
    linear-gradient(#c7bebe,#c7bebe) 30% 0/6px 100% no-repeat,
    linear-gradient(#c7bebe,#c7bebe) 0 55%/100% 7px no-repeat,
    repeating-linear-gradient(0deg, transparent 0 28px, #d4cdcd 28px 29px),
    repeating-linear-gradient(90deg, transparent 0 34px, #d4cdcd 34px 35px),
    #dcd6d6; }
.irvine-footer .footer-map::after { content: ""; position: absolute; left: 50%; top: 42%; transform: translate(-50%,-100%); width: 34px; height: 34px; background: url('../../uploads/2026/06/footer-map-pin.svg') center/contain no-repeat; }
.irvine-footer .footer-map .wp-block-buttons { position: absolute; left: 12px; bottom: 12px; margin: 0; }
.irvine-footer .footer-directions .wp-block-button__link { background: #fff; color: var(--color-headings); font-family: var(--font-heading); font-size: 13px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: 9px 16px; border-radius: 2px; }
.irvine-footer .footer-directions .wp-block-button__link:hover { background: var(--color-accent); color: #fff; }
/* bottom bar */
.irvine-footer .footer-bottom { border-top: 1px solid #dcd6d6; padding: 22px 0; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.irvine-footer .footer-legal { font-size: 13px; color: #777; margin: 0; }
.irvine-footer .footer-legal .sep { color: #bbb; margin: 0 6px; }
.irvine-footer .footer-agency { align-items: center; gap: 9px; }
.irvine-footer .footer-agency p { font-size: 13px; color: #888; margin: 0; }
.irvine-footer .footer-agency-logo img { height: 24px; width: auto; }
/* §17 Disclaimer band — dark, full-width, site-wide (below footer) */
.wp-block-uagb-container.irvine-disclaimer { background: #0A0303; padding: 18px 40px !important; display: block !important; }
.irvine-disclaimer .disclaimer-text { max-width: 1200px; margin: 0 auto; font-size: 12.5px; line-height: 1.6; color: rgba(255,255,255,.45); }
/* Footer + disclaimer render as direct flex children of #page (Astra makes #page a flex column).
   Spectra's .uagb-is-root-container{margin:0 auto} would shrink+center them — force full-width stretch. */
.wp-block-uagb-container.irvine-footer,
.wp-block-uagb-container.irvine-disclaimer {
  width: 100% !important; max-width: none !important; align-self: stretch !important;
  margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important;
}

/* ============ INNER PAGE TEMPLATE (hero + 2/3 content + 1/3 sidebar form) ============ */
/* Inner hero — like the homepage hero, shorter */
.wp-block-uagb-container.irvine-inner-hero {
  position: relative; display: flex !important; flex-direction: column !important; justify-content: center; align-items: center;
  min-height: 360px; padding: 80px var(--container-pad) !important;
  background: url('../../uploads/2026/06/practice-areas-background-scaled.jpg') center/cover no-repeat;
}
.irvine-inner-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(18,6,6,.7); pointer-events: none; }
.irvine-inner-hero > * { position: relative; z-index: 2; max-width: var(--container-max); margin-left: auto; margin-right: auto; }
.irvine-inner-hero .subheading { display: block; text-align: center; color: var(--color-accent); margin: 0 auto 14px; }
.irvine-inner-hero h1.wp-block-heading { color: #fff; text-align: center; font-size: 56px; line-height: 1.06; margin: 0; }

/* Inner body — 2/3 + 1/3 */
.wp-block-uagb-container.irvine-inner-body { display: flex !important; flex-direction: column !important; padding: var(--section-pad-y) var(--container-pad) !important; background: #fff; }
.wp-block-uagb-container.irvine-inner-body > .inner-row { max-width: var(--container-max) !important; width: 100% !important; margin-left: auto !important; margin-right: auto !important; padding: 0 !important; display: flex !important; flex-direction: row !important; gap: 56px; align-items: flex-start; }
/* exact 2/3 : 1/3 (gap subtracted proportionally) — out-specify Spectra's per-block width:100% */
.irvine-inner-body .inner-row > .inner-main { flex: 0 0 calc(66.667% - 37.3px) !important; max-width: calc(66.667% - 37.3px) !important; min-width: 0; padding: 0 !important; display: flex !important; flex-direction: column !important; }
.irvine-inner-body .inner-row > .inner-aside { flex: 0 0 calc(33.333% - 18.7px) !important; max-width: calc(33.333% - 18.7px) !important; min-width: 0; display: flex !important; flex-direction: column !important; }
/* main content typography */
.inner-main h2 { font-family: var(--font-heading); font-size: var(--text-h3); color: var(--color-headings); margin: 0 0 18px; }
.inner-main h3 { font-family: var(--font-heading); font-size: var(--text-h4); color: var(--color-headings); margin: 32px 0 14px; }
.inner-main p { color: var(--color-body); font-size: var(--text-body); line-height: var(--lh-body); margin: 0 0 18px; }
.inner-main ul { color: var(--color-body); margin: 0 0 18px; padding-left: 20px; }
.inner-main li { font-size: var(--text-body); line-height: var(--lh-body); margin-bottom: 8px; }
/* sidebar form card */
.irvine-inner-body .inner-aside { background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-md); padding: 22px 22px 24px; position: sticky; top: 100px; }
.inner-aside .aside-title { font-family: var(--font-heading); font-size: 22px; line-height: 1.2; color: var(--color-headings); margin: 0 0 4px; text-align: center; }
.inner-aside .aside-sub { font-size: 14px; line-height: 1.4; color: var(--color-body); margin: 0 0 8px; text-align: center; }
.inner-aside .gform_wrapper .gform_required_legend { display: none; }
.inner-aside .gform_wrapper, .inner-aside .gform_wrapper form, .inner-aside .gform_wrapper .gform-body, .inner-aside .gform_wrapper .gform_body, .inner-aside .gform_wrapper .gform_fields { margin-top: 0 !important; padding-top: 0 !important; }
.inner-aside .gform_wrapper .gform_fields { row-gap: 12px !important; }
.inner-aside .gform_wrapper .gfield { margin-bottom: 0 !important; padding-top: 0 !important; }
.inner-aside .gform_wrapper .gfield_label { font-family: var(--font-ui); font-weight: 700; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: var(--color-headings); margin: 0 0 5px !important; }
.inner-aside .gform_wrapper input[type=text], .inner-aside .gform_wrapper input[type=email], .inner-aside .gform_wrapper input[type=tel], .inner-aside .gform_wrapper input[type=phone], .inner-aside .gform_wrapper textarea {
  width: 100% !important; padding: 9px 12px !important; border: 1px solid var(--gray-200) !important; border-radius: var(--radius-sm) !important;
  background: var(--bg-section-alt) !important; font-family: var(--font-body) !important; font-size: 14px !important; color: var(--color-headings) !important; box-sizing: border-box !important;
}
.inner-aside .gform_wrapper input:focus, .inner-aside .gform_wrapper textarea:focus { outline: 0 !important; border-color: var(--color-accent) !important; background: #fff !important; }
.inner-aside .gform_wrapper textarea { min-height: 74px !important; resize: vertical; }
.inner-aside .gform_wrapper .gform_footer { margin: 12px 0 0 !important; padding: 0 !important; display: block; }
.inner-aside .gform_wrapper .gform_button { width: 100% !important; padding: 13px !important; border: 0; border-radius: var(--radius-sm); background: var(--color-accent) !important; color: #fff !important; font-family: var(--font-ui); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; font-size: 14px; cursor: pointer; transition: background var(--transition-base); }
.inner-aside .gform_wrapper .gform_button:hover { background: var(--cta-hover-bg) !important; }
/* Reviews page — center the Trustindex widget at content width */
.irvine-inner-body .reviews-wrap { max-width: var(--container-max); width: 100%; margin: 0 auto; }

/* ===== Blog page — post grid (reuses .irvine-postcar dark cards, but grid not carousel) ===== */
.blog-grid-wrap { max-width: var(--container-max); width: 100%; margin: 0 auto; }
.irvine-blog-grid.uagb-post-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 28px; padding-bottom: 0 !important; }
@media (max-width: 880px) { .irvine-blog-grid.uagb-post-grid { grid-template-columns: 1fr; } }
/* Post-grid pagination (blog + podcast) */
.uagb-post-pagination-wrap { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 48px; }
.uagb-post-pagination-wrap .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--gray-200); border-radius: var(--radius-sm); color: var(--color-headings); font-family: var(--font-ui); font-weight: 600; font-size: 15px; text-decoration: none; transition: border-color var(--transition-base), color var(--transition-base), background var(--transition-base); }
.uagb-post-pagination-wrap .page-numbers.current { background: var(--color-accent) !important; border-color: var(--color-accent) !important; color: #fff !important; }
.uagb-post-pagination-wrap a.page-numbers:hover { border-color: var(--color-accent); color: var(--color-accent); }
.uagb-post-pagination-wrap .page-numbers.dots { border-color: transparent; }

/* ===== Contact page — 1/2 contact info + 1/2 form ===== */
.irvine-inner-body > .contact-row { max-width: var(--container-max) !important; width: 100% !important; margin: 0 auto !important; padding: 0 !important; display: flex !important; flex-direction: row !important; gap: 56px; align-items: flex-start; }
.contact-row > .contact-info { flex: 0 0 calc(50% - 28px) !important; max-width: calc(50% - 28px) !important; min-width: 0; }
.contact-row > .contact-form { flex: 0 0 calc(50% - 28px) !important; max-width: calc(50% - 28px) !important; min-width: 0; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-md); padding: 36px; }
.contact-info h2 { font-family: var(--font-heading); font-size: var(--text-h3); color: var(--color-headings); margin: 0 0 14px; }
.contact-info p { color: var(--color-body); }
.contact-info .ci-phone, .contact-info .ci-addr, .contact-info .ci-email { padding-left: 30px; background-repeat: no-repeat; background-position: left 4px; background-size: 18px 18px; margin: 18px 0 0; line-height: 1.5; }
.contact-info .ci-phone { background-image: url('../../uploads/2026/06/footer-phone.svg'); font-size: 18px; }
.contact-info .ci-phone a { color: var(--color-headings); font-weight: 600; }
.contact-info .ci-addr { background-image: url('../../uploads/2026/06/footer-pin.svg'); }
.contact-info .ci-email { background-image: url('../../uploads/2026/06/footer-mail.svg'); }
.contact-info .ci-email a { color: var(--color-headings); }
.contact-form .gform_wrapper .gform_required_legend { display: none; }
.contact-form .gform_wrapper .gfield_label { font-family: var(--font-ui); font-weight: 700; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--color-headings); margin: 0 0 6px !important; }
.contact-form .gform_wrapper input[type=text], .contact-form .gform_wrapper input[type=email], .contact-form .gform_wrapper input[type=tel], .contact-form .gform_wrapper textarea {
  width: 100% !important; padding: 12px 14px !important; border: 1px solid var(--gray-200) !important; border-radius: var(--radius-sm) !important; background: var(--bg-section-alt) !important; font-family: var(--font-body) !important; font-size: 15px !important; color: var(--color-headings) !important; box-sizing: border-box !important;
}
.contact-form .gform_wrapper input:focus, .contact-form .gform_wrapper textarea:focus { outline: 0 !important; border-color: var(--color-accent) !important; background: #fff !important; }
.contact-form .gform_wrapper textarea { min-height: 110px !important; resize: vertical; }
.contact-form .gform_wrapper .gform_footer { margin: 12px 0 0 !important; padding: 0 !important; }
.contact-form .gform_wrapper .gform_button { width: 100% !important; padding: 15px !important; border: 0; border-radius: var(--radius-sm); background: var(--color-accent) !important; color: #fff !important; font-family: var(--font-ui); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; font-size: 15px; cursor: pointer; transition: background var(--transition-base); }
.contact-form .gform_wrapper .gform_button:hover { background: var(--cta-hover-bg) !important; }
@media (max-width: 880px) {
  .irvine-inner-body > .contact-row { flex-direction: column !important; gap: 36px; }
  .contact-row > .contact-info, .contact-row > .contact-form { flex: 1 1 100% !important; max-width: 100% !important; }
}
@media (max-width: 880px) {
  /* Mobile only: content spans the full container, form drops below all content */
  .wp-block-uagb-container.irvine-inner-body > .inner-row { flex-direction: column !important; gap: 40px !important; align-items: stretch !important; }
  .irvine-inner-body .inner-row > .inner-main,
  .irvine-inner-body .inner-row > .inner-aside { flex: 1 1 100% !important; max-width: 100% !important; }
  .irvine-inner-body .inner-row > .inner-main { order: 0 !important; }
  .irvine-inner-body .inner-row > .inner-aside { order: 1 !important; position: static !important; top: auto !important; }
  .irvine-inner-hero h1.wp-block-heading { font-size: 40px; }
}

/* §8 Meet Our Team — featured attorney (irvine-section + irvine-team) */
.irvine-team .wp-block-image::before { display: none; }
.irvine-team h3.wp-block-heading { font-size: var(--text-h3); margin: 0; color: var(--color-headings); }
.irvine-team .attorney-title { font-family: var(--font-ui); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--color-accent); font-size: 14px; margin: 10px 0 22px; }
.irvine-team p { color: var(--color-body); }

/* ============================================================
   MOCKUP CORRECTIONS (client review screenshots, 2026-06-23)
   ============================================================ */
/* §3/§5 content sections: red eyebrow (no dash), bigger H2, square image + red corner bracket, white bg */
.irvine-section { background: var(--color-background); }
.irvine-section .subheading { color: var(--color-accent); }
.irvine-section .subheading::before,
.irvine-section .subheading::after { display: none; }
.irvine-section h2.wp-block-heading { font-size: 52px; }
.irvine-section .wp-block-image img { border-radius: 0; }
.irvine-section .wp-block-image { position: relative; }
.irvine-section .wp-block-image::before {
  content: "";
  position: absolute;
  top: -16px;
  left: -16px;
  width: 120px;
  height: 120px;
  border-top: 4px solid var(--color-accent);
  border-left: 4px solid var(--color-accent);
  pointer-events: none;
}

/* §4 Practice Areas: dark translucent cards, red top accent, light text */
.pa-card {
  background: rgba(12, 5, 5, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-top: 3px solid var(--color-accent);
  border-radius: 0;
}
.pa-card h3 { color: #fff; }
.pa-card p { color: rgba(255, 255, 255, 0.78); }
.pa-card a { color: var(--color-accent); }
.pa-card .pa-icon { margin: 0 0 18px; }
.pa-card .pa-icon img { width: 44px; height: auto; }

/* Content images: square + cover; mirror the corner bracket to bottom-right when the image sits left */
.irvine-section .wp-block-image img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; height: auto; }
.irvine-section .wp-block-columns > .wp-block-column:first-child .wp-block-image::before {
  top: auto;
  left: auto;
  bottom: -16px;
  right: -16px;
  border-top: 0;
  border-left: 0;
  border-bottom: 4px solid var(--color-accent);
  border-right: 4px solid var(--color-accent);
}

/* §4 PA card hover — exact spec from _ds_bundle.js (translateY -4px, transform 0.2s) */
.pa-card { transition: transform 0.2s ease; }
.pa-card:hover { transform: translateY(-4px); }

/* ============================================================
   MOCKUP FIXES — ROUND 2 (2026-06-24)
   ============================================================ */
/* Why Choose Us — white section (boxes already have thin grey borders) */
.irvine-why { background: #fff; border-top: 1px solid #EFEBEB !important; row-gap: 0 !important; }
.irvine-why .wp-block-buttons { margin-top: 52px !important; }

/* Dark content sections (§11, §13) — ink bg, white text */
.irvine-section.is-dark { background: var(--color-primary); }
.irvine-section.is-dark h2.wp-block-heading { color: #fff; }
.irvine-section.is-dark p:not(.subheading) { color: rgba(255, 255, 255, .82); }

/* §8 Meet Our Team — warm-neutral section, centered heading, white card panel */
.irvine-section.irvine-team { background: #F6F3F3; }
.irvine-team > .subheading { text-align: center; display: block; margin: 0 auto 6px; font-size: 15px; }
.irvine-team > .subheading::before, .irvine-team > .subheading::after { display: inline-block !important; }
.irvine-team > h2.wp-block-heading { text-align: center; font-size: var(--text-h2); margin: 0 auto 44px; }
.irvine-team .wp-block-columns { background: #fff; }
.irvine-team .wp-block-column:last-child { padding: 48px 56px; }

/* Hero — wider H1 (fewer lines) + overlapping review card */
.irvine-hero h1.wp-block-heading { max-width: 30ch; }
.irvine-hero .hero-review {
  background: #fff; max-width: 1080px; margin: 64px auto -170px; position: relative; z-index: 3;
  display: flex; align-items: center; gap: 40px; padding: 30px 46px;
  border: 1px solid var(--gray-200); border-top: 4px solid var(--color-accent); text-align: left; box-shadow: var(--shadow-md);
}
.irvine-hero .hero-review, .irvine-hero .hero-review * { text-shadow: none; }
.irvine-hero .hero-review .hr-left { white-space: nowrap; }
.irvine-hero .hero-review .hr-stars { color: var(--star-color); font-size: 20px; letter-spacing: 2px; margin: 0; }
.irvine-hero .hero-review .hr-label { font-family: var(--font-ui); font-weight: 600; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--color-accent); margin: 8px 0 0; }
.irvine-hero .hero-review .hr-quote { font-family: var(--font-heading); font-style: italic; font-size: 20px; line-height: 1.45; color: var(--color-headings); flex: 1; margin: 0; }
.irvine-hero .hero-review .hr-author { font-family: var(--font-heading); color: var(--color-headings); white-space: nowrap; margin: 0; }
@media (max-width: 768px) {
  .irvine-hero .hero-review { flex-direction: column; gap: 16px; text-align: center; margin-bottom: -40px; }
}

/* ============ SITE HEADER (Astra HFB: logo / centered menu / phone button) ============ */
.ast-primary-header-bar, .site-header .main-header-bar, .ast-primary-header-bar .ast-primary-header { background-color: #fff !important; border-bottom: 1px solid var(--gray-200); }
/* nav menu — uppercase, dark, bold */
.ast-builder-menu-1 .menu-link { text-transform: uppercase; color: var(--color-headings) !important; font-family: var(--font-ui); font-weight: 700; font-size: 13px; letter-spacing: .02em; }
.ast-builder-menu-1 .menu-item { margin-left: 0; margin-right: 0; }
.ast-builder-menu-1 .menu-item:hover > .menu-link,
.ast-builder-menu-1 .current-menu-item > .menu-link { color: var(--color-accent) !important; }
/* phone CTA button — red, white phone icon */
.ast-builder-button-wrap { flex-shrink: 0 !important; }
.ast-builder-button-wrap .ast-custom-button { display: inline-flex !important; align-items: center; white-space: nowrap !important; gap: 8px; background: var(--color-accent) !important; color: #fff !important; font-family: var(--font-ui); font-weight: 700; font-size: 14px; letter-spacing: .01em; padding: 12px 20px !important; border-radius: var(--radius-sm); transition: background var(--transition-base); }
.ast-builder-button-wrap .ast-custom-button-link { white-space: nowrap !important; }
.ast-builder-button-wrap .ast-custom-button::before { content: ""; width: 17px; height: 17px; flex-shrink: 0; background: url('../../uploads/2026/06/header-phone.svg') center/contain no-repeat; }
.ast-builder-button-wrap .ast-custom-button-link:hover .ast-custom-button { background: var(--cta-hover-bg) !important; }
/* header logo — 40% of prior size */
.site-header img.custom-logo, .ast-primary-header-bar img.custom-logo { width: 64px !important; max-width: 64px !important; height: auto !important; }

/* first content section — extra top padding so the overlapping hero review card clears */
.wp-block-uagb-container.irvine-hero + .wp-block-uagb-container.irvine-section { padding-top: calc(var(--section-pad-y) + 90px) !important; }

/* Practice Areas slider — nav arrows BELOW the carousel, square outlined buttons */
.irvine-pa .uagb-slides.uagb-swiper { position: relative; padding-bottom: 86px; }
.irvine-pa .swiper-button-prev, .irvine-pa .swiper-button-next {
  top: auto !important; bottom: 0 !important; width: 54px !important; height: 54px !important; margin: 0 !important;
  border: 1.5px solid rgba(255,255,255,.5) !important; border-radius: 2px !important; background: transparent !important;
}
.irvine-pa .swiper-button-prev { left: calc(50% - 62px) !important; right: auto !important; }
.irvine-pa .swiper-button-next { left: calc(50% + 8px) !important; right: auto !important; }
.irvine-pa .swiper-button-prev::after { content: "\2190" !important; font-family: var(--font-ui) !important; font-size: 22px !important; color: #fff !important; }
.irvine-pa .swiper-button-next::after { content: "\2192" !important; font-family: var(--font-ui) !important; font-size: 22px !important; color: #fff !important; }
.irvine-pa .swiper-button-prev:hover, .irvine-pa .swiper-button-next:hover { border-color: #fff !important; background: rgba(255,255,255,.08) !important; }

/* ============ BLOG — Spectra Post Carousel (dark-meta cards) ============ */
.irvine-postcar { position: relative; padding-bottom: 92px; }
.irvine-postcar .uagb-post__inner-wrap { background: var(--color-primary); height: 100%; display: flex !important; flex-direction: column !important; border-radius: 0; overflow: hidden; }
.irvine-postcar .uagb-post-grid-byline svg, .irvine-postcar .uagb-post__date svg, .irvine-postcar .uagb-post-grid-byline .dashicons { display: none !important; }
.irvine-postcar .uagb-post__image { order: 0; margin: 0 !important; }
.irvine-postcar .uagb-post__image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.irvine-postcar .uagb-post__text { padding-left: 30px !important; padding-right: 30px !important; margin: 0 !important; }
.irvine-postcar .uagb-post-grid-byline { order: 1; padding-top: 30px !important; }
.irvine-postcar .uagb-post__date { font-family: var(--font-ui); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.irvine-postcar .uagb-post__title { order: 2; padding-top: 16px !important; padding-bottom: 0 !important; }
.irvine-postcar .uagb-post__title, .irvine-postcar .uagb-post__title a { font-family: var(--font-heading); font-size: var(--text-h4); color: #000 !important; line-height: 1.2; }
.irvine-postcar .uagb-post__excerpt { order: 3; padding-top: 14px !important; }
.irvine-postcar .uagb-post__excerpt, .irvine-postcar .uagb-post__excerpt p { color:#000; margin: 0; }
.irvine-postcar .uagb-post__cta { order: 4; margin-top: 18px !important; padding-bottom: 34px !important; background: transparent !important; border: 0 !important; }
.irvine-postcar .uagb-post__cta a, .irvine-postcar .uagb-post__cta .wp-block-button__link { background: transparent !important; color: var(--color-accent) !important; padding: 0 !important; font-family: var(--font-ui); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: 14px; border: 0 !important; }
.irvine-postcar .uagb-post__cta a::after { content: " \2192"; }
/* nav arrows — below the carousel, square outlined (white bg, dark arrow) */
.irvine-postcar .slick-arrow { top: auto !important; bottom: -78px !important; width: 54px !important; height: 54px !important; border: 1.5px solid var(--gray-300) !important; border-radius: 2px !important; background: #fff !important; z-index: 5; transition: border-color var(--transition-base); }
.irvine-postcar .slick-prev { left: calc(50% - 62px) !important; right: auto !important; }
.irvine-postcar .slick-next { left: calc(50% + 8px) !important; right: auto !important; }
.irvine-postcar .slick-arrow svg { width: 18px; height: 18px; }
.irvine-postcar .slick-arrow svg path { fill: var(--color-headings); }
.irvine-postcar .slick-arrow:hover { border-color: var(--color-accent) !important; }
.irvine-postcar .slick-arrow:hover svg path { fill: var(--color-accent); }

/* ===== Books page (books #171) ===== */
.irvine-books{display:grid;grid-template-columns:repeat(2,1fr);gap:40px 32px;margin-top:28px}
.irvine-books .book-card{text-align:center;margin:0}
.irvine-books .book-card .wp-block-image{margin:0 0 16px}
.irvine-books .book-card img{max-width:210px;width:100%;height:auto;box-shadow:0 10px 30px rgba(0,0,0,.18);border-radius:2px;transition:transform .2s ease}
.irvine-books .book-card a:hover img{transform:translateY(-4px)}
.irvine-books .book-card h3{font-size:1.02rem;line-height:1.32;margin:0 0 14px;color:var(--color-primary)}
.irvine-books .book-card .wp-block-button__link{background:var(--color-accent);color:#fff;border-radius:4px;padding:10px 22px;font-family:var(--font-ui);font-weight:600;font-size:13px;letter-spacing:.03em;text-transform:uppercase}
.irvine-books .book-card .wp-block-button__link:hover{filter:brightness(.92)}

/* ===== Recognition page (recognition #170) ===== */
.irvine-awards{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 28px;margin-top:8px}
.irvine-awards .award-item{margin:0;display:flex;flex-direction:column;align-items:center;text-align:center}
.irvine-awards .award-item .wp-block-image{margin:0 0 12px;display:flex;align-items:center;justify-content:center;height:150px;width:100%}
.irvine-awards .award-item img{max-height:150px;width:auto;max-width:100%;object-fit:contain}
.irvine-awards .award-cap{font-size:.85rem;line-height:1.42;color:var(--color-primary);margin:0}
@media(max-width:600px){.irvine-books,.irvine-awards{grid-template-columns:1fr}}

/* ===== r23: blog single-post full-width + footer column-spread fix ===== */
/* Stretch single blog posts to full width (was boxed 1200), keep readable side padding */
.single-post #content .ast-container{max-width:100%!important;padding-left:5vw!important;padding-right:5vw!important}
.single-post #primary,
.single-post .ast-article-single{max-width:100%!important;width:100%!important}
/* Footer 3-col grid + bottom bar collapsed to content width on the blog template
   because they don't stretch in that flex context — force their intended width. */
.irvine-footer .footer-grid,
.irvine-footer .footer-bottom{width:100%!important;max-width:1200px;margin-left:auto!important;margin-right:auto!important}

/* ===== r24: cap blog single featured image to a banner height ===== */
.single-post .post-thumb-img-content,
.single-post .post-thumb{max-height:380px;overflow:hidden;border-radius:4px}
.single-post .post-thumb-img-content img,
.single-post .post-thumb img{width:100%;height:380px;object-fit:cover;object-position:center}

/* ===== r25: hero review = verified label (left) + Google reviews widget (right) ===== */
.irvine-hero .hero-review-widget{align-items:center}
.irvine-hero .hero-review-widget .hr-left{flex:0 0 auto}
.irvine-hero .hero-review-widget .ti-widget{flex:1 1 auto;min-width:0;margin:0!important}
/* keep the reviews widget flat inside the card (no card-in-card) */
.irvine-hero .hero-review-widget .ti-widget .ti-review-item,
.irvine-hero .hero-review-widget .ti-widget .ti-widget-container{background:transparent!important;box-shadow:none!important;border:none!important}

/* ===== r26: on mobile, seat the review card cleanly between hero and first section ===== */
@media (max-width: 768px){
  .irvine-hero .hero-review-widget{margin-top:32px!important;margin-bottom:-150px!important}
}

/* ===== r27: make Practice Area cards fully clickable (stretched link) ===== */
.irvine-pa .pa-card{position:relative;cursor:pointer}
.irvine-pa .pa-card a[href]::after{content:"";position:absolute;inset:0;z-index:2}

/* ===== r30: footer social icons (core social-links, logos-only) ===== */
.irvine-footer .footer-social{gap:8px;margin-top:20px}
.irvine-footer .footer-social .wp-social-link{color:var(--color-primary);transition:transform .15s ease,color .15s ease}
.irvine-footer .footer-social .wp-social-link:hover{color:var(--color-accent);transform:translateY(-2px);background:none}
.irvine-footer .footer-social .wp-social-link svg{width:22px;height:22px}

/* ===== r31: design QA — buttons all-caps + letter-spacing (#7) ===== */
.wp-block-button__link,
.btn,
.irvine-btn-primary .wp-block-button__link { text-transform: uppercase; letter-spacing: .06em; }

/* ===== r31: shorter hero review box (#3) ===== */
.irvine-hero .hero-review{padding:22px 46px}
.irvine-hero .hero-review-widget .ti-review-text-container{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:0}
.irvine-hero .hero-review-widget .ti-read-more{display:none!important}

/* r31b: balance/shorten the review slide */
.irvine-hero .hero-review{padding:16px 46px}
.irvine-hero .hero-review-widget .ti-reviews-container,
.irvine-hero .hero-review-widget .ti-reviews-container-wrapper{align-items:center!important}
.irvine-hero .hero-review-widget .ti-review-item .ti-inner{display:flex;flex-direction:column;justify-content:center}

/* r31c: force 3-line clamp on review text (trustindex overrides display) */
.irvine-hero .hero-review-widget .ti-review-text-container{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important;overflow:hidden!important;max-height:4.7em!important}

/* r31d: cap the slider height so the box matches the (clamped) content */
.irvine-hero .hero-review-widget .ti-reviews-container,
.irvine-hero .hero-review-widget .ti-reviews-container-wrapper,
.irvine-hero .hero-review-widget .ti-review-item,
.irvine-hero .hero-review-widget .ti-inner{max-height:180px!important}

/* r31e: #2 shift hero content down into the sky gap between buildings */
.irvine-hero{padding-top:150px!important;padding-bottom:40px!important}

/* r31f: keep hero padding sane on mobile (r31e used !important globally) */
@media (max-width:768px){ .irvine-hero{padding-top:72px!important;padding-bottom:36px!important} }

/* ===== r32: design QA follow-up — tighten headline + button, lower hero text ===== */
.irvine-hero h1,
.irvine-hero .hero-title { line-height: .95; letter-spacing: -.015em; }
.irvine-hero .irvine-btn-primary .wp-block-button__link { padding: 12px 30px; }
.irvine-hero { padding-top: 190px !important; }
@media (max-width: 768px) { .irvine-hero { padding-top: 72px !important; } }

/* r32b: hero top padding — must beat Spectra's .wp-block-uagb-container.irvine-hero padding !important */
.wp-block-uagb-container.irvine-hero{padding-top:150px!important}
@media (max-width:768px){ .wp-block-uagb-container.irvine-hero{padding-top:72px!important} }

/* ===== r33: PA section — tighten heading->cards and cards->arrows ===== */
.irvine-pa h2.wp-block-heading { margin-bottom: 20px; }
.irvine-pa .uagb-slides.uagb-swiper { padding-bottom: 60px; }

/* r33b: remove slider's internal top padding so cards sit closer to the heading */
.irvine-pa .wp-block-uagb-slider,
.irvine-pa .uagb-slider-container { padding-top: 0 !important; }
.irvine-pa .swiper-content { padding-top: 0 !important; }
.irvine-pa .wp-block-uagb-container.uagb-block-pacont01 { padding-top: 0 !important; }

/* r33c: pull nav arrows closer to the cards (trim slide bottom padding) */
.irvine-pa .swiper-content { padding-bottom: 0 !important; }
.irvine-pa .wp-block-uagb-container.uagb-block-pacont01 { padding-bottom: 4px !important; }

/* r33d: reduce heading->cards gap a bit more */
.irvine-pa h2.wp-block-heading { margin-bottom: 6px; }

/* ===== r33e: PA cards top-aligned + equal height (min-height to tallest) ===== */
.irvine-pa .swiper-wrapper { align-items: flex-start !important; }
.irvine-pa .pa-card { min-height: 395px; }

/* ===== r34: design QA — team crop + blog section ===== */
/* team: raise crop so top of head isn't cut off */
.irvine-team img { object-position: 50% 20%; }
/* blog #3: tighten heading -> cards */
.irvine-postcar { padding-top: 8px !important; padding-bottom: 84px; }
/* blog #6 + #7: arrows sit inside the carousel (30px below cards); section's 80px bottom padding then matches the 80px above the heading */
.irvine-postcar .slick-arrow { bottom: 0 !important; }
/* blog #5: 24px titles -> shorter cards */
.irvine-postcar .uagb-post__title, .irvine-postcar .uagb-post__title a { font-size: 24px !important; }
/* blog #4: hover lift (matches PA cards) */
.irvine-postcar .uagb-post__inner-wrap { transition: transform .2s ease; }
.irvine-postcar .slick-slide:hover .uagb-post__inner-wrap { transform: translateY(-6px); }

/* r34b: blog — tighten heading row + even arrow padding (kill slick transform, flush arrow) */
.irvine-center .blog-head { margin-bottom: 8px !important; }
.irvine-postcar { padding-top: 0 !important; padding-bottom: 78px; }
.irvine-postcar .slick-arrow { transform: none !important; bottom: 0 !important; }

/* r33g: PA cards — top-align within slide (pacont was centering, so short slides rode up) */
.irvine-pa .wp-block-uagb-container.uagb-block-pacont01 { justify-content: flex-start !important; }

/* r33h: top-align ALL PA slide containers (each has a unique uagb-block-pacontNN id) */
.irvine-pa .swiper-content .wp-block-uagb-container { justify-content: flex-start !important; }

/* r33i: force every PA card to the top of its slide (margin-bottom:auto works in the flex-column container regardless of its unique block id) */
.irvine-pa .pa-card { margin-top: 0 !important; margin-bottom: auto !important; }

/* r33j: zero top padding on ALL PA slide containers (was only applied to pacont01 = Business Law, making it 10px higher) */
.irvine-pa .swiper-content .wp-block-uagb-container { padding-top: 0 !important; }

/* ===== r35: QA — eyebrow gaps, contact form, footer social ===== */
/* #3 tighten eyebrow -> heading on non-content sections */
.irvine-pa .subheading,
.irvine-reviews .subheading,
.irvine-center .subheading,
.irvine-contact .subheading,
.irvine-blog .blog-head .subheading { margin-bottom: 6px !important; }

/* #2 contact form (homepage .irvine-contact): tighter field rows, more space above button, on-brand button */
.irvine-contact .gform_wrapper .gfield { margin-bottom: 12px !important; }
.irvine-contact .gform_wrapper .gform_footer { margin-top: 30px !important; }
.irvine-contact .gform_wrapper .gform_button { padding: 15px !important; font-family: var(--font-ui) !important; font-weight: 700 !important; letter-spacing: .03em !important; font-size: 16px !important; }

/* #4 footer social icons: red circles, bigger, keep hover lift */
.irvine-footer .footer-social { gap: 10px; }
.irvine-footer .footer-social .wp-social-link { background: var(--color-accent) !important; color: #fff !important; border-radius: 50% !important; width: 40px !important; height: 40px !important; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 !important; transition: transform .15s ease, background .15s ease; }
.irvine-footer .footer-social .wp-social-link:hover { background: var(--cta-hover-bg) !important; transform: translateY(-3px); }
.irvine-footer .footer-social .wp-social-link svg { width: 20px !important; height: 20px !important; fill: #fff !important; }

/* ===== r36: real Google Maps embed in footer FIND US ===== */
.irvine-footer .footer-map { background: none !important; }
.irvine-footer .footer-map::after { display: none !important; }
.irvine-footer .footer-map iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; display: block; }
.irvine-footer .footer-map .wp-block-buttons { z-index: 2; }

/* r35b: contact form row spacing is GF grid row-gap (was 40px + my 12px margin = 52). Tighten the grid gap, drop the margin. */
.irvine-contact .gform_wrapper .gform_fields { row-gap: 18px !important; grid-row-gap: 18px !important; }
.irvine-contact .gform_wrapper .gfield { margin-bottom: 0 !important; }

/* ===== r37: nav logo+spacing, book buttons, inner-page list checks + red line above h3 ===== */
/* #1 bigger logo */
.site-header img.custom-logo, .ast-primary-header-bar img.custom-logo { width: 88px !important; max-width: 88px !important; }
/* #2 even spacing logo/nav/CTA — center the menu in the actual space between logo and button */
.site-header .ast-builder-grid-row.ast-builder-grid-row-has-sides { grid-template-columns: auto 1fr auto !important; }
/* #6 center book-card buttons */
.irvine-books .book-card .wp-block-buttons { justify-content: center; }
/* #7 inner-page list items use the red check-circle svg */
.irvine-inner-body .inner-main ul { list-style: none; padding-left: 0; }
.irvine-inner-body .inner-main ul li { position: relative; padding-left: 34px; margin-bottom: 12px; }
.irvine-inner-body .inner-main ul li::before { content: ""; position: absolute; left: 0; top: 3px; width: 21px; height: 21px; background: url('../../uploads/2026/07/check-circle.svg') center/contain no-repeat; }
/* #8 short red accent line above inner-page h3s (reusable motif) */
.irvine-inner-body .inner-main h3::before, .red-line-heading::before { content: ""; display: block; width: 48px; height: 3px; background: var(--color-accent); margin-bottom: 14px; border-radius: 2px; }

/* r37b: center blog pagination (uagb block rule was forcing left) */
.uagb-post-pagination-wrap { justify-content: center !important; }

/* r37c: inner-page sticky form — center vertically on shorter screens (form ~567px), keep near-top on tall screens; floor clears the header so it never cuts off bottom */
.irvine-inner-body .inner-aside { top: clamp(24px, calc(50vh - 284px), 100px) !important; }

/* r37d: don't put the red accent line above book-card titles (centered layout) */
.irvine-books .book-card h3::before { content: none !important; }

/* ===== r38: tighten blog-page card internal spacing ===== */
.irvine-blog-grid .uagb-post-grid-byline { padding-top: 22px !important; }   /* image -> date */
.irvine-blog-grid .uagb-post__title { padding-top: 8px !important; }          /* date -> title */
.irvine-blog-grid .uagb-post__excerpt { padding-top: 8px !important; }        /* title -> desc */
.irvine-blog-grid .uagb-post__cta { margin-top: auto !important; padding-top: 14px !important; padding-bottom: 26px !important; } /* title/desc stay top; button pushed to card bottom */

/* ===== r39: MOBILE fixes (<=768px) ===== */
@media (max-width: 768px) {
  /* HERO 1a: smaller eyebrow */
  .irvine-hero .subheading { font-size: 11px !important; letter-spacing: .05em; margin-bottom: 8px !important; }
  /* HERO 1b: red accent lines ABOVE and BELOW the eyebrow (not left/right) */
  .irvine-hero .subheading::before { display: block !important; width: 42px; height: 2px; margin: 0 auto 8px !important; }
  .irvine-hero .subheading::after  { display: block !important; width: 42px; height: 2px; margin: 8px auto 0 !important; }
  /* HERO 2: tighten eyebrow / heading / CTA spacing */
  .irvine-hero .hero-title { margin-bottom: 10px !important; }
  .irvine-hero .wp-block-buttons { margin-top: 14px !important; }
  /* HERO 3: more top padding so text sits toward the middle of the buildings */
  .wp-block-uagb-container.irvine-hero { padding-top: 118px !important; }

  /* NAV 4: larger hamburger */
  .ast-mobile-menu-buttons svg, button.menu-toggle svg, .main-header-menu-toggle svg { width: 30px !important; height: 30px !important; }
  .main-header-menu-toggle, .menu-toggle { font-size: 1.7em !important; }

  /* PA/non-content 1: tighter eyebrow -> heading on all centered-eyebrow sections */
  .irvine-pa .subheading, .irvine-reviews .subheading, .irvine-center .subheading,
  .irvine-contact .subheading, .irvine-team > .subheading, .irvine-blog .blog-head .subheading { margin-bottom: 2px !important; }

  /* PA 3: tighter heading -> cards and cards -> arrows */
  .irvine-pa h2.wp-block-heading { margin-bottom: 4px !important; }
  .irvine-pa .uagb-slides.uagb-swiper { padding-bottom: 56px !important; }
}

/* ===== r40: mobile — match content-section H2s to the first content H1 size (40px) ===== */
@media (max-width: 768px) {
  .irvine-section h2.wp-block-heading { font-size: 30px; line-height: 1.2; }
}

/* ===== r41: mobile — tighten testimonial section (heading / card / CTA) ===== */
@media (max-width: 768px) {
  .irvine-reviews .uagb-container-inner-blocks-wrap { gap: 10px !important; row-gap: 10px !important; }
  .irvine-reviews h2.wp-block-heading { margin-bottom: 0px !important; }
}

/* ===== r42: MOBILE batch — team, why-choose slider, blog, faq, contact, footer ===== */
@media (max-width: 768px) {
  /* TEAM: close big gap between attorney image and the name; match content H2 size */
  .irvine-team .wp-block-columns .wp-block-column:last-child { padding: 16px 0 0 !important; }
  .irvine-team > h2.wp-block-heading { font-size: 30px !important; }

  /* WHY-CHOOSE: eyebrow on one line + swipeable one-card-at-a-time slider */
  .irvine-why .subheading { font-size: 11px !important; letter-spacing: .05em; white-space: nowrap; }
  .irvine-why .wp-block-columns { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px !important; margin: 0 0 14px !important; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
  .irvine-why .wp-block-columns > .wp-block-column { flex: 0 0 86% !important; max-width: 86% !important; scroll-snap-align: center; margin: 0 !important; }
  .irvine-why .wp-block-columns > .wp-block-column + .wp-block-column .why-card { margin-left: 0 !important; }

  /* FAQ + why: reduce heading -> first item */
  .irvine-center > h2.wp-block-heading { margin-bottom: 16px !important; }

  /* BLOG: center eyebrow + heading; reduce space below heading (button moved below arrows via JS) */
  .blog-head { flex-direction: column !important; align-items: center !important; text-align: center; gap: 4px !important; margin-bottom: 6px !important; }
  .blog-head .subheading, .blog-head h2.wp-block-heading { text-align: center !important; }
  .irvine-postcar + .wp-block-buttons { margin: 24px auto 0 !important; display: flex; justify-content: center; }

  /* CONTACT: reduce space below heading + below the form */
  .irvine-contact h2.wp-block-heading { margin-bottom: 14px !important; }
  .irvine-contact { padding-bottom: 44px !important; }

  /* FOOTER: center everything + tighten gaps between the stacked blocks */
  .irvine-footer .footer-grid { text-align: center; gap: 22px !important; }
  .irvine-footer .footer-grid > .wp-block-column { align-items: center; }
  .irvine-footer .footer-logo { margin-inline: auto !important; }
  .irvine-footer .footer-social { justify-content: center !important; }
  .irvine-footer .footer-head { text-align: center; }
  .irvine-footer .fc-phone, .irvine-footer .fc-addr { display: inline-block; text-align: left; }
  .irvine-footer .footer-map { max-width: 440px; margin-inline: auto; }
  .irvine-footer .footer-bottom { flex-direction: column !important; text-align: center; gap: 10px; }
  .irvine-footer .footer-legal, .irvine-footer .footer-agency { justify-content: center !important; width: 100%; }
}

/* ===== r43: MOBILE refinements ===== */
@media (max-width: 768px) {
  /* TEAM: reduce heading->image gap more; reduce image->name gap more + pad block off the edge */
  .irvine-team > h2.wp-block-heading { margin-bottom: 14px !important; }
  .irvine-team .wp-block-columns .wp-block-column:last-child { padding: 6px 20px 0 !important; }
  /* BLOG: show the right-side dash on the "Insights" eyebrow */
  .blog-head .subheading::after { display: inline-block !important; }
  /* FOOTER: stack phone + address vertically (were side-by-side), each centered as an icon+text unit */
  .irvine-footer .fc-phone, .irvine-footer .fc-addr { display: block !important; width: -moz-fit-content; width: fit-content; max-width: 100%; margin-left: auto !important; margin-right: auto !important; text-align: left; }
}

/* ===== r45: why-choose mobile slider — prev/next arrows (match blog square outlined buttons) ===== */
.why-nav { display: none; }
@media (max-width: 768px) {
  .irvine-why .why-nav { display: flex; justify-content: center; gap: 14px; margin: 18px 0 0; }
  .irvine-why .why-nav button { width: 54px; height: 54px; padding: 0; border: 1.5px solid var(--gray-300); border-radius: 2px; background: #fff; color: var(--color-headings); font-family: var(--font-ui); font-size: 22px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: border-color var(--transition-base), color var(--transition-base); }
  .irvine-why .why-nav button:hover { border-color: var(--color-accent); color: var(--color-accent); }
  .irvine-why .why-nav button:disabled { opacity: .3; cursor: default; }
}

/* ===== r46: Meet Our Team — attorney image fills the full container height (desktop) ===== */
@media (min-width: 769px) {
  .irvine-team .wp-block-columns { align-items: stretch !important; }
  /* Image column stretches to the text column's height; the image is absolutely positioned
     so it fills that height instead of driving it (avoids a circular flex-sizing loop). */
  .irvine-team .wp-block-columns > .wp-block-column:first-child { align-self: stretch !important; position: relative; overflow: hidden; }
  .irvine-team .wp-block-columns > .wp-block-column:first-child .wp-block-image { position: absolute; inset: 0; margin: 0; }
  .irvine-team .wp-block-columns > .wp-block-column:first-child .wp-block-image img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 20%; }
}

/* ===== r48: /liens/ — solo centered intake form (no content column) ===== */
.irvine-inner-body.liens-solo > .inner-row { justify-content: center !important; }
.liens-solo .inner-row > .inner-aside { flex: 0 1 640px !important; max-width: 640px !important; width: 100% !important; margin: 0 auto !important; position: static !important; top: auto !important; }
@media (max-width: 880px) {
  .liens-solo .inner-row > .inner-aside { flex: 1 1 100% !important; max-width: 100% !important; }
}

/* ===== r49: center the "Our Attorney" eyebrow — it's nested in a Spectra wrap so the direct-child rule missed it ===== */
.irvine-team .subheading { text-align: center !important; display: block; margin: 0 auto 6px; }

/* ===== r50: PA cards — align heading / paragraph / CTA rows across cards (desktop+tablet) ===== */
@media (min-width: 769px) {
  .irvine-pa .pa-card { display: flex !important; flex-direction: column !important; }
  .irvine-pa .pa-card h3 { min-height: 73px; }              /* reserve 2 lines so every description starts at the same Y */
  .irvine-pa .pa-card > p:last-child { margin-top: auto !important; }  /* push the "Learn More" CTA to the card bottom */
}
