
:root{
  --navy:#0b2139;
  --ink:#15273b;
  --muted:#617286;
  --line:#dde7ef;
  --bg:#f5f8fb;
  --soft:#eef5fa;
  --white:#ffffff;
  --cyan:#0aa8d8;
  --cyan-dark:#067e9f;
  --success:#3fd286;
  --radius:20px;
  --radius-sm:14px;
  --shadow:0 12px 30px rgba(11,33,57,.08);
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
button,input,textarea,select{font:inherit}
.container{width:min(var(--max),calc(100% - 32px));margin:auto}
.narrow{max-width:840px}
.skip{position:fixed;left:12px;top:-100px;z-index:9999;background:#fff;padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);text-decoration:none}
.skip:focus{top:12px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

h1,h2,h3{line-height:1.12;letter-spacing:-.03em;margin:0 0 10px}
h1{font-size:clamp(2.35rem,5vw,4.4rem)}
h2{font-size:clamp(1.85rem,3vw,2.65rem)}
h3{font-size:1.18rem}
p{margin:0 0 1rem}
.lead{font-size:1.08rem;color:var(--muted)}
.eyebrow,.kicker,.mini{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:900;color:var(--cyan-dark)}
.eyebrow i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(10,168,216,.12)}
.mini{font-size:.7rem}

.topbar{background:#082035;color:#d6e6f0;font-size:.86rem}
.topbar-inner{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.topbar a{font-weight:800;color:#fff;text-decoration:none}
.status{display:flex;align-items:center;gap:8px}
.status i{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px rgba(63,210,134,.14)}

.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(21,39,59,.08)}
.nav-wrap{min-height:74px;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap;font-weight:900;letter-spacing:.04em;font-size:.82rem;line-height:1.1}
.brand img{width:44px;height:44px}
.brand small{display:block;margin-top:4px;color:#6a7a89;font-size:.56rem;letter-spacing:.12em}
.menu{display:flex;align-items:center;gap:4px;margin-left:auto}
.menu a{padding:10px 10px;border-radius:12px;text-decoration:none;font-size:.9rem;font-weight:800;color:#415569}
.menu a[aria-current="page"],.menu a:hover{background:#eaf7fb;color:var(--cyan-dark)}
.nav-actions{display:flex;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:14px;border:1px solid transparent;font-weight:850;text-decoration:none;transition:.2s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--cyan);color:#072534;box-shadow:0 10px 24px rgba(10,168,216,.2)}
.btn-primary:hover{background:#18b8e6}
.btn-secondary,.btn-ghost{background:#fff;color:var(--navy);border-color:#d6e1ea}
.btn-white{background:#fff;color:var(--navy)}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.34)}
.btn-lg{min-height:48px;padding:12px 18px}
.btn-full{width:100%}
.mobile-toggle{display:none;width:44px;height:44px;border:0;background:#eef4f8;border-radius:12px;padding:11px;cursor:pointer}
.mobile-toggle span{display:block;height:2px;background:var(--navy);margin:5px 0;border-radius:2px}
.mobile-only{display:none!important}

.hero,.page-hero{background:linear-gradient(180deg,#fff 0%,#f3f8fb 100%)}
.hero{padding:46px 0}
.hero-grid,.page-hero-grid{display:grid;grid-template-columns:1.05fr .82fr;gap:36px;align-items:center}
.hero-copy .lead{max-width:620px}
.hero-service-list{font-size:clamp(2.15rem,4vw,3.55rem);line-height:1.08;margin:0 0 14px;font-weight:900;letter-spacing:-.03em}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.trust-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px;color:#4f6276;font-size:.92rem;font-weight:750}
.hero-photo,.hero-side-media,.profile-photo,.contact-photo,.compact-photo-card{background:var(--soft);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.hero-photo{aspect-ratio:4/3;max-height:320px;box-shadow:var(--shadow)}
.hero-photo img,.hero-side-media img,.profile-photo img,.contact-photo img,.compact-photo-card img,.card-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.photo-label,.visual-badge{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.96);padding:8px 12px;border-radius:10px;box-shadow:0 6px 18px rgba(11,33,57,.12);font-size:.82rem;font-weight:800}
.photo-label span{display:block;font-size:.74rem;color:var(--muted);font-weight:700}
.hero-photo,.hero-side-media{position:relative}
.hero-side-media{aspect-ratio:4/3;max-height:255px;box-shadow:var(--shadow)}
.page-hero{padding:38px 0}
.page-hero h1{font-size:clamp(2.1rem,4vw,3.3rem);margin-top:8px}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px;color:#708090;font-size:.86rem}
.breadcrumbs a{text-decoration:none}

.quickfacts{background:var(--navy);color:#fff}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.facts-grid>div{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding:16px 14px;border-right:1px solid rgba(255,255,255,.09)}
.facts-grid>div:last-child{border-right:0}
.fact-icon{grid-row:1/3;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.1);display:grid;place-items:center}
.facts-grid b,.facts-grid small{display:block}
.facts-grid small{font-size:.76rem;color:#b8c7d5}

.section{padding:50px 0}
.white{background:#fff}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}
.section-head.center{display:block;text-align:center}
.section-head p{color:var(--muted);margin:8px 0 0}
.compact-head h2{margin-bottom:6px}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.service-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 4px 14px rgba(11,33,57,.04)}
.card-media{height:170px;background:var(--soft);border-bottom:1px solid var(--line);overflow:hidden}
.service-body{padding:18px}
.service-card h3{margin-bottom:6px}
.service-card p{font-size:.95rem;color:var(--muted);margin-bottom:12px}
.service-card a{font-weight:900;color:var(--cyan-dark);text-decoration:none}

.soft-section{background:#f4f8fb}
.compact-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:center}
.compact-photo-card{aspect-ratio:4/3;max-height:260px;box-shadow:var(--shadow)}
.compact-copy p{color:var(--muted)}
.mini-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.mini-steps div{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px}
.mini-steps b{width:28px;height:28px;border-radius:9px;background:#eaf7fb;color:var(--cyan-dark);display:grid;place-items:center;flex:0 0 28px}
.mini-steps span{font-size:.86rem;font-weight:800;line-height:1.2}

.local-panel{display:grid;grid-template-columns:1.2fr .55fr;gap:24px;align-items:center;border:1px solid var(--line);border-radius:22px;padding:28px}
.local-panel p{color:var(--muted);max-width:640px}
.local-panel address{font-style:normal;background:#f4f8fb;border-radius:16px;padding:18px}
.local-actions{display:flex;flex-wrap:wrap;gap:10px}
.offer-card-compact{display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;background:linear-gradient(120deg,#102d4c,#0b2139);color:#fff;border-radius:22px;padding:26px 28px}
.offer-card-compact h2{font-size:1.7rem;margin:4px 0 6px}
.offer-card-compact p{margin:0;color:#c6d5e2}
.offer-price{text-align:right}
.offer-price strong{display:block;font-size:1.9rem;line-height:1}
.offer-price span{display:block;margin-top:6px;font-size:.76rem;color:#b8c7d5}

.answer-box{background:#f4f8fb;border:1px solid var(--line);border-left:5px solid var(--cyan);border-radius:16px;padding:20px 20px 18px;margin-bottom:24px}
.answer-box span{display:block;margin-bottom:8px;font-size:.72rem;font-weight:900;color:var(--cyan-dark);letter-spacing:.1em}
.number-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.number-list li{display:grid;grid-template-columns:1fr;gap:3px;padding:15px 16px;background:#fff;border:1px solid var(--line);border-radius:14px}
.number-list b{display:block}
.number-list span{color:var(--muted);font-size:.94rem}
.compare,.problem-grid,.three-cards,.spec-grid,.entity-grid,.highlight-list,.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.compare>div,.problem-grid article,.three-cards article,.spec-grid article,.entity-grid article,.highlight-list article,.guide-grid article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.compare ul{padding-left:18px;margin:10px 0 0}
.inline-cta,.notice{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding:18px 20px;background:#eef9fc;border:1px solid #c8e8f0;border-radius:16px}
.notice strong{color:var(--navy)}
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:15px 18px;font-weight:850;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:'+';position:absolute;right:18px;top:50%;transform:translateY(-50%);color:#6d7c8c;font-size:1.1rem}
.faq details[open] summary:after{content:'–'}
.faq details div{padding:0 18px 16px;color:var(--muted)}
.cta-section{padding-top:10px}
.cta-card{background:linear-gradient(120deg,#102d4c,#0b2139);color:#fff;border-radius:22px;padding:28px 30px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.cta-card p{color:#d0dce6;margin:0}
.cta-actions{display:flex;flex-wrap:wrap;gap:10px}

.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:20px}
.contact-info,.form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}
.contact-list{display:grid;gap:10px;margin:18px 0}
.contact-list a{display:block;background:#f6fafc;border:1px solid var(--line);border-radius:14px;padding:12px 14px;text-decoration:none}
.contact-list span{display:block;font-size:.72rem;font-weight:900;color:var(--cyan-dark);letter-spacing:.1em;margin-bottom:2px}
.hours{display:grid;gap:8px;margin:16px 0}
.hours>div{display:flex;justify-content:space-between;gap:12px;background:#f6fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.contact-photo{aspect-ratio:16/9;max-height:180px;margin:16px 0 0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label{display:block;font-weight:700;margin-bottom:12px}
input,textarea,select{width:100%;margin-top:6px;border:1px solid #cfdae4;border-radius:12px;padding:12px 13px;background:#fff;color:var(--ink)}
textarea{resize:vertical;min-height:130px}
.optional{font-weight:600;color:#8a98a7;font-size:.86rem}
.consent{display:flex;gap:10px;align-items:flex-start;font-weight:600;color:var(--muted)}
.consent input{width:auto;margin-top:2px}

.profile-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px;align-items:center;margin-bottom:26px}
.profile-photo{aspect-ratio:4/3;max-height:240px;box-shadow:var(--shadow)}
.highlight-list article b,.entity-grid article span,.guide-grid article>span{display:block}
.highlight-list article p,.entity-grid article p,.guide-grid article p{color:var(--muted);margin:6px 0 0}
.entity-grid article span,.guide-grid article>span{font-size:.72rem;font-weight:900;letter-spacing:.1em;color:var(--cyan-dark)}
.guide-grid article a{display:inline-block;margin-top:12px;color:var(--cyan-dark);font-weight:900;text-decoration:none}

.footer{background:#081b2d;color:#d6e3ee;padding:44px 0 0;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr .85fr;gap:24px}
.footer-brand p,.footer-links a,.footer address,.footer-hours{color:#bdd0df}
.footer h2{font-size:1rem;letter-spacing:0;margin:0 0 14px;color:#fff}
.footer a{text-decoration:none}
.footer-links{display:grid;gap:8px}
.footer address{font-style:normal;line-height:1.7}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:26px;padding:16px 0;display:flex;justify-content:space-between;gap:12px;font-size:.86rem;color:#9db4c7}
.brand-footer small{color:#93a9ba}
.sticky-mobile{display:none}

@media (max-width:1100px){
  .menu a{font-size:.84rem;padding:9px 7px}
  .hero-grid,.page-hero-grid,.compact-split,.contact-grid,.footer-grid,.profile-card,.local-panel{grid-template-columns:1fr}
  .hero-photo,.hero-side-media,.compact-photo-card,.profile-photo{max-width:560px}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .offer-card-compact{grid-template-columns:1fr auto}
  .offer-card-compact .btn{grid-column:1/-1;justify-self:start}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .topbar{display:none}
  .menu{position:fixed;left:16px;right:16px;top:84px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:12px;display:none;flex-direction:column;align-items:stretch}
  body.menu-open .menu{display:flex}
  .menu a{padding:12px}
  .mobile-toggle{display:block;margin-left:auto}
  .nav-actions{display:none}
  .mobile-only{display:block!important}
  .facts-grid,.service-grid,.mini-steps,.compare,.problem-grid,.three-cards,.spec-grid,.entity-grid,.highlight-list,.guide-grid,.form-row{grid-template-columns:1fr}
  .offer-card-compact{grid-template-columns:1fr;gap:14px}
  .offer-price{text-align:left}
  .cta-card{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column}
  .sticky-mobile{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff;border-top:1px solid var(--line);z-index:80}
  .sticky-mobile a{padding:14px 12px;text-decoration:none;text-align:center;font-weight:850}
  .sticky-mobile .sticky-call{background:var(--cyan);color:#072534}
}
@media (max-width:640px){
  .hero,.page-hero,.section{padding:36px 0}
  h1{font-size:2.3rem}
  .page-hero h1{font-size:2rem}
  .container{width:min(var(--max),calc(100% - 24px))}
  .hero-photo,.hero-side-media{max-height:none}
  .card-media{height:160px}
  .contact-photo{max-height:none}
}
