/*
Theme Name: CMADV Renovado
Theme URI: https://cmadv.com.br/
Author: CMADV
Description: Tema institucional leve e acessível para Carlos, Marques, Vieira e Davanso Advogados Associados.
Version: 1.9.6
Text Domain: cmadv
*/

:root {
  --ink: #102f3d;
  --ink-deep: #09212c;
  --brand: #197293;
  --brand-soft: #dbeaf0;
  --paper: #f7f5f0;
  --white: #fff;
  --stone: #68767d;
  --line: rgba(16, 47, 61, .16);
  --max: 1180px;
  --shadow: 0 24px 70px rgba(9, 33, 44, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.65; }
body.menu-open { overflow: hidden; }
a { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; color: var(--brand); font-size: .76rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { width: 34px; height: 1px; background: currentColor; content: ""; }
h1, h2, h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; line-height: 1.06; }
h1 { max-width: 820px; color: var(--white); font-size: clamp(3rem, 7vw, 6.6rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2.35rem, 4.7vw, 4.8rem); letter-spacing: -.045em; }
h3 { font-size: 1.55rem; }
p { margin: 0; }
.skip-link { position: fixed; z-index: 999; top: 12px; left: 12px; padding: 10px 14px; background: var(--white); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.site-header { position: absolute; z-index: 50; inset: 0 0 auto; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.18); }
.header-inner { min-height: 104px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { position: relative; z-index: 55; display: inline-flex; align-items: center; text-decoration: none; }
.brand img { width: 300px; max-height: 64px; object-fit: contain; object-position: left center; filter: grayscale(1) brightness(0) invert(1); }
.primary-nav { display: flex; align-items: center; gap: clamp(20px, 2.4vw, 36px); }
.primary-nav a { position: relative; font-size: .88rem; font-weight: 650; text-decoration: none; }
.primary-nav a:not(.nav-cta)::after { position: absolute; right: 0; bottom: -9px; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.nav-cta, .button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 10px; padding: 0 22px; border: 1px solid transparent; text-decoration: none; font-size: .82rem; font-weight: 750; letter-spacing: .03em; transition: .25s ease; }
.nav-cta { border-color: rgba(255,255,255,.48); }
.nav-cta:hover { color: var(--ink-deep); background: var(--white); }
.menu-toggle { display: none; width: 48px; height: 48px; padding: 0; color: inherit; border: 1px solid rgba(255,255,255,.4); background: transparent; }

.hero { position: relative; min-height: 900px; display: grid; align-items: end; overflow: hidden; padding: 220px 0 96px; color: var(--white); background: var(--ink-deep); }
.hero::before { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,26,36,.98) 0%, rgba(4,26,36,.86) 48%, rgba(4,26,36,.38) 100%), var(--hero-image) center/cover no-repeat; content: ""; transform: scale(1.01); }
.hero::after { position: absolute; right: -9vw; bottom: -22vw; width: 54vw; height: 54vw; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; content: ""; }
.hero-content { position: relative; z-index: 2; }
.hero .eyebrow { color: #91c5d7; }
.hero-copy { max-width: 620px; margin: 30px 0 38px; color: rgba(255,255,255,.78); font-size: clamp(1rem, 1.45vw, 1.2rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.button-primary { color: var(--ink-deep); background: var(--white); }
.button-primary:hover { color: var(--white); background: var(--brand); }
.button-ghost { color: var(--white); border-color: rgba(255,255,255,.38); }
.button-ghost:hover { border-color: var(--white); }
.hero-meta { position: absolute; z-index: 3; right: max(20px, calc((100vw - var(--max))/2)); bottom: 96px; width: 240px; padding-left: 28px; color: rgba(255,255,255,.64); border-left: 1px solid rgba(255,255,255,.28); font-size: .82rem; }
.hero-meta strong { display: block; margin-bottom: 6px; color: var(--white); font-family: Georgia, serif; font-size: 1.3rem; font-weight: 400; }

.intro { padding: clamp(90px, 11vw, 160px) 0; }
.intro-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(60px, 10vw, 150px); align-items: start; }
.intro-copy { color: var(--stone); font-size: 1.08rem; }
.intro-copy p + p { margin-top: 22px; }
.signature { margin-top: 42px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--ink); font-family: Georgia, serif; font-size: 1.15rem; }

.practice { padding: clamp(86px, 10vw, 140px) 0; background: var(--white); }
.section-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: end; margin-bottom: 58px; }
.section-head p { max-width: 440px; color: var(--stone); }
.practice-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.practice-card { min-height: 280px; padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-decoration: none; transition: .3s ease; }
.practice-card:hover { color: var(--white); background: var(--ink); transform: translateY(-4px); box-shadow: var(--shadow); }
.practice-number { display: block; margin-bottom: 70px; color: var(--brand); font-size: .76rem; font-weight: 750; letter-spacing: .12em; }
.practice-card p { margin-top: 14px; color: var(--stone); font-size: .9rem; }
.practice-card:hover p, .practice-card:hover .practice-number { color: rgba(255,255,255,.68); }

