:root {
 --ink: #1e293b;
 --muted-ink: #475569;
 --paper: #fffef9;
 --sand: #f8f2e7;
 --sun: #f2c572;
 --sun-deep: #d89a35;
 --moss: #3d6f5b;
 --forest: #3d6f5b;
 --moss-light: #e9f3ee;
 --berry: #a34747;
 --line: #e5dccb;
 --white: #ffffff;
 --radius: 14px;
 --radius-lg: 22px;
 --shadow: 0 12px 30px rgba(30, 41, 59, 0.12);
 /* Colorblind-safe palette (blue-orange foundation per WCAG research) */
 --cb-blue: #084A96;
 --cb-orange: #E69F00;
 --cb-orange-light: #FFE6A8;
}

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

html {
 scroll-behavior: smooth;
}

body {
 font-family: "Nunito Sans", "Segoe UI", sans-serif;
 color: var(--ink);
 background: radial-gradient(circle at top right, #fff6df, transparent 40%), var(--paper);
 font-size: 1.1875rem;
 line-height: 1.65;
 overflow-x: hidden;
 -webkit-text-size-adjust: 100%;
 text-size-adjust: 100%;
}

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

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

input,
textarea,
select,
button {
 font: inherit;
}

@media (prefers-reduced-motion: reduce) {
 html {
 scroll-behavior: auto;
 }

 *,
 *::before,
 *::after {
 animation-duration: 0.01ms !important;
 animation-iteration-count: 1 !important;
 transition-duration: 0.01ms !important;
 scroll-behavior: auto !important;
 }
}

.container {
 width: min(1120px, 92%);
 margin: 0 auto;
}

.site-nav {
 position: sticky;
 top: 0;
 z-index: 1000;
 background: rgba(255, 254, 249, 0.95);
 border-bottom: 1px solid var(--line);
 backdrop-filter: blur(6px);
}

.nav-inner {
 min-height: 74px;
 display: flex;
 align-items: center;
 justify-content: space-between;
}

.brand {
 display: flex;
 align-items: center;
 gap: 0.75rem;
}

.brand-mark {
 width: 42px;
 height: 42px;
 border-radius: 50%;
 background: linear-gradient(140deg, var(--sun), var(--sun-deep));
 color: var(--ink);
 font-weight: 800;
 display: flex;
 align-items: center;
 justify-content: center;
}

.brand-text {
 font-family: "Cormorant Garamond", Georgia, serif;
 font-size: clamp(1rem, 2vw, 1.4rem);
 font-weight: 700;
}

.nav-links {
 list-style: none;
 display: flex;
 align-items: center;
 gap: clamp(0.8rem, 2vw, 1.2rem);

}

.nav-links a {
 font-weight: 700;
 color: var(--muted-ink);
 font-size: clamp(1rem, 1.75vw, 1.15rem);
 white-space: nowrap;
}

.btn-nav {
 background: var(--berry);
 color: var(--white) !important;
 padding: 0.55rem 1rem;
 border-radius: 999px;
}

.hamburger {
 display: none;
 border: 0;
 background: transparent;
 cursor: pointer;
}

.hamburger span {
 display: block;
 width: 26px;
 height: 3px;
 margin: 5px 0;
 background: var(--ink);
}

.hero {
 padding: clamp(2.5rem, 5vh, 4rem) 0;
}

.hero-grid {
 display: grid;
 grid-template-columns: 0.8fr 1.2fr;
 gap: 2.5rem;
 align-items: center;
}

.hero-photo-col {
 display: flex;
 justify-content: center;
}

.hero-founder-photo {
 width: 100%;
 max-width: 360px;
 height: auto;
 display: block;
 border-radius: var(--radius-lg);
 background: #f5f5f5;
 box-shadow: 0 16px 40px rgba(30, 41, 59, 0.14);
}

.hero-text-col {
 /* no card text floats clean on page background */
}

.hero-trust-strip {
 list-style: none;
 display: flex;
 flex-wrap: wrap;
 gap: 0.45rem;
 margin-top: 1.2rem;
 padding: 0;
}

.hero-trust-strip li {
 background: var(--moss-light);
 color: var(--moss);
 font-weight: 700;
 font-size: 0.82rem;
 padding: 0.3rem 0.75rem;
 border-radius: 999px;
 white-space: nowrap;
}

.eyebrow {
 text-transform: uppercase;
 letter-spacing: 0.1em;
 font-size: clamp(0.8rem, 2vw, 0.95rem);
 font-weight: 800;
 color: var(--berry);
 margin-bottom: 0.8rem;
}

h1,
h2,
h3 {
 font-family: "Cormorant Garamond", Georgia, serif;
 line-height: 1.15;
}

h1 {
 font-size: clamp(2.2rem, 5vw, 4.4rem);
 margin-bottom: 1rem;
}

h2 {
 font-size: clamp(1.8rem, 4vw, 3.4rem);
 margin-bottom: 0.8rem;
}

h3 {
 font-size: clamp(1.3rem, 3vw, 1.7rem);
}

.hero-copy {
 color: var(--muted-ink);
 max-width: 66ch;
 font-size: clamp(1.15rem, 2.25vw, 1.25rem);
 line-height: 1.7;
}

.hero-actions {
 margin-top: 1.3rem;
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
}

.btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 999px;
 font-weight: 800;
 border: 0;
 cursor: pointer;
 padding: clamp(0.6rem, 1.5vw, 0.75rem) clamp(0.9rem, 2vw, 1.15rem);
 font-size: clamp(1.05rem, 2vw, 1.12rem);
 transition: all 0.3s ease;
}

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

