/* Ice Dam Now — site stylesheet
   Namespaced under .idr so the plugin's documents never collide with a theme.
   Tokens are sampled from the logo artwork: ice #0047AD / #2AA6FF, heat #FA7D08.
*/

:root{
  --ink:#080D14; --ink-2:#0F1722; --ink-3:#16202D;
  --ice:#2AA6FF; --ice-deep:#0047AD; --ice-dark:#06305F; --ice-glow:#7FD0FF;
  --frost:#BFE6FF; --frost-2:#E8F5FF;
  --steel:#CDD6E0; --steel-2:#EDF1F5;
  --heat:#FA7D08; --heat-deep:#D94500;
  /* Button fills. The brand orange and blue are bright enough that white text on them
     measures 2.6:1, well under the 4.5:1 a body-sized label needs, and a button nobody
     can read in daylight is the one thing on this site that must always be readable.
     These are the same hues a few steps darker, used ONLY where white text sits on
     them; --heat and --ice above stay as they are for rules, dots, borders and accents,
     so the site keeps its colour. Both ends of each gradient clear AA on their own. */
  --heat-btn:#B05704; --heat-btn-2:#964A03;
  --ice-btn:#0075C9;  --ice-btn-2:#005B9C;
  --white:#fff; --gray:#5C6672; --text:#33404F;
  --border:rgba(10,79,168,0.14);
  --shadow:0 18px 44px rgba(8,13,20,0.14);
}
/* The plugin renders <body class="idr">, so `.idr *` resets the body's DESCENDANTS
   and never the body itself - which left the browser's default 8px body margin in
   place. That is the white strip down both edges, and it is why the sticky header
   and the fixed bars sat at the true viewport edge while the content was inset.
   html gets the ink colour too, so overscroll does not flash white. */
