@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,700;1,400&family=Inter:wght@400;500;600;700&display=swap');

:root {
  /* Parker Bookkeeping brand — teal + golden yellow + warm off-white + near-black */
  --navy: #37657a;              /* deep teal — buttons, links, accents */
  --navy-deep: #2d2d2a;         /* near-black — headings, footer, dark text */
  --gold: #edd286;             /* golden yellow — primary buttons, accents */
  --gold-light: #f4e3a6;        /* lighter yellow */
  --gold-pale: #edf3f4;         /* pale yellow — eyebrow background */
  --gold-mid: #edd286;
  --gold-deep: #b88a1e;         /* deep golden — text accents on light */
  --blue-mid: #8ab2c0;          /* brand teal */
  --teal: #8ab2c0;
  --teal-deep: #437f8e;
  --teal-bright: #1f8fa3;  /* mega-menu category headers */
  --white: #ffffff;
  --warm-white: #fbfdfe;        /* clean white cards */
  --off-white: #ebf2f4;         /* brand warm off-white — page base */
  --cream: #dde9ec;             /* alternating sections */
  --cream-deep: #e8e8e8;        /* borders, dividers */
  --gray-100: #e7e2d6;
  --gray-400: #8e8a80;
  --gray-600: #5a5852;
  --gray-800: #2d2d2a;          /* near-black body text */
  --radius-sm: 8px;
  --radius: 16px;
  --radius-lg: 24px;
  --shadow: 0 4px 24px rgba(45,45,42,.10);
  --shadow-warm: 0 6px 24px rgba(138,178,192,.20);
  --shadow-lg: 0 12px 48px rgba(45,45,42,.16);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

/* Warm parchment base with subtle grain texture */
body {
  font-family: 'Inter', sans-serif;
  color: var(--gray-800);
  background: var(--off-white);
  background-image:
    radial-gradient(ellipse 80% 50% at 10% 0%, rgba(232,168,32,.07) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 90% 100%, rgba(26,58,92,.05) 0%, transparent 50%);
  line-height: 1.7;
  font-size: 17px;
}

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

h1,h2,h3,h4 { font-family: 'Playfair Display', Georgia, serif; line-height: 1.15; color: var(--navy-deep); }

h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }

h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }

h3 { font-size: 1.3rem; }

h4 { font-size: 1.1rem; }

.container { max-width: 1140px; margin: 0 auto; padding: 0 24px; }

.section { padding: 88px 0; }

.section-sm { padding: 56px 0; }

.text-center { text-align: center; }

/* Warm section backgrounds — alternate these instead of plain white */
.bg-warm-white { background: var(--warm-white); }

.bg-cream { background: var(--cream); }

.bg-off-white { background: var(--off-white); }

/* Eyebrow label */
.eyebrow {
  display: inline-block; font-size: .78rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: #8a5e00; background: var(--gold-pale);
  border: 1px solid rgba(232,168,32,.35);
  padding: 6px 14px; border-radius: 999px; margin-bottom: 16px;
}

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; border-radius: 999px; font-weight: 700; font-size: .95rem; cursor: pointer; border: none; transition: all .2s; white-space: nowrap; }

.btn-primary { background: linear-gradient(135deg, var(--gold), var(--gold-light)); color: var(--navy-deep); box-shadow: 0 4px 16px rgba(232,168,32,.4); }

.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(232,168,32,.5); }

.btn-outline { background: transparent; color: var(--white); border: 2px solid rgba(255,255,255,.5); }

.btn-outline:hover { background: rgba(255,255,255,.1); border-color: var(--white); }

.btn-navy { background: var(--navy); color: var(--white); }

.btn-navy:hover { background: var(--navy-deep); transform: translateY(-2px); }

.btn-ghost { background: transparent; color: var(--navy); border: 2px solid var(--navy); }

.btn-ghost:hover { background: var(--navy); color: var(--white); }

/* ── NAV ── */
.nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(250,253,253,.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--cream-deep);
  box-shadow: 0 2px 16px rgba(180,130,20,.08);
}

.nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 24px; max-width: 1140px; margin: 0 auto; }

.nav-brand { display: flex; align-items: center; }

.nav-brand img { height: 44px; width: auto; }

.nav-links { display: flex; align-items: center; gap: 32px; }

.nav-links a { font-weight: 600; font-size: .9rem; color: var(--gray-600); transition: color .2s; }

.nav-links a:hover { color: var(--navy); }

.nav-phone { font-weight: 700; color: var(--navy); font-size: .95rem; }

.nav-cta { padding: 10px 22px; font-size: .88rem; }

.nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }

.nav-toggle span { display: block; width: 24px; height: 2px; background: var(--navy); border-radius: 2px; transition: .3s; }

@media (max-width: 800px) {
  .nav-toggle { display: flex; }
  .nav-links { display: none; position: fixed; top: 77px; left: 0; right: 0; background: var(--warm-white); flex-direction: column; align-items: flex-start; padding: 20px 24px 28px; gap: 0; border-bottom: 1px solid var(--cream-deep); box-shadow: var(--shadow-lg); }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 14px 0; width: 100%; border-bottom: 1px solid var(--cream-deep); }
  .nav-links .btn { margin-top: 16px; width: 100%; justify-content: center; }
  .nav-phone { display: none; }
}

/* ── HERO ── */
.hero { background: linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 60%, var(--blue-mid) 100%); color: var(--white); padding: 80px 0 72px; position: relative; overflow: hidden; }

/* Warm gold glow behind hero */
.hero::before {
  content: ''; position: absolute; top: -120px; right: -80px;
  width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(232,168,32,.18) 0%, transparent 70%);
  pointer-events: none;
}

.hero-inner { display: grid; grid-template-columns: 1fr 440px; gap: 60px; align-items: center; position: relative; }

.hero-eyebrow { color: var(--gold-light); background: rgba(232,168,32,.15); border-color: rgba(232,168,32,.3); }

.hero h1 { color: var(--white); margin-bottom: 20px; }

.hero h1 em { font-style: italic; color: var(--gold-light); }

.hero-sub { font-size: 1.15rem; color: rgba(255,255,255,.82); max-width: 54ch; margin-bottom: 32px; }

.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-bottom: 36px; }

.hero-trust { display: flex; flex-wrap: wrap; gap: 8px 20px; }

.hero-trust span { font-size: .82rem; font-weight: 600; color: rgba(255,255,255,.65); display: flex; align-items: center; gap: 6px; }

.hero-trust span::before { content: ''; display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }

.hero-photo { position: relative; }

.hero-photo-frame { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 3/4; background: rgba(255,255,255,.1); box-shadow: 0 24px 60px rgba(0,0,0,.35); }

.hero-photo-frame img { width: 100%; height: 100%; object-fit: cover; }

.hero-badge { position: absolute; bottom: 28px; left: -20px; background: var(--warm-white); border-radius: var(--radius); padding: 12px 16px; box-shadow: var(--shadow-lg); display: flex; align-items: center; gap: 10px; border: 1px solid var(--cream-deep); }