.btn-primary:hover,
.btn-nav:hover {
 background: var(--ink);
}

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

.hero-note {
 margin-top: 0.85rem;
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 max-width: fit-content;
 padding: 0.45rem 0.72rem;
 border-radius: 999px;
 border: 1px solid #decfb7;
 background: linear-gradient(180deg, #fffdf8 0%, #f8f0e2 100%);
 box-shadow: 0 4px 12px rgba(30, 41, 59, 0.07);
 font-size: 0.76rem;
 line-height: 1.4;
 color: var(--muted-ink);
}

.hero-note::before {
 content: "i";
 width: 1.05rem;
 height: 1.05rem;
 border-radius: 50%;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 flex-shrink: 0;
 font-size: 0.68rem;
 font-weight: 800;
 color: var(--berry);
 border: 1px solid #e7c5a2;
 background: #fff3e4;
}

.lola-card {
 background: linear-gradient(180deg, var(--white), var(--sand));
 border: 1px solid var(--line);
 border-radius: var(--radius-lg);
 box-shadow: var(--shadow);
 padding: clamp(1rem, 2vh, 1.2rem);
}

.lda-card {
 background: var(--white);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
 padding: 1.25rem 1.5rem;
}

.lda-card__grid {
 display: grid;
 grid-template-columns: 280px 1fr;
 gap: 1.5rem;
 align-items: center;
}

.lda-card .lola-proof-image {
 width: 100%;
 display: block;
 margin: 0;
 border-radius: 12px;
 border: 1px solid var(--line);
 background: #fbfbfb;
 height: auto;
}

.lda-card h3 {
 color: var(--moss);
 font-size: clamp(1.2rem, 2vw, 1.8rem);
 margin-bottom: 0.35rem;
}

.lda-details {
 list-style: none;
 margin: 0;
 padding: 0;
 color: var(--muted-ink);
 font-size: 0.91rem;
}

.lda-details li {
 margin: 0.22rem 0;
}

.lda-details strong {
 color: var(--ink);
}

.plain-list {
 list-style: disc;
 margin-left: 1.2rem;
 color: var(--muted-ink);
 font-size: clamp(1.02rem, 1.65vw, 1.08rem);
}

.plain-list li {
 margin: clamp(0.25rem, 0.5vh, 0.35rem) 0;
}

.section {
 padding: clamp(2.5rem, 5vh, 4rem) 0;
}

.soft-bg {
 background: var(--sand);
}

#process.soft-bg {
 background: var(--sand);
}