html{margin:0;padding:0;background:var(--ink);}
html,body.idr{max-width:100%;}
.idr{margin:0;padding:0;}
.idr *{margin:0;padding:0;box-sizing:border-box;}
.idr{font-family:'Inter',sans-serif;color:var(--text);line-height:1.7;overflow-x:hidden;font-size:17px;background:#fff;}
/* :where() so this carries ZERO specificity, for the same reason the link rule below
   does. As `.idr img` it was (0,1,1), which beat every component rule that needs a
   different height - `.idr-hero-photo{height:100%}` is only (0,1,0) - so the hero
   photograph ignored object-fit:cover and rendered at its own aspect ratio instead,
   covering the top of the hero and leaving the rest of the text on flat colour. A base
   reset must never outrank a component. */
:where(.idr img){max-width:100%;height:auto;display:block;}
/* :where() so this carries ZERO specificity. As `.idr a` it was (0,1,1), which beat
   every component rule like .idr-hcta or .idr-btn-white at (0,1,0) - so every button
   that happens to be an anchor silently inherited body text colour, and the white
   button ended up white on white. A base reset must never outrank a component. */
:where(.idr a){color:inherit;text-decoration:none;}
.idr h1,.idr h2,.idr h3{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:0.005em;line-height:1.02;color:#0B1017;}
.idr .wrap{max-width:1280px;margin:0 auto;padding:0 32px;}
@media(max-width:600px){.idr .wrap{padding:0 18px;}}
body.idr-lock,body.idr-splash-lock{overflow:hidden;}
/* Room for the sticky bar. This has to be body.idr, not body: `.idr{padding:0}` above is
   specificity (0,1,0) and a bare `body` selector is (0,0,1), so the reset silently won
   and the foot of every mobile page sat underneath the bar. Same trap as the base link
   colour above. Sized from the bar itself, plus the home indicator on a notched phone. */
@media(max-width:767px){body.idr{padding-bottom:calc(84px + env(safe-area-inset-bottom));}}

/* ============ SPLASH ============ */
.idr-splash{position:fixed;inset:0;z-index:99999;background:radial-gradient(ellipse 90% 70% at 50% 40%,#0F2438 0%,#060A11 72%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;transition:opacity .55s ease,visibility .55s ease,transform .55s ease;}
.idr-splash::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(42,166,255,0.10) 1px,transparent 1px),linear-gradient(90deg,rgba(42,166,255,0.10) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(ellipse 60% 55% at 50% 45%,#000 15%,transparent 75%);mask-image:radial-gradient(ellipse 60% 55% at 50% 45%,#000 15%,transparent 75%);}
.idr-splash img{position:relative;z-index:1;width:min(330px,72vw);height:auto;animation:idrPop .8s cubic-bezier(.16,1,.3,1) both;filter:drop-shadow(0 16px 40px rgba(42,166,255,.35));}
.idr-splash-tag{position:relative;z-index:1;font-size:.78rem;font-weight:800;letter-spacing:.34em;text-transform:uppercase;color:var(--frost);animation:idrUp .7s .2s cubic-bezier(.16,1,.3,1) both;}
.idr-splash-bar{position:relative;z-index:1;width:160px;height:3px;border-radius:3px;background:rgba(191,230,255,.18);overflow:hidden;}
.idr-splash-bar::after{content:'';position:absolute;inset:0;transform-origin:left;background:linear-gradient(90deg,var(--ice),var(--frost));animation:idrFill 1.5s linear both;}
.idr-splash.done{opacity:0;visibility:hidden;transform:scale(1.06);pointer-events:none;}
@keyframes idrPop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes idrUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes idrFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ============ HEADER ============ */
.idr-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:84px;display:flex;align-items:center;background:rgba(8,13,20,.86);backdrop-filter:blur(14px);border-bottom:1px solid rgba(42,166,255,.22);transition:background .3s,border-color .3s,box-shadow .3s;}
.idr-header.scrolled{background:rgba(8,13,20,.97);border-color:rgba(42,166,255,.45);box-shadow:0 2px 30px rgba(0,0,0,.4);}
.idr-hin{max-width:1400px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 34px;}
@media(max-width:600px){.idr-hin{padding:0 16px;}}
.idr-hlogo{flex-shrink:0;}
.idr-hlogo img{height:64px;width:auto;}
.idr-nav{display:flex;align-items:center;gap:20px;margin:0 auto;}
.idr-nav>a,.idr-nav-top{font-size:.78rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:#DCE7F2;white-space:nowrap;position:relative;transition:color .2s;
  background:none;border:0;padding:0;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;}
.idr-nav>a::after,.idr-nav-top::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;
  background:linear-gradient(90deg,var(--ice),var(--frost));transition:width .25s;}
.idr-nav>a:hover,.idr-nav-top:hover{color:#fff;}
.idr-nav>a:hover::after,.idr-nav-top:hover::after{width:100%;}
.idr-nav [aria-current="page"]{color:#fff;}

/* ---------- NAV MENUS ----------
   Hidden with visibility, not display:none: every link in here is a real internal link
   to a service or a state hub, and they should stay in the rendered DOM where a crawler
   counts them normally. visibility also keeps the panel out of the tab order and stops
   it widening the page while closed, which display:none would do by removing it and
   transform alone would not. */
.idr-nav-item{position:relative;}
.idr-caret{width:14px;height:14px;fill:currentColor;transition:transform .2s;flex-shrink:0;}
.idr-nav-item.is-open .idr-caret{transform:rotate(180deg);}
.idr-nav-item.is-open .idr-nav-top{color:#fff;}
.idr-nav-item.is-open .idr-nav-top::after{width:100%;}
.idr-menu{position:absolute;top:calc(100% + 14px);left:-18px;z-index:960;
  background:#0C1724;border:1px solid rgba(42,166,255,.28);border-top:3px solid var(--ice);
  box-shadow:0 26px 60px rgba(2,6,12,.6);
  visibility:hidden;opacity:0;transform:translateY(-6px);
  transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;}
.idr-nav-item.is-open .idr-menu{visibility:visible;opacity:1;transform:none;transition-delay:0s;}
.idr-menu::before{content:'';position:absolute;top:-16px;left:0;right:0;height:16px;}
.idr-menu-in{display:flex;gap:30px;padding:20px 24px;}
/* The panel is absolutely positioned, so it shrinks to fit its content: a max-width on
   the inner flex row does nothing and the columns stack into one tall ribbon. The width
   has to be set on the panel itself for wrapping to have anything to wrap against. */
.idr-menu.wide{width:min(94vw,1040px);left:50%;transform:translate(-50%,-6px);}
.idr-nav-item.is-open .idr-menu.wide{transform:translate(-50%,0);}
/* Wide panels are a grid, not a wrapping flex row. With flex the columns shrank to fit
   four across, and because menu links are nowrap a long guide title ran straight into
   the column beside it. A grid gives each column a fixed track, and links in wide panels
   wrap inside their own track instead of overflowing it. */
.idr-menu.wide .idr-menu-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 30px;
  max-height:calc(100vh - 120px);overflow-y:auto;}
.idr-menu.wide .idr-menu-col{min-width:0;}
.idr-menu.wide li a{white-space:normal;line-height:1.3;overflow-wrap:break-word;}
.idr-menu-col{min-width:178px;}
.idr-menu-h{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ice-glow);margin:0 0 9px;}
.idr-menu ul{list-style:none;margin:0;}
.idr-menu li{margin:0;}
.idr-menu li a{display:block;padding:7px 10px;margin:0 -10px;font-size:.92rem;font-weight:600;
  letter-spacing:0;text-transform:none;color:#D7E5F3;white-space:nowrap;border-radius:5px;}
.idr-menu li a::after{display:none;}
.idr-menu li a:hover,.idr-menu li a:focus-visible{background:rgba(42,166,255,.14);color:#fff;}
.idr-menu li a[aria-current="page"]{color:var(--ice-glow);background:rgba(42,166,255,.1);}
/* Keep the panel on screen when its trigger sits near the right edge. */
.idr-nav-item:last-child .idr-menu:not(.wide){left:auto;right:-18px;}
@media(max-width:1180px){.idr-menu.wide .idr-menu-in{grid-template-columns:repeat(3,minmax(0,1fr));}}
.idr-hright{display:flex;align-items:center;gap:11px;flex-shrink:0;}
.idr-hphone{display:flex;align-items:center;gap:7px;color:#fff;font-weight:800;font-size:.98rem;}
.idr-hphone svg{width:16px;height:16px;fill:currentColor;}
.idr-hphone:hover{color:var(--frost);}
.idr-hcta{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 24px;background:linear-gradient(135deg,var(--heat-btn),var(--heat-btn-2));color:#fff;font-family:'Anton',sans-serif;font-size:1.02rem;letter-spacing:.05em;text-transform:uppercase;clip-path:polygon(9px 0,100% 0,calc(100% - 9px) 100%,0 100%);box-shadow:0 6px 20px rgba(216,74,0,.42);transition:transform .2s,box-shadow .2s;white-space:nowrap;}
.idr-hcta,.idr-hcta:hover,.idr-hcta:visited,.idr-hcta:focus{color:#fff;}
.idr-hcta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(216,74,0,.55);}
.idr-hcta svg{width:17px;height:17px;fill:#fff;}
.idr-burger{display:none;width:44px;height:40px;background:none;border:0;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;}
.idr-burger span{display:block;height:3px;width:26px;background:#fff;border-radius:2px;transition:transform .28s,opacity .2s;}
.idr-burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.idr-burger.open span:nth-child(2){opacity:0;}
.idr-burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
@media(max-width:1320px){.idr-nav{display:none;}.idr-burger{display:flex;}}
@media(max-width:900px){.idr-hphone{display:none;}}
@media(max-width:560px){.idr-hcta{display:none;}.idr-hlogo img{height:50px;}}

/* ============ MOBILE NAV ============ */
.idr-mov{position:fixed;inset:0;background:rgba(4,8,14,.72);backdrop-filter:blur(4px);z-index:1099;opacity:0;visibility:hidden;transition:.3s;}
.idr-mov.active{opacity:1;visibility:visible;}
/* Parked off-canvas with a transform is not the same as gone. The drawer is
   position:fixed, so overflow-x:hidden on the body cannot clip it: it stays live
   past the right edge, reachable by tab and able to show as a strip. visibility
   flips only after the slide finishes, so it closes smoothly and then truly goes. */
.idr-mnav{position:fixed;top:0;right:0;bottom:0;width:min(360px,86vw);background:linear-gradient(180deg,#0B1420 0%,#060A11 100%);z-index:1100;transform:translateX(100%);visibility:hidden;pointer-events:none;transition:transform .34s cubic-bezier(.16,1,.3,1),visibility 0s linear .34s;display:flex;flex-direction:column;border-left:1px solid rgba(42,166,255,.28);}
.idr-mnav.open{transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform .34s cubic-bezier(.16,1,.3,1),visibility 0s;}
.idr-mnav-h{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid rgba(42,166,255,.2);}
.idr-mnav-h img{height:48px;width:auto;}
.idr-mnav-x{background:none;border:0;color:#fff;font-size:1.6rem;cursor:pointer;line-height:1;}
.idr-mnav-links{flex:1;overflow-y:auto;padding:10px 0;}
.idr-mnav-links a{display:block;padding:15px 22px;color:#DCE7F2;font-weight:700;font-size:.94rem;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.06);}
.idr-mnav-links a:hover{background:rgba(42,166,255,.12);color:#fff;}
.idr-mnav-f{padding:18px 20px;display:flex;flex-direction:column;gap:10px;border-top:1px solid rgba(42,166,255,.2);}
.idr-mnav-call,.idr-mnav-book{display:flex;align-items:center;justify-content:center;gap:9px;height:52px;font-family:'Anton',sans-serif;font-size:1.08rem;letter-spacing:.04em;text-transform:uppercase;}
.idr-mnav-h{font-size:.64rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ice-glow);margin:18px 0 2px;padding:0 4px;}
.idr-mnav-call{background:linear-gradient(135deg,var(--heat-btn),var(--heat-btn-2));color:#fff;}
.idr-mnav-book{background:transparent;border:2px solid var(--ice);color:var(--frost);}
.idr-mnav-call svg,.idr-mnav-book svg{width:18px;height:18px;fill:currentColor;}

/* ============ HERO ============ */
.idr-hero{position:relative;min-height:100vh;padding:120px 0 70px;display:flex;align-items:center;background:linear-gradient(165deg,#0A1826 0%,#06111C 45%,#040A12 100%);overflow:hidden;}
.idr-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28;}
.idr-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 20% 25%,rgba(42,166,255,.20),transparent 65%),radial-gradient(ellipse 60% 45% at 85% 75%,rgba(255,106,19,.10),transparent 65%);pointer-events:none;}
.idr-snow{position:absolute;inset:0;pointer-events:none;opacity:.55;
  background-image:
    radial-gradient(2.5px 2.5px at 12% 10%,#fff,transparent),
    radial-gradient(2px 2px at 34% 42%,#fff,transparent),
    radial-gradient(3px 3px at 62% 18%,#fff,transparent),
    radial-gradient(2px 2px at 81% 62%,#fff,transparent),
    radial-gradient(2.5px 2.5px at 47% 78%,#fff,transparent),
    radial-gradient(2px 2px at 92% 30%,#fff,transparent),
    radial-gradient(2.5px 2.5px at 22% 66%,#fff,transparent),
    radial-gradient(2px 2px at 71% 88%,#fff,transparent);
  background-size:520px 520px;animation:idrSnow 22s linear infinite;}
.idr-snow.b{opacity:.32;background-size:340px 340px;animation-duration:34s;animation-direction:reverse;}
@keyframes idrSnow{from{background-position:0 -520px}to{background-position:60px 520px}}
.idr-hero-in{position:relative;z-index:3;max-width:1340px;margin:0 auto;padding:0 34px;width:100%;display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;}
@media(max-width:1040px){.idr-hero-in{grid-template-columns:1fr;gap:34px;}}
@media(max-width:600px){.idr-hero-in{padding:0 16px;}}
.idr-hero-in>*,.idr-info>*,.idr-anat>*,.idr-fgrid>*,.idr-svcs>*,.idr-steps>*,.idr-why>*,.idr-quotes>*{min-width:0;}
.idr-tblwrap{max-width:100%;}
.idr-hero-logo img{width:min(420px,84%);height:auto;margin-bottom:22px;filter:drop-shadow(0 12px 30px rgba(42,166,255,.3));}
.idr-eyebrow{display:inline-flex;align-items:center;gap:9px;padding:8px 15px;border:1px solid rgba(42,166,255,.45);background:rgba(42,166,255,.12);color:var(--frost);font-size:.73rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px;}
.idr-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--heat);box-shadow:0 0 0 0 rgba(255,106,19,.7);animation:idrPulse 2s infinite;}
@keyframes idrPulse{70%{box-shadow:0 0 0 10px rgba(255,106,19,0)}100%{box-shadow:0 0 0 0 rgba(255,106,19,0)}}
.idr h1.idr-h1{font-size:clamp(2.35rem,6.6vw,4.7rem);color:#fff;margin-bottom:16px;overflow-wrap:break-word;text-shadow:0 6px 30px rgba(0,0,0,.5);text-wrap:balance;}
.idr h1.idr-h1 em{font-style:normal;display:inline-block;transform:skewX(-8deg);background:linear-gradient(180deg,#fff 0%,var(--frost) 55%,var(--ice) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;}
.idr-hero-sub{font-size:1.16rem;color:#C6D6E6;font-weight:500;max-width:600px;margin-bottom:24px;}
.idr-checks{display:flex;flex-direction:column;gap:11px;margin-bottom:26px;}
.idr-check{display:flex;align-items:center;gap:11px;color:#E4EEF8;font-weight:600;font-size:1rem;}
.idr-check .ck{width:25px;height:25px;flex-shrink:0;display:grid;place-items:center;background:rgba(42,166,255,.18);border:1px solid rgba(42,166,255,.5);border-radius:50%;}
.idr-check .ck svg{width:14px;height:14px;fill:var(--frost);}
.idr .idr-hero-call{display:none;}
@media(max-width:1040px){.idr .idr-hero-call{display:inline-flex;}}

/* HERO FORM */
.idr-form{background:linear-gradient(180deg,#fff 0%,#F2F8FE 100%);border:1px solid rgba(42,166,255,.4);box-shadow:0 30px 70px rgba(0,0,0,.5);padding:28px;position:relative;}
.idr-form::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--ice),var(--frost),var(--heat));}
.idr-form-icon{width:52px;height:52px;display:grid;place-items:center;background:linear-gradient(135deg,var(--ice),var(--ice-deep));margin-bottom:14px;box-shadow:0 8px 20px rgba(10,79,168,.35);}
.idr-form-icon svg{width:27px;height:27px;fill:#fff;}
.idr-form-title{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:1.62rem;line-height:1.08;color:#0B1017;margin-bottom:6px;}
.idr-form-title span{color:var(--ice-deep);}
.idr-form-sub{font-size:.94rem;color:var(--gray);font-weight:500;margin-bottom:16px;}
.idr-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:600px){.idr-fgrid{grid-template-columns:1fr;}}
.idr-field{display:flex;flex-direction:column;gap:5px;}
.idr-field.full{grid-column:1/-1;}
.idr-field label{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0B1017;}
.idr-field .req{color:var(--heat-deep);}
.idr-field input,.idr-field select{width:100%;min-width:0;height:48px;border:1.5px solid rgba(10,79,168,.22);background:#fff;padding:0 13px;font-family:'Inter',sans-serif;font-size:.96rem;color:#0B1017;transition:border-color .2s,box-shadow .2s;}
.idr-field input:focus,.idr-field select:focus{outline:none;border-color:var(--ice);box-shadow:0 0 0 3px rgba(42,166,255,.22);}
.idr-submit{width:100%;height:58px;margin-top:16px;display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,var(--heat-btn),var(--heat-btn-2));color:#fff;border:0;cursor:pointer;font-family:'Anton',sans-serif;font-size:1.28rem;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 10px 26px rgba(216,74,0,.4);transition:transform .2s,box-shadow .2s;}
.idr-submit:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(216,74,0,.55);}
.idr-submit:disabled{opacity:.65;cursor:wait;transform:none;}
.idr-submit svg{width:20px;height:20px;fill:#fff;}
.idr-fine{text-align:center;font-size:.8rem;color:var(--gray);margin-top:11px;}

/* ============ BUTTONS ============ */
.idr-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:60px;padding:0 30px;font-family:'Anton',sans-serif;font-size:1.2rem;letter-spacing:.04em;text-transform:uppercase;transition:transform .2s,box-shadow .2s;clip-path:polygon(11px 0,100% 0,calc(100% - 11px) 100%,0 100%);}
.idr-btn svg{width:21px;height:21px;fill:currentColor;flex-shrink:0;}
.idr-btn:hover{transform:translateY(-2px);}
.idr-btn-heat{background:linear-gradient(135deg,var(--heat-btn),var(--heat-btn-2));color:#fff;box-shadow:0 10px 26px rgba(216,74,0,.4);}
.idr-btn-ice{background:linear-gradient(135deg,var(--ice-btn),var(--ice-btn-2));color:#fff;box-shadow:0 10px 26px rgba(10,79,168,.38);}
.idr-btn-ghost{background:rgba(6,17,28,.82);border:2px solid #fff;color:#fff;clip-path:none;
  backdrop-filter:blur(2px);}
.idr-btn-white{background:#fff;color:var(--ice-deep);box-shadow:0 10px 26px rgba(0,0,0,.22);}
.idr-btns{display:flex;gap:13px;flex-wrap:wrap;}
@media(max-width:520px){.idr-btns{flex-direction:column;}.idr-btns .idr-btn{width:100%;}}

/* ============ EMERGENCY STRIP ============ */
.idr-strip{background:linear-gradient(135deg,var(--heat-btn-2),var(--heat-btn));color:#fff;padding:18px 0;position:relative;overflow:hidden;}
.idr-strip::after{content:'';position:absolute;top:0;left:-40%;width:35%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);animation:idrStreak 6s ease-in-out infinite;}
@keyframes idrStreak{0%{left:-45%}55%{left:130%}100%{left:130%}}
.idr-strip-in{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:0 26px;display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;text-align:center;}
.idr-strip b{font-family:'Anton',sans-serif;font-size:1.35rem;letter-spacing:.03em;text-transform:uppercase;color:#fff;}
.idr-strip span{font-weight:600;font-size:1rem;color:rgba(255,255,255,.94);}
.idr-strip a{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--heat-deep);font-family:'Anton',sans-serif;font-size:1.15rem;letter-spacing:.03em;text-transform:uppercase;height:48px;padding:0 22px;box-shadow:0 6px 18px rgba(0,0,0,.2);}
.idr-strip a svg{width:18px;height:18px;fill:currentColor;}

/* ============ TRUST BAR ============ */
.idr-trust{background:linear-gradient(160deg,#EDF1F5 0%,#D3DCE5 50%,#E8EEF4 100%);border-top:1px solid rgba(10,79,168,.12);border-bottom:1px solid rgba(10,79,168,.12);padding:26px 0;}
.idr-trust-in{max-width:1280px;margin:0 auto;padding:0 26px;display:flex;justify-content:space-around;gap:20px;flex-wrap:wrap;text-align:center;}
.idr-trust .num{font-family:'Anton',sans-serif;font-size:1.9rem;color:var(--ice-deep);line-height:1;letter-spacing:.01em;}
.idr-trust .lbl{font-size:.74rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--gray);margin-top:6px;}

/* ============ SECTIONS ============ */
.idr-sec{padding:86px 0;position:relative;}
@media(max-width:700px){.idr-sec{padding:62px 0;}}
.idr-dark{background:linear-gradient(170deg,#0C1826 0%,#070E17 100%);color:#C6D6E6;}
.idr-dark h2,.idr-dark h3{color:#fff;}
.idr-dark::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(42,166,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(42,166,255,.055) 1px,transparent 1px);background-size:52px 52px;pointer-events:none;}
.idr-dark>.wrap{position:relative;z-index:2;}
/* The tint has to differ from white AT THE SEAM. This gradient used to start at
   #fff, so a white section above it ran straight into it with no visible edge and
   the page read as one long white field. It now opens on the tint. */
.idr-frost{background:linear-gradient(180deg,#E7F3FF 0%,#F4FAFF 55%,#E2F0FF 100%);}
.idr-silver{background:linear-gradient(160deg,#E9EEF4 0%,#CFD8E1 48%,#E4EAF1 100%);position:relative;overflow:hidden;}
.idr-silver::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.55) 0px,rgba(255,255,255,0) 2px,rgba(0,0,0,.022) 4px,rgba(0,0,0,0) 6px);pointer-events:none;}
.idr-silver>.wrap{position:relative;z-index:2;}
.idr-white{background:#fff;}
/* A hairline at the top of every light band. Belt and braces with the alternating
   tones: even where two neighbours end up close in value, the seam still shows. */
.idr-white+.idr-white,.idr-white,.idr-frost,.idr-silver{border-top:1px solid rgba(10,79,168,.09);}
.idr-dark+.idr-white,.idr-dark+.idr-frost,.idr-dark+.idr-silver,
.idr-band+.idr-white,.idr-band+.idr-frost,.idr-band+.idr-silver{border-top:0;}

.idr-tag{display:inline-flex;align-items:center;gap:9px;font-size:.75rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--ice-deep);margin-bottom:13px;}
.idr-tag::before{content:'❄';color:var(--ice);font-size:.9rem;}
.idr-dark .idr-tag{color:var(--frost);}
.idr-head{text-align:center;max-width:760px;margin:0 auto 48px;}
.idr-head .idr-tag{justify-content:center;}
.idr-rule{width:66px;height:3px;background:linear-gradient(90deg,var(--ice),var(--heat));margin:0 auto 16px;}
.idr-head h2{font-size:clamp(2.4rem,5.6vw,3.9rem);margin-bottom:13px;}
.idr-head p{font-size:1.15rem;font-weight:500;}
.idr-dark .idr-head p{color:#B9CBDD;}

/* ICICLE DIVIDER */
.idr-icicles{display:block;width:100%;height:38px;margin-bottom:-1px;}
.idr-icicles path{fill:currentColor;}

/* REVEAL */
.idr-rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;}
.idr-rv.vis{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .idr-rv{opacity:1;transform:none;transition:none;}
  .idr-snow,.idr-strip::after,.idr-splash img,.idr-splash-tag{animation:none;}
  .idr-splash-bar::after{animation:none;transform:scaleX(1);}
}
.idr :focus-visible{outline:3px solid var(--heat);outline-offset:2px;}

/* ============ ANATOMY DIAGRAM ============ */
.idr-anat{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center;}
@media(max-width:960px){.idr-anat{grid-template-columns:1fr;gap:30px;}}
.idr-anat-svg{background:linear-gradient(180deg,#0A1726,#050B13);border:1px solid rgba(42,166,255,.3);padding:16px;box-shadow:0 22px 50px rgba(0,0,0,.4);}
.idr-anat-svg svg{width:100%;height:auto;display:block;}
.idr-stage{display:flex;gap:15px;padding:15px 0;border-bottom:1px solid rgba(42,166,255,.16);}
.idr-stage:last-child{border-bottom:0;}
.idr-stage .n{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;font-family:'Anton',sans-serif;font-size:1.15rem;background:rgba(42,166,255,.16);border:1px solid rgba(42,166,255,.5);color:var(--frost);}
.idr-stage h3{font-size:1.24rem;margin-bottom:3px;}
.idr-stage p{font-size:.98rem;color:#B9CBDD;}

/* ============ COMPARE TABLE ============ */
.idr-tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;}
.idr-tbl{width:100%;border-collapse:collapse;min-width:720px;}
.idr-tbl th,.idr-tbl td{padding:16px 18px;text-align:left;border-bottom:1px solid rgba(10,79,168,.1);vertical-align:top;}
.idr-tbl thead th{background:linear-gradient(135deg,var(--ink-2),var(--ink));color:#fff;font-family:'Anton',sans-serif;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;font-weight:400;}
.idr-tbl tbody tr:nth-child(odd){background:#F7FBFF;}
.idr-tbl tbody tr.win{background:linear-gradient(90deg,rgba(42,166,255,.14),rgba(42,166,255,.05));}
.idr-tbl tbody tr.win td{border-bottom-color:rgba(42,166,255,.3);}
.idr-tbl .m{font-family:'Anton',sans-serif;font-size:1.14rem;text-transform:uppercase;color:#0B1017;letter-spacing:.02em;}
.idr-tbl .m small{display:block;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.09em;color:var(--ice-deep);text-transform:uppercase;margin-top:3px;}
.idr-tbl td{font-size:.95rem;color:var(--text);}
.idr-v{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:.86rem;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;}
.idr-v.yes{color:#0A7A3D;} .idr-v.no{color:#B3241C;} .idr-v.mid{color:#9A6100;}
.idr-scroll-hint{display:none;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-top:10px;text-align:center;}
@media(max-width:760px){.idr-scroll-hint{display:block;}}

/* ============ SERVICE CARDS ============ */
.idr-svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:980px){.idr-svcs{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.idr-svcs{grid-template-columns:1fr;}}
.idr-svc{background:#fff;border:1px solid var(--border);padding:28px 24px 24px;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s;box-shadow:0 8px 24px rgba(8,13,20,.07);display:flex;flex-direction:column;}
.idr-svc::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--ice),var(--frost));transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.idr-svc:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(8,13,20,.16);border-color:rgba(42,166,255,.5);}
.idr-svc:hover::before{transform:scaleX(1);}
.idr-svc-ico{width:56px;height:56px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(42,166,255,.16),rgba(42,166,255,.05));border:1px solid rgba(42,166,255,.4);margin-bottom:16px;}
.idr-svc-ico svg{width:29px;height:29px;fill:var(--ice-deep);}
.idr-svc h3{font-size:1.42rem;margin-bottom:6px;}
.idr-svc .note{font-size:.73rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--heat-deep);margin-bottom:9px;}
.idr-svc p{font-size:.99rem;color:var(--text);margin-bottom:16px;flex:1;}
.idr-svc .go{display:inline-flex;align-items:center;gap:8px;font-family:'Anton',sans-serif;font-size:1rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ice-deep);}
.idr-svc .go svg{width:17px;height:17px;fill:currentColor;transition:transform .2s;}
.idr-svc:hover .go svg{transform:translateX(4px);}
.idr-svc-badge{position:absolute;top:16px;right:0;background:linear-gradient(135deg,var(--heat-btn),var(--heat-btn-2));color:#fff;font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:6px 13px;box-shadow:0 4px 12px rgba(216,74,0,.35);}

/* ============ STEPS ============ */
.idr-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media(max-width:960px){.idr-steps{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.idr-steps{grid-template-columns:1fr;}}
.idr-step{background:rgba(255,255,255,.04);border:1px solid rgba(42,166,255,.25);padding:26px 22px;position:relative;}
.idr-step .n{font-family:'Anton',sans-serif;font-size:3.1rem;line-height:1;color:transparent;-webkit-text-stroke:2px rgba(42,166,255,.55);margin-bottom:10px;}
.idr-step h3{font-size:1.3rem;margin-bottom:8px;}
.idr-step p{font-size:.97rem;color:#B9CBDD;}

/* ============ INFO ROWS ============ */
.idr-info{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.idr-info.flip .idr-info-media{order:2;}
@media(max-width:900px){.idr-info{grid-template-columns:1fr;gap:32px;}.idr-info.flip .idr-info-media{order:0;}}
.idr-info-media{position:relative;border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;background:linear-gradient(160deg,#0C1826,#050B13);min-height:400px;display:grid;place-items:center;}
.idr-info-media img{width:100%;height:100%;object-fit:cover;min-height:400px;}
.idr-info h2{font-size:clamp(2.1rem,4.6vw,3.2rem);margin-bottom:15px;}
.idr-info p{font-size:1.1rem;margin-bottom:16px;}
.idr-list{list-style:none;margin-bottom:22px;}
.idr-list li{position:relative;padding-left:32px;margin-bottom:13px;}
.idr-list li::before{content:'';position:absolute;left:0;top:6px;width:19px;height:19px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232AA6FF'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center/contain;}
.idr-list li strong{display:block;font-weight:800;color:#0B1017;font-size:1.02rem;}
.idr-list li span{font-size:.96rem;color:var(--gray);}
.idr-dark .idr-list li strong{color:#fff;}
.idr-dark .idr-list li span{color:#B9CBDD;}
.idr-box{background:rgba(42,166,255,.09);border-left:4px solid var(--ice);padding:20px 22px;margin-bottom:22px;}
.idr-box h3{font-size:1.2rem;margin-bottom:10px;}
.idr-box ul{list-style:none;}
.idr-box li{padding-left:22px;position:relative;margin-bottom:8px;font-size:.98rem;}
.idr-box li::before{content:'▸';position:absolute;left:0;color:var(--ice);font-weight:700;}

/* ============ WHY GRID ============ */
.idr-why{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:900px){.idr-why{grid-template-columns:repeat(2,1fr);}}
@media(max-width:580px){.idr-why{grid-template-columns:1fr;}}
.idr-whyc{background:#fff;border:1px solid var(--border);padding:26px 22px;box-shadow:0 8px 22px rgba(8,13,20,.07);transition:transform .25s,box-shadow .25s;}
.idr-whyc:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(8,13,20,.14);}
.idr-whyc .ico{width:48px;height:48px;display:grid;place-items:center;background:rgba(42,166,255,.12);border:1px solid rgba(42,166,255,.4);margin-bottom:14px;}
.idr-whyc .ico svg{width:25px;height:25px;fill:var(--ice-deep);}
.idr-whyc h3{font-size:1.24rem;margin-bottom:7px;}
.idr-whyc p{font-size:.97rem;color:var(--gray);}

/* ============ AREAS ============ */
.idr-chips{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0;}
.idr-chips span{padding:9px 15px;background:#fff;border:1px solid var(--border);font-size:.87rem;font-weight:700;color:var(--text);}
.idr-chips span.hq{background:linear-gradient(135deg,var(--ice-btn),var(--ice-btn-2));color:#fff;border-color:transparent;}

/* STATE HUB GRID */
.idr-geo{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:44px;align-items:start;}
@media(max-width:1000px){.idr-geo{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.idr-geo{grid-template-columns:1fr;}}
.idr-geo-col{background:#fff;border:1px solid var(--border);padding:22px 20px;box-shadow:0 8px 22px rgba(8,13,20,.07);}
.idr-geo-col h3{font-size:1.06rem;margin-bottom:4px;}
.idr-geo-col .cnt{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ice-deep);margin-bottom:12px;display:block;}
.idr-geo-col ul{list-style:none;column-count:1;}
.idr-geo-col li{margin-bottom:7px;}
.idr-geo-col a{font-size:.94rem;font-weight:600;color:var(--text);border-bottom:1px solid transparent;transition:color .2s,border-color .2s;}
.idr-geo-col a:hover{color:var(--ice-deep);border-bottom-color:var(--ice);}

/* ============ BEFORE / AFTER ============ */
.idr-ba{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:860px){.idr-ba{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.idr-ba{grid-template-columns:1fr;}}
.idr-ba-card{position:relative;overflow:hidden;border:1px solid rgba(42,166,255,.3);background:#08121D;}
.idr-ba-card img{width:100%;height:260px;object-fit:cover;transition:transform .5s;}
.idr-ba-card:hover img{transform:scale(1.06);}
.idr-ba-card .cap{position:absolute;left:0;bottom:0;right:0;padding:14px 16px;background:linear-gradient(180deg,transparent,rgba(4,9,15,.92));color:#fff;font-family:'Anton',sans-serif;font-size:1.06rem;letter-spacing:.03em;text-transform:uppercase;}

/* ============ REVIEWS ============ */
.idr-stars{font-size:2.1rem;color:#FFB400;letter-spacing:.12em;line-height:1;}
.idr-revhead{text-align:center;margin-bottom:34px;}
.idr-revnum{font-family:'Anton',sans-serif;font-size:2.3rem;color:#0B1017;margin-top:10px;letter-spacing:.02em;}
.idr-revsub{color:var(--gray);font-weight:600;}
.idr-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px;}
@media(max-width:900px){.idr-quotes{grid-template-columns:1fr;}}
.idr-quote{background:#fff;border:1px solid var(--border);padding:24px;box-shadow:0 8px 22px rgba(8,13,20,.07);position:relative;}
.idr-quote .s{color:#FFB400;letter-spacing:.1em;margin-bottom:10px;}
.idr-quote p{font-size:1rem;color:var(--text);font-style:italic;margin-bottom:14px;}
.idr-quote .who{font-weight:800;color:#0B1017;font-size:.94rem;}
.idr-quote .where{font-size:.82rem;color:var(--gray);font-weight:600;}

/* ============ FIELD GUIDES ============ */
.idr-guides{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media(max-width:780px){.idr-guides{grid-template-columns:1fr;}}
.idr-guide{display:flex;align-items:center;gap:14px;padding:18px 20px;background:rgba(255,255,255,.04);border:1px solid rgba(42,166,255,.25);transition:background .2s,border-color .2s,transform .2s;}
.idr-guide:hover{background:rgba(42,166,255,.12);border-color:rgba(42,166,255,.6);transform:translateX(4px);}
.idr-guide .cat{flex-shrink:0;font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--frost);background:rgba(42,166,255,.18);border:1px solid rgba(42,166,255,.4);padding:5px 9px;}
.idr-guide .t{flex:1;font-weight:600;font-size:1rem;color:#DCE7F2;}
.idr-guide svg{width:19px;height:19px;fill:var(--ice);flex-shrink:0;}

/* ============ CTA BLOCK ============ */
.idr-cta{background:linear-gradient(135deg,var(--ice-dark) 0%,var(--ice-deep) 55%,var(--ice) 130%);color:#fff;padding:78px 26px;text-align:center;position:relative;overflow:hidden;}
.idr-cta::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 50% 50%,#000,transparent 70%);mask-image:radial-gradient(ellipse 70% 80% at 50% 50%,#000,transparent 70%);}
.idr-cta>div{position:relative;z-index:2;max-width:820px;margin:0 auto;}
.idr-cta h2{color:#fff;font-size:clamp(2.3rem,5.4vw,3.7rem);margin-bottom:14px;}
.idr-cta p{font-size:1.15rem;color:rgba(255,255,255,.93);margin-bottom:26px;}
.idr-cta .idr-btns{justify-content:center;}
.idr-pills{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;margin-top:28px;}
.idr-pills span{padding:9px 16px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);font-size:.83rem;font-weight:700;letter-spacing:.04em;}
.idr-freetag{display:inline-block;background:var(--heat-btn);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;padding:7px 15px;margin-bottom:16px;}

/* ============ FAQ ============ */
.idr-faq{max-width:900px;margin:0 auto;}
.idr-faqi{background:#fff;border:1px solid var(--border);margin-bottom:12px;transition:border-color .2s,box-shadow .2s;}
.idr-faqi:hover{border-color:rgba(42,166,255,.5);box-shadow:0 8px 22px rgba(8,13,20,.08);}
.idr-faqq{width:100%;background:none;border:0;text-align:left;cursor:pointer;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:'Anton',sans-serif;font-size:1.18rem;letter-spacing:.02em;text-transform:uppercase;color:#0B1017;}
.idr-faqi .ic{width:30px;height:30px;flex-shrink:0;display:grid;place-items:center;background:rgba(42,166,255,.14);color:var(--ice-deep);font-family:'Inter',sans-serif;font-size:0;font-weight:700;transition:background .3s,color .3s;}
.idr-faqi .ic::before{content:'+';font-size:1.3rem;line-height:1;display:block;transition:transform .3s;}
.idr-faqi.open .ic{background:var(--ice);color:#fff;}
.idr-faqi.open .ic::before{transform:rotate(45deg);}
.idr-faqa{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.idr-faqi.open .idr-faqa{max-height:600px;}
.idr-faqa div{padding:0 22px 20px;}
.idr-faqa p{font-size:1rem;color:var(--text);}
.idr-faqa a{color:var(--ice-deep);font-weight:700;text-decoration:underline;}

/* ============ FOOTER ============ */
.idr-foot{background:linear-gradient(180deg,#0A1420 0%,#05090F 100%);color:#94A7BB;padding-top:62px;position:relative;}
.idr-foot-grid{max-width:1280px;margin:0 auto;padding:0 32px 46px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:38px;}
@media(max-width:900px){.idr-foot-grid{grid-template-columns:1fr 1fr;gap:30px;}}
@media(max-width:560px){.idr-foot-grid{grid-template-columns:1fr;}}
/* height:auto matters: the img carries width/height attributes for CLS, so setting
   only the width leaves the height pinned at 400px and the logo comes out stretched. */
.idr-foot-brand img{width:min(300px,80%);height:auto;margin-bottom:16px;}
.idr-foot-brand p{font-size:.95rem;margin-bottom:14px;}
.idr-foot-brand a{font-family:'Anton',sans-serif;font-size:1.5rem;color:var(--frost);letter-spacing:.02em;}
.idr-foot h3{color:#fff;font-size:1.14rem;margin-bottom:14px;}
.idr-foot ul{list-style:none;}
.idr-foot li{margin-bottom:9px;font-size:.94rem;}
.idr-foot li a:hover{color:var(--frost);}
.idr-foot-bottom{border-top:1px solid rgba(255,255,255,.09);padding:20px 32px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;max-width:1280px;margin:0 auto;font-size:.86rem;}
.idr-foot-links{display:flex;gap:16px;flex-wrap:wrap;}
.idr-foot-links a:hover{color:var(--frost);}
.idr-biz{background:linear-gradient(135deg,#0E1B2A,#0A1420);border-top:1px solid rgba(42,166,255,.25);border-bottom:1px solid rgba(42,166,255,.25);padding:26px 32px;}
.idr-biz-in{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;}
.idr-biz .eb{font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--frost);margin-bottom:5px;}
.idr-biz h3{font-size:1.42rem;margin-bottom:6px;}
.idr-biz h3 span{color:var(--ice);}
.idr-biz p{font-size:.93rem;max-width:640px;}
.idr-biz-btn{display:inline-flex;align-items:center;gap:9px;background:linear-gradient(135deg,var(--ice),var(--ice-deep));color:#fff;font-family:'Anton',sans-serif;font-size:1.08rem;letter-spacing:.04em;text-transform:uppercase;height:52px;padding:0 24px;white-space:nowrap;box-shadow:0 8px 22px rgba(10,79,168,.4);}
.idr-biz-btn svg{width:19px;height:19px;fill:#fff;}

/* ============ STICKY MOBILE BAR ============ */
/* The sticky bar: one solid button and the number, on a band of brand colour. Two equal
   buttons made the choice look like a coin toss; a filled button beside a plain
   underlined number says "tap this, or ring us" without either shouting over the other.
   The band is opaque rather than translucent, so the number stays legible over whatever
   scrolls beneath it — a blurred photograph behind a phone number is a number nobody
   can read. */
.idr-mbar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:900;
  background:var(--frost-2);border-top:2px solid var(--ice);
  padding:10px 12px;gap:12px;align-items:center;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
  box-shadow:0 -6px 20px rgba(8,13,20,.16);}
.idr-mbar .book{flex:0 1 auto;display:flex;align-items:center;justify-content:center;
  min-height:50px;padding:0 20px;border-radius:8px;
  background:linear-gradient(135deg,var(--heat-btn),var(--heat-btn-2));color:#fff;
  font-family:'Anton',sans-serif;font-size:1.12rem;letter-spacing:.03em;text-transform:uppercase;
  box-shadow:0 4px 12px rgba(216,69,0,.34);white-space:nowrap;}
.idr-mbar .call{flex:1 1 auto;display:flex;align-items:center;justify-content:center;
  min-height:50px;color:var(--ice-deep);font-weight:800;font-size:1.06rem;
  text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
@media(max-width:767px){.idr-mbar{display:flex;}}
/* Below about 360px the two cannot sit side by side without one of them wrapping, so
   the button takes the row and the number sits under it, both still full-width taps. */
@media(max-width:359px){
  .idr-mbar{flex-direction:column;gap:7px;padding:8px 12px;}
  .idr-mbar .book,.idr-mbar .call{width:100%;min-height:46px;}
}

/* ==========================================================================
   COMPONENTS ADDED FOR THE LOCATION TREE
   Breadcrumbs, local-silo nav, prose blocks, cross-sell cards, neighbor
   footer, city and state grids, call-outs. Same tokens as the home page.
   ========================================================================== */

/* ---------- BREADCRUMBS ---------- */
.idr-crumbs{margin-bottom:18px;}
.idr-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:0;margin:0;}
.idr-crumbs li{display:flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:#9DB4CC;}
.idr-crumbs li+li::before{content:'/';color:rgba(157,180,204,.5);}
.idr-crumbs a{color:var(--frost);border-bottom:1px solid transparent;transition:border-color .2s;}
.idr-crumbs a:hover{border-bottom-color:var(--ice);}
.idr-crumbs [aria-current]{color:#E6F1FB;}
.idr-light .idr-crumbs li{color:var(--gray);}
.idr-light .idr-crumbs a{color:var(--ice-deep);}

/* ---------- LOCAL SILO BAR (city pages) ---------- */
.idr-local{position:sticky;top:84px;z-index:900;background:rgba(7,12,19,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(42,166,255,.26);}
@media(max-width:560px){.idr-local{top:76px;}}
.idr-local-in{max-width:1340px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:18px;}
@media(max-width:600px){.idr-local-in{padding:0 16px;}}
.idr-local-city{flex-shrink:0;display:flex;align-items:center;gap:8px;font-family:'Anton',sans-serif;font-size:1.02rem;letter-spacing:.03em;text-transform:uppercase;color:#fff;padding:13px 0;}
.idr-local-city svg{width:16px;height:16px;fill:var(--ice);}
.idr-local-links{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;}
.idr-local-links::-webkit-scrollbar{display:none;}
.idr-local-links a{white-space:nowrap;padding:13px 11px;font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#B9CBDD;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;}
.idr-local-links a:hover{color:#fff;border-bottom-color:var(--ice);}
.idr-local-links a[aria-current]{color:#fff;border-bottom-color:var(--heat);}

/* ---------- PROSE BLOCKS ---------- */
.idr-prose{max-width:760px;}
.idr-prose h2{font-size:clamp(1.9rem,3.8vw,2.7rem);margin:0 0 14px;}
.idr-prose h3{font-size:1.32rem;margin:26px 0 9px;}
.idr-prose p{font-size:1.08rem;margin-bottom:16px;}
.idr-prose p a{color:var(--ice-deep);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.idr-dark .idr-prose p a{color:var(--frost);}
.idr-split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:52px;align-items:start;}
@media(max-width:1000px){.idr-split{grid-template-columns:1fr;gap:34px;}}
.idr-aside{position:sticky;top:132px;display:flex;flex-direction:column;gap:16px;}
@media(max-width:1000px){.idr-aside{position:static;}}

/* ---------- SIDE CARDS ---------- */
.idr-card{background:#fff;border:1px solid var(--border);box-shadow:0 10px 28px rgba(8,13,20,.09);padding:22px;}
.idr-card h3{font-size:1.2rem;margin-bottom:10px;}
.idr-card p{font-size:.96rem;color:var(--gray);margin-bottom:14px;}
.idr-card .idr-btn{width:100%;height:52px;font-size:1.05rem;}
.idr-card-dark{background:linear-gradient(160deg,#0D1A29,#060C14);border-color:rgba(42,166,255,.32);}
.idr-card-dark h3{color:#fff;} .idr-card-dark p{color:#B9CBDD;}
.idr-card ul{list-style:none;margin:0 0 14px;}
.idr-card li{position:relative;padding-left:22px;margin-bottom:8px;font-size:.94rem;}
.idr-card li::before{content:'';position:absolute;left:0;top:7px;width:13px;height:13px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232AA6FF'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center/contain;}

/* ---------- OUR COMPANIES ----------
   The group card on the About page and the cable page. The tick bullets the other
   aside cards use are for features, so they are removed here: these are companies,
   and a checkmark beside a company name reads as a claim about it. */
.idr-family-list{list-style:none;margin:0;}
.idr-family-list li{position:relative;padding-left:0;margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid var(--border);}
.idr-family-list li:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0;}
.idr-family-list li::before{display:none;}
.idr-family-list li > a{display:block;color:var(--ice-deep);font-weight:800;font-size:1.02rem;text-decoration:underline;text-underline-offset:3px;}
.idr-family-role{display:block;font-size:.76rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--heat-deep);margin:4px 0 6px;}
.idr-family-list li p{font-size:.9rem;color:var(--gray);margin:0;}

/* ---------- TELL-IT-APART BLOCK ----------
   Three candidate causes side by side on a symptom page. Deliberately not a table: it
   reads as prose on a phone, which is where somebody standing under a dripping ceiling
   is reading it. */
.idr-tell{display:grid;gap:14px;margin:20px 0 26px;}
.idr-tell-row{border-left:4px solid var(--ice);background:rgba(42,166,255,.07);padding:16px 18px;}
.idr-tell-row:first-child{border-left-color:var(--heat-btn);background:rgba(250,125,8,.08);}
.idr-tell-h{font-weight:800;color:var(--ink);margin:0 0 5px;font-size:1rem;}
.idr-tell-row p:last-child{margin:0;font-size:.97rem;}
.idr-dark .idr-tell-h{color:#fff;}

/* ---------- NUMBERED STEPS IN PROSE ---------- */
.idr-steps-list{list-style:none;counter-reset:idnstep;margin:18px 0 26px;}
.idr-steps-list li{counter-increment:idnstep;position:relative;padding-left:44px;margin-bottom:12px;
  font-size:1rem;line-height:1.6;}
.idr-steps-list li::before{content:counter(idnstep);position:absolute;left:0;top:1px;
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:var(--ice-btn);color:#fff;font-weight:800;font-size:.88rem;}

/* ---------- CALL-OUT ---------- */
.idr-alert{display:flex;gap:15px;align-items:flex-start;background:linear-gradient(135deg,rgba(250,125,8,.1),rgba(250,125,8,.03));border-left:4px solid var(--heat);padding:18px 20px;margin:24px 0;}
.idr-alert svg{width:24px;height:24px;fill:var(--heat-deep);flex-shrink:0;margin-top:2px;}
.idr-alert p{margin:0;font-size:1rem;}
.idr-alert a{color:var(--heat-deep);font-weight:800;text-decoration:underline;text-underline-offset:3px;}
.idr-dark .idr-alert{background:rgba(250,125,8,.12);}
.idr-dark .idr-alert a{color:#FFAE6B;}

/* ---------- CROSS-SELL CARDS ---------- */
.idr-cross{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:860px){.idr-cross{grid-template-columns:1fr;}}
.idr-xc{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);padding:24px 22px;box-shadow:0 8px 24px rgba(8,13,20,.07);transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;overflow:hidden;}
.idr-xc::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--ice),var(--frost));transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.idr-xc:hover{transform:translateY(-5px);box-shadow:0 20px 42px rgba(8,13,20,.15);border-color:rgba(42,166,255,.5);}
.idr-xc:hover::before{transform:scaleX(1);}
.idr-xc .ico{width:48px;height:48px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(42,166,255,.16),rgba(42,166,255,.05));border:1px solid rgba(42,166,255,.4);margin-bottom:14px;}
.idr-xc .ico svg{width:25px;height:25px;fill:var(--ice-deep);}
.idr-xc h3{font-size:1.24rem;margin-bottom:6px;}
.idr-xc p{font-size:.96rem;color:var(--gray);margin-bottom:14px;flex:1;}
.idr-xc .go{display:inline-flex;align-items:center;gap:8px;font-family:'Anton',sans-serif;font-size:.98rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ice-deep);}
.idr-xc .go svg{width:16px;height:16px;fill:currentColor;transition:transform .2s;}
.idr-xc:hover .go svg{transform:translateX(4px);}

/* ---------- NEIGHBOUR TOWNS ---------- */
.idr-nbr{display:flex;flex-wrap:wrap;gap:9px;}
.idr-nbr a{padding:10px 16px;background:#fff;border:1px solid var(--border);font-size:.9rem;font-weight:700;color:var(--text);transition:background .2s,color .2s,border-color .2s;}
.idr-nbr a:hover{background:var(--ice-deep);border-color:var(--ice-deep);color:#fff;}
.idr-dark .idr-nbr a{background:rgba(255,255,255,.05);border-color:rgba(42,166,255,.28);color:#DCE7F2;}
.idr-dark .idr-nbr a:hover{background:var(--ice);border-color:var(--ice);color:#06111C;}

/* ---------- CITY GRID (state hubs) ---------- */
.idr-citygrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
@media(max-width:1000px){.idr-citygrid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:720px){.idr-citygrid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:440px){.idr-citygrid{grid-template-columns:1fr;}}
.idr-cty{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:#fff;border:1px solid var(--border);transition:transform .2s,box-shadow .2s,border-color .2s;}
.idr-cty:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(8,13,20,.12);border-color:rgba(42,166,255,.55);}
.idr-cty .nm{font-family:'Anton',sans-serif;font-size:1.06rem;letter-spacing:.02em;text-transform:uppercase;color:#0B1017;}
.idr-cty .ct{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ice-deep);}

/* ---------- SERVICE LIST (city hub) ---------- */
.idr-svclist{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:940px){.idr-svclist{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.idr-svclist{grid-template-columns:1fr;}}

/* ---------- STAT STRIP ---------- */
.idr-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:30px 0;}
@media(max-width:760px){.idr-stats{grid-template-columns:repeat(2,1fr);}}
.idr-stat{padding:18px;background:rgba(42,166,255,.07);border:1px solid rgba(42,166,255,.26);}
.idr-stat .v{font-family:'Anton',sans-serif;font-size:1.6rem;color:var(--ice-deep);line-height:1.1;}
.idr-stat .k{font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--gray);margin-top:5px;}
.idr-dark .idr-stat .v{color:var(--frost);} .idr-dark .idr-stat .k{color:#8FA6BC;}

/* ---------- STATE REGION COLUMNS ---------- */
.idr-geo{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:44px;align-items:start;}
@media(max-width:1000px){.idr-geo{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.idr-geo{grid-template-columns:1fr;}}
.idr-geo-col{background:#fff;border:1px solid var(--border);padding:22px 20px;box-shadow:0 8px 22px rgba(8,13,20,.07);}
.idr-geo-col h3{font-size:1.06rem;margin-bottom:4px;}
.idr-geo-col .cnt{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ice-deep);margin-bottom:12px;display:block;}
.idr-geo-col ul{list-style:none;margin:0;padding:0;}
.idr-geo-col li{margin-bottom:7px;}
.idr-geo-col a{font-size:.94rem;font-weight:600;color:var(--text);border-bottom:1px solid transparent;transition:color .2s,border-color .2s;}
.idr-geo-col a:hover{color:var(--ice-deep);border-bottom-color:var(--ice);}

/* ---------- FIELD GUIDES ---------- */
.idr-guides{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media(max-width:780px){.idr-guides{grid-template-columns:1fr;}}
.idr-guide{display:flex;align-items:center;gap:14px;padding:18px 20px;background:rgba(255,255,255,.04);border:1px solid rgba(42,166,255,.25);transition:background .2s,border-color .2s,transform .2s;}
.idr-guide:hover{background:rgba(42,166,255,.12);border-color:rgba(42,166,255,.6);transform:translateX(4px);}
.idr-guide .cat{flex-shrink:0;font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--frost);background:rgba(42,166,255,.18);border:1px solid rgba(42,166,255,.4);padding:5px 9px;}
.idr-guide .t{flex:1;font-weight:600;font-size:1rem;color:#DCE7F2;}
.idr-guide svg{width:19px;height:19px;fill:var(--ice);flex-shrink:0;}
.idr-light .idr-guide{background:#fff;border-color:var(--border);}
.idr-light .idr-guide .t{color:var(--text);}
.idr-light .idr-guide .cat{color:var(--ice-deep);background:rgba(42,166,255,.1);}

/* ---------- SKIP LINK ---------- */
.idr-skip{position:absolute;left:-9999px;top:0;z-index:100000;background:var(--heat);color:#fff;padding:12px 20px;font-weight:800;}
.idr-skip:focus{left:8px;top:8px;}

/* ---------- PAGE HERO (interior pages) ---------- */
.idr-phero{position:relative;padding:150px 0 62px;background:linear-gradient(165deg,#0A1826 0%,#06111C 48%,#040A12 100%);overflow:hidden;}
@media(max-width:560px){.idr-phero{padding:132px 0 48px;}}
.idr-phero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 55% at 18% 22%,rgba(42,166,255,.2),transparent 65%),radial-gradient(ellipse 55% 45% at 86% 78%,rgba(250,125,8,.1),transparent 65%);pointer-events:none;}
.idr-phero-in{position:relative;z-index:3;max-width:1340px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center;}
@media(max-width:1040px){.idr-phero-in{grid-template-columns:1fr;gap:32px;}}
@media(max-width:600px){.idr-phero-in{padding:0 16px;}}
.idr-phero h1{font-size:clamp(2.2rem,5.2vw,3.9rem);color:#fff;margin-bottom:14px;text-wrap:balance;overflow-wrap:break-word;}
.idr-phero .sub{font-size:1.14rem;color:#C6D6E6;font-weight:500;max-width:620px;margin-bottom:22px;}
.idr-phero .idr-checks{margin-bottom:24px;}

/* ---------- FOOTER COLUMN TWEAK ---------- */
.idr-foot-grid.five{grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;}
@media(max-width:1000px){.idr-foot-grid.five{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.idr-foot-grid.five{grid-template-columns:1fr;}}

/* ---------- UTILITY ---------- */
.idr-hide{display:none!important;}
@media(max-width:767px){.idr-mobonly{display:block;}.idr-deskonly{display:none!important;}}
@media(min-width:768px){.idr-mobonly{display:none!important;}}

/* ==========================================================================
   SEO / GEO COMPONENTS
   Answer capsule, spec table, honeypot, no-review module, Q&A bullets.
   ========================================================================== */

/* ---------- ANSWER CAPSULE (45-65 words under the H1) ---------- */
.idr-capsule{font-size:1.06rem;line-height:1.65;color:var(--text);background:rgba(42,166,255,.07);
  border-left:4px solid var(--ice);padding:18px 22px;margin:0 0 26px;max-width:760px;}
.idr-capsule strong{color:#0B1017;font-weight:800;}
/* Over a hero photograph the old translucent wash let the picture through and the
   text fell to roughly 3:1. A solid dark panel holds it above 7:1 whatever is behind. */
.idr-dark .idr-capsule,.idr-phero .idr-capsule,.idr-hero .idr-capsule{background:rgba(6,14,24,.72);color:#EAF3FB;
  border-left-color:var(--ice);backdrop-filter:blur(2px);}
.idr-dark .idr-capsule strong,.idr-phero .idr-capsule strong,.idr-hero .idr-capsule strong{color:#fff;}

/* ---------- SPEC TABLE ---------- */
.idr-table-wrap{margin:28px 0;}
.idr-table-cap{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ice-deep);margin-bottom:10px;}
.idr-table{width:100%;border-collapse:collapse;border:1px solid var(--border);background:#fff;
  box-shadow:0 8px 24px rgba(8,13,20,.07);}
.idr-table th,.idr-table td{padding:13px 16px;text-align:left;border-bottom:1px solid rgba(10,71,173,.1);
  vertical-align:top;font-size:.96rem;}
.idr-table th{width:38%;font-family:'Inter',sans-serif;font-weight:800;color:#0B1017;
  background:rgba(42,166,255,.05);}
.idr-table tr:last-child th,.idr-table tr:last-child td{border-bottom:0;}
@media(max-width:620px){
  .idr-table,.idr-table tbody,.idr-table tr,.idr-table th,.idr-table td{display:block;width:100%;}
  .idr-table th{border-bottom:0;padding-bottom:4px;background:none;font-size:.72rem;
    letter-spacing:.1em;text-transform:uppercase;color:var(--ice-deep);}
  .idr-table td{padding-top:0;padding-bottom:14px;}
}

/* ---------- HONEYPOT (visible only to bots) ---------- */
.idr-hp{opacity:0;position:absolute;top:0;left:-5000px;height:0;width:0;z-index:-1;overflow:hidden;}

/* ---------- NO-REVIEW MODULE ---------- */
.idr-noreview{border-left:4px solid var(--heat);}
.idr-noreview h3{font-size:1.1rem;}
.idr-noreview p{font-size:.95rem;}
.idr-guar{border-top:1px solid var(--border);padding-top:12px;margin-top:4px;}

/* ---------- REVIEW CARDS (only rendered when real reviews exist) ---------- */
.idr-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:900px){.idr-quotes{grid-template-columns:1fr;}}
.idr-quote{background:#fff;border:1px solid var(--border);padding:24px;box-shadow:0 8px 22px rgba(8,13,20,.07);}
.idr-quote .s{color:#FFB400;letter-spacing:.1em;margin-bottom:10px;}
.idr-quote p{font-size:1rem;color:var(--text);font-style:italic;margin-bottom:14px;}
.idr-quote .who{font-weight:800;color:#0B1017;font-size:.94rem;}
.idr-quote .where{font-size:.82rem;color:var(--gray);font-weight:600;}

/* ---------- Q&A BULLETS ---------- */
.idr-faqa ul{list-style:none;margin:12px 0 0;padding:0;}
.idr-faqa li{position:relative;padding-left:22px;margin-bottom:8px;font-size:.97rem;color:var(--text);}
.idr-faqa li::before{content:'';position:absolute;left:0;top:8px;width:7px;height:7px;
  background:var(--ice);border-radius:50%;}

/* ---------- SCREEN-READER ONLY ---------- */
.idr-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ---------- SITEMAP LINK IN FOOTER ---------- */
.idr-foot-links a.idr-sitemap{color:var(--frost);}

/* ---------- AUTHOR BYLINE (E-E-A-T) ---------- */
.idr-byline{font-size:.92rem;color:#B9CBDD;margin:0 0 20px;}
.idr-byline strong{color:#fff;}
.idr-byline a{color:var(--frost);text-decoration:underline;text-underline-offset:3px;}
.idr-light .idr-byline{color:var(--gray);}
.idr-light .idr-byline strong{color:#0B1017;}
.idr-light .idr-byline a{color:var(--ice-deep);}

/* ==========================================================================
   LAYOUT CORRECTIONS
   ========================================================================== */

/* Long H1s like "Ice Dam Removal in Akron, OH — Freeze-Thaw Response" were
   breaking mid-hyphen. Balance the lines and keep hyphenated terms whole. */
.idr-phero h1,.idr h1.idr-h1{text-wrap:balance;hyphens:manual;overflow-wrap:normal;word-break:keep-all;}
@media(max-width:640px){
  .idr-phero h1{font-size:clamp(1.85rem,7.4vw,2.6rem);overflow-wrap:break-word;}
}

/* Anything the page can scroll to has to clear the fixed header, and on city
   pages the sticky service bar underneath it as well. */
.idr [id]{scroll-margin-top:100px;}
.idr-local ~ * [id],.idr-local ~ [id]{scroll-margin-top:150px;}
.idr-prose h2,.idr-prose h3{scroll-margin-top:150px;}

/* Local service bar: on a phone the city label and the scrolling links
   collided, so the label takes its own row. */
@media(max-width:700px){
  .idr-local-in{flex-direction:column;align-items:stretch;gap:0;}
  .idr-local-city{padding:10px 0 6px;font-size:.95rem;}
  .idr-local-links{border-top:1px solid rgba(42,166,255,.16);}
  .idr-local-links a{padding:11px 10px;font-size:.74rem;}
}

/* The horizontal scroll on the service bar needs an edge cue so it does not
   read as truncated text. The bar is already position:sticky, which establishes
   the containing block this needs — do not add position:relative here, it would
   override the sticky and the bar would scroll away. */
.idr-local::after{content:'';position:absolute;right:0;top:0;bottom:0;width:46px;
  background:linear-gradient(90deg,rgba(7,12,19,0),rgba(7,12,19,.96));pointer-events:none;}

/* Capsule inside the dark hero needs a touch more separation from the checks. */
.idr-phero .idr-capsule{margin-bottom:22px;}

/* ==========================================================================
   IMAGERY
   Hero backgrounds, figures, photo bands and galleries. Every image carries
   explicit width/height so nothing shifts while it loads.
   ========================================================================== */

/* ---------- HERO BACKGROUND ---------- */
.idr-phero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.30;z-index:0;}
.idr-phero::before{z-index:1;}
.idr-phero-in{z-index:3;}
/* A second wash under the text column keeps contrast at AA over a busy photo. */
.idr-phero::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(100deg,rgba(4,10,18,.90) 0%,rgba(4,10,18,.72) 42%,rgba(4,10,18,.42) 100%);}
@media(max-width:1040px){
  .idr-phero::after{background:linear-gradient(180deg,rgba(4,10,18,.86) 0%,rgba(4,10,18,.80) 60%,rgba(4,10,18,.90) 100%);}
}
.idr-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28;}

/* ---------- FIGURES IN PROSE ---------- */
.idr-fig{margin:26px 0;}
.idr-fig img{width:100%;height:auto;display:block;border:1px solid var(--border);
  box-shadow:0 14px 34px rgba(8,13,20,.14);}
.idr-fig figcaption{font-size:.88rem;color:var(--gray);margin-top:9px;line-height:1.5;}
.idr-dark .idr-fig figcaption{color:#9DB4CC;}
.idr-fig-diagram img{background:#fff;padding:10px;object-fit:contain;}

/* ---------- PHOTO BAND ---------- */
.idr-band{position:relative;min-height:440px;display:flex;align-items:center;
  overflow:hidden;background:#0A1826;}
@media(max-width:700px){.idr-band{min-height:380px;}}
.idr-band-media{position:absolute;inset:0;}
.idr-band-media img{width:100%;height:100%;object-fit:cover;}
.idr-band::after{content:'';position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(4,10,18,.92) 0%,rgba(4,10,18,.74) 48%,rgba(4,10,18,.34) 100%);}
@media(max-width:860px){
  .idr-band::after{background:linear-gradient(180deg,rgba(4,10,18,.80),rgba(4,10,18,.92));}
}
.idr-band .wrap{position:relative;z-index:2;width:100%;}
.idr-band-copy{max-width:620px;padding:56px 0;}
.idr-band-copy h2{color:#fff;font-size:clamp(2rem,4.4vw,3.1rem);margin-bottom:14px;}
.idr-band-copy p{color:#C6D6E6;font-size:1.1rem;margin-bottom:22px;}
.idr-band-copy .idr-tag{color:var(--frost);}
/* A ghost button over a bright photograph fails contrast, so inside a band the
   secondary action gets a solid fill instead of an outline. */
.idr-band .idr-btn-ghost{background:rgba(6,17,28,.82);border-color:#fff;color:#fff;
  backdrop-filter:blur(3px);}
.idr-band .idr-btn-ghost:hover{background:rgba(6,17,28,.95);}

/* ---------- GALLERY ---------- */
.idr-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:860px){.idr-gal{grid-template-columns:1fr;}}
.idr-gal-item{margin:0;background:#fff;border:1px solid var(--border);
  box-shadow:0 10px 26px rgba(8,13,20,.09);overflow:hidden;
  transition:transform .25s,box-shadow .25s;}
.idr-gal-item:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(8,13,20,.16);}
.idr-gal-item img{width:100%;height:230px;object-fit:cover;display:block;}
.idr-gal-item figcaption{padding:14px 16px;font-size:.92rem;color:var(--text);line-height:1.5;}

/* ---------- SERVICE CARD THUMBNAILS ---------- */
.idr-svc{padding:0;overflow:visible;}
.idr-svc-photo{position:relative;aspect-ratio:16/10;overflow:visible;background:#0C1826;}
/* The clip layer is absolutely positioned, so nothing inside it can affect the
   wrapper's height and the wrapper is sized purely by its aspect-ratio. That matters:
   an in-flow img at height:100% inside an aspect-ratio box is a circular dependency -
   the percentage is indefinite, resolves to auto, and the image's own proportions end
   up driving the box. A portrait photo then made its card half as tall again as the
   two beside it. The layer also contains the hover zoom, while the icon badge still
   hangs over the wrapper's lower edge. */
.idr-svc-photo{isolation:isolate;}
.idr-svc-photo-clip{position:absolute;inset:0;overflow:hidden;display:block;z-index:0;
  border-top-left-radius:inherit;border-top-right-radius:inherit;}
.idr-svc-photo img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s;}
.idr-svc:hover .idr-svc-photo img{transform:scale(1.06);}
.idr-svc-in{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.idr-svc-photo .idr-svc-ico{position:absolute;left:16px;bottom:-24px;z-index:2;margin:0;
  background:#fff;border-color:rgba(42,166,255,.55);box-shadow:0 8px 20px rgba(8,13,20,.22);
  display:grid;place-items:center;width:52px;height:52px;}
.idr-svc.has-photo .idr-svc-in{padding-top:40px;}
.idr-svc .idr-svc-badge{top:14px;z-index:3;}

/* ---------- ASIDE IMAGE ---------- */
.idr-card-photo{padding:0;overflow:hidden;}
.idr-card-photo img{width:100%;height:190px;object-fit:cover;display:block;}
.idr-card-photo .idr-card-body{padding:18px 20px 20px;}
.idr-card-photo h3{font-size:1.08rem;margin-bottom:8px;}
.idr-card-photo p{font-size:.92rem;margin-bottom:0;}

/* ---------- BEFORE / AFTER ---------- */
.idr-ba-single{margin:26px 0;}
.idr-ba-single img{width:100%;height:auto;border:1px solid var(--border);
  box-shadow:0 14px 34px rgba(8,13,20,.14);}
.idr-ba-single figcaption{font-size:.88rem;color:var(--gray);margin-top:9px;}

@media(prefers-reduced-motion:reduce){
  .idr-gal-item,.idr-svc-photo img{transition:none;}
  .idr-gal-item:hover{transform:none;}
  .idr-svc:hover .idr-svc-photo img{transform:none;}
}

/* ==========================================================================
   ZIP-FIRST CALL TO ACTION
   One field and one button to start. The rest of the form only appears once
   the ZIP has been checked against the real coverage list.
   ========================================================================== */

/* Named idr-fstep, not idr-step: the home page's numbered process cards already
   own .idr-step and their border and background were bleeding into the form. */
@keyframes idrStepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- the answer ---------- */
.idr-zip-msg{margin:0 0 12px;padding:12px 15px;font-size:.98rem;font-weight:700;
  border-left:4px solid var(--gray);background:rgba(0,0,0,.03);color:var(--text);}
.idr-zip-msg.is-good{border-left-color:#0A7A3D;background:rgba(10,122,61,.09);color:#0A5E30;}
.idr-zip-msg.is-bad{border-left-color:var(--heat-deep);background:rgba(216,69,0,.09);color:#9E3400;}
.idr-zip-msg.is-wait{border-left-color:var(--ice);background:rgba(42,166,255,.09);color:var(--ice-deep);}

/* When the ZIP is outside the run, the phone becomes the primary action. */
.idr-form.is-uncovered .idr-form-foot{background:rgba(216,69,0,.08);
  border-left:4px solid var(--heat);padding:13px 15px;font-size:1rem;}

/* ---------- back to the zip step ---------- */
.idr-zip-back{display:block;width:100%;margin-top:12px;padding:8px;background:none;border:0;
  cursor:pointer;font-size:.9rem;font-weight:700;color:var(--gray);}
.idr-zip-back:hover{color:var(--ice-deep);text-decoration:underline;}

.idr-form-foot{margin-top:14px;}

/* ============================================================ step 3: booking
   The estimate calendar. Lives inside the same white form card as steps one and
   two, so the visitor never feels handed off to a different system. */


.idr-cal{border:2px solid rgba(10,71,173,.18);border-radius:14px;padding:12px;background:#fff;}
.idr-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;}
.idr-cal-month{font-family:'Anton',sans-serif;font-size:1.12rem;letter-spacing:.03em;
  text-transform:uppercase;color:var(--ink);}
.idr-cal-nav{width:38px;height:38px;border:1px solid rgba(10,71,173,.2);border-radius:10px;
  background:#fff;color:var(--ice-deep);font-size:1.05rem;line-height:1;cursor:pointer;
  transition:background .16s,border-color .16s;}
.idr-cal-nav:hover{background:rgba(42,166,255,.1);border-color:var(--ice);}

.idr-cal-dow,.idr-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.idr-cal-dow{margin-bottom:4px;}
.idr-cal-dow span{text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gray);}
.idr-cal-pad{display:block;}
/* Square cells without a fixed height, so a long month does not change the card size. */
.idr-cal-d{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  border:1px solid transparent;border-radius:9px;background:transparent;color:#AEB7C2;
  font-family:'Inter',sans-serif;font-size:.95rem;font-weight:700;cursor:default;}
.idr-cal-d.is-open{background:rgba(42,166,255,.1);border-color:rgba(42,166,255,.32);
  color:var(--ice-deep);cursor:pointer;transition:background .16s,transform .16s;}
.idr-cal-d.is-open:hover{background:rgba(42,166,255,.2);transform:translateY(-1px);}
.idr-cal-d.is-pick{background:var(--ice-deep);border-color:var(--ice-deep);color:#fff;}
.idr-cal-load{grid-column:1/-1;padding:18px 8px;text-align:center;color:var(--gray);
  font-size:.92rem;line-height:1.5;}
.idr-cal-none{padding-top:4px;}

.idr-slots{margin-top:14px;}
.idr-slots-note{font-size:.88rem;color:var(--gray);margin-bottom:8px;}
.idr-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;}
.idr-slot{min-height:46px;border:2px solid rgba(10,71,173,.2);border-radius:11px;background:#fff;
  color:var(--ink);font-family:'Inter',sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;
  transition:border-color .16s,background .16s,color .16s;}
.idr-slot:hover{border-color:var(--ice);background:rgba(42,166,255,.08);}
.idr-slot.is-pick{border-color:var(--ice-deep);background:var(--ice-deep);color:#fff;}

.idr-bnotes{margin-top:14px;}
.idr-bnotes textarea{width:100%;border:2px solid rgba(10,71,173,.22);border-radius:12px;
  padding:12px 14px;font-family:'Inter',sans-serif;font-size:1rem;color:var(--ink);resize:vertical;}
.idr-bnotes textarea:focus{outline:none;border-color:var(--ice);
  box-shadow:0 0 0 4px rgba(42,166,255,.16);}
.idr-field .opt{color:var(--gray);font-weight:600;text-transform:none;letter-spacing:0;}

.idr-booked{text-align:center;padding:8px 0 4px;}
.idr-booked-ic{width:56px;height:56px;margin:0 auto 12px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:rgba(10,122,61,.12);}
.idr-booked-ic svg{width:30px;height:30px;fill:#0A7A3D;}
.idr-booked h3{font-family:'Anton',sans-serif;font-size:1.5rem;letter-spacing:.02em;
  text-transform:uppercase;color:var(--ink);margin:0 0 14px;}
.idr-booked-rows{text-align:left;margin-bottom:14px;}
.idr-booked-r{display:flex;justify-content:space-between;gap:12px;padding:9px 0;
  border-bottom:1px solid var(--border);font-size:.95rem;}
.idr-booked-r:last-child{border-bottom:0;}
.idr-booked-r span{color:var(--gray);font-weight:600;}
.idr-booked-r b{color:var(--ink);text-align:right;}

/* ======================================================= the quote wizard
   One question per screen, in the parent company's order. Everything is sized for a
   thumb: 56px targets, one column, nothing that needs a precise tap. */
.idr-wiz .idr-qt{font-family:'Anton',sans-serif;font-size:clamp(1.3rem,3.4vw,1.72rem);
  line-height:1.15;letter-spacing:.01em;text-transform:uppercase;color:var(--ink);margin:0 0 6px;}
.idr-wiz .idr-qs{font-size:.95rem;color:var(--gray);margin:0 0 14px;}
.idr-q{animation:idrStepIn .3s cubic-bezier(.16,1,.3,1) both;}
@keyframes idrStepIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.idr-q{animation:none;}}

.idr-qin{width:100%;height:58px;border:2px solid rgba(10,71,173,.24);border-radius:12px;
  padding:0 16px;margin-bottom:10px;font-family:'Inter',sans-serif;font-size:1.05rem;
  color:var(--ink);background:#fff;}
.idr-qin::placeholder{color:#8894A4;}
.idr-qin:focus{outline:none;border-color:var(--ice);box-shadow:0 0 0 4px rgba(42,166,255,.16);}

/* Progress dots, not a percentage: eight short steps read as quick, where "12%" after
   the first one reads as a long form. */
.idr-dots{display:flex;gap:6px;margin:0 0 16px;}
.idr-dots i{flex:1;height:8px;border-radius:4px;background:rgba(10,71,173,.16);transition:background .2s;}
.idr-dots i.done{background:var(--ice-glow);}
.idr-dots i.now{background:var(--ice-deep);box-shadow:0 0 0 2px rgba(42,166,255,.26);}

/* ---------- STEP ONE: ONE FIELD ----------
   The parent company's landing page asks for a zip with an input and a button and
   nothing else, and it converts. Until a zip is entered there is no form yet, only a
   question about coverage, so the icon tile, the subtitle, the progress dots and the
   question heading all wait until step two - the placeholder already says what to type,
   and the dots cannot show progress through something nobody has started.

   Presentation only: every element is still in the DOM, still labelled, and still read
   by a screen reader, so nothing is lost for anyone not looking at it. */
.idr-wiz[data-idr-step="1"] .idr-form-icon,
.idr-wiz[data-idr-step="1"] .idr-form-sub,
.idr-wiz[data-idr-step="1"] .idr-dots,
.idr-wiz[data-idr-step="1"] .idr-q[data-q="1"] .idr-qt{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.idr-wiz[data-idr-step="1"] .idr-form-title{margin-bottom:14px;}
/* The field is the whole step, so it is sized like it. */
.idr-wiz[data-idr-step="1"] .idr-qin{height:64px;font-size:1.15rem;margin-bottom:0;}
.idr-wiz[data-idr-step="1"] .idr-wiz-nav{margin-top:12px;}
.idr-wiz[data-idr-step="1"] .idr-submit{height:64px;}

.idr-opts{display:grid;grid-template-columns:1fr;gap:9px;margin-bottom:4px;}
.idr-opts.two{grid-template-columns:1fr 1fr;}
@media(max-width:420px){.idr-opts.two{grid-template-columns:1fr;}}
.idr-opt{min-height:58px;padding:0 16px;border:2px solid rgba(10,71,173,.22);border-radius:12px;
  background:#fff;color:var(--ink);font-family:'Inter',sans-serif;font-size:1rem;font-weight:700;
  text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .15s;}
.idr-opt:hover{border-color:var(--ice);background:rgba(42,166,255,.07);}
.idr-opt.is-on{border-color:var(--ice-deep);background:var(--ice-deep);color:#fff;}

.idr-ferr{margin:0 0 12px;padding:11px 14px;border-left:4px solid var(--heat-deep);
  background:rgba(216,69,0,.09);color:#9E3400;font-size:.95rem;font-weight:700;border-radius:0 8px 8px 0;}

.idr-wiz-nav{display:flex;align-items:center;gap:12px;margin-top:16px;}
.idr-wiz-nav .idr-submit{flex:1;margin:0;}
.idr-wiz-back{flex-shrink:0;background:none;border:0;color:var(--gray);font-family:'Inter',sans-serif;
  font-size:.94rem;font-weight:700;cursor:pointer;padding:10px 4px;}
.idr-wiz-back:hover{color:var(--ice-deep);}
.idr-submit.is-ready{animation:idrReady 1.35s ease-in-out infinite;}
@keyframes idrReady{0%,100%{transform:scale(1);}50%{transform:scale(1.03);}}
@media(prefers-reduced-motion:reduce){.idr-submit.is-ready{animation:none;}}

.idr-done{text-align:center;}
.idr-done h3{font-family:'Anton',sans-serif;font-size:1.6rem;letter-spacing:.02em;
  text-transform:uppercase;color:var(--ink);margin:0 0 14px;}

/* ---- the overlay the wizard moves into ---- */
.idr-ov{position:fixed;inset:0;z-index:9000;background:rgba(6,15,26,.76);display:none;
  align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto;
  -webkit-overflow-scrolling:touch;}
.idr-ov.is-open{display:flex;}
.idr-mod{background:#fff;border-radius:16px;width:100%;max-width:620px;margin:auto;
  position:relative;box-shadow:0 30px 70px rgba(0,0,0,.5);}
.idr-mod-head{background:linear-gradient(135deg,var(--ink-2),var(--ink));color:#fff;
  border-radius:16px 16px 0 0;padding:20px 60px 20px 24px;}
.idr-mod-head b{display:block;font-family:'Anton',sans-serif;font-size:1.72rem;
  line-height:1.08;letter-spacing:.01em;text-transform:uppercase;}
.idr-mod-head span{display:block;color:var(--frost);font-size:.95rem;margin-top:5px;}
.idr-mod-body{padding:22px;}
/* The card loses its own shell inside the modal: the modal is the shell. */
.idr-mod-body .idr-form{box-shadow:none;border:0;border-radius:0;padding:0;background:none;}
.idr-mod-body .idr-form::before{display:none;}
.idr-mod-body .idr-form-icon,.idr-mod-body .idr-form-foot{display:none;}
.idr-mod-body [data-idr-maintitle]{display:none !important;}
.idr-mod-x{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;
  border:0;background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1;cursor:pointer;}
.idr-mod-x:hover{background:rgba(255,255,255,.3);}
.idr-mod-call{border-top:1px solid var(--border);padding:14px 22px;text-align:center;
  font-size:.95rem;color:var(--gray);border-radius:0 0 16px 16px;}
.idr-mod-call a{color:var(--heat-deep);font-weight:800;}
body.idr-lock{overflow:hidden;}
/* On a phone the overlay is the screen, not a card floating on it. */
@media(max-width:620px){
  .idr-ov{padding:0;align-items:stretch;}
  .idr-mod{border-radius:0;max-width:none;min-height:100%;}
  .idr-mod-head{border-radius:0;padding:18px 56px 18px 18px;}
  .idr-mod-head b{font-size:1.45rem;}
  .idr-mod-body{padding:18px;}
  .idr-mod-call{border-radius:0;}
}

/* A guide whose article is not written yet. The pruner leaves the card markup intact
   but drops the link, so it keeps its shape and reads as pending rather than broken. */
.idr-guide[data-idr-unlinked]{opacity:.6;cursor:default;}
.idr-guide[data-idr-unlinked]:hover{background:rgba(255,255,255,.04);transform:none;
  border-color:rgba(42,166,255,.25);}
.idr-guide[data-idr-unlinked] svg{display:none;}
.idr-light .idr-guide[data-idr-unlinked]:hover{background:#fff;border-color:var(--border);}

/* ---- address autocomplete ---- */
.idr-ac{position:relative;}
.idr-ac .idr-qin{margin-bottom:0;}
.idr-ac-list{position:absolute;left:0;right:0;top:100%;z-index:60;background:#fff;
  border:2px solid var(--ice);border-top:0;border-radius:0 0 12px 12px;
  box-shadow:0 14px 30px rgba(13,33,55,.22);display:none;max-height:260px;overflow-y:auto;}
.idr-ac-list.is-on{display:block;}
.idr-ac-item{padding:13px 16px;font-size:1rem;color:var(--ink);cursor:pointer;
  border-bottom:1px solid var(--steel-2);}
.idr-ac-item:last-child{border-bottom:0;}
.idr-ac-item:hover{background:rgba(42,166,255,.1);}
/* The address field is followed by City, so the list needs clearance below it. */
.idr-q[data-q="6"] .idr-ac{margin-bottom:10px;}

/* ---- the prevention-systems band on a narrow phone ----
   The button carries white-space:nowrap so the label never breaks mid-phrase on
   desktop, but "See Prevention Systems" in Anton at 1.08rem plus the icon and 24px
   of side padding needs 330px. Inside a band with 32px padding that overflowed a
   320px viewport and gave the whole document a horizontal scrollbar. On a phone the
   button goes full width and the label is allowed to wrap instead. */
@media(max-width:600px){
  .idr-biz{padding:22px 16px;}
  .idr-biz-in{gap:16px;}
  .idr-biz-btn{width:100%;justify-content:center;white-space:normal;text-align:center;
    line-height:1.18;height:auto;min-height:52px;padding:14px 18px;font-size:1rem;}
}

/* ============ ONE EVENT, ONE CLAIM ============ */
.idr-chain{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;counter-reset:none;}
@media(max-width:1100px){.idr-chain{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:760px){.idr-chain{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:480px){.idr-chain{grid-template-columns:1fr;}}
.idr-link{background:rgba(255,255,255,.04);border:1px solid rgba(42,166,255,.25);display:flex;flex-direction:column;position:relative;}
.idr-link:not(:last-child)::after{content:'';position:absolute;top:38%;right:-13px;width:10px;height:10px;border-top:2px solid var(--ice);border-right:2px solid var(--ice);transform:rotate(45deg);z-index:2;}
@media(max-width:1100px){.idr-link::after{display:none;}}
.idr-link-ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:#0C1724;}
.idr-link-ph img{width:100%;height:100%;object-fit:cover;display:block;}
.idr-link-ph .n{position:absolute;left:10px;bottom:8px;font-family:'Anton',sans-serif;font-size:2rem;line-height:1;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.65);}
.idr-link-in{padding:16px 16px 18px;}
.idr-link h3{font-size:1.08rem;margin:0 0 6px;line-height:1.2;}
.idr-link h3 a{color:#fff;text-decoration:underline;text-decoration-color:rgba(42,166,255,.6);text-underline-offset:3px;}
.idr-link h3 a:hover{color:var(--ice-glow);}
.idr-link p{font-size:.92rem;color:#B9CBDD;margin:0;}
.idr-claimbox{margin-top:26px;display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:rgba(42,166,255,.08);border:1px solid rgba(42,166,255,.35);border-left:4px solid var(--heat,#FA7D08);padding:22px 24px;}
.idr-claimbox>div{flex:1 1 520px;min-width:0;}
.idr-claimbox h3{font-size:1.2rem;margin:0 0 10px;color:#fff;}
.idr-claimbox ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.idr-claimbox li{font-size:.95rem;color:#C6D6E6;padding-left:18px;position:relative;}
.idr-claimbox li::before{content:'';position:absolute;left:0;top:.6em;width:7px;height:7px;background:var(--ice);}
.idr-claimbox li strong{color:#fff;}
.idr-claimbox .idr-btn{flex-shrink:0;max-width:100%;white-space:normal;text-align:center;}
@media(max-width:620px){.idr-claimbox{padding:18px 16px;}.idr-claimbox .idr-btn{width:100%;justify-content:center;}}

/* Ten service cards in three columns leave one alone on the last row; center it. */
@media(min-width:981px){.idr-svcs>*:last-child:nth-child(3n+1){grid-column:2;}}

/* In-person estimate fee on the "how would you like your estimate" step. */
.idr-opt .idr-opt-main{display:block;}
.idr-opt .idr-opt-sub{display:block;font-size:.82rem;font-weight:600;opacity:.75;margin-top:2px;}
.idr-opt[hidden]{display:none;}
.idr-modefee{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--heat);background:rgba(250,125,8,.08);
  font-size:.9rem;line-height:1.45;color:var(--ink);border-radius:0 8px 8px 0;}

/* "Is this the property address?" confirmation under the address field. */
.idr-addr-conf{margin:8px 0 6px;padding:12px 14px;border:2px solid var(--ice-deep);border-radius:12px;background:rgba(42,166,255,.06);}
.idr-addr-conf[hidden]{display:none;}
.idr-addr-q{margin:0 0 4px;font-size:.85rem;font-weight:700;color:var(--ink);}
.idr-addr-a{margin:0 0 10px;font-size:1rem;font-weight:800;color:var(--ink);}
.idr-addr-btns{display:flex;gap:8px;flex-wrap:wrap;}
.idr-addr-btns button{min-height:44px;padding:0 14px;border-radius:10px;font-weight:700;font-size:.92rem;cursor:pointer;border:2px solid var(--ice-deep);}
.idr-addr-yes{background:var(--ice-deep);color:#fff;}
.idr-addr-no{background:#fff;color:var(--ice-deep);}

/* "Not a Zoom person?" phone call option on the estimate step. */
.idr-phonepref{display:flex;gap:10px;align-items:flex-start;margin:10px 0 0;padding:10px 12px;border:1px solid rgba(10,71,173,.22);border-radius:10px;
  background:#fff;font-size:.88rem;line-height:1.45;color:var(--ink);cursor:pointer;}
.idr-phonepref input{margin-top:3px;width:18px;height:18px;flex-shrink:0;accent-color:var(--ice-deep);}
.idr-phonepref[hidden]{display:none;}
