/*
Theme Name:     Andrus Anderson LLP — Kanun Child
Theme URI:      https://andrusanderson.com/
Description:    Custom child theme of the Kanun law-firm theme, re-skinned for Andrus Anderson LLP — a San Francisco class-action law firm. Re-brands palette (coral + slate-teal + charcoal), typography (Cormorant Garamond + Inter), logos, and contact information while preserving all Kanun functionality (header/footer styles, theme options, demo content, Elementor sections).
Author:         Andrus Anderson LLP
Author URI:     https://andrusanderson.com/
Template:       kanun
Version:        1.0.0
License:        GNU General Public License v2 or later
License URI:    https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:    andrus-anderson
Tags:           custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* ==========================================================================
   Andrus Anderson — Brand Variable Overrides
   Overrides the Kanun parent's :root variables to apply the firm's palette.
   ========================================================================== */

:root {
    /* --- Brand palette (extracted from the AA logo) --- */
    --aa-coral:        #FF6B6B;   /* primary CTA / active-state accent */
    --aa-coral-dark:   #E55353;   /* hover / pressed */
    --aa-coral-soft:   #FEEAEA;   /* light wash for backgrounds */
    --aa-teal:         #3C7998;   /* secondary accent — logo fan */
    --aa-teal-dark:    #2C5F7A;
    --aa-teal-soft:    #E6EEF3;
    --aa-ink:          #1A1A1F;   /* near-black headings */
    --aa-charcoal:     #242424;   /* logo wordmark */
    --aa-topbar:       #2D2D33;   /* top utility bar */
    --aa-graphite:     #565A66;   /* body text */
    --aa-bone:         #FAF7F2;   /* off-white surface */
    --aa-paper:        #FFFFFF;
    --aa-line:         #E6E2DA;   /* hairline dividers */

    /* --- Kanun parent variable overrides --- */
    --theme:      var(--aa-coral);     /* primary brand colour */
    --header:     var(--aa-ink);       /* heading text */
    --text:       var(--aa-graphite);  /* body text */
    --bg:         var(--aa-bone);      /* section background */
    --body:       var(--aa-paper);
    --black:      var(--aa-ink);
    --white:      #ffffff;
    --border:     rgba(36, 36, 36, 0.18);
    --border-2:   #D9D5CC;
    --box-shadow: 0 10px 40px -10px rgba(26, 26, 31, 0.18);

    /* --- Typography --- */
    --aa-font-display: "Cormorant Garamond", "Prata", Georgia, serif;
    --aa-font-body:    "Inter", "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --aa-font-mono:    "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
    --heading-font:    var(--aa-font-display);
    --body-font:       var(--aa-font-body);
}

/* ==========================================================================
   Global typography refinements
   ========================================================================== */