.moss-bg {
 background: linear-gradient(180deg, #3f7a62, #2f5f4e);
 color: var(--white);
}

.moss-bg .eyebrow,
.moss-bg p {
 color: #e2f4e9;
}

/* Colorblind mode activation */
body.colorblind-mode {
 --moss: var(--cb-blue);
 --forest: var(--cb-blue);
 --berry: var(--cb-orange);
 --sun: var(--cb-orange);
 --sun-deep: #D68F00;
}

body.colorblind-mode .moss-bg {
 background: linear-gradient(180deg, #0B5CC7, #063D7A);
 position: relative;
}

/* Subtle pattern overlay for colorblind mode - diagonal stripes as additional encoding */
body.colorblind-mode .moss-bg::before {
 content: '';
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
 background-image: repeating-linear-gradient(
 45deg,
 transparent,
 transparent 10px,
 rgba(255, 255, 255, 0.04) 10px,
 rgba(255, 255, 255, 0.04) 20px
 );
 pointer-events: none;
}

/* Accessibility toggle button */
.a11y-toggle {
 background: none;
 border: 2px solid var(--muted-ink);
 border-radius: 999px;
 color: var(--muted-ink);
 cursor: pointer;
 font-weight: 700;
 font-size: 0.9rem;
 padding: 0.5rem 1rem;
 transition: all 0.3s ease;
 margin-left: 0.5rem;
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
}

.a11y-toggle:hover,
.a11y-toggle:focus-visible {
 border-color: var(--ink);
 color: var(--ink);
 background: rgba(30, 41, 59, 0.04);
}

.a11y-toggle.active {
 background: var(--cb-blue);
 border-color: var(--cb-blue);
 color: var(--white);
}

.a11y-toggle.active:hover {
 background: #063D7A;
 border-color: #063D7A;
}

/* Optional largest text tier (site default is already extra-large) */
body.enlarge-text-mode {
 font-size: 1.3125rem;
}

body.enlarge-text-mode h1 {
 font-size: clamp(2.45rem, 5.5vw, 4.85rem);
}

body.enlarge-text-mode h2 {
 font-size: clamp(2rem, 4.4vw, 3.65rem);
}

body.enlarge-text-mode h3 {
 font-size: clamp(1.45rem, 3.2vw, 1.9rem);
}

body.enlarge-text-mode .eyebrow {
 font-size: clamp(0.88rem, 2.1vw, 1.02rem);
}

body.enlarge-text-mode .hero-copy,
body.enlarge-text-mode .btn {
 font-size: clamp(1.28rem, 2.4vw, 1.38rem);
}

body.enlarge-text-mode .nav-links a {
 font-size: clamp(1.12rem, 1.9vw, 1.28rem);
}

/* Footer accessibility buttons */
.footer-a11y-buttons {
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
 margin-top: 0.4rem;
}

.section-head {
 max-width: 760px;
 margin-bottom: 1.4rem;
}

.proof-grid,
.services-grid,
.free-grid,
.testimonials-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
 gap: clamp(0.8rem, 2vw, 1rem);
}

.proof-grid {
 grid-template-columns: repeat(4, minmax(0, 1fr));
}

.card,
.service-card,
.free-card,
.quote-card,
.process-box,
.form-card,
.info-panel {
 background: var(--white);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
}

.card,
.quote-card,
.process-box,
.form-card,
.info-panel {
 padding: clamp(1rem, 2vw, 1.2rem);
}

/* Info panel readability */
.info-panel {
 font-size: 1.05rem;
 line-height: 1.75;
}

.info-panel h2 {
 margin-top: 1.75rem;
 margin-bottom: 0.5rem;
 padding-top: 1.25rem;
 border-top: 1px solid var(--line);
 font-size: 1.2rem;
}

.info-panel h2:first-child {
 margin-top: 0;
 padding-top: 0;
 border-top: none;
}

.info-panel .plain-list {
 margin-top: 0.4rem;
}

.info-panel .plain-list li {
 padding: 0.25rem 0;
}

.service-card,
.free-card {
 padding: clamp(1rem, 2vw, 1.15rem);
 display: flex;
 flex-direction: column;
 gap: 0.3rem;
 min-height: 220px;
 transition: transform 0.2s ease;
}

.service-card h3,
.free-card h3 {
 color: var(--ink);
}

.service-card p {
 color: var(--muted-ink);
 font-size: 0.95rem;
}

.service-card__meta {
 margin-top: auto;
 color: var(--forest, #3d6f5b);
 font-size: 0.88rem;
 font-weight: 800;
}

.moss-bg .free-card {
 color: var(--ink);
}

.moss-bg .free-card h3 {
 display: block;
 color: var(--ink) !important;
 font-size: 1.15rem;
 line-height: 1.3;
}

.service-card span,
.free-card span {
 font-size: 0.9rem;
 color: var(--berry);
 font-weight: 800;
}

.service-card:hover,
.free-card:hover {
 transform: translateY(-3px);
}

}

/* Estate Planning Spotlight */
.estate-spotlight {
 background: linear-gradient(135deg, var(--moss-light) 0%, #f0f8f4 100%);
 border: 2px solid var(--moss);
 border-radius: var(--radius-lg);
 padding: clamp(1.5rem, 4vw, 2.5rem);
 margin-bottom: 2rem;
}

.estate-spotlight h2 {
 font-family: "Cormorant Garamond", Georgia, serif;
 font-size: clamp(1.75rem, 3vw, 2.25rem);
 color: var(--moss);
 margin-top: 0.4rem;
 margin-bottom: 0.75rem;
 line-height: 1.2;
}

.estate-spotlight__lead {
 font-size: 1rem;
 color: var(--ink);
 max-width: 70ch;
 margin-bottom: 1.5rem;
}

.estate-spotlight__lists {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 1.25rem;
 margin-bottom: 1.5rem;
}

.estate-spotlight__label {
 font-weight: 800;
 font-size: 0.8rem;
 text-transform: uppercase;
 letter-spacing: 0.07em;
 color: var(--moss);
 margin-bottom: 0.4rem;
}

.estate-spotlight__lists .plain-list li {
 padding: 0.2rem 0;
 font-size: 0.95rem;
}

.estate-spotlight__lists .plain-list {
 list-style: none;
 margin-left: 0;
}

.estate-spotlight__lists .plain-list li::before {
 content: "\2713\00a0\00a0";
 color: var(--moss);
 font-weight: 700;
}

.estate-spotlight__actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 margin-bottom: 0;
}

.estate-spotlight__call {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.6rem 1.25rem;
 padding-top: 1.1rem;
 border-top: 1px solid rgba(61, 111, 91, 0.25);
}

.estate-spotlight__phone {
 font-family: "Cormorant Garamond", Georgia, serif;
 font-size: clamp(1.4rem, 2.5vw, 1.75rem);
 font-weight: 700;
 color: var(--moss);
 text-decoration: none;
 white-space: nowrap;
}

.estate-spotlight__phone:hover {
 text-decoration: underline;
}

.estate-spotlight__call-meta {
 font-size: 0.88rem;
 color: var(--muted-ink);
 line-height: 1.5;
}

/* Additional services row */
.additional-services {
 margin-top: 0;
}

.additional-services .eyebrow {
 display: block;
 margin-bottom: 0.6rem;
}

.additional-services__grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
 gap: 0.4rem;
}

.add-svc-link {
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 0.7rem 1rem;
 background: var(--white);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 font-size: 0.93rem;
 font-weight: 600;
 color: var(--ink);
 transition: background 0.15s ease, border-color 0.15s ease;
}

.add-svc-link:hover {
 background: var(--sand);
 border-color: var(--moss);
}

.add-svc-link__arrow {
 color: var(--berry);
 font-weight: 700;
 flex-shrink: 0;
 margin-left: 0.5rem;
}

/* FAQ show-more button */
[data-faq-extra] {
 display: none;
}