.hero-badge img { height: 54px; width: auto; }

.hero-badge span { font-size: .78rem; font-weight: 700; color: var(--navy); line-height: 1.3; }

.hero-badge--top { bottom: auto; top: 24px; left: auto; right: -18px; }

@media (max-width: 860px) { .hero-inner { grid-template-columns: 1fr; } .hero-photo { display: none; } }

/* ── PAGE HERO (inner pages) ── */
.page-hero { background: linear-gradient(135deg, var(--navy-deep), var(--navy)); color: var(--white); padding: 64px 0 52px; position: relative; overflow: hidden; }

.page-hero::before { content: ''; position: absolute; bottom: -80px; right: -60px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(232,168,32,.14) 0%, transparent 70%); pointer-events: none; }

.page-hero h1 { color: var(--white); margin-bottom: 14px; position: relative; }

.page-hero .lead { font-size: 1.1rem; color: rgba(255,255,255,.78); position: relative; }

.breadcrumb { font-size: .82rem; font-weight: 600; color: rgba(255,255,255,.5); margin-bottom: 16px; position: relative; }

.breadcrumb a { color: var(--gold-light); }

.breadcrumb a:hover { text-decoration: underline; }

/* ── SERVE / WHO WE WORK WITH ── */
/* Section gets a warm cream background applied inline */
.serve-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; margin-top: 48px; }

.serve-card {
  background: var(--warm-white);
  border-radius: var(--radius);
  padding: 28px 22px;
  box-shadow: var(--shadow-warm);
  border: 1px solid var(--cream-deep);
  border-top: 3px solid var(--gold);
  transition: transform .2s, box-shadow .2s;
}

.serve-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(180,130,20,.2); }

.serve-icon { font-size: 1.8rem; margin-bottom: 12px; }

.serve-card h3 { font-size: 1.05rem; margin-bottom: 8px; }

.serve-card p { font-size: .9rem; color: var(--gray-600); line-height: 1.6; margin: 0; }

@media (max-width: 860px) { .serve-grid { grid-template-columns: 1fr 1fr; } }

@media (max-width: 520px) { .serve-grid { grid-template-columns: 1fr; } }

/* ── SERVICES CARDS ── */
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 48px; }

.service-card {
  background: var(--warm-white);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-warm);
  border: 1px solid var(--cream-deep);
  transition: transform .2s, box-shadow .2s;
}

.service-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(180,130,20,.22); }

.service-card-img { height: 180px; background: var(--cream); overflow: hidden; }

.service-card-img img { width: 100%; height: 100%; object-fit: cover; }

.service-card-body { padding: 24px; }

.service-card h3 { margin-bottom: 8px; }

.service-card p { font-size: .92rem; color: var(--gray-600); margin: 0 0 16px; }

.service-link { font-size: .88rem; font-weight: 700; color: var(--navy); display: inline-flex; align-items: center; gap: 4px; }

.service-link:hover { color: #8a5e00; }

@media (max-width: 860px) { .services-grid { grid-template-columns: 1fr 1fr; } }

@media (max-width: 520px) { .services-grid { grid-template-columns: 1fr; } }

/* ── GOLD DIVIDER WAVE ── */
.wave-divider {
  width: 100%; overflow: hidden; line-height: 0;
  background: var(--cream); /* matches the section above */
}

.wave-divider svg { display: block; }

/* ── TRUST / ABOUT STRIP ── */
.trust-strip { display: grid; grid-template-columns: 380px 1fr; gap: 64px; align-items: center; }

.trust-photo { position: relative; }

.trust-photo-frame { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4/5; background: var(--cream); border: 4px solid var(--warm-white); box-shadow: var(--shadow-lg); }

.trust-photo-frame img { width: 100%; height: 100%; object-fit: cover; }

.trust-cred-badge { position: absolute; top: 24px; right: -20px; background: var(--warm-white); border-radius: var(--radius); padding: 12px 16px; box-shadow: var(--shadow-lg); text-align: center; border: 1px solid var(--cream-deep); }

.trust-cred-badge img { height: 52px; margin: 0 auto 6px; }

.trust-cred-badge span { font-size: .72rem; font-weight: 700; color: var(--navy); display: block; }

.trust-content .eyebrow { background: var(--gold-pale); }

.trust-content h2 { margin-bottom: 18px; }

.trust-content p { color: var(--gray-600); margin-bottom: 16px; }

.trust-points { list-style: none; margin: 24px 0; }

.trust-points li { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px; font-size: .95rem; }

.trust-points li::before { content: '✓'; display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; min-width: 22px; border-radius: 50%; background: var(--gold-pale); color: #8a5e00; font-weight: 700; font-size: .8rem; margin-top: 2px; border: 1px solid rgba(232,168,32,.4); }

@media (max-width: 800px) { .trust-strip { grid-template-columns: 1fr; } .trust-photo { max-width: 320px; } }

/* ── REVIEWS ── */
.reviews-bg { background: linear-gradient(135deg, var(--navy-deep) 0%, #1a3f6e 100%); position: relative; overflow: hidden; }

.reviews-bg::before { content: ''; position: absolute; top: -100px; left: -100px; width: 400px; height: 400px; border-radius: 50%; background: radial-gradient(circle, rgba(232,168,32,.12) 0%, transparent 70%); pointer-events: none; }

.reviews-bg h2 { color: var(--white); position: relative; }

.reviews-bg .eyebrow { background: rgba(232,168,32,.2); border-color: rgba(232,168,32,.3); color: var(--gold-light); }

.reviews-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 48px; position: relative; }

.review-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.14);
  border-top: 2px solid rgba(232,168,32,.5);
  border-radius: var(--radius);
  padding: 28px;
  backdrop-filter: blur(4px);
}

.review-stars { color: var(--gold); font-size: 1rem; letter-spacing: 3px; margin-bottom: 14px; }

.review-text { font-size: .95rem; color: rgba(255,255,255,.82); font-style: italic; line-height: 1.7; margin-bottom: 20px; font-family: 'Playfair Display', serif; }

.review-author { display: flex; align-items: center; gap: 12px; }

.review-author img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(232,168,32,.5); }

.review-name { font-weight: 700; color: var(--white); font-size: .9rem; }

.review-role { font-size: .8rem; color: rgba(255,255,255,.5); }

@media (max-width: 860px) { .reviews-grid { grid-template-columns: 1fr; max-width: 480px; margin-inline: auto; margin-top: 40px; } }

/* ── CTA BAND ── */
.cta-band { background: linear-gradient(135deg, var(--navy), var(--blue-mid)); color: var(--white); text-align: center; position: relative; overflow: hidden; }

.cta-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 100% at 50% 120%, rgba(232,168,32,.15) 0%, transparent 60%); pointer-events: none; }

.cta-band h2 { color: var(--white); margin-bottom: 16px; position: relative; }

.cta-band p { color: rgba(255,255,255,.78); max-width: 52ch; margin: 0 auto 32px; font-size: 1.05rem; position: relative; }

.cta-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; position: relative; }

