/*
Theme Name: HiLife Redesign
Theme URI: https://hilifemarketing.com/
Author: HiLife Marketing LLC
Author URI: https://hilifemarketing.com/
Description: Responsive theme for HiLife Marketing LLC built from the HiLife redesign. Preserves the redesign's colors, typography, layout and CTAs while leaving titles, meta tags, permalinks and form plugins under WordPress control.
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hilife-redesign
Tags: business, two-columns, custom-menu, custom-colors, responsive-layout, accessibility-ready
*/

/* =========================================================================
   1. Redesign stylesheet — copied verbatim from hilife-redesign/styles.css
   ========================================================================= */

:root {
  --navy: #102955;
  --navy-deep: #081c3c;
  --blue: #1b5ca8;
  --green: #50b848;
  --green-dark: #2d7c36;
  --yellow: #f3c83f;
  --cream: #f7f5ee;
  --ink: #17233a;
  --muted: #657087;
  --line: #dfe4ec;
  --white: #fff;
  --radius: 20px;
  --shadow: 0 22px 60px rgba(15, 41, 85, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; color: var(--ink); background: var(--white); font: 16px/1.65 "DM Sans", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; }
button, input, textarea { font: inherit; }
.container { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 1000; left: 16px; top: 12px; transform: translateY(-160%); padding: 10px 16px; background: var(--yellow); color: var(--navy-deep); border-radius: 7px; font-weight: 700; }
.skip-link:focus { transform: none; }

.site-header { position: absolute; z-index: 50; inset: 0 0 auto; color: white; transition: background .25s, box-shadow .25s; }
.site-header.scrolled { position: fixed; background: rgba(8, 28, 60, .96); box-shadow: 0 2px 20px rgba(0,0,0,.16); }
.header-inner { height: 82px; display: flex; align-items: center; justify-content: space-between; }
.logo { display: inline-flex; align-items: center; gap: 10px; color: white; text-decoration: none; }
.logo-bars { width: 34px; height: 34px; padding: 5px; display: flex; align-items: end; gap: 3px; background: var(--white); border-radius: 5px; }
.logo-bars i { width: 6px; border-radius: 2px 2px 0 0; }
.logo-bars i:nth-child(1) { height: 10px; background: var(--yellow); }
.logo-bars i:nth-child(2) { height: 17px; background: var(--green); }
.logo-bars i:nth-child(3) { height: 23px; background: var(--blue); }
.logo-name { display: grid; line-height: 1; }
.logo-name b { font: 800 18px/1 "Plus Jakarta Sans", Arial, sans-serif; letter-spacing: -.6px; }
.logo-name small { margin-top: 3px; color: #a9d98f; font-size: 9px; text-transform: uppercase; letter-spacing: 2.1px; }
.site-nav { display: flex; align-items: center; gap: 34px; }
.site-nav a { color: rgba(255,255,255,.8); text-decoration: none; font-size: 14px; font-weight: 600; }
.site-nav a:hover, .site-nav a:focus-visible { color: white; }
.site-nav .nav-button { padding: 11px 17px; color: white; border: 1px solid rgba(255,255,255,.35); border-radius: 7px; }
.site-nav .nav-button span { margin-left: 8px; color: var(--yellow); }
.nav-toggle { display: none; padding: 8px; border: 0; background: none; }
.nav-toggle span { display: block; width: 25px; height: 2px; margin: 5px; background: white; transition: .25s; }

.hero { position: relative; overflow: hidden; min-height: 760px; padding: 160px 0 0; color: white; background: linear-gradient(135deg, var(--navy-deep), var(--navy) 62%, #174b7c); }
.hero:before { content: ""; position: absolute; right: -210px; bottom: -360px; width: 720px; height: 720px; border-radius: 50%; border: 90px solid rgba(80,184,72,.13); display: none;}

.hero-grid { position: absolute; inset: 0; opacity: .07; background-image: linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px); background-size: 70px 70px; mask-image: linear-gradient(to bottom, black, transparent 90%); }
.hero-layout { position: relative; display: grid; grid-template-columns: 1.03fr .97fr; gap: 86px; align-items: center; }
.kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 23px; color: #b9c9e2; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; }
.kicker span { width: 30px; height: 3px; background: var(--yellow); }
.kicker.dark { color: var(--green-dark); }
.hero h1, .section h2, .contact h2 { margin: 0; font: 800 clamp(48px, 5.4vw, 72px)/1.04 "Plus Jakarta Sans", Arial, sans-serif; letter-spacing: -3.4px; }
.hero h1 em, .section h2 em { color: #8bd36d; font-style: normal; }
.hero-lede { max-width: 620px; margin: 28px 0 34px; color: #cad6e8; font-size: 18px; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 26px; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 28px; min-height: 50px; padding: 13px 20px; border: 0; border-radius: 8px; font-weight: 700; text-decoration: none; cursor: pointer; transition: transform .2s, box-shadow .2s; }
.button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.button-green { background: var(--green); color: white; }
.button-yellow { width: 100%; background: var(--yellow); color: var(--navy-deep); }
.phone-link { color: white; text-decoration-color: rgba(255,255,255,.4); text-underline-offset: 5px; font-weight: 600; font-size: 14px; }
.phone-link span { margin-right: 7px; color: var(--yellow); }
.hero-art { position: relative; display: grid; place-items: center; min-height: 450px; }
.art-card { position: relative; z-index: 2; width: min(420px, 95%); padding: 25px; background: white; color: var(--ink); border-radius: var(--radius); box-shadow: 0 30px 90px rgba(0,0,0,.27); transform: rotate(1.5deg); }
.art-top { display: flex; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.art-top b { color: var(--blue); text-transform: uppercase; letter-spacing: 1px; }
.journey { display: grid; gap: 12px; padding-top: 18px; }
.journey-row { position: relative; display: grid; grid-template-columns: 42px 1fr; gap: 13px; align-items: center; padding: 13px; background: #f5f7fa; border: 1px solid #e8ebf0; border-radius: 11px; }
.journey-row.active { color: white; background: var(--navy); border-color: var(--navy); }
.journey-row i { position: absolute; left: 32px; bottom: -15px; z-index: 2; height: 17px; width: 1px; background: var(--green); }
.journey-icon { width: 38px; height: 38px; display: grid; place-items: center; color: var(--navy); background: #dfe9f6; border-radius: 8px; font-weight: 800; }
.active .journey-icon { color: var(--navy-deep); background: var(--yellow); }
.journey-row div { display: grid; }
.journey-row small { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: 1.2px; }
.active small { color: #afc4e2; }
.journey-row strong { font-size: 13px; }
.art-tag { position: absolute; z-index: 3; display: flex; align-items: center; gap: 8px; padding: 9px 12px; color: white; background: rgba(8,28,60,.92); border: 1px solid rgba(255,255,255,.25); border-radius: 7px; box-shadow: 0 12px 30px rgba(0,0,0,.2); font-size: 10px; font-weight: 700; }
.art-tag span { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.tag-one { top: 35px; right: -8px; }
.tag-two { bottom: 35px; left: -16px; }
.orbit { position: absolute; width: 530px; opacity: .26; fill: none; stroke: #92c980; stroke-width: 1;display: none; }
.hero-strip { position: relative; margin-top: 70px; min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: #d3deed; border-top: 1px solid rgba(255,255,255,.15); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1.2px; }
.hero-strip i { width: 5px; height: 5px; border-radius: 50%; background: var(--yellow); }

.section { padding: 110px 0; }
.section-heading { display: grid; grid-template-columns: 1.1fr .9fr; column-gap: 70px; align-items: end; margin-bottom: 54px; }
.section-heading .kicker { grid-column: 1 / -1; }
.section h2 { font-size: clamp(42px, 4.7vw, 62px); color: var(--navy-deep); }
.section-heading > p:last-child { margin: 0 0 7px; color: var(--muted); font-size: 17px; }
.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.service-card { min-height: 410px; padding: 34px; display: flex; flex-direction: column; border-radius: var(--radius); }
.service-blue { color: white; background: var(--navy); }
.service-light { color: var(--ink); background: var(--cream); border: 1px solid #e7e3d7; }
.service-top { display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 700; }
.service-symbol { width: 54px; height: 54px; display: grid; place-items: center; color: var(--navy-deep); background: var(--yellow); border-radius: 12px; font-size: 27px; }
.service-card h3 { margin: auto 0 13px; font: 700 30px "Plus Jakarta Sans", Arial, sans-serif; letter-spacing: -1px; }
.service-card p { max-width: 440px; margin: 0; color: #c2d0e3; }
.service-light p { color: var(--muted); }
.service-foot { display: flex; justify-content: space-between; margin-top: 36px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.17); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.service-light .service-foot { border-color: #dbd7cd; }

.process { background: var(--cream); }
.process-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 100px; }
.process-copy { position: sticky; top: 115px; align-self: start; }
.process-copy h2 { font-size: clamp(42px, 4.4vw, 58px); }
.process-copy > p:not(.kicker) { max-width: 420px; color: var(--muted); font-size: 17px; }
.text-arrow { display: inline-block; margin-top: 18px; color: var(--blue); font-weight: 700; text-underline-offset: 5px; }
.text-arrow span { margin-left: 12px; }
.steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid #d8d5cb; }
.steps li { display: grid; grid-template-columns: 62px 1fr; gap: 24px; padding: 30px 0; border-bottom: 1px solid #d8d5cb; }
.steps > li > span { width: 45px; height: 45px; display: grid; place-items: center; color: white; background: var(--green-dark); border-radius: 50%; font-size: 11px; font-weight: 700; }
.steps h3 { margin: 2px 0 6px; color: var(--navy-deep); font: 700 23px "Plus Jakarta Sans", Arial, sans-serif; }
.steps p { margin: 0; color: var(--muted); }

.trust-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; align-items: center; }
.trust-visual { position: relative; min-height: 520px; overflow: hidden; display: grid; place-items: center; background: var(--navy); border-radius: var(--radius); }
.trust-visual:before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 42px 42px; }
.target { position: absolute; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }
.target-a { width: 390px; height: 390px; }
.target-b { width: 260px; height: 260px; }
.target-c { width: 120px; height: 120px; background: rgba(80,184,72,.15); border-color: var(--green); }
.target:after, .target:before { content: ""; position: absolute; inset: 50% auto auto 0; width: 100%; height: 1px; background: rgba(255,255,255,.13); }
.target:before { transform: rotate(90deg); }
.target-dot { position: absolute; width: 13px; height: 13px; border: 3px solid var(--navy); border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 6px rgba(243,200,63,.18); }
.target-dot.one { left: 28%; top: 34%; }
.target-dot.two { right: 27%; top: 43%; background: var(--green); }
.target-dot.three { left: 47%; bottom: 29%; }
.target-label { position: absolute; bottom: 26px; left: 26px; right: 26px; padding: 13px 16px; color: white; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18); border-radius: 9px; font-size: 12px; font-weight: 700; }
.trust-copy h2 { font-size: clamp(42px, 4.4vw, 58px); }
.trust-lede { margin: 25px 0 30px; color: var(--muted); font-size: 17px; }
.trust-list { list-style: none; margin: 0; padding: 0; }
.trust-list li { display: grid; grid-template-columns: 34px 1fr; gap: 14px; padding: 15px 0; border-top: 1px solid var(--line); }
.trust-list > li > span { width: 27px; height: 27px; display: grid; place-items: center; color: white; background: var(--green-dark); border-radius: 50%; font-size: 12px; }
.trust-list strong { color: var(--navy-deep); }
.trust-list p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }

.contact { position: relative; overflow: hidden; padding: 110px 0; color: white; background: var(--navy-deep); }
.contact:after { content: ""; position: absolute; right: -260px; bottom: -400px; width: 700px; height: 700px; border: 95px solid rgba(80,184,72,.13); border-radius: 50%; }
.contact-layout { position: relative; z-index: 1; display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: start; }
.contact h2 { font-size: clamp(42px, 4.6vw, 60px); }
.contact-copy > p:not(.kicker) { color: #b8c7dd; }
.contact-details { margin-top: 35px; border-top: 1px solid rgba(255,255,255,.16); }
.contact-details a, .contact-details address { display: grid; padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.16); text-decoration: none; font-style: normal; }
.contact-details small { color: #9eb0c9; font-size: 9px; text-transform: uppercase; letter-spacing: 1.5px; }
.contact-details strong { margin-top: 3px; font-size: 14px; }
.contact-form { padding: 30px; color: var(--ink); background: white; border-radius: var(--radius); box-shadow: 0 30px 80px rgba(0,0,0,.28); }
.form-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.form-heading strong { font: 700 19px "Plus Jakarta Sans", Arial, sans-serif; }
.form-heading span { color: var(--muted); font-size: 10px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.field { display: grid; margin-bottom: 15px; }
.field label { margin-bottom: 6px; color: var(--navy-deep); font-size: 11px; font-weight: 700; }
.field input, .field textarea { width: 100%; padding: 12px 13px; border: 1px solid #dce1e8; border-radius: 7px; outline: none; background: #f8f9fb; resize: vertical; }
.field input:focus, .field textarea:focus { border-color: var(--blue); background: white; box-shadow: 0 0 0 3px rgba(27,92,168,.1); }
.field .invalid { border-color: #b52f38; }
.error { min-height: 16px; margin-top: 2px; color: #a5262e; font-size: 10px; }
.form-note { margin: 9px 0 0; color: var(--muted); text-align: center; font-size: 10px; }
.form-status { display: none; grid-template-columns: 30px 1fr; gap: 11px; margin-top: 15px; padding: 13px; background: #eef8ea; border: 1px solid #b9deb1; border-radius: 9px; }
.form-status.show { display: grid; }
.form-status > span { width: 28px; height: 28px; display: grid; place-items: center; color: white; background: var(--green-dark); border-radius: 50%; }
.form-status strong { font-size: 13px; }
.form-status p { margin: 2px 0 0; color: var(--muted); font-size: 11px; }

.site-footer { padding: 43px 0 22px; color: white; background: #06152e; }
.footer-inner { display: grid; grid-template-columns: 1fr 1.2fr .8fr; align-items: center; gap: 25px; padding-bottom: 34px; }
.footer-inner p { color: #91a2bb; font-size: 12px; }
.footer-inner > a:last-child { justify-self: end; color: var(--yellow); font-size: 12px; text-underline-offset: 5px; }
.legal { display: flex; justify-content: space-between; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); color: #71839f; font-size: 10px; }

@media (max-width: 980px) {
  .hero { padding-top: 135px; }
  .hero-layout { grid-template-columns: 1fr; gap: 50px; }
  .hero-copy { max-width: 760px; }
  .hero-art { width: min(650px, 100%); margin-inline: auto; }
  .hero-strip { margin-top: 42px; }
  .process-layout, .trust-layout, .contact-layout { gap: 55px; }
  .process-layout { grid-template-columns: 1fr; }
  .process-copy { position: static; }
  .trust-layout { grid-template-columns: .85fr 1.15fr; }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-copy { max-width: 670px; }
}

@media (max-width: 720px) {
  .container { width: min(100% - 32px, 1160px); }
  .header-inner { height: 70px; }
  .nav-toggle { position: relative; z-index: 4; display: block; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav { position: fixed; inset: 0; padding: 105px 28px 40px; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; background: var(--navy-deep); transform: translateX(100%); transition: transform .3s ease; }
  .site-nav.open { transform: none; }
  .site-nav a { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.13); font: 700 28px "Plus Jakarta Sans", Arial, sans-serif; }
  .site-nav .nav-button { margin-top: 20px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.35); font-size: 14px; text-align: center; }
  .hero { min-height: auto; padding: 120px 0 0; }
  .hero:before { display: none; }
  .hero h1, .section h2, .contact h2 { font-size: clamp(39px, 12vw, 54px); letter-spacing: -2.3px; }
  .hero-lede { font-size: 16px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 17px; }
  .hero-art { min-height: 380px; }
  .art-card { padding: 18px; }
  .tag-one { right: 0; top: 16px; }
  .tag-two { left: 0; bottom: 20px; }
  .orbit { width: 430px; }
  .hero-strip { overflow: hidden; justify-content: flex-start; gap: 16px; white-space: nowrap; }
  .hero-strip span:nth-of-type(n+3), .hero-strip i:nth-of-type(n+3) { display: none; }
  .section { padding: 80px 0; }
  .section-heading { display: block; margin-bottom: 34px; }
  .section-heading > p:last-child { margin-top: 20px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 350px; padding: 26px; }
  .trust-layout { grid-template-columns: 1fr; gap: 45px; }
  .trust-visual { min-height: 390px; order: 2; }
  .trust-copy { order: 1; }
  .target-a { width: 320px; height: 320px; }
  .target-b { width: 220px; height: 220px; }
  .target-c { width: 100px; height: 100px; }
  .contact { padding: 80px 0; }
  .contact-form { padding: 22px 18px; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
  .form-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-inner > a:last-child { justify-self: start; }
  .legal { flex-direction: column; gap: 7px; }
}

.site-nav a[aria-current="page"] { color: white; }
.page-hero { position: relative; overflow: hidden; min-height: 520px; padding: 170px 0 100px; color: white; background: linear-gradient(135deg, var(--navy-deep), var(--navy) 62%, #174b7c); }
.page-hero:after { content: ""; position: absolute; right: -180px; bottom: -390px; width: 680px; height: 680px; border: 80px solid rgba(80,184,72,.14); border-radius: 50%; }
.page-hero .container { position: relative; z-index: 2; }
.page-hero h1 { max-width: 900px; margin: 0; font: 800 clamp(48px, 6vw, 76px)/1.04 "Plus Jakarta Sans", Arial, sans-serif; letter-spacing: -3.5px; }
.page-hero h1 em { color: #8bd36d; font-style: normal; }
.page-hero .container > p:last-child { max-width: 660px; margin: 28px 0 0; color: #cad6e8; font-size: 18px; }
.home-summary { background: var(--cream); }
.summary-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: end; }
.summary-lede { margin: 0 0 30px; color: var(--muted); font-size: 20px; }
.summary-links { display: flex; flex-wrap: wrap; gap: 15px; }
.summary-links a { min-width: 190px; padding: 15px 0; border-top: 1px solid var(--line); color: var(--navy); font-weight: 700; text-decoration: none; }
.summary-links a span { float: right; color: var(--green-dark); }
.download-cta { padding: 80px 0; color: white; background: var(--navy-deep); }
.download-cta .container { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.download-cta h2 { margin: 0; font: 800 clamp(32px, 4vw, 50px)/1.1 "Plus Jakarta Sans", Arial, sans-serif; letter-spacing: -2px; }
.download-cta .button { width: auto; flex: 0 0 auto; }
.about-intro { background: var(--cream); }

@media (max-width: 720px) {
  .page-hero { min-height: 440px; padding: 135px 0 75px; }
  .page-hero h1 { font-size: clamp(42px, 13vw, 58px); letter-spacing: -2.7px; }
  .page-hero .container > p:last-child { font-size: 16px; }
  .summary-layout { grid-template-columns: 1fr; gap: 28px; }
  .download-cta .container { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *:before, *:after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media print {
  .skip-link { display: none !important; }
  .site-header { position: absolute !important; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

/* =========================================================================
   2. WordPress integration layer
   Nothing above this line is modified. Everything below only adds support
   for WordPress-generated markup (menus, admin bar, form plugins, editor
   content). It does not change the redesign's colors or typography.
   ========================================================================= */

/* --- Accessibility helpers WordPress expects ---------------------------- */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.screen-reader-text:focus {
  position: fixed !important;
  z-index: 1000;
  left: 16px; top: 12px;
  width: auto; height: auto;
  clip: auto; clip-path: none;
  padding: 10px 16px;
  background: var(--yellow);
  color: var(--navy-deep);
  border-radius: 7px;
  font-weight: 700;
}

/* --- Admin bar: keep the sticky header and mobile drawer clear of it ---- */
body.admin-bar .site-header.scrolled { top: 32px; }
body.admin-bar .site-nav { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .site-header.scrolled { top: 46px; }
  body.admin-bar .site-nav { top: 46px; }
}

/* --- Nav menu: mirror the redesign's aria-current state on WP classes --- */
.site-nav a[aria-current="page"],
.site-nav li.current-menu-item > a,
.site-nav li.current_page_item > a,
.site-nav li.current-menu-ancestor > a,
.site-nav li.current_page_ancestor > a { color: #fff; }

/* wp_nav_menu outputs a <ul>; flatten it into the redesign's flex row. */
.site-nav ul { display: contents; list-style: none; margin: 0; padding: 0; }
.site-nav li { display: contents; }
.site-nav .sub-menu { display: none; }

@media (max-width: 720px) {
  .site-nav ul { display: flex; flex-direction: column; align-items: stretch; width: 100%; }
  .site-nav li { display: block; }
  .site-nav li > a { display: block; }
}

/* --- Contact form: host the site's real form plugin inside the card ----- */
/* FormCraft, Contact Form 7, WPForms and Gravity Forms all render their own
   wrappers. These rules keep them inside the card and on-brand without
   touching plugin files, so submissions, spam filtering and notifications
   continue to run through the plugin exactly as before. */
.contact-form .fc-form,
.contact-form .wpcf7,
.contact-form .wpforms-container,
.contact-form .gform_wrapper {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  background: none !important;
  color: var(--ink) !important;
  font: inherit !important;
}

.contact-form form { margin: 0; }

.contact-form label,
.contact-form .fc-form label {
  color: var(--navy-deep);
  font-size: 11px;
  font-weight: 700;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="url"],
.contact-form input[type="number"],
.contact-form input[type="date"],
.contact-form select,
.contact-form textarea {
  width: 100%;
  max-width: 100%;
  padding: 12px 13px;
  border: 1px solid #dce1e8;
  border-radius: 7px;
  outline: none;
  background: #f8f9fb;
  color: var(--ink);
  font: inherit;
  resize: vertical;
  box-shadow: none;
}

.contact-form input[type="text"]:focus,
.contact-form input[type="email"]:focus,
.contact-form input[type="tel"]:focus,
.contact-form input[type="url"]:focus,
.contact-form input[type="number"]:focus,
.contact-form input[type="date"]:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: var(--blue);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(27,92,168,.1);
}

.contact-form input[type="submit"],
.contact-form button[type="submit"],
.contact-form .fc-button,
.contact-form .wpcf7-submit,
.contact-form .wpforms-submit,
.contact-form .gform_button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 28px;
  width: 100%;
  min-height: 50px;
  padding: 13px 20px;
  border: 0;
  border-radius: 8px;
  background: var(--yellow);
  color: var(--navy-deep);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s;
}

.contact-form input[type="submit"]:hover,
.contact-form button[type="submit"]:hover,
.contact-form .fc-button:hover,
.contact-form .wpcf7-submit:hover,
.contact-form .wpforms-submit:hover,
.contact-form .gform_button:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
}

/* Plugin validation and confirmation messages, in the redesign's palette. */
.contact-form .wpcf7-not-valid-tip,
.contact-form .wpforms-error,
.contact-form .gfield_error .gfield_label,
.contact-form .fc-form .error { color: #a5262e; font-size: 10px; }

.contact-form .wpcf7-response-output,
.contact-form .wpforms-confirmation-container-full,
.contact-form .gform_confirmation_message,
.contact-form .fc-success {
  margin: 15px 0 0;
  padding: 13px;
  background: #eef8ea;
  border: 1px solid #b9deb1;
  border-radius: 9px;
  color: var(--ink);
  font-size: 13px;
}

/* FormCraft ships fixed pixel widths and a background texture inline. */
.contact-form .fc-form,
.contact-form .fc-form .fc-form-inner,
.contact-form .fc-form .field-cont { max-width: 100% !important; }
.contact-form .fc-form img { max-width: 100%; height: auto; }

/* --- Editor content: posts, privacy policy, and any page without a
       redesign template ---------------------------------------------------- */
.entry-content { max-width: 760px; }
.entry-content > * + * { margin-top: 1.25em; }
.entry-content h2 { margin: 1.6em 0 .4em; color: var(--navy-deep); font: 700 clamp(28px, 3vw, 38px)/1.15 "Plus Jakarta Sans", Arial, sans-serif; letter-spacing: -1.4px; }
.entry-content h3 { margin: 1.5em 0 .35em; color: var(--navy-deep); font: 700 23px "Plus Jakarta Sans", Arial, sans-serif; }
.entry-content h4 { margin: 1.4em 0 .3em; color: var(--navy-deep); font: 700 18px "Plus Jakarta Sans", Arial, sans-serif; }
.entry-content p, .entry-content li { color: var(--muted); }
.entry-content a { color: var(--blue); font-weight: 600; text-underline-offset: 4px; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li + li { margin-top: .4em; }
.entry-content blockquote {
  margin: 1.6em 0;
  padding: 4px 0 4px 24px;
  border-left: 3px solid var(--green);
  color: var(--ink);
  font-size: 18px;
}
.entry-content img, .entry-content iframe, .entry-content video { max-width: 100%; height: auto; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 15px; }
.entry-content th, .entry-content td { padding: 10px 12px; border: 1px solid var(--line); text-align: left; }
.entry-content th { background: var(--cream); color: var(--navy-deep); }
.entry-content code, .entry-content pre { background: #f5f7fa; border-radius: 6px; }
.entry-content pre { padding: 16px; overflow-x: auto; }
.entry-content hr { margin: 2em 0; border: 0; border-top: 1px solid var(--line); }

/* WordPress core alignment and caption classes */
.alignleft { float: left; margin: .3em 1.5em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.5em; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide { width: min(1160px, 100%); margin-inline: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption { max-width: 100%; }
.wp-caption-text, .wp-element-caption { margin-top: .5em; color: var(--muted); font-size: 13px; }
.sticky, .gallery-caption, .bypostauthor { }

@media (max-width: 720px) {
  .alignleft, .alignright { float: none; margin: 1em 0; }
}

/* --- Blog and archive listing ------------------------------------------ */
.entry-list { display: grid; gap: 20px; }
.entry-card {
  padding: 30px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.entry-card h2 { margin: 0 0 10px; font: 700 26px "Plus Jakarta Sans", Arial, sans-serif; letter-spacing: -1px; }
.entry-card h2 a { color: var(--navy-deep); text-decoration: none; }
.entry-card h2 a:hover { color: var(--blue); }
.entry-meta { margin: 0 0 12px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 1.2px; }
.entry-card p { margin: 0 0 16px; color: var(--muted); }

.pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.pagination .page-numbers {
  min-width: 42px;
  padding: 10px 14px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--navy);
  text-decoration: none;
  font-weight: 700;
  font-size: 13px;
}
.pagination .page-numbers.current { color: #fff; background: var(--navy); border-color: var(--navy); }

/* --- Comments ----------------------------------------------------------- */
.comments-area { max-width: 760px; margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--line); }
.comments-area h2 { font: 700 26px "Plus Jakarta Sans", Arial, sans-serif; color: var(--navy-deep); letter-spacing: -1px; }
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list li { padding: 18px 0; border-bottom: 1px solid var(--line); }
.comment-list .children { list-style: none; padding-left: 24px; }
.comments-area input[type="text"],
.comments-area input[type="email"],
.comments-area input[type="url"],
.comments-area textarea {
  width: 100%;
  padding: 12px 13px;
  border: 1px solid #dce1e8;
  border-radius: 7px;
  background: #f8f9fb;
  font: inherit;
}
.comments-area .submit {
  min-height: 50px;
  padding: 13px 24px;
  border: 0;
  border-radius: 8px;
  background: var(--green);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

/* --- 404 and search ----------------------------------------------------- */
.search-form { display: flex; gap: 10px; max-width: 460px; margin-top: 24px; }
.search-form input[type="search"] {
  flex: 1;
  padding: 12px 13px;
  border: 1px solid #dce1e8;
  border-radius: 7px;
  background: #f8f9fb;
  font: inherit;
}
.search-form button {
  padding: 12px 20px;
  border: 0;
  border-radius: 8px;
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

/* --- Layout helpers used by the templates ------------------------------- */
.page-extra-content { margin-top: 54px; }
.section-tight-top { padding-top: 0; }
.custom-logo-wrap img { max-height: 44px; width: auto; }
@media (max-width: 720px) {
  html .formcraft-css .fc-form .form-element-html input[type="text"],
  html .formcraft-css .fc-form .form-element-html input[type="email"],
  html .formcraft-css .fc-form .form-element-html input[type="tel"],
  html .formcraft-css .fc-form .form-element-html input[type="number"],
  html .formcraft-css .fc-form .form-element-html textarea,
  html .formcraft-css .fc-form .form-element-html select {
    font-size: 16px !important;
  }
}