.principles { color: var(--white); background: var(--ink); }
.principles-grid { display: grid; grid-template-columns: 1fr 1fr; }
.principles-visual { min-height: 700px; background: linear-gradient(rgba(9,33,44,.12), rgba(9,33,44,.3)), var(--office-image) center/cover no-repeat; }
.principles-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(70px, 9vw, 135px); }
.principles-copy .eyebrow { color: #91c5d7; }
.principles-copy > p { margin: 28px 0 46px; color: rgba(255,255,255,.7); }
.principle-list { display: grid; gap: 26px; }
.principle { display: grid; grid-template-columns: 36px 1fr; gap: 18px; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.15); }
.principle span { color: #91c5d7; font-size: .76rem; }
.principle h3 { margin-bottom: 7px; font-size: 1.28rem; }
.principle p { color: rgba(255,255,255,.62); font-size: .9rem; }

.location { padding: clamp(90px, 11vw, 160px) 0; }
.location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(60px, 10vw, 150px); align-items: center; }
.address-card { padding: clamp(34px, 5vw, 60px); background: var(--white); box-shadow: var(--shadow); }
.address-card h3 { margin-bottom: 22px; font-size: 2rem; }
.address-card p { color: var(--stone); }
.address-card .button { margin-top: 30px; color: var(--white); background: var(--ink); }
.address-card .button:hover { background: var(--brand); }

.contact-band { padding: clamp(86px, 10vw, 140px) 0; color: var(--white); background: var(--brand); }
.contact-band-inner { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; }
.contact-band h2 { max-width: 800px; }
.contact-band p { max-width: 650px; margin-top: 22px; color: rgba(255,255,255,.76); }
.contact-band .button { color: var(--ink); background: var(--white); }

.site-footer { padding: 64px 0 34px; color: rgba(255,255,255,.64); background: var(--ink-deep); }
.footer-top { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: start; padding-bottom: 46px; }
.footer-brand img { width: 310px; filter: grayscale(1) brightness(0) invert(1); }
.footer-nav { display: flex; flex-wrap: wrap; gap: 22px 32px; }
.footer-nav a { color: var(--white); text-decoration: none; font-size: .88rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.13); font-size: .76rem; }