.cta-band .phone-link { display: inline-flex; align-items: center; gap: 8px; color: var(--gold-light); font-weight: 700; font-size: 1.1rem; }

/* ── ABOUT PAGE ── */
.about-grid { display: grid; grid-template-columns: 420px 1fr; gap: 64px; align-items: start; }

.about-photo-frame { border-radius: var(--radius-lg); overflow: hidden; background: var(--cream); border: 4px solid var(--warm-white); box-shadow: var(--shadow-lg); }

.about-photo-frame img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }

.cred-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; }

.cred-pill { display: flex; align-items: center; gap: 8px; background: var(--gold-pale); border: 1px solid rgba(232,168,32,.4); border-radius: 999px; padding: 8px 16px; font-size: .85rem; font-weight: 700; color: var(--navy); box-shadow: 0 2px 8px rgba(232,168,32,.15); }

.cred-pill img { height: 28px; width: auto; }

.principles-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 48px; }

.principle {
  background: var(--warm-white);
  border-radius: var(--radius);
  padding: 28px 22px;
  box-shadow: var(--shadow-warm);
  border: 1px solid var(--cream-deep);
  border-bottom: 3px solid var(--gold);
}

.principle-num { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 700; color: var(--gold); line-height: 1; margin-bottom: 10px; }

.principle h3 { font-size: 1.1rem; margin-bottom: 8px; }

.principle p { font-size: .9rem; color: var(--gray-600); margin: 0; }

@media (max-width: 860px) { .about-grid { grid-template-columns: 1fr; } .about-photo-frame { max-width: 320px; } .principles-grid { grid-template-columns: 1fr; } }

/* ── SERVICES DETAIL PAGE ── */
.service-detail {
  background: var(--warm-white);
  border-radius: var(--radius-lg);
  padding: 36px;
  box-shadow: var(--shadow-warm);
  margin-bottom: 24px;
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 24px;
  align-items: start;
  border: 1px solid var(--cream-deep);
  border-left: 4px solid var(--gold);
}

.service-detail-icon { width: 56px; height: 56px; border-radius: var(--radius-sm); background: var(--gold-pale); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; border: 1px solid rgba(232,168,32,.3); }

.service-detail h2 { font-size: 1.5rem; margin-bottom: 10px; }

.service-detail p { color: var(--gray-600); margin-bottom: 14px; font-size: .97rem; }

.service-detail ul { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; }

.service-detail ul li { font-size: .88rem; color: var(--gray-600); display: flex; align-items: center; gap: 8px; }

.service-detail ul li::before { content: '→'; color: var(--gold); font-weight: 700; }

@media (max-width: 600px) { .service-detail { grid-template-columns: 1fr; } .service-detail ul { grid-template-columns: 1fr; } }

/* ── BOOKING PAGE ── */
.book-grid { display: grid; grid-template-columns: 1fr 380px; gap: 48px; align-items: start; }

.booking-embed { background: var(--warm-white); border-radius: var(--radius-lg); padding: 8px; box-shadow: var(--shadow-lg); min-height: 600px; overflow: hidden; border: 1px solid var(--cream-deep); }

.booking-embed iframe { width: 100%; min-height: 600px; border: none; border-radius: var(--radius); display: block; }

.book-sidebar { display: flex; flex-direction: column; gap: 20px; }

.sidebar-card { background: var(--warm-white); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow-warm); border: 1px solid var(--cream-deep); }

.sidebar-photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; border: 3px solid var(--gold-pale); margin-bottom: 12px; }

.sidebar-card h3 { font-size: 1.1rem; margin-bottom: 4px; }

.sidebar-card .role { font-size: .85rem; color: var(--gray-400); margin-bottom: 14px; }

.what-to-expect { list-style: none; }

.what-to-expect li { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--cream-deep); font-size: .9rem; }

.what-to-expect li:last-child { border-bottom: none; }

.expect-num { width: 26px; height: 26px; min-width: 26px; border-radius: 50%; background: var(--gold-pale); color: #8a5e00; font-weight: 700; font-size: .8rem; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(232,168,32,.4); }

@media (max-width: 860px) { .book-grid { grid-template-columns: 1fr; } }

/* ── CONTACT PAGE ── */
.contact-grid { display: grid; grid-template-columns: 1fr 400px; gap: 48px; align-items: start; }

.form-card { background: var(--warm-white); border-radius: var(--radius-lg); padding: 36px; box-shadow: var(--shadow-lg); border: 1px solid var(--cream-deep); }

.form-card h2 { font-size: 1.5rem; margin-bottom: 24px; }

.field-group { margin-bottom: 18px; }

.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

label { display: block; font-size: .82rem; font-weight: 700; color: var(--gray-600); margin-bottom: 6px; letter-spacing: .04em; text-transform: uppercase; }

input, select, textarea { width: 100%; padding: 12px 14px; border: 1.5px solid var(--cream-deep); border-radius: var(--radius-sm); font-family: inherit; font-size: .95rem; color: var(--gray-800); background: var(--off-white); transition: border .2s, box-shadow .2s; }

input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(232,168,32,.15); background: var(--warm-white); }

textarea { min-height: 120px; resize: vertical; }

.contact-info { display: flex; flex-direction: column; gap: 16px; }

.contact-card { background: var(--warm-white); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow-warm); display: flex; gap: 16px; align-items: flex-start; border: 1px solid var(--cream-deep); }

.contact-icon { width: 44px; height: 44px; min-width: 44px; border-radius: var(--radius-sm); background: var(--gold-pale); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; border: 1px solid rgba(232,168,32,.3); }

.contact-card h4 { font-size: .9rem; margin-bottom: 4px; }

.contact-card p, .contact-card a { font-size: .88rem; color: var(--gray-600); margin: 0; }

.contact-card a:hover { color: var(--navy); }

.map-placeholder { background: var(--cream); border-radius: var(--radius); height: 200px; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--gray-400); font-size: .85rem; border: 2px dashed var(--cream-deep); }

@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } .field-row { grid-template-columns: 1fr; } }

/* ── CATEGORY PAGE ── */
.cat-intro {
  background: linear-gradient(135deg, var(--gold-pale), var(--warm-white));
  border-radius: var(--radius-lg);
  padding: 36px;
  box-shadow: var(--shadow-warm);
  margin-bottom: 40px;
  border: 1px solid rgba(232,168,32,.3);
}

.cat-service { padding: 36px 0; border-bottom: 1px solid var(--cream-deep); }

.cat-service:last-child { border-bottom: none; }

.cat-service h2 { font-size: 1.5rem; margin-bottom: 12px; }

.cat-service p { color: var(--gray-600); }

.local-areas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

.area-tag { background: var(--gold-pale); color: #6b4700; font-size: .8rem; font-weight: 700; padding: 5px 12px; border-radius: 999px; border: 1px solid rgba(232,168,32,.35); }

/* ── FOOTER ── */
.footer { background: linear-gradient(180deg, var(--navy-deep) 0%, #08192e 100%); color: rgba(255,255,255,.7); padding: 60px 0 28px; position: relative; overflow: hidden; }

.footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--gold), transparent); }