[data-faq-extra].faq-visible {
 display: block;
}

.faq-toggle-btn {
 background: none;
 border: 1.5px solid var(--moss);
 color: var(--moss);
 font-weight: 700;
 font-size: 0.95rem;
 padding: 0.5rem 1.5rem;
 min-height: 48px;
 border-radius: 99px;
 cursor: pointer;
 transition: background 0.15s ease, color 0.15s ease;
}

.faq-toggle-btn:hover {
 background: var(--moss);
 color: var(--white);
}

/* Service page form section */
.service-form-block {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: clamp(1.5rem, 3vw, 2.5rem);
 padding-top: 2rem;
 margin-top: 0.5rem;
 border-top: 1px solid var(--line);
}

.service-form-aside h3 {
 font-family: "Cormorant Garamond", Georgia, serif;
 font-size: clamp(1.4rem, 2.5vw, 1.75rem);
 color: var(--ink);
 margin-bottom: 0.6rem;
 margin-top: 0.3rem;
 line-height: 1.25;
}

.service-form-aside > p {
 color: var(--muted-ink);
 font-size: 0.95rem;
 max-width: 38ch;
 margin-bottom: 0.25rem;
}

.service-form-aside .plain-list {
 margin-top: 0.75rem;
}

.service-form-aside .plain-list li {
 padding: 0.25rem 0;
 font-size: 0.95rem;
}

.service-form-aside .plain-list a {
 color: var(--moss);
 font-weight: 700;
}

