/* Shared base for every IV template. Style files (bold/clean/classic/premium/friendly) set the look. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;font-family:var(--fb);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
h1,h2,h3{margin:0;line-height:1.1}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.ico{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:3px solid var(--a);outline-offset:3px}

/* IV sample notice (same on every template) */
.ivbar{background:#111418;color:#e8edf2;font:500 13px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;position:relative;z-index:60}
.ivbar-in{width:min(1180px,100% - 24px);margin:auto;display:flex;align-items:center;gap:10px 14px;padding:8px 0;flex-wrap:wrap}
.ivbar-tag{background:#00c46a;color:#111418;font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px}
.ivbar-txt{flex:1 1 320px;color:#c9d1da}.ivbar-txt b{color:#fff}
.ivbar-links{display:flex;gap:14px;align-items:center}
.ivbar a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.ivbar a.ivbar-cta{background:#00c46a;color:#111418;text-decoration:none;font-weight:700;padding:5px 12px;border-radius:999px}

/* sample phone: never dialable */
.hdr .btn{white-space:nowrap}
.phone-sample{display:inline-flex;align-items:center;gap:8px;cursor:default;white-space:nowrap}

/* quote form */
.qf{display:grid;gap:16px}
.qf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.qf label{display:grid;gap:6px;font-weight:600;font-size:.92rem}
.qf .full{grid-column:1/-1}
.qf input,.qf select,.qf textarea{width:100%;min-width:0;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r-in,10px);background:var(--field,#fff);color:var(--field-ink,#111418);font-weight:400;font-size:1rem;transition:border-color .15s,box-shadow .15s}
.qf textarea{resize:vertical;min-height:110px}
.qf input:focus,.qf select:focus,.qf textarea:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 4px rgb(var(--p-rgb)/.18)}
.qf [aria-invalid="true"]{border-color:#d92d20}
.qf-btn{justify-self:start}
.qf-note{display:flex;gap:8px;align-items:flex-start;font-size:.85rem;opacity:.8}
.qf-note .ico{margin-top:3px}
.qf-status:empty{display:none}
.qf-status{font-weight:600;padding:12px 14px;border-radius:10px;background:rgb(var(--p-rgb)/.1);border:1px solid rgb(var(--p-rgb)/.3)}
.qf-status.err{background:#fef3f2;border-color:#fda29b;color:#b42318}

/* FAQ base */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:700}
.faq summary::-webkit-details-marker{display:none}
.faq-x{width:22px;height:22px;flex:none;position:relative}
.faq-x::before,.faq-x::after{content:"";position:absolute;left:4px;right:4px;top:10px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s}
.faq-x::after{transform:rotate(90deg)}
.faq details[open] .faq-x::after{transform:rotate(0)}
.faq details p{padding:0 0 18px;opacity:.85;max-width:62ch}

.area-note{font-size:.82rem;opacity:.65;margin-top:12px}
.foot-fine{font-size:.82rem;opacity:.7;padding:18px 0 4px;border-top:1px solid rgb(127 127 127/.25);margin-top:28px}
.foot-fine a{text-decoration:underline;text-underline-offset:3px}

/* sticky mobile call bar */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:70;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--cb-bg,#fff);box-shadow:0 -10px 30px rgb(0 0 0/.14);border-top:1px solid var(--line)}
  .callbar>*{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:var(--r-btn,12px);font-weight:700;text-decoration:none;font-size:1rem}
  .cb-call{border:1.5px solid var(--cb-line,var(--line));color:var(--cb-ink,var(--ink));cursor:default}
  .cb-quote{background:var(--p);color:var(--on-p)}
  body{padding-bottom:76px}
  .qf-grid{grid-template-columns:1fr}
  .ivbar-txt{flex-basis:100%;order:3;font-size:12px}
  .ivbar-links{margin-left:auto}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* hero photos swapped by customizer */
img[data-iv-photo]{background:#1a1f26}

/* e126: long business names wrap to two lines on phones instead of cutting off */
@media (max-width:560px){.hdr .brand-name{white-space:normal;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.08;max-width:9.5em}.hdr .btn{flex:none}}
