:root{
  --navy:#0b1a2e; --navy-2:#132a47; --blue:#2f8ff0; --blue-d:#1f6fc4; --ink:#1b2430; --muted:#5a6675;
  --line:#e3e8ef; --bg:#ffffff; --soft:#f4f7fb; --radius:10px; --max:1140px;
  --font: system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px}
img{max-width:100%;height:auto}
a{color:var(--blue-d)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
h1,h2,h3{line-height:1.2;color:var(--navy)}
h2{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .6em}
h3{font-size:1.2rem;margin:1.2em 0 .4em}

.topbar{background:var(--blue-d);color:#fff;font-size:.88rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;padding-top:6px;padding-bottom:6px;flex-wrap:wrap}
.topbar a{color:#fff;font-weight:700;text-decoration:none}

.site-header{background:var(--navy);position:sticky;top:0;z-index:5}
.site-header .wrap{display:flex;align-items:center;gap:16px;min-height:76px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;line-height:1.15;font-size:.95rem;margin-right:auto}
.brand img{width:88px;height:auto}
#nav ul{list-style:none;margin:0;padding:0}
#nav>ul{display:flex;gap:4px;align-items:center}
#nav a,#nav button{color:#e8eef6;text-decoration:none;font:inherit;font-size:.95rem;background:none;border:0;padding:10px 12px;border-radius:6px;cursor:pointer;display:block}
#nav a:hover,#nav button:hover,#nav a[aria-current]{color:#fff;background:var(--navy-2)}
.has-sub{position:relative}
.has-sub button::after{content:" ▾";font-size:.8em}
.sub{display:none;position:absolute;top:100%;left:0;background:var(--navy);min-width:230px;padding:6px!important;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.has-sub:hover .sub,.has-sub.open .sub{display:block}
.menu-toggle{display:none;background:none;border:1px solid #47607f;color:#fff;border-radius:6px;padding:8px 12px;font:inherit}

.btn{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;font-weight:700;padding:13px 22px;border-radius:8px;border:2px solid var(--blue);transition:background .15s}
.btn:hover{background:var(--blue-d);border-color:var(--blue-d)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-ghost-dark{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-ghost-dark:hover{background:var(--navy);color:#fff}
.btn-sm{padding:9px 14px;font-size:.92rem}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}

.hero{background:linear-gradient(135deg,var(--navy) 0%,#163a63 100%);color:#e8eef6;padding:56px 0 60px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-60px;bottom:-40px;width:520px;height:260px;opacity:.08;
  background:linear-gradient(135deg,transparent 49.5%,#fff 49.5%,#fff 51%,transparent 51%),linear-gradient(225deg,transparent 49.5%,#fff 49.5%,#fff 51%,transparent 51%);background-size:50% 100%;background-repeat:no-repeat;background-position:left,right}
.hero h1{color:#fff;font-size:clamp(1.9rem,4.5vw,3rem);margin:.2em 0 .3em;max-width:860px}
.hero-home{padding:80px 0 88px}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#8cc4ff;font-size:.85rem;margin:0}
.lead{font-size:1.15rem;max-width:760px;margin:0}

.section{padding:56px 0}
.section.alt{background:var(--soft)}
.prose{max-width:780px}
.prose p,.prose li{color:#2c3744}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;align-items:start}
.grid-4{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card h3{margin-top:0}
.card .tag{display:inline-block;background:#e6f1fe;color:var(--blue-d);font-weight:700;font-size:.8rem;padding:3px 8px;border-radius:999px;margin-bottom:8px}
.card.featured{border:2px solid var(--blue)}
.ticks{list-style:none;padding:0}
.ticks li{padding-left:28px;position:relative;margin:.45em 0}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--blue);font-weight:800}
.steps{counter-reset:s;list-style:none;padding:0}
.steps li{counter-increment:s;position:relative;padding:0 0 18px 56px}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800}
.steps strong{display:block;color:var(--navy)}
details.faq{border:1px solid var(--line);border-radius:8px;padding:14px 18px;margin:10px 0;background:#fff}
details.faq summary{font-weight:700;cursor:pointer;color:var(--navy)}
details.faq p{margin:.6em 0 0}
.verify{background:#fff3b0;outline:2px dashed #e0b400;padding:0 4px}
.post-list{list-style:none;padding:0}
.post-list li{border-bottom:1px solid var(--line);padding:14px 0}
.post-list a{font-weight:700;text-decoration:none;font-size:1.08rem}

form.estimate{display:grid;gap:14px;max-width:640px}
form.estimate label{font-weight:600;display:grid;gap:6px;font-size:.95rem}
form.estimate input,form.estimate select,form.estimate textarea{font:inherit;padding:11px 12px;border:1px solid #c5cfdb;border-radius:8px;width:100%}
form.estimate .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hidden{display:none}

.cta-band{background:var(--navy);color:#e8eef6;padding:52px 0;text-align:center}
.cta-band h2{color:#fff}.cta-band .cta-row{justify-content:center}
.site-footer{background:#07121f;color:#b8c4d3;padding:44px 0 18px;font-size:.95rem}
.site-footer a{color:#dbe6f3;text-decoration:none}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.35em 0}
.foot-brand{color:#fff;font-weight:800;font-size:1.1rem;margin-top:0}
.foot-h{color:#fff;font-weight:700;margin-top:0}
.legal{border-top:1px solid #1d2c40;margin-top:28px;padding-top:14px;font-size:.85rem}

@media (max-width:900px){
  .menu-toggle{display:block}
  .site-header .btn-sm{display:none}
  #nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);padding:8px 16px 16px;border-top:1px solid #1d3352}
  #nav.open{display:block}
  #nav>ul{flex-direction:column;align-items:stretch}
  .sub{position:static;box-shadow:none;padding-left:14px!important}
  .grid-3,.grid-2,.grid-4,form.estimate .row{grid-template-columns:1fr}
  .hero-home{padding:56px 0 60px}
}

.table-wrap{overflow-x:auto;margin:1em 0}
.table-wrap table{border-collapse:collapse;min-width:520px;width:100%}
.table-wrap th,.table-wrap td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.table-wrap th{background:#f3f5f8}
.note{font-size:.92rem;color:#5a6573;border-left:3px solid var(--line);padding-left:12px}
.post-cta{margin-top:2em}
.post-meta{color:#5a6573;font-size:.95rem;margin:0 0 1em}
.post-hero{margin:0 0 1.5em}
.post-hero img{width:100%;height:auto;border-radius:10px;display:block}
.page-img{width:100%;height:auto;border-radius:10px;display:block;margin:0 0 1.2em}
/* brand graphics */
.hero-home .wrap{position:relative}
.hero-home h1,.hero-home .lead{max-width:620px}
.hero-img{position:absolute;right:24px;bottom:-88px;height:400px;width:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35))}
@media (max-width:980px){.hero-home h1,.hero-home .lead{max-width:none}.hero-img{display:none}}
.foot-tag{font-style:italic;opacity:.85;margin-top:-4px}
/* decorative layers must never block clicks on hero buttons */
.hero::after,.hero-img{pointer-events:none}
.hero>.wrap{position:relative;z-index:1}

/* Bama-Barns additions */
.brand small{font-weight:500;font-size:.72rem;opacity:.8;letter-spacing:.02em}
.hero-img{position:absolute;right:16px;bottom:-30px;width:46%;max-width:560px;height:auto;border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.foot-logo{display:block;margin-bottom:8px}
.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 24px;padding:0;list-style:none}
.specs li{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.specs b{display:block;font-size:1.35rem;color:var(--navy-2)}
.specs span{color:var(--muted);font-size:.9rem}
.price{font-size:1.15rem}.price b{color:var(--blue)}
.plan-fig{margin:0 0 24px}.plan-fig img{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.plan-fig figcaption{color:var(--muted);font-size:.9rem;margin-top:6px}
.model-card img{width:100%;height:auto;border-radius:8px;background:#fff;aspect-ratio:16/9;object-fit:contain}
.model-card .meta{color:var(--muted);font-size:.95rem;margin:.2em 0 .6em}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.gallery img{width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;border-radius:8px}
form.quote{display:grid;gap:14px;max-width:720px}
form.quote label{font-weight:600;display:grid;gap:6px;font-size:.95rem}
form.quote input,form.quote select,form.quote textarea{font:inherit;padding:11px 12px;border:1px solid #c3ccd3;border-radius:8px;width:100%;background:#fff}
form.quote .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form.quote fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px}
form.quote fieldset label{font-weight:400;display:flex;gap:8px;align-items:center}
form.quote fieldset input{width:auto}
.hp{position:absolute;left:-9999px}
@media (max-width:980px){.hero-img{position:static;width:100%;max-width:none;margin-top:28px}}
@media (max-width:700px){form.quote .row{grid-template-columns:1fr}}
.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px}
a.model-card{display:block;text-decoration:none;color:inherit}
a.model-card h3{color:var(--navy);margin:.5em 0 .2em}
a.model-card:hover h3{color:var(--blue)}
.model-card img{object-fit:contain;aspect-ratio:16/10;background:#fff}
.model-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
/* home hero: text left, photo right, never overlapping */
.hero-home .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);column-gap:48px;align-items:center}
.hero-home .wrap>*{grid-column:1}
.hero-home .wrap>picture{grid-column:2;grid-row:1/span 4}
.hero-home h1,.hero-home .lead{max-width:none}
.hero-home .hero-img{position:static;width:100%;max-width:none;height:auto;display:block}
@media (max-width:980px){.hero-home .wrap{display:block}.hero-home .hero-img{margin-top:28px}}