.page-hero { padding: 210px 0 100px; color: var(--white); background: var(--ink-deep); }
.page-content { padding: 90px 0 130px; }
.page-content .entry-content { max-width: 820px; color: var(--stone); }
.page-content .entry-content h2, .page-content .entry-content h3 { margin: 1.2em 0 .45em; color: var(--ink); }
.page-content .entry-content p + p { margin-top: 1.2em; }
.internal-hero { position: relative; overflow: hidden; padding: 220px 0 110px; color: var(--white); background: var(--ink-deep); }
.internal-hero::after { position: absolute; top: 70px; right: -8vw; width: 36vw; height: 36vw; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ""; }
.internal-hero .container { position: relative; z-index: 1; }
.internal-hero h1 { max-width: 930px; }
.internal-hero p:last-child { max-width: 650px; margin-top: 26px; color: rgba(255,255,255,.7); font-size: 1.05rem; }
.internal-section { padding: clamp(80px, 10vw, 140px) 0; }
.internal-section.white { background: var(--white); }
.service-index { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-link { min-height: 300px; display: flex; flex-direction: column; padding: 38px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-decoration: none; transition: .3s ease; }
.service-link:hover { color: var(--white); background: var(--ink); box-shadow: var(--shadow); transform: translateY(-3px); }
.service-link .service-number { margin-bottom: auto; color: var(--brand); font-size: .76rem; font-weight: 750; letter-spacing: .14em; }
.service-link h2 { font-size: clamp(2rem, 3vw, 3.15rem); }
.service-link p { max-width: 520px; margin-top: 16px; color: var(--stone); }
.service-link:hover p, .service-link:hover .service-number { color: rgba(255,255,255,.66); }
.service-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: clamp(50px, 9vw, 130px); align-items: start; }
.service-body { color: var(--stone); font-size: 1.06rem; }
.service-body h2, .service-body h3 { margin: 1.25em 0 .5em; color: var(--ink); }
.service-body p + p, .service-body ul { margin-top: 1.2em; }
.service-aside { position: sticky; top: 30px; padding: 30px; color: var(--white); background: var(--ink); }
.service-aside h3 { margin-bottom: 16px; }
.service-aside p { color: rgba(255,255,255,.66); font-size: .9rem; }
.service-aside .button { width: 100%; margin-top: 24px; color: var(--ink); background: var(--white); }
.team-feature { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 650px; color: var(--white); background: var(--ink); }
.team-image { min-height: 550px; background: var(--team-image) center/cover no-repeat; }
.team-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(55px, 8vw, 120px); }
.team-copy p { margin-top: 28px; color: rgba(255,255,255,.7); }
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }
.value-card { min-height: 260px; padding: 34px; background: var(--paper); }
.value-card span { color: var(--brand); font-size: .76rem; font-weight: 750; }
.value-card h3 { margin: 58px 0 14px; }
.value-card p { color: var(--stone); font-size: .9rem; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.post-card { overflow: hidden; color: inherit; background: var(--white); text-decoration: none; transition: .3s ease; }
.post-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.post-card-image { aspect-ratio: 16/10; overflow: hidden; background: var(--brand-soft); }
.post-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.post-card:hover .post-card-image img { transform: scale(1.035); }
.post-card-body { padding: 28px; }
.post-meta { display: block; margin-bottom: 18px; color: var(--brand); font-size: .72rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.post-card h2 { font-size: 1.8rem; }
.post-card p { margin-top: 14px; color: var(--stone); font-size: .9rem; }
.article { padding: 90px 0 130px; }
.article-layout { display: grid; grid-template-columns: minmax(0,760px) 260px; justify-content: space-between; gap: 70px; }
.article-content { color: var(--stone); font-size: 1.06rem; }
.article-content h2, .article-content h3 { margin: 1.4em 0 .55em; color: var(--ink); }
.article-content p + p, .article-content ul { margin-top: 1.25em; }
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(60px, 10vw, 150px); }
.contact-details { display: grid; gap: 34px; }
.contact-item { padding-top: 24px; border-top: 1px solid var(--line); }
.contact-item span { display: block; margin-bottom: 8px; color: var(--brand); font-size: .72rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.contact-panel { min-height: 500px; padding: clamp(38px, 6vw, 70px); color: var(--white); background: var(--ink); }
.contact-panel p { margin: 22px 0 34px; color: rgba(255,255,255,.68); }
.contact-panel .button { color: var(--ink); background: var(--white); }
.breadcrumbs { margin-bottom: 24px; color: rgba(255,255,255,.55); font-size: .78rem; }
.breadcrumbs a { text-decoration: none; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

@media (max-width: 900px) {
  .header-inner { min-height: 82px; }
  .brand img { width: 230px; }
  .menu-toggle { display: inline-grid; place-items: center; }
  .primary-nav { position: fixed; inset: 0; z-index: -1; pointer-events: none; display: flex; flex-direction: column; justify-content: center; padding: 90px 30px; background: var(--ink-deep); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
  .primary-nav.is-open { z-index: 40; opacity: 1; pointer-events: auto; }
  .primary-nav a { font-family: Georgia, serif; font-size: 1.8rem; font-weight: 400; }
  .menu-toggle { z-index: 60; }
  .hero { min-height: 780px; padding-top: 170px; }
  .hero-meta { position: static; width: auto; margin-top: 50px; }
  .intro-grid, .section-head, .principles-grid, .location-grid { grid-template-columns: 1fr; }
  .service-detail-grid, .team-feature, .contact-grid, .article-layout { grid-template-columns: 1fr; }
  .service-aside { position: static; }
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
  .practice-grid { grid-template-columns: repeat(2, 1fr); }
  .principles-visual { min-height: 480px; }
  .principles-copy { padding-inline: 30px; }
}

@media (max-width: 620px) {
  .container { width: min(calc(100% - 28px), var(--max)); }
  .brand img { width: 190px; }
  h1 { font-size: clamp(2.8rem, 15vw, 4.2rem); }
  .hero { min-height: 760px; padding-bottom: 64px; }
  .hero-actions .button { width: 100%; }
  .practice-grid { grid-template-columns: 1fr; }
  .service-index, .blog-grid, .values-grid { grid-template-columns: 1fr; }
  .practice-card { min-height: 235px; }
  .principles-visual { min-height: 360px; }
  .contact-band-inner, .footer-top, .footer-bottom { grid-template-columns: 1fr; display: grid; }
  .contact-band .button { width: 100%; }
  .footer-brand img { width: 250px; }
}

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 60px; }
.pagination .page-numbers { min-width: 44px; height: 44px; display: inline-grid; place-items: center; padding: 0 12px; border: 1px solid var(--line); text-decoration: none; }
.pagination .current, .pagination a:hover { color: var(--white); background: var(--ink); }
.empty-state { grid-column: 1 / -1; padding: 70px; text-align: center; background: var(--white); }
.empty-state h2 { margin-bottom: 16px; }
.empty-state p { color: var(--stone); }
.error-page { min-height: 100vh; display: grid; place-items: center; padding: 150px 0 80px; color: var(--white); text-align: center; background: var(--ink-deep); }
.error-code { color: #91c5d7; font-size: .78rem; font-weight: 750; letter-spacing: .18em; }
.error-page h1 { margin: 24px auto; }
.error-page p { max-width: 560px; margin: 0 auto 34px; color: rgba(255,255,255,.68); }
.error-page .button { color: var(--ink); background: var(--white); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Service and editorial expansion */
.article-lead{font-family:var(--font-display);font-size:clamp(1.55rem,2.7vw,2.2rem);line-height:1.32;color:var(--ink);margin:0 0 3rem}.scope-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:1.5rem 0 4rem;padding:0;border-top:1px solid var(--line);list-style:none}.scope-list li{position:relative;padding:1.25rem 1rem 1.25rem 2rem;border-bottom:1px solid var(--line)}.scope-list li::before{content:'↗';position:absolute;left:0;color:var(--accent)}.editor-content{margin-top:3rem;padding-top:3rem;border-top:1px solid var(--line)}.aside-link{display:inline-block;margin-top:1.4rem;color:var(--ink);font-size:.82rem;font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.06em}.insights-preview{padding:clamp(5rem,9vw,8rem) 0;background:var(--paper-2)}.insights-preview .section-head{align-items:end}.insights-preview .post-card h3{font-family:var(--font-display);font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.12}.team-copy .text-link{margin-top:1.5rem}
@media(max-width:680px){.scope-list{grid-template-columns:1fr}.insights-preview .section-head{align-items:start}.insights-preview .section-head>.text-link{margin-top:1.5rem}}.contact-item a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}.contact-panel .button{margin-top:1rem}.contact-panel .map-link{margin-left:.6rem;color:var(--ink);background:transparent;border:1px solid rgba(7,39,48,.25)}.contact-panel small{display:block;max-width:520px;margin-top:1.5rem;color:var(--stone);font-size:.75rem;line-height:1.6}.contact-notes{padding:0 0 clamp(5rem,9vw,8rem);background:var(--paper)}
@media(max-width:680px){.contact-panel .button{width:100%;margin-left:0}.contact-panel .map-link{margin-left:0}}
/* Services clean grid */
.service-index{grid-template-columns:repeat(3,minmax(0,1fr));border:0;gap:1px;background:var(--line)}.service-link{min-height:260px;padding:32px;background:var(--white);border:0}.service-link .service-number{margin-bottom:52px}.service-link h2{font-size:clamp(1.65rem,2.35vw,2.55rem);line-height:1.04}.service-link p{font-size:.9rem;line-height:1.65}.service-link:hover{transform:none}.service-index img,.service-index picture,.service-index figure{display:none!important}
@media(max-width:980px){.service-index{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.service-index{grid-template-columns:1fr}.service-link{min-height:220px;padding:28px}.service-link .service-number{margin-bottom:38px}.service-link h2{font-size:2rem}}
/* Stable responsive header */
.header-inner{position:relative}.brand{position:relative;z-index:70;display:inline-flex;width:max-content;max-width:280px;flex:0 0 auto;pointer-events:auto}.brand img{display:block;width:280px;max-width:100%;pointer-events:none}.primary-nav{position:relative;z-index:60;display:flex;align-items:center;gap:clamp(16px,2vw,30px);pointer-events:auto}.menu-toggle{position:relative;z-index:110}
@media(max-width:1180px){.header-inner{min-height:88px}.brand{max-width:min(240px,62vw)}.brand img{width:min(240px,62vw)}.menu-toggle{display:inline-grid;place-items:center;pointer-events:auto}.primary-nav{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;justify-content:center;gap:24px;padding:100px 30px 50px;color:#fff;background:var(--ink-deep);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);transition:opacity .25s ease,transform .25s ease,visibility .25s}.primary-nav.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.primary-nav a{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,7vw,2.7rem);font-weight:400}.primary-nav .nav-cta{min-width:220px;margin-top:12px;font-family:inherit;font-size:1.35rem}}
@media(min-width:1181px){.menu-toggle{display:none}.primary-nav{position:relative;inset:auto;opacity:1;visibility:visible;pointer-events:auto;transform:none}}
/* CTA contrast reset */
.button-primary,.contact-band .button,.service-aside .button{color:#06232d!important;background:#fff!important;border-color:#fff!important}.button-primary:hover,.contact-band .button:hover,.service-aside .button:hover{color:#fff!important;background:#155f76!important;border-color:#155f76!important}.button-ghost{color:#fff!important;background:transparent!important;border-color:rgba(255,255,255,.55)!important}.button-ghost:hover{color:#06232d!important;background:#fff!important;border-color:#fff!important}.whatsapp-cta{white-space:nowrap}.contact-item a{font-weight:700}
/* Real photography crops */
.principles-visual{background-position:center 58%;background-size:cover}.team-image{background-position:center center;background-size:contain;background-color:var(--ink)}
@media(max-width:980px){.principles-visual{min-height:520px;background-position:center 54%}.team-image{min-height:480px;background-position:center}}
@media(max-width:620px){.principles-visual{min-height:420px}.team-image{min-height:360px}}
/* Long-form service pages */
.service-longform{background:#fbfaf7}.service-longform .service-detail-grid{grid-template-columns:minmax(0,780px) 320px;justify-content:space-between}.service-toc{margin:3rem 0 4.5rem;padding:2rem 2.2rem;background:#fff;border:1px solid var(--line)}.service-toc>span,.related-services>span{display:block;margin-bottom:1rem;color:var(--brand);font-size:.72rem;font-weight:750;letter-spacing:.13em;text-transform:uppercase}.service-toc ol{display:grid;gap:.65rem;margin:0;padding-left:1.25rem}.service-toc a{color:var(--ink);text-decoration:none}.service-toc a:hover{text-decoration:underline;text-underline-offset:4px}.service-copy-section{scroll-margin-top:2rem;padding:4rem 0;border-top:1px solid var(--line)}.service-copy-section .section-index{margin-bottom:1rem;color:var(--brand);font-size:.74rem;font-weight:750;letter-spacing:.15em}.service-copy-section h2{max-width:700px;margin:0 0 2rem;font-size:clamp(2rem,4vw,3.55rem)}.service-copy-section p{max-width:740px;line-height:1.85}.service-copy-section p+p{margin-top:1.3rem}.service-faq{scroll-margin-top:2rem;padding:4rem 0 1rem;border-top:1px solid var(--line)}.service-faq>h2{margin-bottom:2.4rem;font-size:clamp(2rem,4vw,3.4rem)}.service-faq details{border-top:1px solid var(--line)}.service-faq details:last-of-type{border-bottom:1px solid var(--line)}.service-faq summary{position:relative;padding:1.4rem 2.5rem 1.4rem 0;color:var(--ink);font-weight:700;cursor:pointer;list-style:none}.service-faq summary::-webkit-details-marker{display:none}.service-faq summary::after{content:'+';position:absolute;right:.25rem;font-family:Georgia,serif;font-size:1.6rem;font-weight:400}.service-faq details[open] summary::after{content:'−'}.service-faq details p{padding:0 2.5rem 1.5rem 0;line-height:1.8}.service-disclaimer{margin-top:3rem;padding:1.4rem 1.6rem;color:var(--stone);background:#fff;border-left:3px solid var(--brand);font-size:.84rem;line-height:1.7}.related-services{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.16)}.related-services>span{color:#91c5d7}.related-services a{display:block;padding:.55rem 0;color:#fff;text-decoration:none;font-size:.85rem}.related-services a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){.service-longform .service-detail-grid{grid-template-columns:1fr}.service-longform .service-aside{margin-top:1rem}.service-toc{padding:1.5rem}.service-copy-section{padding:3rem 0}}
@media(max-width:620px){.service-copy-section p{font-size:1rem}.service-faq summary{padding-right:2rem}.service-disclaimer{padding:1.2rem}}
/* Professionals directory */
.professionals-section{padding:clamp(90px,11vw,160px) 0;background:var(--white);scroll-margin-top:30px}.professionals-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(45px,8vw,110px);align-items:end;margin-bottom:58px}.professionals-heading>p{max-width:470px;color:var(--stone);font-size:1rem}.professionals-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.professional-card{min-height:176px;display:grid;grid-template-columns:48px 1fr;gap:20px;align-items:start;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white);transition:color .25s ease,background .25s ease}.professional-index{padding-top:5px;color:var(--brand);font-size:.72rem;font-weight:750;letter-spacing:.12em}.professional-card h3{max-width:420px;font-size:clamp(1.35rem,2.2vw,1.85rem);line-height:1.17}.professional-card p{margin-top:14px;color:var(--stone);font-size:.77rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.professional-card:hover{color:var(--white);background:var(--ink)}.professional-card:hover .professional-index,.professional-card:hover p{color:#91c5d7}
@media(max-width:780px){.professionals-heading{grid-template-columns:1fr;align-items:start}.professionals-grid{grid-template-columns:1fr}.professional-card{min-height:150px}}
@media(max-width:460px){.professional-card{grid-template-columns:36px 1fr;gap:12px;padding:24px 20px}.professional-card h3{font-size:1.35rem}}
/* Editorial card placeholders */
.post-card-image>span{position:relative;width:100%;height:100%;display:grid;place-items:end start;padding:26px;color:rgba(255,255,255,.9);background:linear-gradient(135deg,var(--ink-deep),var(--ink) 58%,var(--brand));font-family:Georgia,"Times New Roman",serif;font-size:1.1rem;letter-spacing:.08em}.post-card-image>span::before{position:absolute;top:-42%;right:-15%;width:72%;aspect-ratio:1;border:1px solid rgba(255,255,255,.14);border-radius:50%;content:""}.post-card-image>span::after{position:absolute;right:26px;bottom:28px;width:42px;height:1px;background:#91c5d7;content:""}
/* Accessible editorial hyperlinks; override legacy builder link colors only inside body copy. */
.article-content a:not(.button),.entry-content a:not(.button),.service-body a:not(.button){color:var(--brand)!important;font-weight:650;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:rgba(25,114,147,.48);transition:color .2s ease,text-decoration-color .2s ease}.article-content a:not(.button):hover,.entry-content a:not(.button):hover,.service-body a:not(.button):hover{color:var(--ink-deep)!important;text-decoration-color:currentColor}.article-content a:not(.button):focus-visible,.entry-content a:not(.button):focus-visible,.service-body a:not(.button):focus-visible{color:var(--ink-deep)!important;outline:3px solid rgba(25,114,147,.3);outline-offset:3px;border-radius:1px}
/* Institutional footer replacing the legacy Elementor template */
#colophon { display: none !important; }
.cmadv-replacement-footer { display: block; }
.cmadv-replacement-footer .footer-bottom { display: grid; grid-template-columns: 1.1fr 1.35fr auto; align-items: start; }
.cmadv-replacement-footer .footer-credit { text-align: right; white-space: nowrap; }
.cmadv-replacement-footer .footer-credit a { color: var(--white); font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.cmadv-replacement-footer .footer-credit a:hover, .cmadv-replacement-footer .footer-credit a:focus-visible { color: #91c5d7; }
@media (max-width: 900px) {
  .cmadv-replacement-footer .footer-bottom { grid-template-columns: 1fr 1fr; }
  .cmadv-replacement-footer .footer-credit { grid-column: 1 / -1; text-align: left; white-space: normal; }
}
@media (max-width: 620px) {
  .cmadv-replacement-footer .footer-top,
  .cmadv-replacement-footer .footer-bottom { grid-template-columns: 1fr; }
  .cmadv-replacement-footer .footer-nav { gap: 16px 24px; }
  .cmadv-replacement-footer .footer-credit { grid-column: auto; }
}

/* Persistent, accessible contact shortcut */
.floating-whatsapp{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:120;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid rgba(255,255,255,.4);border-radius:999px;color:#fff!important;background:#176b52;box-shadow:0 10px 30px rgba(6,35,45,.28);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-decoration:none;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.floating-whatsapp:hover,.floating-whatsapp:focus-visible{color:#fff!important;background:#0f5842;box-shadow:0 14px 36px rgba(6,35,45,.36);transform:translateY(-2px)}
@media(max-width:720px){.floating-whatsapp{right:14px;bottom:14px;min-height:46px;padding:0 16px}}
@media(prefers-reduced-motion:reduce){.floating-whatsapp{transition:none}}
/* Home hero alignment and embedded location map */
@media(min-width:1101px){.hero-content{padding-right:300px}.hero-content>h1{max-width:780px}.hero-copy{max-width:580px}.hero-meta{width:250px}}
.address-card{padding:0;overflow:hidden}.map-embed{position:relative;width:100%;min-height:280px;background:#e8e7e2}.map-embed iframe{display:block;width:100%;height:clamp(280px,30vw,340px);border:0}.address-card-content{padding:clamp(30px,4vw,56px)}.address-card-content .button{margin-top:8px}
@media(max-width:1100px){.hero-content{padding-right:0}.hero-meta{position:static;width:auto;margin-top:50px}.location-grid{gap:48px}}
@media(max-width:620px){.map-embed,.map-embed iframe{min-height:250px;height:250px}.address-card-content{padding:28px 22px}.address-card-content .button{width:100%;padding-inline:18px}}
/* Definitive hero metadata flow: no absolute overlap at any viewport */
.hero-content{padding-right:0!important}.hero-content>h1{max-width:900px!important}.hero-copy{max-width:620px!important}.hero-meta{position:static!important;right:auto!important;bottom:auto!important;width:min(100%,620px)!important;margin-top:42px!important;padding:18px 0 0!important;border-left:0!important;border-top:1px solid rgba(255,255,255,.28)!important}.hero-meta strong{display:block;margin:0 0 6px}.hero-meta strong+br{display:none}
@media(max-width:620px){.hero-meta{margin-top:34px!important}.hero-meta strong{display:block;margin:0 0 6px}}

/* Professionals without ordinal numbering */
.professional-card{grid-template-columns:1fr;gap:0}.professional-index{display:none!important}
@media(max-width:460px){.professional-card{grid-template-columns:1fr;gap:0}}


/* Footer after removal of informational disclaimer */
.cmadv-replacement-footer .footer-bottom{grid-template-columns:1fr auto}
@media(max-width:720px){.cmadv-replacement-footer .footer-bottom{grid-template-columns:1fr}.cmadv-replacement-footer .footer-credit{text-align:left}}
