/* Spray Foam Insulators of Indy — Global Stylesheet */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --blue-900: #0C1B33;
  --blue-800: #132E57;
  --blue-700: #1A4076;
  --blue-600: #1E5299;
  --blue-500: #2568B8;
  --blue-400: #3B82D6;
  --blue-300: #6BA3E8;
  --blue-200: #A4C8F5;
  --blue-100: #D6E8FC;
  --blue-50: #EEF4FC;
  --accent: #4A9FE8;
  --accent-light: #7BBAF0;
  --white: #FFFFFF;
  --gray-700: #374151;
  --gray-500: #6B7280;
  --gray-300: #D1D5DB;
  --gray-100: #F3F4F6;
  --font-display: 'Bricolage Grotesque', Georgia, serif;
  --font-body: 'Outfit', system-ui, sans-serif;
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body); color: var(--blue-900); background: var(--white);
  overflow-x: hidden; -webkit-font-smoothing: antialiased;
}
.container { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.sr-only { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0); }

/* TOPBAR */
.topbar { background:var(--blue-900);color:rgba(255,255,255,.65);font-size:.78rem;padding:9px 0;letter-spacing:.02em; }
.topbar .container { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px; }
.topbar a { color:var(--blue-300);text-decoration:none;font-weight:600; }
.topbar a:hover { text-decoration:underline; }
.topbar-badge { background:rgba(75,159,232,.15);border:1px solid rgba(75,159,232,.25);padding:3px 12px;border-radius:20px;font-weight:600;color:var(--blue-300);font-size:.72rem;letter-spacing:.04em; }

/* NAV */
header { background:var(--white);border-bottom:1px solid var(--gray-100);position:sticky;top:0;z-index:100;box-shadow:0 1px 12px rgba(12,27,51,.04); }
nav { display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1120px;margin:0 auto; }
.logo { display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--blue-900); }
.logo-mark { width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,var(--blue-600),var(--blue-400));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(37,104,184,.3); }
.logo-mark svg { width:24px;height:24px;fill:white; }
.logo-text { font-family:var(--font-display);font-size:1.15rem;font-weight:800;line-height:1.15; }
.logo-text span { display:block;font-family:var(--font-body);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500);font-weight:600;margin-top:1px; }
.nav-links { display:flex;align-items:center;gap:28px;list-style:none; }
.nav-links a { text-decoration:none;color:var(--gray-700);font-size:.85rem;font-weight:500;transition:color .2s; }
.nav-links a:hover { color:var(--blue-500); }
.nav-links .has-dropdown { position:relative; }
.nav-links .dropdown { display:none;position:absolute;top:100%;left:-12px;background:var(--white);border:1px solid var(--gray-100);border-radius:12px;padding:10px 0;min-width:220px;box-shadow:0 12px 36px rgba(12,27,51,.1);z-index:200;margin-top:8px; }
.nav-links .has-dropdown:hover .dropdown { display:block; }
.nav-links .dropdown a { display:block;padding:8px 20px;font-size:.84rem;transition:background .15s; }
.nav-links .dropdown a:hover { background:var(--blue-50);color:var(--blue-600); }
.cta-btn { display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--blue-600),var(--blue-500));color:white;padding:11px 24px;border-radius:9px;text-decoration:none;font-weight:600;font-size:.85rem;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(37,104,184,.25);transition:transform .2s,box-shadow .2s; }
.cta-btn:hover { transform:translateY(-2px);box-shadow:0 6px 24px rgba(37,104,184,.4); }
.mobile-toggle { display:none;background:none;border:none;cursor:pointer;padding:8px; }
.mobile-toggle span { display:block;width:22px;height:2px;background:var(--blue-900);margin:5px 0;border-radius:2px; }