.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 48px; margin-bottom: 48px; }

.footer-brand img { height: 40px; filter: brightness(0) invert(1); margin-bottom: 14px; }

.footer-brand p { font-size: .88rem; line-height: 1.7; max-width: 32ch; }

.footer-col h4 { color: var(--gold-light); font-family: 'Inter', sans-serif; font-weight: 700; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 16px; }

.footer-col ul { list-style: none; }

.footer-col ul li { margin-bottom: 10px; }

.footer-col ul li a { font-size: .88rem; transition: color .2s; }

.footer-col ul li a:hover { color: var(--gold-light); }

.footer-nap p { font-size: .88rem; margin-bottom: 6px; line-height: 1.6; }

.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 24px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: .8rem; }

.footer-creds { color: rgba(255,255,255,.4); }

@media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr 1fr; } }

@media (max-width: 520px) { .footer-grid { grid-template-columns: 1fr; } .footer-bottom { flex-direction: column; } }

/* ════════════════════════════════════════════════════════════
   LIVE / ANIMATED FEATURES  (ported from Wolf & Tiger, recolored
   to Parker's warm navy + gold palette)
   ════════════════════════════════════════════════════════════ */
:root {
  --ease: cubic-bezier(.22,1,.36,1);
  --glow-gold-sm: 0 0 8px rgba(232,168,32,.55);
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  .rv, .rv-l, .rv-r, .rv-scale { opacity: 1 !important; transform: none !important; }
  .orb, .mq-track { animation: none !important; }
  #hero-canvas, .banner-canvas { display: none !important; }
}

/* ── Page-load fade-in & page-leave fade-out ── */
body { animation: pgIn .5s ease both; }

body.leaving { opacity: 0; transition: opacity .28s ease; }

@keyframes pgIn { from { opacity: 0; } to { opacity: 1; } }

/* ── SCROLL PROGRESS BAR ── */
#sprog {
  position: fixed; top: 0; left: 0; z-index: 9997;
  height: 3px; width: 0;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-light) 50%, var(--blue-mid) 100%);
  box-shadow: var(--glow-gold-sm);
  transition: width .06s linear;
}

/* ── CUSTOM CURSOR (fine-pointer devices only) ── */
#cur, #cur-r, #cur-halo { display: none; }

@media (hover: hover) and (pointer: fine) {
  #cur {
    position: fixed; top: 0; left: 0; z-index: 9999; pointer-events: none; display: block;
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--gold); transform: translate(-50%,-50%);
    transition: width .3s var(--ease), height .3s var(--ease), background .3s;
  }
  #cur-r {
    position: fixed; top: 0; left: 0; z-index: 9998; pointer-events: none; display: block;
    width: 30px; height: 30px; border-radius: 50%;
    border: 1.5px solid rgba(232,168,32,.45);
    transform: translate(-50%,-50%);
    transition: width .35s var(--ease), height .35s var(--ease), border-color .3s;
  }
  #cur-halo {
    position: fixed; top: 0; left: 0; z-index: 9996; pointer-events: none; display: block;
    width: 130px; height: 130px; border-radius: 50%;
    background: radial-gradient(circle, rgba(232,168,32,.06) 0%, transparent 70%);
    transform: translate(-50%,-50%); transition: opacity .4s, background .3s; opacity: 0;
  }
  body:hover #cur-halo { opacity: 1; }
  body.cx #cur { width: 13px; height: 13px; background: var(--navy); }
  body.cx #cur-r { width: 46px; height: 46px; border-color: rgba(26,58,92,.4); }
  body.cx #cur-halo { background: radial-gradient(circle, rgba(26,58,92,.06) 0%, transparent 70%); }
}

/* ── NAV: scroll-aware condense ── */
.nav { transition: padding .3s var(--ease), background .3s, box-shadow .3s; }

.nav.scrolled {
  background: rgba(250,253,253,.96);
  box-shadow: 0 2px 0 rgba(26,58,92,.04), 0 10px 28px rgba(180,130,20,.14);
}

.nav.scrolled .nav-inner { padding-top: 9px; padding-bottom: 9px; }

.nav.scrolled .nav-brand img { height: 38px; transition: height .3s var(--ease); }

.nav-brand img { transition: height .3s var(--ease); }

/* ── FLOATING AMBIENT ORBS (live inside the dark hero sections) ── */
.orb-field { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }

.orb { position: absolute; border-radius: 50%; filter: blur(44px); will-change: transform, opacity; }

.orb-1 { width: 420px; height: 420px; top: -90px; left: -70px;
  background: radial-gradient(circle, rgba(232,168,32,.42), transparent 70%);
  animation: wtOrb1 9s ease-in-out infinite alternate; }

.orb-2 { width: 360px; height: 360px; bottom: -100px; right: -50px;
  background: radial-gradient(circle, rgba(90,150,210,.32), transparent 70%);
  animation: wtOrb2 12s ease-in-out infinite alternate; }

.orb-3 { width: 300px; height: 300px; top: 45%; left: 60%;
  background: radial-gradient(circle, rgba(245,200,66,.24), transparent 70%);
  animation: wtOrb3 7s ease-in-out infinite alternate; }

@keyframes wtOrb1 { 0% { opacity:.40; transform:scale(1); } 100% { opacity:.75; transform:scale(1.12) translate(2%,2%); } }

@keyframes wtOrb2 { 0% { opacity:.30; transform:scale(1); } 100% { opacity:.62; transform:scale(1.1) translate(-2%,-3%); } }

@keyframes wtOrb3 { 0% { opacity:.16; transform:translate(-50%,-50%) scale(1); } 100% { opacity:.38; transform:translate(-50%,-50%) scale(1.4); } }

/* ── HERO / BANNER CANVASES ── */
#hero-canvas { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; }

.banner-canvas { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; }

.hero .container, .page-hero .container, .cta-band .container, .reviews-bg .container { position: relative; z-index: 2; }

.hero, .page-hero, .cta-band, .reviews-bg { position: relative; }

/* ── SCROLL REVEAL ── */
.rv { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform .9s var(--ease); }

.rv.on { opacity: 1; transform: none; }

.rv-l { opacity: 0; transform: translateX(-26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }

.rv-l.on { opacity: 1; transform: none; }

.rv-r { opacity: 0; transform: translateX(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }

.rv-r.on { opacity: 1; transform: none; }

.rv-scale { opacity: 0; transform: scale(.94); transition: opacity .9s var(--ease), transform .9s var(--ease); }

.rv-scale.on { opacity: 1; transform: none; }

/* staggered children */
.rv-stagger > * { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--ease), transform .8s var(--ease); }

.rv-stagger.on > * { opacity: 1; transform: none; }

.rv-stagger.on > *:nth-child(2) { transition-delay: .08s; }

.rv-stagger.on > *:nth-child(3) { transition-delay: .16s; }

.rv-stagger.on > *:nth-child(4) { transition-delay: .24s; }

/* ── MARQUEE TRUST TICKER ── */
.marquee { overflow: hidden; padding: 14px 0; position: relative; border-top: 1px solid var(--cream-deep); border-bottom: 1px solid var(--cream-deep); }

.marquee--gold { background: linear-gradient(90deg, var(--gold), var(--gold-light)); }

.marquee--navy { background: var(--navy-deep); }

.mq-track { display: flex; white-space: nowrap; animation: mqs 30s linear infinite; }

.marquee:hover .mq-track { animation-play-state: paused; }

.mq-item { display: inline-flex; align-items: center; gap: 22px; padding: 0 38px;
  font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }

.marquee--gold .mq-item { color: var(--navy-deep); }

.marquee--navy .mq-item { color: var(--gold-light); }

.mq-item span.dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .55; }

