/* Readable typography and the finished navy / brass visual theme. */
:root {
  --navy: #102b3d;
  --deep: #081f2e;
  --gold: #ddbd87;
  --ink: #162e3f;
  --muted: #435665;
  --paper: #f3f6f8;
  --line: #d3dde4;
  --font-body: 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
  --font-heading: 'Lora', Georgia, serif;
}
body { font-family: var(--font-body); font-size: 1.125rem; line-height: 1.75; -webkit-font-smoothing: antialiased; }
h1,h2,h3,.quote,.phone,.area-title,.profile-hero figcaption strong { font-family: var(--font-heading); font-weight: 500; }
h1 { font-size: clamp(2.5rem, 4.9vw, 4.25rem); line-height: 1.16; letter-spacing: -.035em; text-wrap: balance; }
h1 em { color: #edcc98; }
.section h2 { font-size: clamp(2rem, 3.5vw, 2.9rem); line-height: 1.24; letter-spacing: -.025em; text-wrap: balance; }
.section { padding: 80px 0; }
.body-copy { color: var(--muted); max-width: 65ch; }
p { margin-bottom: 1.2em; }
::selection { color: white; background: #245572; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline: 3px solid #a77832; outline-offset: 5px; }
.hero a:focus-visible,.cta a:focus-visible,footer a:focus-visible { outline-color: #f1d29d; }
.topline { font-size: .875rem; }
.topline a { color: #f1d29d; }
header { box-shadow: 0 3px 18px #102b3d08; }
.header-inner { min-height: 114px; gap: 22px; }
.brand-logo { width: 320px; }
nav { gap: 8px; }
nav a { padding: 10px 15px; font-size: 1rem; font-weight: 600; border-radius: 7px; white-space: nowrap; }
nav a:hover,nav a[aria-current=page] { background: #edf2f5; color: #102b3d; }
nav a[aria-current=page]:after { bottom: 3px; left: 15px; width: calc(100% - 30px); background: #94703b; }
nav .nav-call { background: #102b3d; color: white; border: 1px solid #102b3d; margin-left: 8px; }
nav .nav-call:hover { background: #24485e; color: white; }
.hero,.page-hero { background: linear-gradient(115deg, #081f2e, #173c53); }
.hero-grid { grid-template-columns: 1.12fr 1fr; gap: 64px; padding-top: 58px; padding-bottom: 58px; }
.hero-copy { font-size: 1.1875rem; line-height: 1.8; color: #e0e8ed; max-width: 45ch; }
.eyebrow { font-size: .875rem; letter-spacing: .12em; font-weight: 600; line-height: 1.5; }
.section .eyebrow { color: #76521e; }
.hero-note { color: #cedae2; font-size: .875rem; letter-spacing: .055em; }
.profile-hero { border: 1px solid #a58c64; padding: 8px; border-radius: 16px; box-shadow: 0 24px 55px #0004; }
.profile-hero img { border-radius: 10px; }
.profile-hero figcaption { padding: 20px 10px 16px; }
.profile-hero figcaption span { font-size: .875rem; letter-spacing: .16em; }
.profile-hero figcaption strong { font-size: clamp(1.4rem,2.2vw,1.8rem); line-height: 1.4; }
.profile-about { border: 1px solid #c8d3dc; border-radius: 14px; padding: 8px; box-shadow: 0 16px 36px #102b3d12; }
.profile-about img { border-radius: 9px; }
.profile-about figcaption { font-size: 1rem; color: #314b5d; }
.btn { font-family: var(--font-body); font-size: 1.0625rem; font-weight: 600; border-radius: 7px; min-height: 52px; padding: 12px 23px; line-height: 1.4; }
.btn.gold { background: #e6c48e; color: #142b3b; border-color: #e6c48e; }
.btn.gold:hover { background: #f1d4a6; border-color: #f1d4a6; }
.btn.outline { border-color: #9cabb6; background: #ffffff08; }
.btn.light { border-color: #9aaab5; color: #142b3b; }
.intro-strip { background: #edf2f5; }
.strip-grid { padding-top: 30px; padding-bottom: 30px; }
.strip-number { color: #775321; font-size: 1.625rem; }
.strip-item strong { font-size: 1.0625rem; }
.strip-item span:last-child { font-size: 1rem; color: #435665; }
.text-link { font-size: 1.0625rem; font-weight: 600; color: #204d68; border-color: #8a682f; }
.text-link:hover { color: #76521e; border-bottom-width: 2px; }
.quote { color: #173b53; font-size: 1.8rem; line-height: 1.55; border-left: 3px solid #a98247; background: #f3f6f8; padding: 24px 28px; border-radius: 0 10px 10px 0; }
.card { padding: 30px; border-radius: 12px; border-color: #d3dde4; box-shadow: 0 8px 24px #102b3d06; }
.card h3 { font-size: 1.5rem; line-height: 1.4; }
.card p,.contact-card p { font-size: 1.0625rem; line-height: 1.75; color: #435665; }
.card .num { color: #775321; }
.area-preview { transition: box-shadow .2s,border-color .2s; }
.area-preview:hover { box-shadow: 0 14px 32px #102b3d12; border-color: #a98247; }
.area-preview .text-link { margin-top: 22px; align-self: flex-start; }
.cta { border-radius: 14px; background: linear-gradient(110deg,#102b3d,#1c4259); border-top: 3px solid #bd965c; padding: 42px; flex-wrap: wrap; box-shadow: 0 14px 30px #102b3d10; }
.cta h2 { font-size: 2rem; }
.cta p,.page-hero p:last-child { color: #e0e8ed; font-size: 1.125rem; }
.page-hero { padding: 52px 0 60px; }
.page-hero h1 { font-size: clamp(2.5rem,4.7vw,3.75rem); }
.breadcrumb { color: #dbe5eb; font-size: 1rem; }
.breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.contact-card .label { font-size: .875rem; color: #435665; letter-spacing: .12em; font-weight: 600; }
.phone { font-size: clamp(1.9rem,3.8vw,2.8rem); font-variant-numeric: lining-nums; }
.contact-panel { border: 1px solid var(--line); border-radius: 14px; background: #f0f4f7; }
.contact-panel h2 { font-size: 2rem; }
.social-row { font-size: 1.125rem; gap: 16px; flex-wrap: wrap; }
.social-row span { color: #435665; font-size: 1rem; }
.small-note { font-size: 1rem; line-height: 1.7; color: #435665; }
.area-controls { border-radius: 12px; gap: 18px; }
.area-controls .form-label { font-size: 1rem; font-weight: 600; }
.area-controls .form-control,.area-controls .form-select { border-radius: 7px; border-color: #889daa; font-family: var(--font-body); font-size: 1.0625rem; color: #162e3f; }
.area-controls input::placeholder { color: #526471; opacity: 1; }
.area-controls .form-control:focus,.area-controls .form-select:focus { border-color: #385f7b; box-shadow: 0 0 0 3px #385f7b33; }
.area-detail { border-radius: 10px; overflow: clip; box-shadow: 0 3px 14px #102b3d04; }
.area-detail summary { padding: 24px 28px; }
.area-detail summary:hover { background: #f0f4f7; }
.area-detail[open] summary,.area-detail[open] summary:hover { background: #102b3d; }
.area-detail summary:focus-visible { outline-offset: -4px; }
.area-number { color: #775321; }
.area-category { font-size: .875rem; letter-spacing: .08em; color: #435665; }
.area-detail[open] .area-category { color: #dbe5eb; }
.area-title { font-size: 1.6rem; line-height: 1.4; }
.area-content { padding: 32px; }
.area-overview { font-size: 1.1875rem; color: #233f52; line-height: 1.8; }
.area-content h3 { font-family: var(--font-body); font-size: 1.125rem; font-weight: 700; }
.area-content .row p,.area-content li { font-size: 1.0625rem; color: #435665; }
.area-resources { border-radius: 12px; border: 1px solid var(--line); }
.area-resources h2 { font-size: 1.75rem; }
.area-resources .footer-links { font-size: 1rem; }
footer { border-top: 3px solid #a98247; padding-bottom: 92px; }
.footer-brand { font-family: var(--font-heading); font-size: 1.4rem; }
.footer-brand small { font-family: var(--font-body); font-size: .875rem; letter-spacing: .14em; color: #e6c48e; }
.footer-links { font-size: 1rem; gap: 22px; color: #e0e8ed; }
.footer-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
.footer-bottom { font-size: .875rem; color: #c5d3dd; line-height: 1.7; }
.floating-wa { background: #11633c; font-size: 1rem; padding: 13px 22px; }
.floating-wa:hover { color: white; background: #0b502f; }
.menu { border-color: #91a2ae; border-radius: 6px; min-height: 44px; font-size: 1rem; font-weight: 600; color: #102b3d; }
@media(max-width:1050px) { .header-inner{flex-wrap:wrap}.hero-grid{gap:36px}.header-inner nav{gap:4px}.header-inner nav a{padding:10px 12px}.strip-item{align-items:flex-start} }
@media(max-width:760px) { .hero-grid{gap:28px}.split{gap:35px}.area-controls{grid-template-columns:1fr}.section{padding:60px 0}.area-content{padding:24px}.area-title{font-size:1.4rem}.header-inner{justify-content:center}.brand{max-width:100%}.header-inner nav{justify-content:center} }
@media(max-width:650px) {
  body{font-size:1.0625rem}.wrap{padding-left:22px;padding-right:22px}
  .header-inner{justify-content:space-between;min-height:92px;gap:12px}.brand{max-width:calc(100% - 82px)}.brand-logo{width:270px}
  .header-inner nav{justify-content:flex-start;gap:8px;width:100%}.header-inner nav a{font-size:1rem;padding:10px 12px}
  .hero-grid{grid-template-columns:1fr;padding-top:42px;padding-bottom:42px;gap:36px}
  .hero h1{font-size:clamp(2.25rem,9.6vw,3rem);line-height:1.2}.hero-copy{font-size:1.125rem}.eyebrow{font-size:.875rem;letter-spacing:.08em}
  .buttons{gap:12px}.btn{padding:12px 18px}.strip-item span:last-child{font-size:1rem}.strip-item{align-items:center}
  .section h2{font-size:2rem}.cta{padding:28px;gap:25px}.cta h2{font-size:1.8rem}
  .page-hero h1{font-size:2.4rem}.quote{font-size:1.5rem;padding:20px}.card{padding:26px}
  .area-detail summary{padding:20px 16px;gap:12px}.area-title{font-size:1.3rem}.area-category{font-size:.8125rem}.area-number{font-size:1.125rem}
  .area-content{padding:22px}.area-overview{font-size:1.125rem}.contact-panel{padding:26px}.social-row{gap:8px}
  .footer-links{gap:18px}.floating-wa{right:14px;bottom:14px}
}
@media(prefers-reduced-motion:reduce){.area-preview,.btn{transition:none}.btn:hover{transform:none}}