/* SECTION UTILITIES */
.section-label { display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-500);margin-bottom:14px; }
.section-label::before { content:'';width:20px;height:2px;background:var(--blue-400);border-radius:2px; }
.section-title { font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.12;margin-bottom:18px;font-weight:800; }
.section-desc { color:var(--gray-500);font-size:1rem;line-height:1.75;font-weight:400; }

/* PAGE HERO */
.page-hero { position:relative;background:linear-gradient(160deg,var(--blue-900) 0%,var(--blue-800) 50%,var(--blue-700) 100%);padding:80px 0 70px;overflow:hidden; }
.page-hero::before { content:'';position:absolute;inset:0;opacity:.035;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:48px 48px; }
.page-hero .container { position:relative; }
.page-hero .breadcrumb { font-size:.8rem;color:rgba(255,255,255,.45);margin-bottom:16px; }
.page-hero .breadcrumb a { color:var(--blue-300);text-decoration:none; }
.page-hero .breadcrumb a:hover { text-decoration:underline; }
.page-hero h1 { font-family:var(--font-display);font-size:clamp(2rem,3.5vw,3rem);color:white;font-weight:800;line-height:1.1;margin-bottom:16px; }
.page-hero h1 em { font-style:normal;background:linear-gradient(90deg,var(--blue-300),var(--accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.page-hero p { color:rgba(255,255,255,.6);font-size:1.05rem;line-height:1.7;max-width:620px;font-weight:300; }

/* CONTENT SECTIONS */
.content-section { padding:80px 0; }
.content-section.alt { background:var(--blue-50); }
.content-section.dark { background:linear-gradient(160deg,var(--blue-900),var(--blue-800));color:white; }
.content-section.dark .section-title { color:white; }
.content-grid { display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center; }
.content-grid.reverse .content-text { order:-1; }

/* PROSE */
.prose { max-width:680px; }
.prose p { color:var(--gray-500);font-size:.95rem;line-height:1.8;margin-bottom:18px; }
.prose ul { margin:18px 0;padding-left:0;list-style:none; }
.prose ul li { position:relative;padding-left:28px;margin-bottom:12px;color:var(--gray-500);font-size:.92rem;line-height:1.65; }
.prose ul li::before { content:'✓';position:absolute;left:0;color:var(--blue-500);font-weight:700;font-size:.9rem; }

/* CARDS */
.card-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px; }
.card { background:var(--white);border-radius:16px;padding:34px;border:1px solid var(--blue-100);transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden; }
.card::after { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue-500),var(--blue-300));opacity:0;transition:opacity .3s; }
.card:hover { transform:translateY(-4px);box-shadow:0 20px 48px rgba(12,27,51,.07); }
.card:hover::after { opacity:1; }
.card-icon { width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,var(--blue-100),var(--blue-50));display:flex;align-items:center;justify-content:center;margin-bottom:18px; }
.card-icon svg { width:26px;height:26px;fill:var(--blue-600); }
.card h3 { font-family:var(--font-display);font-size:1.2rem;margin-bottom:10px;font-weight:700; }
.card p { color:var(--gray-500);font-size:.9rem;line-height:1.7; }
.card-link { display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--blue-600);font-weight:600;font-size:.85rem;text-decoration:none;transition:gap .2s; }
.card-link:hover { gap:10px; }

/* WHY CARDS */
.why-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px; }
.why-card { text-align:center;padding:32px 24px; }
.why-icon { width:64px;height:64px;border-radius:16px;margin:0 auto 20px;background:linear-gradient(135deg,var(--blue-600),var(--blue-400));display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,104,184,.2); }
.why-icon svg { width:28px;height:28px;fill:white; }
.why-card h3 { font-family:var(--font-display);font-size:1.1rem;margin-bottom:8px;font-weight:700; }
.why-card p { color:var(--gray-500);font-size:.88rem;line-height:1.65; }