.free-card--open {
 border-color: var(--forest, #3d6f5b);
}

.free-card--open span {
 color: var(--forest, #3d6f5b);
}

.about-grid,
.contact-grid,
.internal-grid {
 display: grid;
 grid-template-columns: 1.1fr 0.9fr;
 gap: clamp(1rem, 2vw, 1.2rem);
}

.tagalog-line {
 display: none;
 font-weight: 700;
 color: var(--berry);
}

body.lang-tl .tagalog-line {
 display: block;
}

body.lang-tl .lang-paired-en {
 display: none;
}

.lang-only-tl {
 display: none;
}

body.lang-tl .lang-only-tl {
 display: block;
}

body.lang-tl h1 .lang-only-tl,
body.lang-tl h2 .lang-only-tl,
body.lang-tl h3 .lang-only-tl,
body.lang-tl p .lang-only-tl,
body.lang-tl summary .lang-only-tl,
body.lang-tl label .lang-only-tl,
body.lang-tl li .lang-only-tl,
body.lang-tl .estate-toc__title .lang-only-tl,
body.lang-tl th .lang-only-tl,
body.lang-tl td .lang-only-tl {
 display: inline;
}

.lang-toggle {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border: 1px solid var(--line);
 background: var(--sand);
 color: var(--berry);
 border-radius: 999px;
 padding: 0.38rem 0.85rem;
 font-size: 0.76rem;
 font-weight: 800;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 cursor: pointer;
 line-height: 1;
 white-space: nowrap;
}

.lang-toggle:hover,
.lang-toggle:focus-visible {
 border-color: var(--berry);
 background: #f8e2bf;
}

.process-box ol {
 margin-left: 1.2rem;
}

.process-box li {
 margin: 0.55rem 0;
 color: var(--muted-ink);
}

.quote-card span {
 display: block;
 margin-top: 0.8rem;
 color: var(--ink);
 font-weight: 700;
}

.form-card {
 display: flex;
 flex-direction: column;
 gap: 0.45rem;
}

.form-card label {
 font-weight: 700;
 font-size: 0.9rem;
}

.form-card input,
.form-card textarea,
.form-card select {
 width: 100%;
 border: 1px solid var(--line);
 border-radius: 10px;
 padding: 0.72rem 0.8rem;
 background: var(--white);
 font: inherit;
}

.fine-print {
 font-size: 0.82rem;
 color: var(--muted-ink);
}

.form-status {
 display: none;
 font-size: 0.9rem;
 font-weight: 700;
 margin-top: 0.4rem;
}

.form-status.show {
 display: block;
}

.form-status.success {
 color: var(--ink);
}

.form-status.error {
 color: var(--berry);
}

.site-footer {
 background: #1f2c3f;
 color: #dde5ef;
 padding: 2rem 0;
}

.footer-inner {
 display: grid;
 gap: 0.4rem;
}

.legal-links a {
 color: #f2c572;
 font-weight: 700;
 text-decoration: underline;
}

.legal-links a:hover {
 color: #ffffff;
}

 /* Footer accessibility toggle subtle pill in footer */
 .footer-a11y-row {
 margin-top: 0.4rem;
 }

 .footer-a11y-toggle {
 background: none;
 border: 1px solid rgba(255, 255, 255, 0.18);
 border-radius: 999px;
 color: rgba(221, 229, 239, 0.48);
 cursor: pointer;
 font: inherit;
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0.03em;
 padding: 0.24rem 0.62rem;
 transition: border-color 0.2s ease, color 0.2s ease;
 }

 .footer-a11y-toggle:hover,
 .footer-a11y-toggle:focus-visible {
 border-color: rgba(255, 255, 255, 0.38);
 color: #dde5ef;
 outline: 2px solid rgba(255, 255, 255, 0.3);
 outline-offset: 2px;
 }

/* Floating Accessibility Controls */
.a11y-chip {
 position: fixed;
 right: 0.65rem;
 bottom: 8.35rem;
 transform: none;
 z-index: 10050;
 border: 0;
 border-radius: 999px;
 padding: 0.75rem 0.65rem;
 background: rgba(31, 44, 63, 0.92);
 color: var(--white);
 font: inherit;
 font-size: 1.1rem;
 font-weight: 800;
 cursor: pointer;
 box-shadow: 0 8px 22px rgba(31, 44, 63, 0.28);
 opacity: 1;
 transition: background 0.2s ease, transform 0.2s ease;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 3rem;
 height: 3rem;
}

.a11y-chip:hover {
 background: var(--forest, #3d6f5b);
}

.a11y-chip:focus-visible {
 outline: 2px solid rgba(255, 255, 255, 0.45);
 outline-offset: 2px;
}

.a11y-chip__label {
 display: none;
}

/* Accessibility Panel - slides in from the right */
.a11y-panel {
 position: fixed;
 right: -280px;
 bottom: 2rem;
 z-index: 10060;
 display: flex;
 flex-direction: column;
 gap: 0.75rem;
 padding: 1rem;
 width: 260px;
 background: rgba(255, 248, 237, 0.98);
 border: 1px solid rgba(31, 44, 63, 0.12);
 border-radius: 12px;
 box-shadow: -12px 0 30px rgba(31, 44, 63, 0.16);
 backdrop-filter: blur(8px);
 transition: right 0.3s ease;
 pointer-events: auto;
}

.a11y-panel.visible {
 right: 3.5rem;
}

.a11y-panel__header {
 display: flex;
 align-items: center;
 justify-content: space-between;
 margin-bottom: 0.25rem;
}

.a11y-panel__title {
 font-size: 0.9rem;
 font-weight: 800;
 color: var(--ink);
 margin: 0;
}

.a11y-panel__minimize {
 background: none;
 border: 0;
 color: var(--muted-ink);
 cursor: pointer;
 font-size: 1.2rem;
 padding: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 1.5rem;
 height: 1.5rem;
 transition: color 0.2s ease;
}

.a11y-panel__minimize:hover {
 color: var(--ink);
}

.a11y-panel__btn {
 display: block;
 width: 100%;
 padding: 0.6rem 0.75rem;
 border: 1px solid rgba(31, 44, 63, 0.18);
 border-radius: 8px;
 background: var(--white);
 color: var(--ink);
 font: inherit;
 font-size: 0.98rem;
 font-weight: 700;
 cursor: pointer;
 text-align: center;
 transition: all 0.2s ease;
}

.a11y-panel__btn:hover {
 background: rgba(31, 44, 63, 0.04);
 border-color: rgba(31, 44, 63, 0.3);
}

.a11y-panel__btn.active {
 background: var(--cb-blue);
 color: var(--white);
 border-color: var(--cb-blue);
}

.a11y-panel__btn.active:hover {
 background: #063D7A;
 border-color: #063D7A;
}

@media (max-width: 420px) {
 .a11y-chip {
 right: 0.55rem;
 bottom: 8rem;
 }
}

@media (max-width: 720px) {
 body.has-mobile-call-bar .a11y-chip {
 bottom: calc(10.75rem + env(safe-area-inset-bottom, 0px));
 }
}

.policy-page {
 background: var(--paper);
}

.policy-card {
 max-width: 900px;
 margin: 0 auto;
}

.policy-card h2 {
 margin-top: 1.2rem;
}

.policy-meta {
 color: var(--muted-ink);
 font-size: 0.95rem;
 margin-bottom: 0.5rem;
}

.internal-hero {
 padding: 3rem 0 2rem;
 background: linear-gradient(180deg, #fff4db, #fffef9);
 border-bottom: 1px solid var(--line);
}

.crumb {
 font-size: 0.9rem;
 color: var(--muted-ink);
}

.locked-box {
 background: var(--moss-light);
 border: 1px solid #b8d6c7;
 border-radius: var(--radius);
 padding: 1rem;
}

.resource-content {
 display: block;
 margin-top: 1rem;
 filter: blur(5px);
 user-select: none;
 pointer-events: none;
 opacity: 0.75;
 max-height: 280px;
 overflow: hidden;
 position: relative;
}

.resource-content::after {
 content: '';
 position: absolute;
 bottom: 0;
 left: 0;
 right: 0;
 height: 80px;
 background: linear-gradient(to bottom, transparent, var(--cream, #fef9f2));
 pointer-events: none;
}

.resource-content.show {
 display: block;
 filter: none;
 user-select: auto;
 pointer-events: auto;
 opacity: 1;
 max-height: none;
 overflow: visible;
}

.resource-content.show::after {
 display: none;
}

.hidden {
 display: none !important;
}

@media (max-width: 1280px) {
 .hero-grid {
 grid-template-columns: 0.95fr 1.05fr;
 gap: 1.8rem;
 }

 .proof-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 1080px) {
 h1 {
 font-size: clamp(2rem, 4.2vw, 3.25rem);
 }

 .hero-copy {
 font-size: clamp(1.05rem, 2.1vw, 1.18rem);
 line-height: 1.6;
 }

 .estate-spotlight {
 padding: clamp(1.2rem, 3vw, 1.8rem);
 }

 .estate-spotlight__lists {
 grid-template-columns: 1fr;
 gap: 1rem;
 }
}

@media (max-width: 920px) {
 .hero-grid,
 .about-grid,
 .contact-grid,
 .internal-grid,
 .service-form-block,
 .proof-grid,
 .services-grid,
 .free-grid,
 .testimonials-grid,
 .credentials-grid,
 .education-grid {
 grid-template-columns: 1fr;
 }

 .hero-photo-col {
 order: -1;
 }

 .hero-founder-photo {
 max-width: 260px;
 margin: 0 auto;
 }

 .hero-grid {
 gap: 1.5rem;
 text-align: center;
 }

 .hero-actions {
 justify-content: center;
 }

 .hero-trust-strip {
 justify-content: center;
 }

 .hero-note {
 text-align: center;
 margin-left: auto;
 margin-right: auto;
 }

 .credentials-grid .lda-card {
 grid-column: 1 / -1;
 }

 .pricing-table-wrapper {
 overflow-x: auto;
 }

 .estate-spotlight__lists {
 grid-template-columns: 1fr;
 }

 .lda-card__grid {
 grid-template-columns: 1fr;
 }
}

@media (max-width: 768px) {
 .nav-inner {
 min-height: 60px;
 padding: 0.5rem 0;
 }

 .nav-links {
 gap: 0.6rem;
 }

 .nav-phone {
 font-size: clamp(0.75rem, 1.5vw, 0.9rem);
 }

 .accessibility-toggle {
 width: 40px;
 height: 40px;
 font-size: 0.95rem;
 margin-left: 0.3rem;
 }

 .lola-card {
 padding: 1rem;
 }
}

@media (max-width: 760px) {
 .lang-toggle {
 margin-left: auto;
 margin-right: 0.45rem;
 min-height: 44px;
 padding: 0.4rem 0.85rem;
 font-size: 0.78rem;
 }

 .hamburger {
 display: inline-flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 min-width: 44px;
 min-height: 44px;
 padding: 0.35rem;
 }

 .hamburger ~ .nav-links {
 display: none;
 position: absolute;
 top: 60px;
 left: 0;
 right: 0;
 background: #fffef9;
 border-bottom: 1px solid var(--line);
 flex-direction: column;
 align-items: flex-start;
 padding: 0.8rem 3%;
 gap: 0.5rem;
 }

 .hamburger ~ .nav-links li {
 width: 100%;
 }

 .hamburger ~ .nav-links a {
 display: block;
 padding: 0.6rem 0;
 }

 .hamburger ~ .nav-links.open {
 display: flex;
 }

 .brand-text {
 display: none;
 }

 .hero-actions {
 flex-direction: column;
 width: 100%;
 }

 .hero-actions .btn {
 width: 100%;
 justify-content: center;
 }

 .hero-note {
 font-size: 0.72rem;
 padding: 0.4rem 0.64rem;
 }

 .btn-outline {
 border-width: 1px;
 }
}

@media (max-width: 600px) {
 .container {
 width: 95%;
 }

 .nav-inner {
 min-height: 56px;
 }

 .brand-mark {
 width: 36px;
 height: 36px;
 font-size: 1rem;
 }

 .lang-toggle {
 margin-right: 0.35rem;
 padding: 0.28rem 0.56rem;
 font-size: 0.68rem;
 }

 .form-card input,
 .form-card textarea,
 .form-card select {
 padding: 0.6rem 0.7rem;
 font-size: 16px;
 }

 .form-card label {
 font-size: 0.85rem;
 }

 .fine-print {
 font-size: 0.75rem;
 }

 .accessibility-toggle {
 width: 38px;
 height: 38px;
 font-size: 0.9rem;
 }
}

@media (max-width: 480px) {
 .nav-links {
 gap: 0.4rem;
 }

 .nav-phone {
 font-size: 0.7rem;
 }

 .proof-grid,
 .free-grid,
 .services-grid,
 .testimonials-grid {
 gap: 0.8rem;
 }

 .card,
 .service-card,
 .free-card,
 .quote-card,
 .education-card,
 .credential-card,
 .timeline-step {
 padding: 1rem;
 }

 .card h3,
 .service-card h3,
 .free-card h3,
 .education-card h3,
 .credential-card h3,
 .timeline-step h3 {
 font-size: clamp(1.2rem, 4.2vw, 1.45rem);
 }

 .card p,
 .quote-card p {
 font-size: 0.9rem;
 }

 .step-number {
 width: 42px;
 height: 42px;
 font-size: 1.2rem;
 }

 .pricing-table th,
 .pricing-table td {
 padding: 0.5rem;
 font-size: 0.8rem;
 }

 .pricing-table th {
 font-size: 0.7rem;
 }

 .faq-item summary,
 .faq-item p {
 font-size: 0.9rem;
 }

 .faq-item summary {
 padding: 0.8rem;
 }

 .faq-item p {
 padding: 0 0.8rem 0.8rem;
 }
}

/* NEW STYLES FOR ENHANCED FEATURES */

/* Navigation enhancements */
.nav-phone {
 color: var(--berry) !important;
 font-weight: 800;
 white-space: nowrap;
}

.accessibility-toggle {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 border: 2px solid var(--ink);
 border-radius: 50%;
 background: var(--white);
 color: var(--ink);
 font-weight: 800;
 font-size: 1.1rem;
 cursor: pointer;
 margin-left: 0.5rem;
 transition: all 0.3s ease;
}

.accessibility-toggle:hover {
 background: var(--sand);
 border-color: var(--berry);
 color: var(--berry);
}

/* Credentials section */
.credentials-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
 gap: clamp(0.8rem, 2vw, 1rem);
}

.credentials-grid .lda-card {
 grid-column: 1 / -1;
}

.credential-card {
 background: var(--white);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
 padding: 1.2rem;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
}

.credential-icon {
 font-size: 1.8rem;
 color: var(--moss);
 font-weight: 800;
 line-height: 1;
}

.credential-card h3 {
 color: var(--moss);
}

/* Journey timeline (mobile-first; late block used to override earlier MQ — avoid 4-col at all widths) */
.journey-timeline {
 display: grid;
 grid-template-columns: 1fr;
 gap: clamp(0.85rem, 2.2vw, 1.1rem);
 padding: clamp(1.5rem, 3vh, 2rem) 0;
}

@media (min-width: 700px) {
 .journey-timeline {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (min-width: 1100px) {
 .journey-timeline {
 grid-template-columns: repeat(4, minmax(0, 1fr));
 }
}

.timeline-step {
 background: var(--white);
 border: 2px solid var(--line);
 border-radius: var(--radius);
 padding: clamp(1rem, 2vw, 1.4rem);
 position: relative;
 display: flex;
 flex-direction: column;
 gap: 0.6rem;
 min-width: 0;
 overflow-wrap: anywhere;
 transition: all 0.3s ease;
}

.timeline-step:hover {
 border-color: var(--moss);
 box-shadow: 0 8px 20px rgba(61, 111, 91, 0.15);
}

.step-number {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 50px;
 height: 50px;
 background: linear-gradient(140deg, var(--sun), var(--sun-deep));
 color: var(--white);
 border-radius: 50%;
 font-weight: 800;
 font-size: 1.4rem;
}

.timeline-step h3 {
 color: var(--ink);
 margin-bottom: 0.3rem;
}

.step-time {
 font-size: 0.95rem;
 color: var(--muted-ink);
 font-weight: 700;
 margin-top: 0.5rem;
}

/* Pricing table */
.pricing-table-wrapper {
 overflow-x: auto;
 margin-bottom: 1.2rem;
 -webkit-overflow-scrolling: touch;
}

.pricing-table {
 width: 100%;
 border-collapse: collapse;
 background: var(--white);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 overflow: hidden;
 box-shadow: var(--shadow);
 min-width: 600px;
}

.pricing-table thead {
 background: linear-gradient(180deg, #f8f2e7, #f5ede0);
 border-bottom: 2px solid var(--line);
}

.pricing-table th {
 padding: 0.9rem;
 text-align: left;
 font-weight: 800;
 color: var(--ink);
 font-size: clamp(0.75rem, 1.5vw, 0.95rem);
 text-transform: uppercase;
 letter-spacing: 0.05em;
}

.pricing-table td {
 padding: 0.9rem;
 border-bottom: 1px solid var(--line);
 color: var(--muted-ink);
 font-size: clamp(0.85rem, 1.5vw, 0.95rem);
}

.pricing-table tbody tr:last-child td {
 border-bottom: none;
}

.service-name {
 font-weight: 700;
 color: var(--ink);
 text-align: left;
}

.pricing-note {
 text-align: center;
 font-size: 0.95rem;
 color: var(--muted-ink);
 padding: 1rem;
 background: var(--sand);
 border-radius: var(--radius);
}

/* Education cards */
.education-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
 gap: clamp(0.8rem, 2vw, 1rem);
}

.education-card {
 background: var(--white);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
 padding: 1.4rem;
 display: flex;
 flex-direction: column;
 gap: 0.8rem;
 transition: all 0.3s ease;
}

.education-card:hover {
 transform: translateY(-5px);
 box-shadow: 0 16px 40px rgba(30, 41, 59, 0.15);
 border-color: var(--moss);
}

.education-card h3 {
 color: var(--moss);
 margin-bottom: 0.3rem;
}

.card-link {
 color: var(--berry);
 font-weight: 800;
 text-decoration: none;
 align-self: flex-start;
 margin-top: 0.5rem;
 transition: all 0.2s ease;
}

.card-link:hover {
 color: var(--ink);
}

/* FAQ section */
.faq-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
 gap: clamp(0.6rem, 1.5vw, 0.8rem);
}

.faq-item {
 background: var(--white);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 overflow: hidden;
}

.faq-item summary {
 padding: clamp(0.8rem, 1.5vw, 1rem);
 min-height: 48px;
 display: flex;
 align-items: center;
 font-weight: 700;
 color: var(--ink);
 cursor: pointer;
 user-select: none;
 border-bottom: 0;
 transition: all 0.2s ease;
 font-size: clamp(0.9rem, 1.5vw, 1rem);
}

.faq-item summary:hover {
 background: var(--sand);
}

.faq-item[open] summary {
 background: var(--sand);
 color: var(--moss);
}

.faq-item p {
 padding: 0 clamp(0.8rem, 1.5vw, 1rem) clamp(0.8rem, 1.5vw, 1rem);
 color: var(--muted-ink);
 animation: slideDown 0.3s ease;
 font-size: clamp(0.85rem, 1.5vw, 0.95rem);
}

@keyframes slideDown {
 from {
 opacity: 0;
 transform: translateY(-10px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

.visually-hidden {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}

.service-card--primary {
 border: 2px solid var(--moss);
 box-shadow: 0 8px 28px rgba(61, 111, 91, 0.18);
 background: linear-gradient(160deg, var(--moss-light), var(--white));
}

.service-card--primary h3 {
 color: var(--forest);
}

.services-hub-note {
 font-size: 1rem;
 color: var(--muted-ink);
 max-width: 42rem;
 margin: 0 auto 1.25rem;
 text-align: center;
 line-height: 1.6;
}

.more-services-disclosure {
 margin-top: 1.5rem;
 padding: 1rem 1.15rem;
 border: 1px solid var(--line);
 border-radius: var(--radius);
 background: var(--white);
}

.more-services-disclosure__summary {
 cursor: pointer;
 font-weight: 800;
 color: var(--ink);
 list-style: none;
 font-size: 1.05rem;
}

.more-services-disclosure__summary::-webkit-details-marker {
 display: none;
}

.more-services-disclosure__lead {
 margin-top: 0.75rem;
 color: var(--muted-ink);
 line-height: 1.6;
}

.more-services-disclosure .btn {
 margin-top: 0.85rem;
}

.estate-toc {
 background: var(--moss-light);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 padding: 1rem 1.15rem 1.15rem;
 margin-bottom: 1.5rem;
}

.estate-toc__title {
 font-weight: 800;
 font-size: 1.05rem;
 margin-bottom: 0.65rem;
 color: var(--forest);
}

.estate-toc__list {
 margin: 0;
 padding-left: 1.2rem;
 line-height: 1.75;
}

.estate-toc__list a {
 color: var(--berry);
 font-weight: 700;
 text-decoration: underline;
 text-underline-offset: 2px;
}

.estate-section-toggle {
 border: 1px solid var(--line);
 border-radius: var(--radius);
 padding: 0.35rem 0.85rem;
 margin-bottom: 0.75rem;
 background: var(--white);
}

.estate-section-toggle summary {
 cursor: pointer;
 font-weight: 800;
 font-size: 1.02rem;
 padding: 0.5rem 0;
 list-style: none;
}

.estate-section-toggle summary::-webkit-details-marker {
 display: none;
}

.estate-section-toggle__body {
 padding-bottom: 0.75rem;
}

.table-scroll-wrap {
 overflow-x: auto;
 margin: 1rem 0;
 -webkit-overflow-scrolling: touch;
}

.estate-compare-table {
 width: 100%;
 min-width: 280px;
 border-collapse: collapse;
 font-size: 0.98rem;
}

.estate-compare-table th,
.estate-compare-table td {
 padding: 0.65rem 0.75rem;
 border-bottom: 1px solid var(--line);
 vertical-align: top;
 text-align: left;
}

.estate-compare-table thead th {
 background: var(--sand);
 border-bottom: 2px solid var(--line);
}

.estate-compare-table tbody tr:nth-child(even) {
 background: rgba(248, 242, 231, 0.55);
}

.estate-chona-quote {
 border-left: 4px solid var(--moss);
 padding: 0.85rem 1rem;
 background: var(--moss-light);
 border-radius: var(--radius);
 margin-top: 1.25rem;
}

.mobile-call-bar {
 display: none;
}

@media (max-width: 720px) {
 .mobile-call-bar {
 display: flex;
 position: fixed;
 left: 0;
 right: 0;
 bottom: 0;
 z-index: 900;
 justify-content: center;
 align-items: center;
 padding: 0.55rem 0.75rem calc(0.55rem + env(safe-area-inset-bottom, 0px));
 background: rgba(255, 254, 249, 0.97);
 border-top: 1px solid var(--line);
 box-shadow: 0 -8px 24px rgba(30, 41, 59, 0.08);
 gap: 0.5rem;
 }

 .mobile-call-bar__btn {
 flex: 1;
 max-width: 22rem;
 min-height: 48px;
 font-size: 1.05rem;
 font-weight: 800;
 }

 body.has-mobile-call-bar {
 padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
 }
}

/* iubenda Cookie Solution (banner + prefs): cosmetic only; layout/labels from iubenda dashboard.
   Do not set position on floating controls — iubenda uses fixed positioning; overriding breaks the icon. */
#iubenda-cs-banner {
 font-family: "Nunito Sans", "Segoe UI", sans-serif !important;
 border-radius: var(--radius-lg, 22px) !important;
 box-shadow: var(--shadow) !important;
 z-index: 100200 !important;
}

#iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-accept-btn,
#iubenda-cs-banner .iubenda-cs-btn-primary,
#iubenda-cs-banner button.iubenda-cs-btn-primary {
 background: var(--moss, #3d6f5b) !important;
 color: var(--white, #ffffff) !important;
 border-color: var(--moss, #3d6f5b) !important;
}

#iubenda-cs-banner .iubenda-cs-customize-btn,
#iubenda-cs-banner .iubenda-cs-reject-btn,
#iubenda-cs-banner button.iubenda-cs-customize-btn,
#iubenda-cs-banner button.iubenda-cs-reject-btn {
 background: var(--white, #ffffff) !important;
 color: var(--ink, #1e293b) !important;
 border: 2px solid var(--ink, #1e293b) !important;
}

.legal-links .iubenda-cs-preferences-link {
 font-weight: 700;
}