@keyframes mqs { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── ANIMATED HAMBURGER ── */
.nav-toggle span { transition: transform .3s var(--ease), opacity .2s; }

.nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }

.nav-toggle.open span:nth-child(2) { opacity: 0; }

.nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* lift on hover for revealed cards already covered by existing :hover rules */

/* ════════════════════════════════════════════════════════════
   PARKER BRAND RECOLOR — overrides + motion removal (v2 redesign)
   ════════════════════════════════════════════════════════════ */
body { background: transparent;
  background-image:
    radial-gradient(ellipse 80% 50% at 10% 0%, rgba(138,178,192,.10) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 90% 100%, rgba(237,210,134,.10) 0%, transparent 55%); }

/* Eyebrow → pale yellow chip, teal text */
.eyebrow { color: var(--teal-deep); background: var(--gold-pale); border-color: rgba(138,178,192,.4); }

/* HERO → teal gradient, white text retained */
.hero { background: linear-gradient(135deg, #2d2d2a 0%, #37657a 52%, #5b8d9c 100%); }

.hero::before { background: radial-gradient(circle, rgba(237,210,134,.20) 0%, transparent 70%); }

.hero h1 em { color: var(--gold); }

.hero-eyebrow { color: var(--gold-light); background: rgba(237,210,134,.16); border-color: rgba(237,210,134,.32); }

.hero-trust span::before { background: var(--gold); }

.page-hero { background: linear-gradient(135deg, #2d2d2a 0%, #37657a 60%, #437f8e 100%); }

.page-hero::before { background: radial-gradient(circle, rgba(237,210,134,.16) 0%, transparent 70%); }

/* REVIEWS band → teal */
.reviews-bg { background: linear-gradient(135deg, #437f8e 0%, #37657a 100%); }

.reviews-bg::before { background: radial-gradient(circle, rgba(237,210,134,.14) 0%, transparent 70%); }

.review-card { border-top-color: rgba(237,210,134,.55); }

.review-stars { color: var(--gold); }

.review-author img { border-color: rgba(237,210,134,.5); }

/* CTA band → golden yellow, near-black text */
.cta-band { background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%); color: var(--navy-deep); }

.cta-band::before { background: radial-gradient(ellipse 80% 100% at 50% 120%, rgba(138,178,192,.22) 0%, transparent 60%); }

.cta-band h2, .cta-band p { color: var(--navy-deep); }

.cta-band .phone-link { color: var(--teal-deep); }

.cta-band .btn-primary { background: var(--navy-deep); color: #fff; box-shadow: 0 4px 16px rgba(45,45,42,.25); }

.cta-band .btn-primary:hover { background: #1f1f1d; }

/* Buttons */
.btn-primary { background: linear-gradient(135deg, var(--gold), var(--gold-light)); color: var(--navy-deep); box-shadow: 0 4px 16px rgba(237,210,134,.5); }

.btn-primary:hover { box-shadow: 0 8px 24px rgba(237,210,134,.6); }

.btn-navy { background: var(--teal-deep); color: #fff; }

.btn-navy:hover { background: #37657a; }

.btn-ghost { color: var(--teal-deep); border-color: var(--teal-deep); }

.btn-ghost:hover { background: var(--teal-deep); color: #fff; }

.service-link { color: var(--teal-deep); }

.service-link:hover { color: var(--gold-deep); }

.trust-points li::before { background: var(--gold-pale); color: var(--gold-deep); border-color: rgba(237,210,134,.6); }

/* Footer accent line → yellow */
.footer::before { background: linear-gradient(90deg, transparent, var(--gold), transparent); }

.footer-col h4 { color: var(--gold-light); }

/* ── MOTION REMOVED from page headers (per feedback) ── */
.banner-canvas, .orb-field, .marquee, #cur, #cur-r, #cur-halo { display: none !important; }

body.cx { cursor: auto; }

/* ── NEW COMPONENTS (v2) ── */
/* Credential badge strip (replaces hero text ticker) */
.badge-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 28px 40px; padding: 26px 24px; background: transparent; border-top: 1px solid var(--cream-deep); border-bottom: 1px solid var(--cream-deep); }

.badge-strip img { height: 52px; width: auto; opacity: .92; }

.badge-chip { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; font-size: .82rem; letter-spacing: .04em; color: var(--navy-deep); }

.badge-chip .bc-ico { width: 34px; height: 34px; border-radius: 8px; background: var(--gold-pale); display: flex; align-items: center; justify-content: center; font-size: 1.05rem; }

@media (max-width: 600px){ .badge-strip{ gap:18px 24px; } .badge-strip img{ height:42px; } }

/* Founder photo placeholder (no real headshot yet) */
.founder-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: linear-gradient(150deg, #37657a, #437f8e 70%, #8ab2c0); color: #fff; gap: 10px; padding: 28px; }

.founder-ph .fph-mono { width: 92px; height: 92px; border-radius: 50%; background: rgba(255,255,255,.12); border: 2px solid rgba(237,210,134,.6); display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 2.2rem; font-weight: 700; color: var(--gold-light); }

.founder-ph .fph-label { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.72); }

/* Initials avatar for reviews (replaces stock faces) */
.rv-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--teal-deep); color: #fff; display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.05rem; flex-shrink: 0; }

/* Service bucket cards (services-category) */
.bucket-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 44px; }

.bucket-card { background: var(--warm-white); border: 1px solid var(--cream-deep); border-top: 4px solid var(--teal); border-radius: var(--radius); padding: 30px 26px; display: flex; flex-direction: column; box-shadow: var(--shadow-warm); transition: transform .2s, box-shadow .2s; }

.bucket-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.bucket-icon { font-size: 1.8rem; margin-bottom: 12px; }

.bucket-card h3 { margin-bottom: 10px; }

.bucket-card p { color: var(--gray-600); font-size: .94rem; margin: 0 0 18px; flex: 1; }

@media (max-width: 860px){ .bucket-grid{ grid-template-columns:1fr; } }

/* Two-column booking layout helper */
.book-twocol { display: grid; grid-template-columns: 380px 1fr; gap: 40px; align-items: start; }

@media (max-width: 860px){ .book-twocol{ grid-template-columns:1fr; } }

/* "The Human Behind the Numbers" two-column block (about) */
.human-grid { display: grid; grid-template-columns: 1fr 380px; gap: 56px; align-items: center; position: relative; z-index: 1; }

.human-photo { position: relative; z-index: 1; }

.human-photo { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4/5; background: rgba(255,255,255,.1); }

@media (max-width: 860px){ .human-grid{ grid-template-columns:1fr; } .human-photo{ width:100%; max-width:340px; margin-inline:auto; } }

/* ════════════════════════════════════════════════════════════
   v3 — QUALITY / MOBILE / CUSTOM-ICON OVERHAUL
   ════════════════════════════════════════════════════════════ */

/* Paragraph rhythm — restore vertical spacing lost to the global reset */
p { margin-bottom: 1.05em; }

p:last-child { margin-bottom: 0; }

/* ── Custom SVG icon system (replaces every emoji) ── */
.ico { display:inline-block; width:24px; height:24px; flex:0 0 auto;
  fill:none; stroke:currentColor; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }

.ico-inline { width:18px; height:18px; vertical-align:-3px; }

.ico-arrow  { width:18px; height:18px; }

/* Unified, legible icon "chip" container for all card icons */
.icon-chip, .serve-icon, .bucket-icon, .service-detail-icon {
  width:60px; height:60px; min-width:60px; border-radius:16px;
  background:var(--gold-pale); border:1px solid rgba(237,210,134,.65);
  display:flex; align-items:center; justify-content:center;
  color:var(--teal-deep); margin-bottom:18px; font-size:0;
}

.icon-chip .ico, .serve-icon .ico, .bucket-icon .ico, .service-detail-icon .ico { width:30px; height:30px; }

.service-detail-icon { margin-bottom:0; }

/* lives in its own grid column */
.icon-chip--ondark { background:rgba(237,210,134,.15); border-color:rgba(237,210,134,.38); color:var(--gold-light); }

/* Contact info icons — bumped up for legibility */
.contact-icon { width:54px; height:54px; min-width:54px; border-radius:14px;
  background:var(--gold-pale); border:1px solid rgba(237,210,134,.5);
  display:flex; align-items:center; justify-content:center; color:var(--teal-deep); font-size:0; }

.contact-icon .ico { width:27px; height:27px; }

/* Credential strip chips */
.badge-chip .bc-ico { width:40px; height:40px; border-radius:10px; color:var(--teal-deep); font-size:0; }

.badge-chip .bc-ico .ico { width:22px; height:22px; }

@media (max-width:600px){ .badge-strip img{ height:46px; } }

/* Star ratings (SVG) */
.review-stars, .stars { display:inline-flex; gap:3px; align-items:center; }

.ico-star { width:18px; height:18px; }

/* Inline check marks — teal for real contrast (were pale-gold, hard to read) */
.chk { display:inline-flex; flex:0 0 auto; }

.chk .ico { width:18px; height:18px; color:var(--teal-deep); margin-top:1px; }

/* Breadcrumb chevron separator */
.breadcrumb .bc-sep { width:13px; height:13px; color:var(--gold-light); margin:0 3px; vertical-align:-1px; }

/* Map icon (contact) */
.map-ico { color:var(--teal-deep); margin-bottom:8px; font-size:0; }

.map-ico .ico { width:40px; height:40px; }

/* Trust list & service-detail list markers → SVG (no glyph characters) */
.trust-points li::before {
  content:''; background:rgba(67,127,142,.14); border:1px solid rgba(67,127,142,.45);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23437f8e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E");
  background-size:13px 13px; background-repeat:no-repeat; background-position:center; }

.service-detail ul li::before {
  content:''; width:15px; height:15px; min-width:15px; flex:0 0 auto; display:inline-block;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b88a1e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat; background-position:center; }

/* ── Responsive fixes for inline multi-column grids (were fixed columns on mobile) ── */
.cred-grid       { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:48px; }

.stat-strip-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; text-align:center; position:relative; }

.pricing-grid    { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

@media (max-width:820px){
  .cred-grid    { grid-template-columns:repeat(2,1fr); }
  .pricing-grid { grid-template-columns:1fr; }
}

@media (max-width:560px){
  .cred-grid       { grid-template-columns:1fr; max-width:340px; margin-inline:auto; }
  .stat-strip-grid { grid-template-columns:1fr; gap:22px; }
}

/* ════════════════════════════════════════════════════════════
   v4 — FONT SCALE DOWN · SLEEKER ICONS · JOURNEY · REVIEW BADGES
   ════════════════════════════════════════════════════════════ */

/* Smaller, calmer headline scale (per feedback the type was too big) */
h1 { font-size: clamp(1.95rem, 4vw, 2.95rem); }

h2 { font-size: clamp(1.5rem, 2.9vw, 2.2rem); }

h3 { font-size: 1.2rem; }

body { font-size: 16px; }

.hero-sub { font-size: 1.08rem; }

.page-hero .lead { font-size: 1.05rem; }

/* Sleeker, thinner icon strokes (less 'clipart') */
.ico { stroke-width: 1.6; }

.serve-icon .ico, .icon-chip .ico, .bucket-icon .ico, .service-detail-icon .ico { stroke-width: 1.5; }

/* Hero location line (moved below the headline) */
.hero-locline {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gold-light); margin-bottom: 26px;
}

.hero-locline .ico { width: 16px; height: 16px; }

/* Who-We-Work-With → Past/Present/Future journey (3 cards) */
.serve-grid { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 860px) { .serve-grid { grid-template-columns: 1fr; } }

.era-tag {
  display: inline-block; font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--teal-deep); background: rgba(138,178,192,.16);
  border: 1px solid rgba(138,178,192,.4); padding: 3px 10px; border-radius: 999px; margin-bottom: 10px;
}

/* Review source badge (Google / Yelp) */
.review-source {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 16px;
  font-size: .78rem; font-weight: 600; color: rgba(255,255,255,.6);
}

.review-source .src-logo { width: 16px; height: 16px; flex: 0 0 auto; }

/* Anchor offset so sticky nav doesn't cover linked service blocks */
.service-detail { scroll-margin-top: 96px; }

/* ════════════════════════════════════════════════════════════
   Elaine revision round 2 — remove boxes around icons
   ════════════════════════════════════════════════════════════ */
.icon-chip, .serve-icon, .bucket-icon, .service-detail-icon, .contact-icon {
  background: none !important; border: none !important;
  width: auto !important; height: auto !important; min-width: 0 !important; border-radius: 0 !important;
}

.serve-icon, .icon-chip, .bucket-icon { margin-bottom: 12px !important; }

.serve-icon .ico, .icon-chip .ico, .bucket-icon .ico, .service-detail-icon .ico { width: 44px !important; height: 44px !important; }

.contact-icon .ico { width: 38px !important; height: 38px !important; }

.badge-chip .bc-ico { background: none !important; width: auto !important; height: auto !important; border-radius: 0 !important; }

.era-tag { display: none !important; }

/* Elaine revision round 3: tile titles centered; section eyebrow labels removed */
.serve-card h3 { text-align: center; }

.eyebrow { display: none !important; }

/* ── Policy pages (Privacy / Terms) + footer legal links ── */
.policy { max-width: 76ch; margin: 0 auto; }

.policy h2 { font-size: 1.4rem; margin: 34px 0 10px; }

.policy h3 { font-size: 1.08rem; margin: 20px 0 6px; }

.policy p, .policy li { color: var(--gray-600); font-size: .97rem; line-height: 1.75; }

.policy p { margin-bottom: 12px; }

.policy ul { margin: 0 0 14px 1.25em; list-style: disc; }

.policy ul li { margin-bottom: 6px; }

.policy a { color: var(--teal-deep); font-weight: 600; }

.policy-updated { font-size: .8rem; color: var(--gray-400); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 18px; }

.policy-note { background: var(--gold-pale); border: 1px solid rgba(237,210,134,.55); border-radius: var(--radius-sm); padding: 14px 18px; font-size: .88rem; color: var(--gray-600); margin-bottom: 30px; }

.footer-legal { font-size: .8rem; }

.footer-legal a { color: rgba(255,255,255,.55); }

.footer-legal a:hover { color: var(--gold-light); }

/* ── Nav dropdown menus (Core 30 navigation) ── */
.nav-group { position: relative; display: flex; align-items: center; }

.nav-group-link { font-weight: 600; font-size: .9rem; color: var(--gray-600); cursor: pointer; display: inline-flex; align-items: center; gap: 5px; line-height: 1; transition: color .2s; }

.nav-group:hover .nav-group-link, .nav-group-link:hover { color: var(--navy); }

.nav-caret { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s; }

.nav-menu { display: none; }

@media (min-width: 801px) {
  .nav-menu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 16px; min-width: 232px; background: var(--warm-white); border: 1px solid var(--cream-deep); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 10px; z-index: 200; }
  .nav-menu::before { content: ''; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
  .nav-group:hover .nav-menu { display: block; }
  .nav-group:hover .nav-caret { transform: rotate(180deg); }
  .nav-menu a { display: block; white-space: nowrap; padding: 9px 14px; border-radius: 9px; font-size: .88rem; font-weight: 600; color: var(--gray-600); }
  .nav-menu a:hover { background: var(--gold-pale); color: var(--navy); }
  /* Services mega-menu */
  .nav-mega { left: 0; transform: none; padding: 14px; }
  .nav-group--mega:hover .nav-mega { display: flex; flex-direction: column; }
  .nav-mega-cols { display: flex; gap: 28px; }
  .nav-mega-col { display: flex; flex-direction: column; gap: 16px; width: 240px; }
  .nav-mega-group { display: flex; flex-direction: column; }
  .nav-mega a { white-space: normal; line-height: 1.35; }
  .nav-mega-h { font-weight: 700 !important; color: var(--teal-bright) !important; border-bottom: 1px solid var(--cream-deep); border-radius: 0 !important; margin-bottom: 4px; padding-bottom: 7px !important; }
  .nav-mega-h:hover { background: none !important; color: var(--gold-deep) !important; }
  .nav-mega-all { display: inline-flex !important; align-items: center; gap: 6px; align-self: flex-start; font-weight: 700 !important; color: var(--navy) !important; border-top: 1px solid var(--cream-deep); border-radius: 0 !important; margin-top: 12px; padding: 12px 4px 2px !important; }
  .nav-mega-all:hover { background: none !important; color: var(--gold-deep) !important; }
}

@media (max-width: 800px) {
  .nav-group { display: block; width: 100%; }
  .nav-group-link { display: flex; width: 100%; padding: 14px 0; border-bottom: 1px solid var(--cream-deep); font-size: .95rem; }
  .nav-caret { display: none; }
  .nav-menu { display: none !important; }
}

/* ── Video hero + section background video (v2) ── */
.hero--video { position: relative; background: var(--navy-deep); color: #fff; overflow: hidden; }

.hero--video .video-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; filter: brightness(.74) saturate(1.04); }

.hero--video .video-scrim { position: absolute; inset: 0; z-index: 1; background:
   linear-gradient(100deg, rgba(45,45,42,.72) 0%, rgba(45,45,42,.46) 46%, rgba(45,45,42,.24) 100%),
   linear-gradient(to top, rgba(45,45,42,.5) 0%, rgba(45,45,42,.1) 50%, transparent 100%); }

.hero--video > .container { position: relative; z-index: 2; }

.hero--video .hero-inner { display: block; max-width: 690px; }

.hero--video h1 { font-size: clamp(2.5rem, 5.4vw, 4rem); margin-bottom: 18px; }

.hero--video .hero-sub { font-size: 1.2rem; color: rgba(255,255,255,.93); max-width: 42ch; }

.hero--video h1, .hero--video .hero-sub, .hero--video .hero-locline { text-shadow: 0 2px 18px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.5); }

.hero--video .hero-trust span { color: rgba(255,255,255,.82); }

.has-video { position: relative; overflow: hidden; }

.has-video > .video-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; filter: brightness(.6) saturate(1.03); }

.has-video > .video-scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(45,45,42,.8), rgba(45,45,42,.78)); }

.has-video > .container { position: relative; z-index: 2; }

/* CTA over video: its text is dark by default — force white so it stays legible */
.cta-band.has-video h2, .cta-band.has-video p { color: #fff; }

.cta-band.has-video .phone-link { color: var(--gold-light); }

.cta-band.has-video .btn-primary { background: linear-gradient(135deg, var(--gold), var(--gold-light)); color: var(--navy-deep); box-shadow: 0 6px 20px rgba(0,0,0,.32); }

@media (prefers-reduced-motion: reduce) { .video-bg { display: none !important; } }

/* ── Teal accent layer (v2) — adds brand pop to the open white areas ── */
:root { --mist: #dde9ec; }

/* soft teal-tinted band, not beige */

/* brand underline accent beneath centered section headings (light sections only) */
.section:not(.reviews-bg):not(.cta-band) .text-center > h2 { position: relative; }

.section:not(.reviews-bg):not(.cta-band) .text-center > h2::after {
  content: ''; display: block; width: 64px; height: 4px; margin: 18px auto 0;
  background: linear-gradient(90deg, var(--navy) 0%, var(--teal-deep) 55%, var(--gold) 100%);
  border-radius: 3px;
}

/* teal icon badges on the "meet you there" cards */
.serve-icon {
  width: 54px; height: 54px; border-radius: 15px; display: inline-flex;
  align-items: center; justify-content: center; margin: 0 auto 14px; font-size: 1.55rem;
  color: var(--navy);
  background: linear-gradient(135deg, rgba(67,127,142,.16), rgba(55,101,122,.10));
  border: 1px solid rgba(67,127,142,.18);
}

/* teal cap + teal-tinted hover on the image service cards */
.service-card { border-top: 3px solid var(--teal-deep); }

.service-card:hover { box-shadow: 0 16px 48px rgba(55,101,122,.22); }

/* soft teal hairline to seat the mist band */
.section[style*="--mist"] { border-top: 1px solid rgba(67,127,142,.14); border-bottom: 1px solid rgba(67,127,142,.10); }

/* (removed) odd-bullet override was wiping the checkmark background-image */


/* ── Widget placeholders (v2): Google Map + Google Reviews ── */
.map-placeholder { height: 220px; flex-direction: column; gap: 6px; background: var(--mist); border: 2px dashed rgba(67,127,142,.4); }

.map-placeholder .ph-inner { display: flex; flex-direction: column; align-items: center; gap: 6px; }

.map-placeholder .ph-ico { width: 32px; height: 32px; color: var(--teal-deep); }

.map-placeholder strong { color: var(--navy); font-size: 1rem; font-family: 'Playfair Display', serif; }

.map-placeholder span { color: var(--gray-600); font-size: .85rem; }

.reviews-widget-ph { max-width: 660px; margin: 0 auto 40px; padding: 30px 28px; text-align: center;
  background: rgba(255,255,255,.07); border: 2px dashed rgba(255,255,255,.38); border-radius: var(--radius-lg);
  display: flex; flex-direction: column; align-items: center; gap: 7px; position: relative; z-index: 2; }

.reviews-widget-ph .gicon { width: 36px; height: 36px; margin-bottom: 2px; }

.reviews-widget-ph strong { font-size: 1.1rem; color: #fff; font-family: 'Playfair Display', serif; }

.reviews-widget-ph span { font-size: .9rem; color: rgba(255,255,255,.72); }

/* ── Generic embed placeholders (v2 demo): booking + contact form ── */
.embed-ph { background: var(--mist); border: 2px dashed rgba(67,127,142,.4); border-radius: var(--radius-lg);
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  gap: 9px; padding: 40px 28px; }

.embed-ph .ph-ico { width: 40px; height: 40px; color: var(--teal-deep); }

.embed-ph strong { font-family: 'Playfair Display', serif; color: var(--navy); font-size: 1.2rem; }

.embed-ph span { color: var(--gray-600); font-size: .92rem; max-width: 40ch; }

/* ── FAQ accordion (v2) ── */
.faq-list { max-width: 760px; margin: 36px auto 0; }

.faq-item { border-bottom: 1px solid var(--cream-deep); }

.faq-item summary { cursor: pointer; padding: 20px 4px; font-weight: 600; color: var(--navy-deep); font-size: 1.06rem; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-family: 'Playfair Display', serif; }

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary::after { content: '+'; color: var(--teal-deep); font-size: 1.6rem; font-weight: 400; line-height: 1; transition: transform .2s; }

.faq-item[open] summary::after { transform: rotate(45deg); }

.faq-item p { padding: 0 4px 20px; color: var(--gray-600); line-height: 1.7; margin: 0; max-width: 68ch; }

/* ── Inner page-hero video legibility (v2) ── */
.page-hero.has-video { background: var(--navy-deep); }

.page-hero.has-video h1, .page-hero.has-video .lead, .page-hero.has-video .breadcrumb,
.page-hero.has-video p { text-shadow: 0 2px 14px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.5); }

.page-hero.has-video .breadcrumb a { color: var(--gold-light); }

/* ── Homepage hero: clean gradient (interim, no video) ── */
.hero--video.hero--novid { background: linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 58%, var(--blue-mid) 100%); }

/* ── Visible section gradient (reference look): gold -> teal -> near-white, alternating so bands blend ── */
.section:not(.reviews-bg):not(.cta-band) { background: transparent; }

/* ── One shared continuous page field (no per-section cuts) ── */
html { background: #eef3f5; }

body { position: relative; }

body::before {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
   radial-gradient(1300px 1000px at 100% 2%, rgba(240,214,140,.48), transparent 52%),
   radial-gradient(1200px 1100px at 0% 96%, rgba(67,127,142,.28), transparent 54%),
   linear-gradient(160deg, #f4f9fa 0%, #e7eff1 60%, #dde9ec 100%);
}

/* ── Credential badges (footer, about grid, hero) ── */
.footer-badges { display: flex; gap: 26px; align-items: center; justify-content: center; flex-wrap: wrap; margin: 4px 0 30px; }

.footer-badges img { height: 120px; width: auto; }

.footer-badges .bbb-chip { background: #fff; border-radius: 12px; padding: 12px 16px; display: inline-flex; align-items: center; }

.footer-badges .bbb-chip img { height: 86px; }

@media (max-width: 600px){ .footer-badges img { height: 92px; } .footer-badges .bbb-chip img { height: 66px; } }

.cred-grid { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 18px; }

.cred-grid > div { flex: 0 1 172px; }

.hero-badge-l2 { position: absolute; top: 44px; right: -16px; z-index: 3; filter: drop-shadow(0 8px 20px rgba(0,0,0,.3)); }

.hero-badge-l2 img { height: 120px; width: auto; }

@media (max-width: 600px){ .hero-badge-l2 img { height: 92px; } .footer-badges img { height: 66px; } }

/* ── ThemePort blog/utility templates (namespaced, no collision with site CSS) ── */
.tp-container { max-width: 1160px; margin: 0 auto; padding: 0 28px; width: 100%; }
.tp-page-hero { background: #37657a; padding: 88px 0 56px; }
.tp-page-hero h1 { color: #fff; font-family: 'Georgia', serif; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; margin: 0; }
.tp-page-hero .tp-meta { color: rgba(255,255,255,.75); margin: 12px 0 0; }
.tp-section { padding: 64px 0; }
.tp-content { max-width: 820px; }
.tp-content p, .tp-content ul, .tp-content ol { margin: 0 0 1.2em; }
.tp-content h2, .tp-content h3 { font-family: 'Georgia', serif; color: #37657a; margin: 1.6em 0 .6em; line-height: 1.25; }
.tp-content img, .tp-featured { max-width: 100%; height: auto; border-radius: 8px; margin: 0 0 1.4em; }
.tp-policy { max-width: 900px; width: 100%; }
.tp-policy h2, .tp-policy h3 { font-family: 'Georgia', serif; color: #37657a; margin: 1.6em 0 .6em; }
.tp-policy p, .tp-policy ul { margin: 0 0 1.1em; }
.tp-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 32px; }
.tp-post-card { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 10px; padding: 24px; box-shadow: 0 6px 24px rgba(0,0,0,.06); }
.tp-post-card img { width: 100%; height: 200px; object-fit: cover; border-radius: 6px; margin-bottom: 16px; }
.tp-post-card h2 { font-family: 'Georgia', serif; font-size: 1.3rem; line-height: 1.3; margin: 0 0 8px; }
.tp-post-card h2 a { color: #37657a; text-decoration: none; }
.tp-meta { color: rgba(0,0,0,.5); font-size: .85rem; margin: 0 0 10px; }
.tp-readmore { color: #edd286; font-weight: 700; text-decoration: none; }
.tp-pagination { margin-top: 40px; text-align: center; }
.tp-pagination .page-numbers { display: inline-block; padding: 8px 14px; margin: 0 3px; border: 1px solid rgba(0,0,0,.15); border-radius: 6px; color: #37657a; text-decoration: none; }
.tp-pagination .page-numbers.current { background: #37657a; color: #fff; }