/* AREA TAGS */
.area-tags { display:flex;flex-wrap:wrap;gap:10px;justify-content:center; }
.area-tag { background:var(--white);padding:9px 20px;border-radius:40px;font-size:.84rem;font-weight:600;color:var(--blue-800);border:1px solid var(--blue-100);transition:.25s;text-decoration:none; }
.area-tag:hover { background:var(--blue-600);color:white;border-color:var(--blue-600);box-shadow:0 4px 16px rgba(37,104,184,.2); }

/* FAQ */
.faq-list { max-width:720px;margin:0 auto; }
.faq-item { border-bottom:1px solid var(--gray-100); }
.faq-q { display:flex;justify-content:space-between;align-items:center;cursor:pointer;width:100%;background:none;border:none;text-align:left;font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--blue-900);padding:22px 0;gap:16px; }
.faq-q::after { content:'+';font-size:1.4rem;color:var(--blue-400);flex-shrink:0;transition:transform .3s;font-weight:300; }
.faq-item.open .faq-q::after { transform:rotate(45deg); }
.faq-a { max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;color:var(--gray-500);font-size:.9rem;line-height:1.75; }
.faq-item.open .faq-a { max-height:300px;padding-bottom:22px; }

/* CONTACT */
.contact-grid { display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:start; }
.contact-info h2 { font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.12;margin-bottom:16px;font-weight:800; }
.contact-info > p { color:var(--gray-500);font-size:1rem;line-height:1.75;margin-bottom:36px; }
.ci-items { display:flex;flex-direction:column;gap:20px; }
.ci-item { display:flex;align-items:flex-start;gap:16px; }
.ci-icon { width:46px;height:46px;border-radius:12px;flex-shrink:0;background:linear-gradient(135deg,var(--blue-600),var(--blue-400));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(37,104,184,.2); }
.ci-icon svg { width:22px;height:22px;fill:white; }
.ci-text h4 { font-size:.92rem;font-weight:700;margin-bottom:3px; }
.ci-text p { color:var(--gray-500);font-size:.88rem;line-height:1.5; }
.ci-text a { color:var(--blue-600);text-decoration:none;font-weight:600; }
.ci-text a:hover { text-decoration:underline; }
.form-card { background:var(--white);border-radius:20px;padding:40px;border:1px solid var(--blue-100);box-shadow:0 8px 40px rgba(12,27,51,.06); }
.form-card h3 { font-family:var(--font-display);font-size:1.35rem;font-weight:700;margin-bottom:6px; }
.form-card > p { color:var(--gray-500);font-size:.85rem;margin-bottom:28px; }
.form-row { margin-bottom:18px; }
.form-row-half { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px; }
.form-row label,.form-row-half label { display:block;font-size:.82rem;font-weight:600;color:var(--blue-900);margin-bottom:6px; }
.form-row input,.form-row textarea,.form-row select,.form-row-half input,.form-row-half select { width:100%;padding:12px 16px;border:1.5px solid var(--blue-100);border-radius:10px;font-family:var(--font-body);font-size:.9rem;color:var(--blue-900);background:var(--white);transition:border-color .2s,box-shadow .2s;outline:none; }
.form-row input:focus,.form-row textarea:focus,.form-row select:focus,.form-row-half input:focus,.form-row-half select:focus { border-color:var(--blue-400);box-shadow:0 0 0 3px rgba(75,159,232,.12); }
.form-row input::placeholder,.form-row textarea::placeholder { color:var(--gray-300); }
.form-row textarea { resize:vertical;min-height:110px; }
.form-row select { cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%236B7280'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px; }
.form-submit { width:100%;padding:14px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--blue-600),var(--blue-500));color:white;font-family:var(--font-body);font-size:.95rem;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(37,104,184,.25);transition:transform .2s,box-shadow .2s;margin-top:6px; }
.form-submit:hover { transform:translateY(-2px);box-shadow:0 6px 24px rgba(37,104,184,.4); }
.form-note { text-align:center;margin-top:14px;color:var(--gray-500);font-size:.78rem; }