html, body {
    font-family: var(--aa-font-body);
    color: var(--aa-graphite);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body, p {
    font-family: var(--aa-font-body) !important;
    letter-spacing: 0.005em;
    line-height: 1.7;
}

h1, h2, h3, h4, h5, h6,
.heading, .display, .section-title {
    font-family: var(--aa-font-display) !important;
    color: var(--aa-ink);
    letter-spacing: -0.01em;
    font-weight: 500;
}

h1 { font-weight: 500; line-height: 1.05; letter-spacing: -0.02em; }
h2 { font-weight: 500; line-height: 1.1;  letter-spacing: -0.015em; }
h3 { font-weight: 500; line-height: 1.2; }

/* Eyebrows / overline text — give them a refined monospace voice */
.section-title__subtitle,
.subtitle,
.section-subtitle,
.eyebrow,
.cs_section_subtitle,
.section_subtitle {
    font-family: var(--aa-font-mono) !important;
    font-size: 12px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: var(--aa-teal) !important;
    font-weight: 500 !important;
}

/* ==========================================================================
   Buttons — coral primary, teal ghost, refined hover
   ========================================================================== */

.theme-btn,
.cmn-btn,
.btn-primary,
button[type="submit"],
input[type="submit"],
.elementor-button {
    background-color: var(--aa-coral) !important;
    border-color: var(--aa-coral) !important;
    color: #ffffff !important;
    font-family: var(--aa-font-body) !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    border-radius: 2px !important;
    padding: 18px 34px !important;
    transition: all 0.32s cubic-bezier(.2,.8,.2,1) !important;
    position: relative;
    overflow: hidden;
}

.theme-btn:hover,
.cmn-btn:hover,
.btn-primary:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
.elementor-button:hover {
    background-color: var(--aa-ink) !important;
    border-color: var(--aa-ink) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -10px rgba(255, 107, 107, 0.45) !important;
}

.theme-btn.btn-outline,
.cmn-btn.btn-outline,
.btn-secondary {
    background-color: transparent !important;
    color: var(--aa-ink) !important;
    border: 1.5px solid var(--aa-ink) !important;
}

.theme-btn.btn-outline:hover,
.cmn-btn.btn-outline:hover,
.btn-secondary:hover {
    background-color: var(--aa-teal) !important;
    border-color: var(--aa-teal) !important;
    color: #ffffff !important;
}

/* ==========================================================================
   Header — utility bar (top dark strip) + main nav
   ========================================================================== */

.header-top,
.top-header,
.top-bar,
.header-top-bar {
    background-color: var(--aa-topbar) !important;
    color: rgba(255, 255, 255, 0.85) !important;
    padding: 12px 0 !important;
    font-family: var(--aa-font-body);
    font-size: 13px;
    letter-spacing: 0.04em;
}

.header-top a,
.top-header a,
.top-bar a,
.header-top-bar a {
    color: rgba(255, 255, 255, 0.85) !important;
    transition: color 0.25s ease;
}

.header-top a:hover,
.top-header a:hover,
.top-bar a:hover,
.header-top-bar a:hover {
    color: var(--aa-coral) !important;
}

.header-top svg,
.header-top i,
.top-bar i,
.header-top-bar i {
    color: var(--aa-coral) !important;
}

/* Primary nav links */
.main-menu ul li a,
.main-navigation a,
nav.menu a,
.header-menu a {
    font-family: var(--aa-font-body) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    color: var(--aa-ink) !important;
    text-transform: none !important;
    transition: color 0.25s ease;
}

.main-menu ul li.current-menu-item > a,
.main-menu ul li.current_page_item > a,
.main-menu ul li:hover > a,
.main-navigation .current-menu-item a,
.main-navigation a:hover {
    color: var(--aa-coral) !important;
}

/* Header call-to-action button (right side) */
.header-btn .theme-btn,
.header-button .theme-btn,
.header_right_btn .theme-btn {
    background-color: var(--aa-coral) !important;
    border-radius: 2px !important;
}

/* "Call any time" header phone block — give it teal accent */
.header-info i,
.header-contact i,
.header-call i {
    color: var(--aa-teal) !important;
}

.header-info h4,
.header-info h5,
.header-contact h4,
.header-contact h5 {
    font-family: var(--aa-font-body) !important;
    font-weight: 600 !important;
    color: var(--aa-ink) !important;
}

/* Sticky header */
.sticky-active,
.sticky-on,
.fixed-header {
    background-color: rgba(255, 255, 255, 0.96) !important;
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    box-shadow: 0 1px 0 var(--aa-line), 0 8px 28px -10px rgba(0,0,0,0.08);
}

/* ==========================================================================
   Hero / banner — refined editorial composition
   ========================================================================== */

.hero-section,
.banner-section,
.banner-area,
.hero-area {
    background-color: var(--aa-bone) !important;
    position: relative;
}

.hero-section h1,
.banner-section h1,
.banner-area h1,
.hero-area h1 {
    font-family: var(--aa-font-display) !important;
    font-weight: 500 !important;
    color: var(--aa-ink) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
}

/* italic emphasis word in hero (e.g. "Justice") gets the teal accent */
.hero-section h1 em,
.hero-section h1 i,
.banner-section h1 em,
.banner-area h1 em {
    color: var(--aa-coral) !important;
    font-style: italic;
    font-weight: 400;
}

.hero-section .subtitle,
.banner-section .subtitle {
    color: var(--aa-teal) !important;
    font-family: var(--aa-font-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 12px !important;
}

/* ==========================================================================
   Section titles & dividers
   ========================================================================== */

.section-title h2,
.section_title h2,
.cs_section_title {
    font-family: var(--aa-font-display) !important;
    font-weight: 500 !important;
    color: var(--aa-ink) !important;
    line-height: 1.08 !important;
}

/* small divider line accent that Kanun uses near titles */
.section-title__subtitle::before,
.section-title__subtitle::after,
.subtitle::before,
.subtitle::after {
    background-color: var(--aa-coral) !important;
}

/* ==========================================================================
   Services / Practice Areas cards
   ========================================================================== */

.service-card,
.service-item,
.services-box,
.practice-area-card,
.service_box {
    background: var(--aa-paper);
    border: 1px solid var(--aa-line);
    border-radius: 4px;
    transition: all 0.35s cubic-bezier(.2,.8,.2,1);
    overflow: hidden;
    position: relative;
}

.service-card:hover,
.service-item:hover,
.services-box:hover,
.practice-area-card:hover,
.service_box:hover {
    transform: translateY(-6px);
    border-color: var(--aa-coral);
    box-shadow: 0 24px 60px -20px rgba(255, 107, 107, 0.25);
}

.service-card .icon,
.service-item .icon,
.service_box .icon,
.service-card i,
.services-box i {
    color: var(--aa-coral) !important;
}

.service-card h3 a,
.service-item h3 a,
.service_box h3 a,
.service-card h4 a {
    color: var(--aa-ink) !important;
    transition: color 0.25s ease;
}

.service-card h3 a:hover,
.service-item h3 a:hover,
.service-card h4 a:hover {
    color: var(--aa-coral) !important;
}

/* ==========================================================================
   About / who we are blocks
   ========================================================================== */

.about-section,
.about-area {
    background-color: var(--aa-paper);
}

.about-section ul li svg,
.about-area ul li svg,
.feature-list svg,
.list-check svg {
    fill: var(--aa-coral) !important;
    color: var(--aa-coral) !important;
}

/* "Call Any Time" floating circle that overlaps about image */
.about-call,
.experience-badge,
.about-experience {
    background-color: var(--aa-coral) !important;
    color: #fff !important;
}

/* ==========================================================================
   Counters / stats block
   ========================================================================== */

.counter-section,
.counter-area,
.fact-section {
    background-color: var(--aa-ink) !important;
    color: #fff;
}

.counter-section h2,
.counter-section h3,
.counter-section .counter-number,
.counter-area .number,
.fact-number {
    font-family: var(--aa-font-display) !important;
    color: var(--aa-coral) !important;
    font-weight: 500 !important;
    font-size: 56px !important;
}

.counter-section p,
.counter-section h5,
.counter-area .title,
.fact-title {
    color: rgba(255, 255, 255, 0.78) !important;
    font-family: var(--aa-font-body) !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 13px !important;
}

/* ==========================================================================
   Team / Attorneys grid
   ========================================================================== */

.team-card,
.team-member,
.attorney-card,
.team_box {
    background: var(--aa-paper);
    border-radius: 4px;
    overflow: hidden;
    transition: all 0.35s cubic-bezier(.2,.8,.2,1);
}

.team-card .team-info,
.team-member .info,
.attorney-card .info {
    padding: 24px;
    text-align: left;
    border-bottom: 3px solid transparent;
    transition: border-color 0.3s ease;
}

.team-card:hover .team-info,
.team-member:hover .info,
.attorney-card:hover .info {
    border-bottom-color: var(--aa-coral);
}

.team-card h3,
.team-member h3,
.team-card h4,
.attorney-card h4 {
    font-family: var(--aa-font-display) !important;
    color: var(--aa-ink) !important;
    font-weight: 500 !important;
    font-size: 22px !important;
}

.team-card .designation,
.team-member .designation,
.attorney-card .designation,
.team_box .post {
    color: var(--aa-teal) !important;
    font-family: var(--aa-font-mono) !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.22em !important;
    font-weight: 500 !important;
}

.team-card .social a,
.team-member .social a {
    color: var(--aa-graphite);
    transition: color 0.25s ease;
}

.team-card .social a:hover,
.team-member .social a:hover {
    color: var(--aa-coral);
}

/* ==========================================================================
   Testimonials
   ========================================================================== */

.testimonial-section,
.testimonial-area {
    background-color: var(--aa-bone) !important;
}

.testimonial-card,
.testimonial-item {
    background: var(--aa-paper);
    border-left: 3px solid var(--aa-coral);
    padding: 40px;
    border-radius: 0 4px 4px 0;
}

.testimonial-card p,
.testimonial-item p,
.testimonial-text {
    font-family: var(--aa-font-display) !important;
    font-style: italic;
    color: var(--aa-ink) !important;
    font-size: 22px !important;
    line-height: 1.45 !important;
    font-weight: 400 !important;
}

.testimonial-card .name,
.testimonial-item h4,
.testimonial-name {
    font-family: var(--aa-font-display) !important;
    color: var(--aa-ink) !important;
}

.testimonial-card .designation,
.testimonial-position {
    color: var(--aa-teal) !important;
    font-family: var(--aa-font-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 11px !important;
}

/* ==========================================================================
   Blog / News cards
   ========================================================================== */

.blog-card,
.blog-item,
.post-card,
.single-blog {
    background: var(--aa-paper);
    border-radius: 4px;
    overflow: hidden;
    transition: all 0.35s cubic-bezier(.2,.8,.2,1);
}

.blog-card:hover,
.blog-item:hover,
.post-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 60px -20px rgba(0,0,0,0.15);
}

.blog-card h3 a,
.blog-item h3 a,
.post-card h3 a,
.blog-card h4 a {
    color: var(--aa-ink) !important;
    font-family: var(--aa-font-display) !important;
    transition: color 0.25s ease;
}

.blog-card h3 a:hover,
.blog-item h3 a:hover,
.post-card h3 a:hover,
.blog-card h4 a:hover {
    color: var(--aa-coral) !important;
}

.blog-card .post-meta,
.blog-item .meta,
.blog-meta,
.post-date {
    color: var(--aa-teal) !important;
    font-family: var(--aa-font-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 11px !important;
}

/* ==========================================================================
   Forms — appointment / contact
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
input[type="date"],
textarea,
select,
.nice-select {
    background-color: var(--aa-paper) !important;
    border: 1px solid var(--aa-line) !important;
    border-radius: 2px !important;
    font-family: var(--aa-font-body) !important;
    color: var(--aa-ink) !important;
    padding: 16px 20px !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

input:focus, textarea:focus, select:focus, .nice-select:focus {
    border-color: var(--aa-coral) !important;
    box-shadow: 0 0 0 4px rgba(255, 107, 107, 0.12) !important;
    outline: none !important;
}

label, .form-label {
    font-family: var(--aa-font-mono) !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.18em !important;
    color: var(--aa-teal) !important;
    font-weight: 500 !important;
}

/* ==========================================================================
   Footer
   ========================================================================== */

footer.footer,
.footer-section,
.footer-area,
.site-footer {
    background-color: var(--aa-ink) !important;
    color: rgba(255, 255, 255, 0.7);
}

.footer-section h3,
.footer-section h4,
.footer-section .widget-title,
footer h3, footer h4,
.footer-widget-title {
    color: #ffffff !important;
    font-family: var(--aa-font-display) !important;
    font-weight: 500 !important;
}

footer a,
.footer-section a {
    color: rgba(255, 255, 255, 0.7) !important;
    transition: color 0.25s ease;
}

footer a:hover,
.footer-section a:hover {
    color: var(--aa-coral) !important;
}

.footer-section .social a,
footer .social a {
    width: 40px; height: 40px;
    display: inline-flex;
    align-items: center; justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    transition: all 0.25s ease;
}

.footer-section .social a:hover,
footer .social a:hover {
    background: var(--aa-coral);
    border-color: var(--aa-coral);
    color: #fff !important;
}

.copyright,
.footer-copyright,
.footer-bottom {
    background-color: rgba(0,0,0,0.35) !important;
    color: rgba(255, 255, 255, 0.55) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-family: var(--aa-font-mono) !important;
    font-size: 13px;
    letter-spacing: 0.04em;
}

/* ==========================================================================
   Breadcrumb / inner page header
   ========================================================================== */

.breadcrumb-section,
.breadcrumb-area,
.page-header,
.inner-banner {
    background-color: var(--aa-ink) !important;
    color: #fff;
    position: relative;
}

.breadcrumb-section h1,
.breadcrumb-area h1,
.page-header h1 {
    color: #fff !important;
    font-family: var(--aa-font-display) !important;
}

.breadcrumb a,
.breadcrumb li {
    color: rgba(255,255,255,0.65) !important;
    font-family: var(--aa-font-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 12px !important;
}

.breadcrumb .active,
.breadcrumb a:hover {
    color: var(--aa-coral) !important;
}

/* ==========================================================================
   Pagination & navigation
   ========================================================================== */

.pagination a,
.page-numbers,
.nav-links a {
    border: 1px solid var(--aa-line) !important;
    color: var(--aa-ink) !important;
    background: var(--aa-paper) !important;
    font-family: var(--aa-font-mono) !important;
    border-radius: 2px !important;
    transition: all 0.25s ease;
}

.pagination a:hover,
.pagination .current,
.page-numbers.current,
.page-numbers:hover {
    background: var(--aa-coral) !important;
    border-color: var(--aa-coral) !important;
    color: #fff !important;
}

/* ==========================================================================
   Highlights / "underline" accent — replaces Kanun's gold underline shape
   ========================================================================== */

.text-highlight,
.title-highlight {
    background-image: linear-gradient(transparent 65%, rgba(255, 107, 107, 0.28) 65%) !important;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    padding: 0 4px;
}

/* ==========================================================================
   Scrollbar accent
   ========================================================================== */

::selection { background: var(--aa-coral); color: #fff; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--aa-bone); }
::-webkit-scrollbar-thumb { background: var(--aa-graphite); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--aa-coral); }

/* ==========================================================================
   Preloader
   ========================================================================== */

.preloader,
#preloader {
    background-color: var(--aa-ink) !important;
}

.preloader-inner span,
.spinner {
    color: var(--aa-coral) !important;
    border-color: var(--aa-coral) transparent var(--aa-coral) transparent !important;
}

/* ==========================================================================
   Back-to-top button
   ========================================================================== */

.scroll-up,
.back-top,
#back-to-top {
    background-color: var(--aa-coral) !important;
    color: #fff !important;
    border-radius: 2px !important;
}

.scroll-up:hover,
.back-top:hover {
    background-color: var(--aa-ink) !important;
}

/* ==========================================================================
   Misc — Kanun gold accents → coral
   ========================================================================== */

.icon-bg,
.icon-circle {
    background-color: var(--aa-coral) !important;
}

.divider,
.section-divider {
    background-color: var(--aa-coral) !important;
}

/* ==========================================================================
   Responsive refinements
   ========================================================================== */

@media (max-width: 991px) {
    .counter-section h2,
    .counter-section .counter-number {
        font-size: 42px !important;
    }
    h1 { letter-spacing: -0.015em; }
}

@media (max-width: 575px) {
    .testimonial-card,
    .testimonial-item {
        padding: 28px 24px;
    }
    .testimonial-card p,
    .testimonial-item p {
        font-size: 18px !important;
    }
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--aa-coral) !important;
    outline-offset: 3px !important;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        transition-duration: 0.001ms !important;
    }
}