/* CTA BANNER */
.cta-banner { padding:80px 0;text-align:center;position:relative;background:linear-gradient(135deg,var(--blue-700),var(--blue-500));overflow:hidden; }
.cta-banner::before { content:'';position:absolute;inset:0;background:radial-gradient(circle 450px at 50% 50%,rgba(255,255,255,.08),transparent); }
.cta-banner .container { position:relative; }
.cta-banner h2 { font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);color:white;margin-bottom:14px;font-weight:800; }
.cta-banner p { color:rgba(255,255,255,.7);font-size:1rem;margin-bottom:32px;max-width:500px;margin-left:auto;margin-right:auto; }
.cta-banner-actions { display:flex;gap:14px;justify-content:center;flex-wrap:wrap; }
.btn-white { display:inline-flex;align-items:center;gap:8px;background:white;color:var(--blue-700);padding:14px 28px;border-radius:10px;text-decoration:none;font-weight:700;font-size:.9rem;box-shadow:0 6px 24px rgba(0,0,0,.1);transition:transform .2s,box-shadow .2s; }
.btn-white:hover { transform:translateY(-2px);box-shadow:0 10px 36px rgba(0,0,0,.16); }
.btn-ghost-light { display:inline-flex;align-items:center;gap:8px;border:1.5px solid rgba(255,255,255,.25);color:rgba(255,255,255,.9);padding:13px 26px;border-radius:10px;text-decoration:none;font-weight:600;font-size:.88rem;transition:.25s; }
.btn-ghost-light:hover { border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.06); }

/* FOOTER */
footer { background:var(--blue-900);color:rgba(255,255,255,.5);padding:56px 0 28px; }
.footer-grid { display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px; }
.footer-brand .logo-text { color:white;font-family:var(--font-display);font-weight:800;font-size:1.1rem; }
.footer-brand .logo-text span { display:block;font-family:var(--font-body);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);font-weight:600;margin-top:3px; }
.footer-brand p { margin-top:14px;font-size:.85rem;line-height:1.7;max-width:280px; }
footer h4 { color:rgba(255,255,255,.8);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px; }
footer ul { list-style:none; }
footer ul li { margin-bottom:10px; }
footer ul a { color:rgba(255,255,255,.45);text-decoration:none;font-size:.85rem;transition:color .2s; }
footer ul a:hover { color:var(--blue-300); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07);padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font-size:.76rem; }

/* GEO PAGE */
.geo-highlights { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:32px; }
.geo-highlight { background:var(--white);border:1px solid var(--blue-100);border-radius:14px;padding:24px;text-align:center; }
.geo-highlight h4 { font-family:var(--font-display);font-size:1rem;margin-bottom:6px; }
.geo-highlight p { color:var(--gray-500);font-size:.85rem;line-height:1.6; }
.nearby-areas { margin-top:40px; }
.nearby-areas h3 { font-family:var(--font-display);font-size:1.3rem;margin-bottom:18px;text-align:center; }

/* ANIMATIONS */
.reveal { opacity:0;transform:translateY(20px);transition:opacity .65s ease-out,transform .65s ease-out; }
.reveal.visible { opacity:1;transform:translateY(0); }
@keyframes fadeInUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }

/* RESPONSIVE */
@media(max-width:900px) {
  .content-grid { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; }
  .form-row-half { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .nav-links { display:none; }
  .mobile-toggle { display:block; }
  .nav-links.show { display:flex!important;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:white;padding:24px;box-shadow:0 12px 32px rgba(0,0,0,.08);gap:14px;z-index:99;border-top:1px solid var(--gray-100); }
  .nav-links .dropdown { position:static;box-shadow:none;border:none;padding-left:16px;display:block;margin-top:8px; }
  .page-hero .container { grid-template-columns:1fr!important;text-align:center; }
}
@media(max-width:600px) {
  .card-grid { grid-template-columns:1fr; }
  .why-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .geo-highlights { grid-template-columns:1fr; }
}
