/* =============================================================
   iDust uRest core stylesheet
   Mobile-first. One rule per component; per-section variation
   arrives as inline custom properties, never as a new rule.
   Palette, type and layout follow the live idusturest.com home.
   ============================================================= */

/* ---------- 1. Tokens ---------------------------------------- */

:root{
  --c-primary:      #0084B4;
  --c-primary-600:  #00739E;
  --c-primary-700:  #006A91;
  --c-primary-800:  #005F82;
  --c-primary-900:  #0B334A;
  --c-primary-ink:  #06202F;
  --c-primary-300:  #7FE7E3;
  --c-primary-400:  #37DED8;
  --c-primary-050:  #E6F6F8;
  --c-primary-100:  #BFECF0;
  --c-primary-025:  #F2F9FB;

  --c-accent:       #00C2C2;
  --c-accent-600:   #00A3A3;
  --c-success:      #12B76A;
  --c-gold:         #F5B324;

  --c-ink:          #0F3B54;
  --c-ink-2:        #4A6B80;
  --c-ink-3:        #7A94A6;
  --c-line:         #D6EBEF;
  --c-surface:      #FFFFFF;
  --c-surface-2:    #F2F9FB;
  --c-bg:           #FFFFFF;

  --font-head: 'Montserrat', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Montserrat', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;

  --sp-xs: .5rem;  --sp-sm: 1rem;  --sp-md: 2rem;
  --sp-lg: 3.5rem; --sp-xl: 5.5rem;
  --radius: 16px;  --radius-sm: 10px;  --radius-lg: 24px;
  --shadow-sm: 0 1px 2px rgba(11,51,74,.05), 0 2px 8px rgba(11,51,74,.05);
  --shadow-md: 0 8px 24px rgba(11,51,74,.08), 0 2px 6px rgba(11,51,74,.04);
  --shadow-lg: 0 24px 60px rgba(0,132,180,.18);

  --w-wide: 1320px;  --w-normal: 1120px;  --w-narrow: 760px;
  --callbar: 0px;

  /* Subtle textures. Inline SVG so nothing is fetched. */
  --tex-dots: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Ccircle cx='2' cy='2' r='1.2' fill='%230389D2' fill-opacity='.10'/%3E%3C/svg%3E");
  --tex-lines: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M0 40 40 0' stroke='%2306A9FE' stroke-opacity='.07' stroke-width='1'/%3E%3C/svg%3E");
  --tex-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M48 0H0v48' fill='none' stroke='%23FFFFFF' stroke-opacity='.10' stroke-width='1'/%3E%3C/svg%3E");
}

@media (max-width:860px){ :root{ --callbar: 58px; } }

/* ---------- 2. Reset ----------------------------------------- */

*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto } }

body{
  margin:0; font-family:var(--font-body); font-size:1rem; line-height:1.7;
  color:var(--c-ink-2); background:var(--c-bg);
  -webkit-font-smoothing:antialiased; overflow-x:hidden; padding-bottom:var(--callbar);
}
img,svg,video{ max-width:100%; height:auto; display:block }
[hidden]{ display:none!important }
img.idr-img,.idr-scard-media img,.ctr-card-img img{ background:var(--c-surface-2) }

h1,h2,h3,h4,h5{
  font-family:var(--font-head); font-weight:700; line-height:1.15; letter-spacing:-.02em;
  margin:0 0 .5em; text-wrap:balance; color:var(--c-primary-900);
}
h1{ font-size:clamp(2.1rem, 1.4rem + 2.8vw, 3.3rem); font-weight:800 }
h2{ font-size:clamp(1.75rem, 1.25rem + 1.9vw, 2.75rem) }
h3{ font-size:clamp(1.1rem, 1.02rem + .4vw, 1.3rem) }
h4{ font-size:1.05rem }
h1 em,h2 em,h3 em{ font-style:italic; color:var(--c-primary); font-weight:800 }

p{ margin:0 0 1.1em }
p:last-child{ margin-bottom:0 }
a{ color:var(--c-primary-700); text-underline-offset:.18em }
a:hover{ color:var(--c-primary-900) }
ul,ol{ padding-left:1.15rem }
li{ margin-bottom:.4em }
hr{ border:0; border-top:1px solid var(--c-line); margin:var(--sp-md) 0 }
strong{ color:var(--c-primary-900) }
:focus-visible{ outline:3px solid var(--c-primary-700); outline-offset:2px; border-radius:4px }
::selection{ background:var(--c-primary-100); color:var(--c-primary-ink) }

.screen-reader-text{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0 }
.skip-link{ position:absolute; left:-9999px; top:0; z-index:200; background:var(--c-primary-900); color:#fff; padding:.75rem 1.25rem; border-radius:0 0 8px 0 }
.skip-link:focus{ left:0 }

/* ---------- 3. Container & grid ------------------------------ */

.ctr-container{ padding-block:var(--pt, var(--sp-lg)) var(--pb, var(--sp-lg)); background:var(--bg, transparent); position:relative }
.ctr-container--bgimg{ background-image:var(--bg-img); background-size:cover; background-position:center }
.ctr-inner{ margin-inline:auto; padding-inline:16px; max-width:var(--w-normal); position:relative }
@media (min-width:600px){ .ctr-inner{ padding-inline:clamp(1.25rem,4vw,2.5rem) } }
.ctr-container--wide   > .ctr-inner{ max-width:var(--w-wide) }
.ctr-container--narrow > .ctr-inner{ max-width:var(--w-narrow) }
.ctr-container--full   > .ctr-inner{ max-width:none; padding-inline:0 }

.ctr-grid{ display:grid; grid-template-columns:repeat(var(--cols,2),minmax(0,1fr)); gap:var(--gap, var(--sp-sm)) }
@media (max-width:980px){ .ctr-grid{ grid-template-columns:repeat(var(--cols-md,2),minmax(0,1fr)) } }
@media (max-width:640px){ .ctr-grid{ grid-template-columns:repeat(var(--cols-sm,1),minmax(0,1fr)) } }

/* Section surfaces. The textures are faint on purpose. */
.idr-tint{ background:var(--c-surface-2) }
.idr-tint--dots{ background:var(--c-surface-2) var(--tex-dots) }
.idr-tint--lines{ background:var(--c-surface-2) var(--tex-lines) }
.idr-white--dots{ background:#fff var(--tex-dots) }
/* The live site's faint 55px grid, faded out towards the edges. */
.idr-tint--grid{ background:var(--c-surface-2); position:relative }
.idr-tint--grid::before{ content:''; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(0,132,180,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(0,132,180,.022) 1px,transparent 1px); background-size:55px 55px; -webkit-mask-image:radial-gradient(ellipse at center,#000 40%,transparent 88%); mask-image:radial-gradient(ellipse at center,#000 40%,transparent 88%) }
.idr-tint--grid > *{ position:relative }
.idr-dark{ background:linear-gradient(160deg,var(--c-primary-ink) 0%,var(--c-primary-900) 70%); color:#fff }
.idr-band{
  background:linear-gradient(135deg,var(--c-primary) 0%,var(--c-primary-400) 55%,var(--c-primary-300) 100%);
  color:#fff; position:relative; overflow:hidden;
}
.idr-band::before{ content:''; position:absolute; inset:0; background:var(--tex-grid); pointer-events:none }
.idr-band > .ctr-inner{ position:relative; z-index:1 }
.idr-dark h1,.idr-dark h2,.idr-dark h3,.idr-dark h4,.idr-band h1,.idr-band h2,.idr-band h3{ color:#fff }
.idr-dark h2 em,.idr-band h2 em{ color:#fff; text-decoration:underline; text-decoration-color:rgba(255,255,255,.55); text-underline-offset:.14em; text-decoration-thickness:2px }
.idr-dark p,.idr-band p{ color:rgba(255,255,255,.9) }
.idr-dark a,.idr-band a{ color:#fff }
.idr-dark .idr-eyebrow,.idr-band .idr-eyebrow{ color:#fff }

/* ---------- 4. Typographic helpers --------------------------- */

.idr-eyebrow{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-head);
  font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--c-primary); margin:0 0 .9rem;
}
.idr-star{ display:inline-block; font-style:normal; color:var(--c-primary); line-height:1 }
.idr-eyebrow .idr-star{ font-size:.7em; color:inherit; opacity:.85 }
.idr-lead{ font-size:clamp(1rem,.96rem + .3vw,1.15rem); color:var(--c-ink-2); max-width:64ch }
.idr-center{ text-align:center }
.idr-center .idr-lead,.idr-center .idr-eyebrow{ margin-inline:auto }
.idr-section-head{ max-width:780px; margin-bottom:42px }
.idr-section-head.idr-center{ margin-inline:auto }
.idr-section-head--wide{ max-width:none }
/* Section titles measured off the live site: medium weight, tight tracking, bold italic accent. */
.idr-section-head h2{ font-size:clamp(1.6rem,4.6vw,2.75rem); line-height:1.12; letter-spacing:-.03em; font-weight:500; color:var(--c-primary-700); margin:0 0 13px }
.idr-section-head h2 em{ color:#37DED8; font-weight:800 }
.idr-band .idr-section-head h2,.idr-dark .idr-section-head h2{ color:#fff }
.idr-band .idr-section-head h2 em,.idr-dark .idr-section-head h2 em{ color:#fff; border-bottom:3px solid rgba(255,255,255,.5); padding-bottom:1px }
.idr-section-head .idr-lead{ font-size:.98rem; line-height:1.65; max-width:none; margin:0 }
.idr-section-head .idr-eyebrow{ font-size:11px; letter-spacing:.24em; color:#00739E; margin-bottom:13px }
.idr-section-head .idr-eyebrow .idr-star{ font-size:9px; color:#7FE7E3; opacity:1 }
/* On blue or dark bands the eyebrow goes white (the rule above would win on specificity otherwise). */
.idr-band .idr-section-head .idr-eyebrow,.idr-dark .idr-section-head .idr-eyebrow,.idr-page-hero .idr-section-head .idr-eyebrow{ color:#fff }
.idr-band .idr-section-head .idr-eyebrow .idr-star,.idr-dark .idr-section-head .idr-eyebrow .idr-star,.idr-page-hero .idr-section-head .idr-eyebrow .idr-star{ color:rgba(255,255,255,.8) }
.idr-more{ font-family:var(--font-head); font-weight:700; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--c-primary); text-decoration:none; display:inline-flex; align-items:center; gap:.4rem }
.idr-more:hover{ color:var(--c-primary-700) }

/* ---------- 5. Buttons --------------------------------------- */

.ctr-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:48px; padding:.85rem 1.75rem; border-radius:999px;
  font-family:var(--font-head); font-weight:700; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; line-height:1.2;
  text-decoration:none; border:2px solid transparent; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}
.ctr-btn:active{ transform:translateY(1px) }
.ctr-btn svg{ width:16px; height:16px; flex:none }
.ctr-btn .idr-star{ color:inherit; font-size:.9em }

.ctr-btn--primary{ background:linear-gradient(120deg,#055E80 0%,#0084B4 52%,#0E8193 100%); color:#fff; box-shadow:0 8px 20px rgba(0,132,180,.32); position:relative; overflow:hidden; isolation:isolate }
.ctr-btn--primary::after{ content:''; position:absolute; top:0; left:0; width:60%; height:100%; background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.5) 50%,transparent 100%); transform:skewX(-20deg) translateX(-230%); pointer-events:none; z-index:1 }
.ctr-btn--primary:hover::after{ transform:skewX(-20deg) translateX(360%); transition:transform .75s ease }
.ctr-btn--primary:hover{ color:#fff; box-shadow:0 12px 28px rgba(3,137,210,.42); transform:translateY(-1px) }
.ctr-btn--accent{ background:var(--c-accent); color:#fff; box-shadow:var(--shadow-sm) }
.ctr-btn--accent:hover{ background:var(--c-accent-600); color:#fff; box-shadow:var(--shadow-md) }
.ctr-btn--light{ background:#fff; color:var(--c-primary-700); box-shadow:0 6px 18px rgba(11,51,74,.14) }
.ctr-btn--light:hover{ background:var(--c-primary-050); color:var(--c-primary-900) }
.ctr-btn--ghost{ border-color:var(--c-primary-100); color:var(--c-primary-700); background:#fff }
.ctr-btn--ghost:hover{ border-color:var(--c-primary); color:var(--c-primary) }
.ctr-btn--ghost-light{ border-color:rgba(255,255,255,.6); color:#fff; background:transparent }
.ctr-btn--ghost-light:hover{ background:rgba(255,255,255,.14); color:#fff }
.idr-btn-row{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:var(--sp-sm) }
@media (max-width:420px){ .idr-btn-row .ctr-btn{ width:100% } }
/* Header CTA reads bigger than the generic pill. */
.idr-header-cta{ font-size:.9rem; letter-spacing:.1em; padding:.85rem 1.6rem; font-weight:800 }

/* ---------- 6. Header ---------------------------------------- */

.idr-topbar{ background:linear-gradient(90deg,#20B4C4,#4ACFD2); color:#fff; font-size:.8rem; font-weight:600 }
.idr-topbar-inner{ max-width:var(--w-wide); margin-inline:auto; padding:.45rem clamp(1rem,4vw,2.5rem); display:flex; gap:1.25rem; align-items:center; justify-content:space-between }
.idr-topbar-left{ display:flex; gap:1.25rem; align-items:center; flex-wrap:wrap }
.idr-topbar a,.idr-topbar span{ color:#fff; text-decoration:none; display:inline-flex; align-items:center; gap:.4rem }
.idr-topbar a:hover{ text-decoration:underline }
.idr-topbar svg{ width:14px; height:14px; opacity:.9 }
.idr-topbar-social{ display:flex; gap:.5rem }
.idr-topbar-social a{ width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.18); display:grid; place-items:center }
.idr-topbar-social svg{ width:13px; height:13px }
@media (max-width:860px){ .idr-topbar-left a{ display:none } .idr-topbar{ font-size:.74rem } }

.site-header{ position:sticky; top:0; z-index:60; background:var(--c-surface); border-bottom:1px solid var(--c-line); transition:box-shadow .2s ease }
.site-header.is-stuck{ box-shadow:0 8px 24px rgba(11,51,74,.08) }
.site-header-inner{ max-width:var(--w-wide); margin-inline:auto; display:flex; align-items:center; gap:1rem; padding:.55rem 16px; min-height:64px }
@media (min-width:600px){ .site-header-inner{ padding-inline:clamp(1.25rem,4vw,2.5rem) } }
.site-brand{ display:flex; align-items:center; text-decoration:none; flex:none }
.site-brand img{ max-height:54px; width:auto; background:transparent }
@media (min-width:861px){ .site-brand img{ max-height:72px } }
.site-brand-text{ font-family:var(--font-head); font-weight:800; font-size:1.15rem; color:var(--c-primary-900) }

.site-nav{ margin-left:auto }
@media (min-width:1080px){ .site-nav{ flex:1 1 auto; margin:0; display:flex; justify-content:center; position:relative } }
.site-nav .menu{ display:flex; gap:1.6rem; list-style:none; margin:0; padding:0; align-items:center }
@media (min-width:1080px){ .site-nav .menu{ justify-content:center } }
.site-nav .menu li{ margin:0; position:relative }
.site-nav .menu a{ text-decoration:none; color:var(--c-primary-900); font-weight:700; font-size:.92rem; padding:.5rem 0; display:inline-flex; align-items:center; gap:.3rem; position:relative }
.site-nav .menu a::after{ content:''; position:absolute; left:0; right:100%; bottom:.15rem; height:2px; background:var(--c-primary); transition:right .2s ease }
.site-nav .menu a:hover::after,.site-nav .menu .current-menu-item > a::after{ right:0 }
.site-nav .menu-item-has-children:not(.idr-mega) > a::before{ content:''; order:2; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); margin-left:.25rem; opacity:.7 }

/* Desktop dropdowns stay in the layout (opacity/visibility, not display) so
   the close has a grace period and the panel is reachable: an invisible
   bridge (::before) fills the gap between the link and the panel, and the
   visibility delay keeps the panel hoverable for 300ms after the pointer
   leaves the trigger. */
.site-nav .sub-menu{
  position:absolute; left:50%; top:100%; transform:translateX(-50%) translateY(6px); min-width:280px;
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius);
  box-shadow:0 24px 60px rgba(11,51,74,.14); padding:.6rem; list-style:none; margin:.6rem 0 0;
  display:flex; flex-direction:column; gap:0; z-index:70;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .16s ease, transform .16s ease, visibility 0s linear .3s;
}
.site-nav .sub-menu::before{ content:''; position:absolute; left:0; right:0; bottom:100%; height:1.6rem }
.site-nav .menu-item-has-children:hover > .sub-menu,.site-nav .menu-item-has-children:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); transition-delay:0s;
}
.site-nav .menu-item-has-children > a{ padding-bottom:.9rem; margin-bottom:-.4rem }
.site-nav .sub-menu a{ padding:.5rem .75rem; border-radius:10px; width:100%; font-weight:600; display:flex; flex-direction:column; gap:.05rem; align-items:flex-start }
.site-nav .sub-menu a small{ font-size:.72rem; color:var(--c-ink-3); font-weight:500 }
.site-nav .sub-menu a::after,.site-nav .sub-menu a::before{ display:none }
.site-nav .sub-menu a:hover{ background:var(--c-primary-050); color:var(--c-primary-700) }
.site-nav .sub-menu .idr-menu-all a{ color:var(--c-primary); font-size:.8rem; letter-spacing:.06em; text-transform:uppercase }
.site-nav .sub-menu .idr-menu-all{ border-top:1px solid var(--c-line); margin-top:.4rem; padding-top:.5rem }
.site-nav .sub-menu .idr-menu-all a{ font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--c-primary) }

.idr-header-actions{ display:none; align-items:center; gap:1.1rem; margin-left:1.25rem }
@media (min-width:1080px){ .idr-header-actions{ display:flex } }
.idr-header-call{ display:inline-flex; align-items:center; gap:.6rem; text-decoration:none }
.idr-header-call-icon{ width:38px; height:38px; border-radius:50%; background:var(--c-primary); color:#fff; display:grid; place-items:center; box-shadow:0 6px 16px rgba(0,132,180,.35) }
.idr-header-call-icon svg{ width:17px; height:17px }
.idr-header-call small{ display:block; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--c-ink-3); line-height:1.3; font-weight:700 }
.idr-header-call strong{ display:block; font-family:var(--font-head); font-size:1rem; font-weight:800; color:var(--c-primary-900); line-height:1.1 }
.idr-header-call:hover strong{ color:var(--c-primary) }
.idr-header-cta{ margin-left:0; min-height:44px; padding:.7rem 1.4rem }

.nav-toggle{ display:none; background:none; border:0; margin-left:auto; width:44px; height:44px; padding:10px; cursor:pointer; color:var(--c-primary-900); border-radius:12px; border:1px solid var(--c-line) }
.nav-toggle span{ display:block; width:22px; height:2px; background:currentColor; border-radius:2px; transition:transform .22s ease, opacity .15s ease }
.nav-toggle span + span{ margin-top:5px }
.idr-header-tel{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:var(--c-primary); color:#fff; margin-left:auto; flex:none; box-shadow:0 6px 16px rgba(0,132,180,.35) }
.idr-header-tel svg{ width:18px; height:18px }
@media (min-width:1080px){ .idr-header-tel{ display:none } }

@media (max-width:1079px){
  .nav-toggle{ display:block }
  .site-nav{ margin-left:0 }
  .site-nav .menu{
    display:none; position:absolute; left:0; right:0; top:100%; background:#fff; flex-direction:column; align-items:stretch; gap:0;
    padding:.5rem 16px 1.25rem; border-bottom:1px solid var(--c-line); box-shadow:0 24px 50px rgba(11,51,74,.14);
    max-height:calc(100vh - 64px); overflow-y:auto;
  }
  .site-nav.is-open .menu{ display:flex }
  .site-nav .menu > li{ border-bottom:1px solid var(--c-line) }
  .site-nav .menu > li:last-child{ border-bottom:0 }
  .site-nav .menu a{ padding:.9rem .25rem; font-size:1.02rem; min-height:48px }
  .site-nav .menu a::after{ display:none }
  .site-nav .sub-menu{ position:static; transform:none; display:flex; opacity:1; visibility:visible; pointer-events:auto; transition:none; box-shadow:none; border:0; border-radius:0; margin:0 0 .5rem .75rem; padding:0; background:transparent; min-width:0 }
  .site-nav .sub-menu::before{ display:none }
  .site-nav .menu-item-has-children > a{ padding-bottom:.9rem; margin-bottom:0 }
  .site-nav .sub-menu a{ font-size:.95rem; color:var(--c-ink-2); padding:.55rem .25rem; min-height:0 }
  .site-nav .sub-menu a small{ display:none }
  .site-nav.is-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
  .site-nav.is-open .nav-toggle span:nth-child(2){ opacity:0 }
  .site-nav.is-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }
}

/* ---------- 7. Mobile bar (compact) and desktop floaters ---- */

.idr-callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:80; display:none; gap:.5rem;
  padding:.45rem .75rem calc(.45rem + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.86); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-top:1px solid var(--c-line);
}
.idr-callbar a{
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  min-height:40px; border-radius:999px; font-family:var(--font-head); font-weight:700; font-size:.8rem; text-decoration:none;
}
.idr-callbar svg{ width:15px; height:15px }
.idr-cb-call{ background:var(--c-primary); color:#fff }
.idr-cb-quote{ background:#fff; color:var(--c-primary-700); border:1.5px solid var(--c-primary-100) }
@media (max-width:860px){ .idr-callbar{ display:flex } }

.idr-float{ position:fixed; right:22px; bottom:28px; z-index:75; display:none; flex-direction:column; gap:.7rem }
@media (min-width:1024px){ .idr-float{ display:flex } }
.idr-float-btn{
  width:54px; height:54px; border-radius:50%; display:grid; place-items:center; color:#fff; position:relative;
  box-shadow:0 12px 26px rgba(11,51,74,.22); transition:transform .18s ease, box-shadow .18s ease;
}
.idr-float-btn svg{ width:22px; height:22px }
.idr-float-btn:hover{ transform:translateY(-3px) scale(1.04); color:#fff; box-shadow:0 16px 32px rgba(11,51,74,.28) }
.idr-float-btn--quote{ background:var(--c-primary) }
.idr-float-btn--sms{ background:var(--c-primary-700) }
.idr-float-btn--call{ background:var(--c-primary-ink) }
.idr-float-btn::after{
  content:attr(data-tip); position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%) translateX(6px);
  background:var(--c-primary-ink); color:#fff; font-family:var(--font-head); font-size:.74rem; font-weight:700; letter-spacing:.04em;
  padding:.4rem .7rem; border-radius:8px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .15s ease, transform .15s ease;
}
.idr-float-btn:hover::after{ opacity:1; transform:translateY(-50%) translateX(0) }

/* ---------- 8. Hero ------------------------------------------ */

.idr-hero{ position:relative; overflow:hidden; color:#fff; background:var(--c-primary) }
.idr-hero > .ctr-inner{ position:static }
.idr-hero .idr-hero-grid{ position:relative; z-index:3 }

/* Photo slideshow: eight photos, a CSS crossfade, five seconds each. */
.idr-hero-bgs{ position:absolute; inset:0; z-index:0; pointer-events:none }
.idr-hero-bgs img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 42%; opacity:0; animation:idr-bgslide 40s linear infinite; background:transparent }
@media (max-width:767px){ .idr-hero-bgs img{ animation:none; opacity:1 } .idr-hero-bgs img:not(:first-child){ display:none } }
.idr-hero-bgs img:nth-child(1){ animation-delay:0s }
.idr-hero-bgs img:nth-child(2){ animation-delay:5s }
.idr-hero-bgs img:nth-child(3){ animation-delay:10s }
.idr-hero-bgs img:nth-child(4){ animation-delay:15s }
.idr-hero-bgs img:nth-child(5){ animation-delay:20s }
.idr-hero-bgs img:nth-child(6){ animation-delay:25s }
.idr-hero-bgs img:nth-child(7){ animation-delay:30s }
.idr-hero-bgs img:nth-child(8){ animation-delay:35s }
@keyframes idr-bgslide{ 0%{opacity:0} 1.6%{opacity:1} 12.5%{opacity:1} 14.2%{opacity:0} 100%{opacity:0} }
@media (prefers-reduced-motion:reduce){ .idr-hero-bgs img{ animation:none } .idr-hero-bgs img:first-child{ opacity:1 } }
/* Veil: strong on the text side, lighter on the form side */
.idr-hero-bgs::after{ content:''; position:absolute; inset:0; background:linear-gradient(100deg,rgba(5,139,208,.94) 0%,rgba(0,132,180,.88) 35%,rgba(0,132,180,.72) 60%,rgba(93,199,254,.48) 100%),linear-gradient(0deg,rgba(4,122,183,.45) 0%,transparent 38%) }
/* Soft grid texture and a light bloom top-right */
.idr-hero::before{ content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:44px 44px; -webkit-mask-image:radial-gradient(ellipse at 28% 35%,#000 12%,rgba(0,0,0,.35) 58%,transparent 92%); mask-image:radial-gradient(ellipse at 28% 35%,#000 12%,rgba(0,0,0,.35) 58%,transparent 92%) }
.idr-hero::after{ content:''; position:absolute; top:-180px; right:-120px; width:560px; height:560px; background:radial-gradient(circle,rgba(255,255,255,.22) 0%,transparent 68%); pointer-events:none; z-index:1 }
.idr-bub{ position:absolute; z-index:2; border-radius:50%; border:1px solid rgba(255,255,255,.3); background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.16),rgba(255,255,255,.03) 62%); pointer-events:none; animation:idr-float 13s ease-in-out infinite }
.idr-bub.b1{ width:120px; height:120px; top:12%; left:46%; animation-delay:0s }
.idr-bub.b2{ width:58px; height:58px; top:66%; left:54%; animation-delay:-4s }
.idr-bub.b3{ width:84px; height:84px; top:8%; right:6%; animation-delay:-8s }
.idr-bub.b4{ width:38px; height:38px; bottom:22%; left:4%; animation-delay:-6s }
@keyframes idr-float{ 0%,100%{ transform:translateY(0) translateX(0) } 50%{ transform:translateY(-22px) translateX(10px) } }
@media (prefers-reduced-motion:reduce){ .idr-bub{ animation:none } }

.idr-hero h1{ color:#fff; font-size:clamp(1.9rem, 1.2rem + 2.6vw, 3.1rem); line-height:1.09; letter-spacing:-.04em; font-weight:700; margin-bottom:18px; text-shadow:0 2px 18px rgba(3,70,110,.45) }
.idr-hero h1 em{ font-style:italic; font-weight:800; font-size:1.07em; position:relative; color:#fff; background:linear-gradient(100deg,#BFECF0 0%,#FFFFFF 48%,#E6F6F8 74%,#BFECF0 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent }
.idr-hero .idr-lead,.idr-hero > .ctr-inner > p{ color:rgba(255,255,255,.94); font-size:1.02rem }
.idr-hero-grid{ display:grid; gap:var(--sp-md); align-items:center }
@media (min-width:980px){ .idr-hero-grid{ grid-template-columns:1.1fr .9fr; gap:var(--sp-lg) } }

.idr-pill{
  display:inline-flex; align-items:center; gap:9px; padding:8px 16px 8px 10px; border-radius:999px;
  background:rgba(255,255,255,.18); border:1.5px solid rgba(255,255,255,.5); box-shadow:0 10px 24px -12px rgba(3,80,125,.6);
  font-family:var(--font-head); font-size:.66rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:#fff; margin-bottom:16px;
}
.idr-pill .idr-star{ width:20px; height:20px; border-radius:50%; background:linear-gradient(135deg,#0084B4,#37DED8); display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:10px; flex:none }

.idr-stats{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; list-style:none; margin:var(--sp-md) 0 0; padding:0;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3); border-radius:14px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.idr-stats li{ margin:0; padding:.9rem 1rem; border-left:1px solid rgba(255,255,255,.25) }
.idr-stats li:first-child{ border-left:0 }
.idr-stats strong{ display:block; font-family:var(--font-head); font-weight:800; font-size:clamp(1.35rem,1.1rem + 1vw,1.7rem); line-height:1.05; letter-spacing:-.02em; color:#fff; background:linear-gradient(120deg,#FFFFFF 0%,#E6F6F8 55%,#BFECF0 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; white-space:nowrap }
.idr-stats li > span{ display:block; font-size:.56rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#E6F6F8; margin-top:5px }
.idr-stats strong{ display:flex; align-items:center; gap:.3rem }
.idr-stat-star{ font-size:.58em; line-height:1; color:#F5B301; -webkit-text-fill-color:#F5B301; background:none; -webkit-background-clip:border-box; background-clip:border-box; flex:none }
@media (max-width:640px){
  .idr-stats{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .idr-stats li:nth-child(3){ border-left:0 }
  .idr-stats li:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.25) }
}

/* Quote card */
.idr-quote-card{
  position:relative; background:#fff; border-radius:var(--radius-lg); padding:clamp(1.5rem,3vw,2rem) clamp(1.25rem,2.6vw,1.75rem) clamp(1.25rem,2.6vw,1.75rem);
  box-shadow:0 30px 70px rgba(11,51,74,.24); color:var(--c-ink);
}
.idr-quote-badge{
  position:absolute; top:-15px; left:50%; transform:translateX(-50%);
  display:inline-flex; align-items:center; gap:.4rem; background:var(--c-primary-700); color:#fff;
  font-family:var(--font-head); font-size:.66rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  padding:.42rem 1rem; border-radius:999px; box-shadow:0 8px 20px rgba(0,132,180,.4); white-space:nowrap;
}
.idr-quote-badge .idr-star{ color:#fff; font-size:.8em }
.idr-quote-card h2{ font-size:clamp(1.25rem,1.05rem + .8vw,1.55rem); margin:.4rem 0 .25rem; text-align:center; color:var(--c-primary-900) }
.idr-quote-card > p{ font-size:.86rem; color:var(--c-ink-2); margin-bottom:1rem; text-align:center }

.idr-qform{ display:grid; gap:.6rem }
.idr-qform-row{ display:grid; gap:.6rem; grid-template-columns:1fr 1fr }
@media (max-width:480px){ .idr-qform-row{ grid-template-columns:1fr } }
.idr-qform input,.idr-qform select,.idr-qform textarea{
  width:100%; font:inherit; font-size:.9rem; color:var(--c-ink); background:var(--c-surface-2);
  border:1.5px solid var(--c-line); border-radius:12px; padding:.72rem .95rem; min-height:46px; -webkit-appearance:none; appearance:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.idr-qform select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2356708A'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .7rem center; background-size:18px; padding-right:2.2rem; color:var(--c-ink-2) }
.idr-qform select:valid{ color:var(--c-ink) }
.idr-qform textarea{ resize:vertical; min-height:64px }
.idr-qform ::placeholder{ color:var(--c-ink-3) }
.idr-qform input:focus,.idr-qform select:focus,.idr-qform textarea:focus{ outline:none; border-color:var(--c-primary); box-shadow:0 0 0 4px rgba(0,132,180,.16); background:#fff }
.idr-qform .is-bad{ border-color:#E5484D }
.idr-qform-send{ width:100%; margin-top:.2rem }
.idr-qform-err{ margin:0; font-size:.84rem; color:#C8232B; font-weight:600 }
.idr-qform-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden }
.idr-qform-done{ display:grid; gap:.25rem; text-align:center; padding:1rem; background:var(--c-primary-050); border-radius:12px }
/* Long forms (jobs, referral) */
.idr-form{ max-width:860px; margin-inline:auto; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-lg); padding:clamp(1.25rem,3vw,2.25rem); box-shadow:var(--shadow-sm) }
.idr-form-h{ font-size:1.05rem; color:var(--c-primary-900); margin:1rem 0 .25rem; padding-bottom:.4rem; border-bottom:2px solid var(--c-primary-050) }
.idr-form-h:first-of-type{ margin-top:0 }
.idr-form-grid{ display:grid; gap:.75rem 1rem; grid-template-columns:1fr }
@media (min-width:600px){ .idr-form-grid{ grid-template-columns:1fr 1fr } .idr-form-field--wide{ grid-column:1/-1 } }
.idr-form-field{ display:grid; gap:.3rem }
.idr-form-field label{ font-size:.8rem; font-weight:700; color:var(--c-ink-2) }
.idr-form-check{ display:flex; gap:.6rem; align-items:flex-start; font-size:.88rem; color:var(--c-ink-2); cursor:pointer }
.idr-form-check input{ width:18px; height:18px; margin-top:.15rem; accent-color:var(--c-primary) }
.idr-form .idr-qform-send{ width:auto; min-width:220px; justify-self:start }
.idr-qform-done strong{ font-family:var(--font-head); font-size:1.05rem; color:var(--c-primary-900) }
.idr-qform-done span{ font-size:.88rem; color:var(--c-ink-2) }

/* ---------- 9. Marquee + wave -------------------------------- */

.idr-marquee{ background:var(--c-primary-700); color:#fff; overflow:hidden; padding:.75rem 0; display:flex }
.idr-marquee-track{ display:flex; gap:1.75rem; align-items:center; white-space:nowrap; padding-right:1.75rem; animation:idr-slide 45s linear infinite; flex:none }
.idr-marquee-track a{ color:#fff; text-decoration:none; font-family:var(--font-head); font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase }
.idr-marquee-track a:hover{ color:var(--c-primary-100) }
.idr-marquee-track .idr-star{ color:var(--c-primary-100); font-size:.7rem }
@keyframes idr-slide{ from{ transform:translateX(0) } to{ transform:translateX(-100%) } }
@media (prefers-reduced-motion:reduce){ .idr-marquee{ overflow-x:auto } .idr-marquee-track{ animation:none } }

.idr-wave{ display:block; width:100%; line-height:0; background:var(--c-primary-700); margin-bottom:-1px }
.idr-wave svg{ width:100%; height:64px; display:block }
@media (max-width:640px){ .idr-wave svg{ height:36px } }

/* ---------- 10. Reviews -------------------------------------- */

.idr-reviews{ background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-lg); padding:clamp(1.25rem,3vw,2.25rem); box-shadow:var(--shadow-md) }
.idr-reviews .ti-widget{ margin:0 }

/* ---------- 11. About ---------------------------------------- */

.idr-about{ display:grid; gap:var(--sp-md); align-items:center }
@media (min-width:980px){ .idr-about{ grid-template-columns:1.05fr .95fr; gap:var(--sp-xl) } }
.idr-about-media{ position:relative; padding:0 18px 18px 0 }
.idr-about-media::before{ content:''; position:absolute; right:0; bottom:0; width:calc(100% - 18px); height:calc(100% - 18px); border:2px solid var(--c-primary-100); border-radius:var(--radius-lg); pointer-events:none }
.idr-about-media img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-md); width:100%; aspect-ratio:4/5; object-fit:cover; position:relative; z-index:1 }
.idr-about-badge{ position:absolute; left:-12px; bottom:28px; z-index:2; background:#fff; border-radius:14px; padding:.9rem 1.1rem; box-shadow:0 18px 40px rgba(11,51,74,.16); font-family:var(--font-head); line-height:1.2 }
.idr-about-badge strong{ display:block; font-size:1.15rem; font-weight:800; color:var(--c-primary-900) }
.idr-about-badge span{ display:block; font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--c-primary); font-weight:700; margin-top:.2rem }
@media (max-width:979px){ .idr-about-badge{ left:8px } }
.idr-about-copy p{ font-size:.98rem }

/* ---------- 12. Cards (services, posts) ----------------------- */

.idr-scard{
  display:flex; flex-direction:column; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius);
  overflow:hidden; text-decoration:none; color:inherit; box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.idr-scard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--c-primary-100); color:inherit }
.idr-scard-media{ display:block; aspect-ratio:16/10; overflow:hidden; background:var(--c-primary-050); border-bottom:3px solid var(--c-primary) }
.idr-scard-media img{ width:100%; height:100%; object-fit:cover; transition:transform .45s ease }
.idr-scard:hover .idr-scard-media img{ transform:scale(1.05) }
.idr-scard-body{ padding:1.1rem 1.25rem 1.35rem; display:flex; flex-direction:column; gap:.45rem; flex:1 }
.idr-scard-title{ margin:0; font-size:1.02rem; display:flex; align-items:center; gap:.4rem }
.idr-scard-title a{ color:inherit; text-decoration:none }
.idr-scard-title .idr-star{ font-size:.75em }
.idr-scard-text{ margin:0; font-size:.88rem; color:var(--c-ink-2); flex:1 }
.idr-scard .idr-more{ margin-top:.35rem }
/* Home services grid: the live site's card, measure for measure. */
.idr-services .idr-scard{ border:1px solid rgba(0,132,180,.13); border-radius:16px; box-shadow:0 14px 32px -18px rgba(0,132,180,.18); transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease }
.idr-services .idr-scard:hover{ transform:translateY(-8px); border-color:rgba(0,132,180,.55); box-shadow:0 26px 50px -18px rgba(0,132,180,.3) }
.idr-services .idr-scard-media{ aspect-ratio:auto; height:172px; position:relative; border-bottom:0; background:#CDEFF2 }
.idr-services .idr-scard-media::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(0,132,180,.5) 100%) }
.idr-services .idr-scard-media img{ transition:transform .6s ease }
.idr-services .idr-scard:hover .idr-scard-media img{ transform:scale(1.07) }
.idr-services .idr-scard-body{ padding:20px 20px 22px; gap:0 }
.idr-services .idr-scard-title{ font-size:1.13rem; font-weight:800; color:var(--c-primary-900); margin:0 0 7px; letter-spacing:-.01em; gap:8px }
.idr-services .idr-scard-title .idr-star{ font-size:11px; color:#37DED8 }
.idr-services .idr-scard-text{ font-size:.87rem; line-height:1.55; margin:0 0 15px }
.idr-services .idr-more{ font-size:11.5px; font-weight:800; letter-spacing:.09em; gap:7px; margin:0; transition:gap .25s ease }
.idr-services .idr-more svg{ width:14px; height:14px; fill:currentColor }
.idr-services .idr-scard:hover .idr-more{ gap:12px }
.idr-services .idr-scard--cta{ background:linear-gradient(135deg,#0084B4 0%,#37DED8 60%,#7FE7E3 140%); border:1px solid rgba(255,255,255,.5); padding:30px 22px; border-radius:16px; box-shadow:0 18px 40px -18px rgba(0,132,180,.4); gap:0 }
.idr-services .idr-scard--cta h3{ font-size:1.25rem; margin:0 0 8px; letter-spacing:-.01em }
.idr-services .idr-scard--cta h3 em{ text-decoration:none; border-bottom:2px solid rgba(255,255,255,.5) }
.idr-services .idr-scard--cta p{ font-size:.86rem; margin:0 0 18px }
.idr-services .idr-scard--cta .ctr-btn{ padding:12px 24px; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:800; color:var(--c-primary-700); box-shadow:0 12px 26px -10px rgba(3,80,125,.35) }
.idr-services .idr-scard--cta .ctr-btn svg{ width:15px; height:15px; fill:#0084B4 }
.idr-scard-icon{ width:50px; height:50px; border-radius:13px; display:grid; place-items:center; background:var(--c-primary-050); color:var(--c-primary-700); margin:1.25rem 1.25rem 0 }
.idr-scard-icon svg{ width:26px; height:26px }

.idr-scard--cta{
  background:linear-gradient(150deg,var(--c-primary) 0%,var(--c-primary-400) 100%); color:#fff; border:0;
  align-items:center; justify-content:center; text-align:center; padding:2rem 1.5rem; gap:.6rem;
}
.idr-scard--cta h3{ color:#fff; font-size:1.15rem; margin:0 }
.idr-scard--cta h3 em{ color:#fff; text-decoration:underline; text-underline-offset:.14em }
.idr-scard--cta p{ color:rgba(255,255,255,.92); font-size:.88rem; margin:0 0 .5rem }
.idr-scard--cta:hover{ transform:none }

/* ---------- 13. Advantages ----------------------------------- */

.idr-adv{ display:grid; gap:1.25rem; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; margin:2.5rem 0 0; padding:0 }
@media (max-width:980px){ .idr-adv{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:560px){ .idr-adv{ grid-template-columns:1fr } }
.idr-adv li{ margin:0; position:relative; background:#fff; border-radius:var(--radius); padding:2.6rem 1.25rem 1.5rem; text-align:center; box-shadow:0 18px 40px rgba(3,110,180,.18) }
.idr-adv-icon{ position:absolute; top:-26px; left:50%; transform:translateX(-50%); width:56px; height:56px; border-radius:16px; display:grid; place-items:center; background:var(--c-primary); color:#fff; border:4px solid #fff; box-shadow:0 10px 24px rgba(3,110,180,.28) }
.idr-adv-icon svg{ width:24px; height:24px }
.idr-adv h3{ font-size:1.02rem; margin-bottom:.35rem; color:var(--c-primary-900) }
.idr-adv p{ margin:0; font-size:.88rem; color:var(--c-ink-2) }

/* ---------- 14. Steps ---------------------------------------- */

.idr-steps-wrap{ position:relative; margin-top:2.5rem }
.idr-steps{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; list-style:none; margin:0; padding:0 }
@media (max-width:860px){ .idr-steps{ grid-template-columns:1fr; max-width:520px; margin-inline:auto } }
.idr-steps li{ margin:0; position:relative; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:2.5rem 1.25rem 1.5rem; text-align:center; box-shadow:var(--shadow-sm) }
.idr-steps li::before{ content:''; position:absolute; left:16%; right:16%; top:0; height:3px; border-radius:0 0 4px 4px; background:var(--c-primary-100) }
.idr-step-icon{ position:absolute; top:-24px; left:50%; transform:translateX(-50%); width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:var(--c-primary); color:#fff; border:4px solid #fff; box-shadow:0 10px 24px rgba(0,132,180,.32) }
.idr-step-icon svg{ width:22px; height:22px }
.idr-steps h3{ font-size:1rem; margin-bottom:.35rem }
.idr-steps p{ font-size:.88rem; color:var(--c-ink-2); margin:0 }
.idr-steps-illus{ display:none }
@media (min-width:1200px){
  .idr-steps-wrap{ padding-left:170px }
  .idr-steps-illus{ display:block; position:absolute; left:-16px; bottom:0; width:190px }
  .idr-steps-illus img{ width:100%; height:auto; background:transparent }
}

/* ---------- 15. Cities --------------------------------------- */

.idr-cities-title{ margin-bottom:var(--sp-sm) }
.idr-cities-list{ list-style:none; margin:0; padding:0 }
.idr-cities-list li{ margin:0 }
.idr-city-pin svg{ width:17px; height:17px; color:var(--c-primary) }

.idr-cities--tiles .idr-cities-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:.5rem }
.idr-cities--tiles .idr-cities-list a{ display:flex; align-items:center; gap:.5rem; min-height:48px; padding:.65rem .9rem; border-radius:var(--radius-sm); background:#fff; border:1px solid var(--c-line); text-decoration:none; color:var(--c-primary-900); font-weight:700; font-size:.92rem; transition:border-color .15s ease, background-color .15s ease }
.idr-cities--tiles .idr-cities-list a:hover{ border-color:var(--c-primary); background:var(--c-primary-050); color:var(--c-primary-700) }
.idr-dark .idr-cities--tiles .idr-cities-list a{ background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.16); color:#fff }
.idr-dark .idr-cities--tiles .idr-cities-list a:hover{ background:rgba(255,255,255,.14); color:#fff }
.idr-dark .idr-city-pin svg{ color:var(--c-primary-300) }

.idr-cities-grid{ display:grid; gap:var(--sp-md); align-items:center }
@media (min-width:900px){ .idr-cities-grid{ grid-template-columns:1fr 1fr; gap:var(--sp-lg) } }
.idr-cities--list .idr-cities-list{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem 1rem }
@media (max-width:520px){ .idr-cities--list .idr-cities-list{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
.idr-cities--list .idr-cities-list a{ display:inline-flex; align-items:center; gap:.45rem; min-height:40px; text-decoration:none; color:var(--c-primary-900); font-weight:700; font-size:.9rem }
.idr-cities--list .idr-cities-list a:hover{ color:var(--c-primary) }
.idr-cities-media img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-md); width:100%; aspect-ratio:16/10; object-fit:cover }
.idr-cities-note{ text-align:left; max-width:56ch; margin:var(--sp-md) 0 0; font-size:.9rem; color:var(--c-primary-900) }
.idr-cities-actions{ margin-top:var(--sp-sm) }
.idr-cities-note a{ font-weight:700; text-decoration:none }

/* ---------- 16. CTA ------------------------------------------ */

.idr-cta{ position:relative; text-align:center; padding:clamp(1rem,3vw,2rem) 0; overflow:visible }
.idr-cta-rule{ display:block; width:44px; height:3px; border-radius:3px; background:var(--c-primary); margin:0 auto 1.25rem }
.idr-cta h2{ margin-bottom:.4rem }
.idr-cta h2 em{ text-decoration:underline; text-decoration-color:var(--c-primary-100); text-underline-offset:.12em; text-decoration-thickness:3px }
.idr-cta > p{ max-width:56ch; margin-inline:auto }
.idr-cta-actions{ display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; margin-top:1.5rem }
@media (max-width:520px){ .idr-cta-actions{ flex-direction:column } .idr-cta-actions .ctr-btn{ width:100% } }
.idr-cta-illus{ display:none }
@media (min-width:1100px){
  .idr-cta{ padding-inline:170px } /* room for the mascot on the right, text stays centered */
  .idr-cta-illus{ display:block; position:absolute; right:0; bottom:-8px; width:140px }
  .idr-cta-illus img{ background:transparent; width:100%; height:auto }
}
.idr-founder .ctr-btn--ghost{ color:var(--c-primary-900); border-color:var(--c-line) }
.idr-founder .ctr-btn--ghost:hover{ color:var(--c-primary); border-color:var(--c-primary) }
.idr-cta--light::before{ /* faint circles, as on the live CTA */
  content:''; position:absolute; inset:-40px 0; pointer-events:none;
  background:radial-gradient(circle at 92% 18%, rgba(0,132,180,.10) 0 60px, transparent 61px), radial-gradient(circle at 4% 78%, rgba(0,132,180,.08) 0 34px, transparent 35px);
}

/* ---------- 17. Footer --------------------------------------- */

.site-footer{ background:linear-gradient(140deg,#072A38 0%,#0C4A5A 45%,#13798A 100%); color:rgba(255,255,255,.88); margin-top:var(--sp-xl); position:relative; overflow:hidden }
.site-footer::before{ content:''; position:absolute; inset:0; background:var(--tex-grid); pointer-events:none; opacity:.7 }
.site-footer-inner{ position:relative; max-width:var(--w-wide); margin-inline:auto; padding:var(--sp-lg) 16px var(--sp-md); display:grid; gap:var(--sp-md) }
@media (min-width:600px){ .site-footer-inner{ padding-inline:clamp(1.25rem,4vw,2.5rem) } }
@media (min-width:860px){ .site-footer-inner{ grid-template-columns:1.3fr 1fr 1fr 1.2fr } }
.idr-foot-brand img{ max-height:52px; width:auto; margin-bottom:1rem; background:transparent }
.idr-foot-blurb{ font-size:.9rem; line-height:1.7; max-width:38ch }
.site-footer h3{ color:#fff; font-size:1.05rem; margin-bottom:.9rem }
.idr-foot-list{ list-style:none; margin:0; padding:0 }
.idr-foot-list li{ margin-bottom:.45rem }
.idr-foot-list a,.idr-foot-contact a,.idr-foot-contact span{ color:#fff; text-decoration:none; font-size:.92rem; display:inline-flex; align-items:center; gap:.4rem }
.idr-foot-list a:hover,.idr-foot-contact a:hover{ text-decoration:underline; color:#fff }
.idr-chev svg{ width:12px; height:12px; opacity:.8 }
.idr-foot-contact{ list-style:none; margin:0 0 1.5rem; padding:0 }
.idr-foot-contact li{ margin-bottom:.55rem }
.idr-foot-contact svg{ width:15px; height:15px; opacity:.9 }
.idr-foot-social-text{ font-size:.88rem; margin-bottom:.75rem }
.idr-foot-social{ display:flex; gap:1rem }
.idr-foot-social a{ width:56px; height:56px; border-radius:50%; display:grid; place-items:center; background:transparent; color:#fff; border:2px solid rgba(255,255,255,.75); transition:background-color .2s ease, color .2s ease, transform .2s ease, border-color .2s ease }
.idr-foot-social a:hover{ background:#fff; color:var(--c-primary); border-color:#fff; transform:translateY(-2px) }
.idr-foot-social svg{ width:26px; height:26px; fill:currentColor }
.idr-foot-bottom{ position:relative; border-top:1px solid rgba(255,255,255,.25); max-width:var(--w-wide); margin-inline:auto; padding:1.25rem 16px 2rem; display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; justify-content:space-between; font-size:.82rem }
@media (min-width:600px){ .idr-foot-bottom{ padding-inline:clamp(1.25rem,4vw,2.5rem) } }
.idr-foot-bottom p{ margin:0 }
.idr-foot-bottom .idr-sig a{ color:#fff; font-weight:700; text-decoration:none }
.idr-foot-bottom .idr-sig a:hover{ text-decoration:underline }

/* ---------- 18. Breadcrumbs, prose, checks ------------------- */

.idr-crumbs{ font-size:.82rem; color:var(--c-ink-3); margin-bottom:.75rem }
.idr-crumbs ol{ display:flex; flex-wrap:wrap; gap:.4rem; list-style:none; margin:0; padding:0 }
.idr-crumbs li{ margin:0; display:flex; align-items:center; gap:.4rem }
.idr-crumbs li + li::before{ content:'/'; color:var(--c-line) }
.idr-crumbs a{ color:var(--c-ink-2); text-decoration:none }
.idr-crumbs a:hover{ color:var(--c-primary); text-decoration:underline }
.idr-hero .idr-crumbs,.idr-dark .idr-crumbs,.idr-page-hero .idr-crumbs{ color:#fff; font-weight:600; text-shadow:0 1px 2px rgba(11,51,74,.25) }
.idr-hero .idr-crumbs a,.idr-dark .idr-crumbs a,.idr-page-hero .idr-crumbs a{ color:#fff; text-decoration:underline; text-decoration-color:rgba(255,255,255,.45); text-underline-offset:3px }
.idr-hero .idr-crumbs a:hover,.idr-dark .idr-crumbs a:hover,.idr-page-hero .idr-crumbs a:hover{ color:#fff; text-decoration-color:#fff }
.idr-hero .idr-crumbs li + li::before,.idr-dark .idr-crumbs li + li::before,.idr-page-hero .idr-crumbs li + li::before{ color:rgba(255,255,255,.7) }
.idr-page-hero .idr-crumbs li:last-child{ color:rgba(255,255,255,.85); font-weight:500 }

.idr-prose{ max-width:72ch }
.idr-prose h2{ margin-top:2em }
.idr-prose h3{ margin-top:1.6em }
.idr-prose > :first-child{ margin-top:0 }
.idr-prose img{ border-radius:var(--radius); margin:1.6em 0 }
.idr-prose ul,.idr-prose ol{ margin:0 0 1.2em; padding-left:1.3rem }
.idr-prose li::marker{ color:var(--c-primary) }
.idr-prose blockquote{ margin:1.6em 0; padding:1rem 1.25rem; border-left:4px solid var(--c-primary); background:var(--c-surface-2); border-radius:0 var(--radius-sm) var(--radius-sm) 0; font-size:1.05rem }
.idr-prose table{ width:100%; border-collapse:collapse; margin:1.5em 0; font-size:.95rem }
.idr-prose th,.idr-prose td{ padding:.7rem .85rem; border-bottom:1px solid var(--c-line); text-align:left }
.idr-prose th{ font-family:var(--font-head); font-weight:700; background:var(--c-surface-2); color:var(--c-primary-900) }
@media (max-width:640px){
  .idr-prose table,.idr-prose thead,.idr-prose tbody,.idr-prose tr,.idr-prose th,.idr-prose td{ display:block; width:100% }
  .idr-prose thead{ display:none }
  .idr-prose tr{ border:1px solid var(--c-line); border-radius:var(--radius-sm); margin-bottom:.75rem; padding:.35rem .6rem }
  .idr-prose td{ border-bottom:1px dashed var(--c-line); padding:.55rem 0 }
  .idr-prose tr td:last-child{ border-bottom:0 }
}

.idr-checks{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem }
@media (min-width:760px){ .idr-checks{ grid-template-columns:1fr 1fr; gap:.6rem 1.75rem } }
.idr-checks li{ margin:0; position:relative; padding-left:1.9rem; color:var(--c-ink-2) }
.idr-checks li::before{ content:''; position:absolute; left:0; top:.42em; width:1.2rem; height:1.2rem; border-radius:50%; background:var(--c-primary); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/76% no-repeat, linear-gradient(#000,#000); -webkit-mask-composite:xor; mask-composite:exclude }

.idr-trust{ display:flex; flex-wrap:wrap; gap:.6rem 1.75rem; justify-content:center; list-style:none; margin:0; padding:0 }
.idr-trust li{ margin:0; display:inline-flex; align-items:center; gap:.45rem; font-size:.88rem; font-weight:700; color:var(--c-primary-900) }
.idr-trust svg{ width:18px; height:18px; color:var(--c-primary); flex:none }

/* ---------- 19. Page hero (inner pages) ----------------------- */

.idr-page-hero{ background:linear-gradient(112deg,var(--c-primary-700) 0%,var(--c-primary) 60%,var(--c-primary-400) 100%); color:#fff; position:relative; overflow:hidden }
.idr-page-hero::before{ content:''; position:absolute; inset:0; background:var(--tex-grid); pointer-events:none }
.idr-page-hero > .ctr-inner{ position:relative; z-index:1 }
.idr-page-hero h1{ color:#fff; margin-bottom:.4em }
.idr-page-hero h1 em{ color:var(--c-primary-100) }
.idr-page-hero p,.idr-page-hero .idr-lead{ color:rgba(255,255,255,.9) }
.idr-page-hero .idr-eyebrow{ color:#fff }
/* Service areas hero: full-bleed photo, slogan artwork, wave (ported from the live /cities/ page) */
.idr-fhero{ position:relative; width:100vw; margin-left:calc(50% - 50vw); aspect-ratio:1903/826; min-height:440px; max-height:82vh; background:#cde9ee var(--fhero-bg) center/cover no-repeat; display:flex; align-items:flex-end; justify-content:center; overflow:hidden }
.idr-fhero::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,40,90,.30),rgba(8,40,90,.06) 42%,rgba(255,255,255,0) 70%); pointer-events:none }
.idr-fhero-in{ position:relative; z-index:2; width:100%; max-width:760px; padding:0 24px 7%; text-align:center; display:flex; flex-direction:column; align-items:center }
.idr-fhero-slogan{ display:block; width:min(58%,450px); height:auto; max-width:100%; margin:0 auto clamp(18px,2.4vw,30px); filter:drop-shadow(0 0 10px rgba(255,255,255,.95)) drop-shadow(0 0 26px rgba(255,255,255,.7)) }
.idr-fhero-h1{ font-size:clamp(34px,6vw,64px); color:#0B334A; margin:0 0 clamp(18px,2.4vw,30px); text-shadow:0 2px 20px rgba(255,255,255,.9) }
.idr-fhero-cta{ display:inline-flex; align-items:center; gap:10px; background:var(--c-primary-700); color:#fff; font-family:var(--font-head); font-weight:800; font-size:clamp(14px,1.2vw,17px); padding:15px 34px; border-radius:999px; text-decoration:none; box-shadow:0 10px 30px rgba(3,137,210,.35); transition:transform .2s ease, box-shadow .2s ease, background .2s ease }
.idr-fhero-cta:hover{ background:var(--c-primary-900); color:#fff; transform:translateY(-2px); box-shadow:0 14px 38px rgba(3,137,210,.45) }
.idr-fhero-cta svg{ flex-shrink:0 }
.idr-fhero-wave{ position:absolute; left:0; right:0; bottom:-1px; z-index:3; line-height:0; color:var(--c-surface-2); pointer-events:none }
.idr-fhero-wave svg{ display:block; width:100%; height:clamp(50px,7vw,110px) }
@media (max-width:860px){
  .idr-fhero{ aspect-ratio:auto; min-height:0; max-height:none; padding:56px 0 0; background-image:var(--fhero-bg-m,var(--fhero-bg)) }
  .idr-fhero-in{ padding:0 20px 46px; max-width:100% }
  .idr-fhero-slogan{ width:min(76%,340px) }
  .idr-fhero-cta{ width:100%; max-width:340px; justify-content:center }
}
/* City photo tiles */
.idr-citygrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px }
@media (min-width:600px){ .idr-citygrid{ grid-template-columns:repeat(3,1fr); gap:14px } }
@media (min-width:861px){ .idr-citygrid{ grid-template-columns:repeat(4,1fr); gap:16px } }
@media (min-width:1100px){ .idr-citygrid{ grid-template-columns:repeat(4,1fr) } }
.idr-citycard{ position:relative; display:block; aspect-ratio:4/3; border-radius:16px; overflow:hidden; text-decoration:none; background:#06202F; box-shadow:0 8px 24px rgba(9,50,110,.14); transition:transform .28s ease, box-shadow .28s ease }
.idr-citycard:hover{ transform:translateY(-5px); box-shadow:0 18px 42px rgba(9,50,110,.26) }
.idr-citycard img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease }
.idr-citycard:hover img{ transform:scale(1.07) }
.idr-citycard-veil{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,26,56,.10) 35%,rgba(6,26,56,.78)); transition:background .28s ease }
.idr-citycard:hover .idr-citycard-veil{ background:linear-gradient(180deg,rgba(0,132,180,.24) 30%,rgba(6,26,56,.86)) }
.idr-citycard-pin{ position:absolute; left:50%; top:52%; transform:translate(-50%,-50%); width:34px; height:34px; border-radius:50%; background:var(--c-primary); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(0,0,0,.35); border:2px solid rgba(255,255,255,.85); transition:transform .28s ease }
.idr-citycard-pin svg{ width:17px; height:17px }
.idr-citycard:hover .idr-citycard-pin{ transform:translate(-50%,-50%) scale(1.12) }
.idr-citycard-name{ position:absolute; left:0; right:0; bottom:0; padding:12px 10px 14px; color:#fff; font-family:var(--font-head); font-size:.9rem; font-weight:700; line-height:1.25; text-align:center; text-shadow:0 2px 8px rgba(0,0,0,.5) }
.idr-citysec-rule{ display:flex; align-items:center; justify-content:center; gap:10px; color:var(--c-primary); margin:0 0 30px }
.idr-citysec-rule span{ display:block; width:clamp(40px,7vw,90px); height:2px; background:linear-gradient(90deg,transparent,var(--c-primary-100),var(--c-primary)) }
.idr-citysec-rule span:last-child{ background:linear-gradient(90deg,var(--c-primary),var(--c-primary-100),transparent) }
.idr-citysec-rule svg{ width:18px; height:18px; fill:currentColor }
/* "Don't see your city?" box */
.idr-ctabox{ background:linear-gradient(135deg,#fff,var(--c-primary-050)); border:1px solid var(--c-line); border-radius:16px; padding:32px 34px; text-align:center; max-width:720px; margin-inline:auto }
.idr-ctabox h3{ margin:0 0 8px; color:var(--c-primary-900) }
.idr-ctabox p{ font-size:.92rem; color:var(--c-ink-2); margin:0 0 18px }
/* Service pillar hero */
.idr-svc-hero-grid{ display:grid; gap:2rem; align-items:center }
.idr-svc-hero-grid h1{ margin-bottom:.5em }
.idr-svc-hero-grid .idr-lead{ color:rgba(255,255,255,.92); max-width:56ch }
.idr-svc-hero-media img{ width:100%; height:auto; aspect-ratio:16/11; object-fit:cover; border-radius:var(--radius-lg); box-shadow:0 30px 60px -20px rgba(3,80,125,.55); border:4px solid rgba(255,255,255,.35) }
@media (min-width:861px){ .idr-svc-hero-grid{ grid-template-columns:1.1fr .9fr; gap:3.5rem } }
/* Feature cards (who it is for, why us) */
.idr-feat{ background:#fff; border:1px solid var(--c-line); border-radius:16px; padding:1.5rem 1.4rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:.5rem }
.idr-feat-icon{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--c-primary-050); color:var(--c-primary-700); margin-bottom:.35rem }
.idr-feat-icon svg{ width:22px; height:22px; fill:currentColor }
.idr-feat h3{ font-size:1rem; margin:0; color:var(--c-primary-900); line-height:1.3 }
.idr-feat p{ margin:0; font-size:.9rem; color:var(--c-ink-2) }
.idr-band .idr-feat{ border-color:rgba(255,255,255,.4) }
.idr-checks--cols{ columns:3; column-gap:2rem }
.idr-checks--cols li{ break-inside:avoid }
@media (max-width:860px){ .idr-checks--cols{ columns:1 } }
@media (min-width:861px) and (max-width:1079px){ .idr-checks--cols{ columns:2 } }

/* ---------- 20. Blog cards ----------------------------------- */

.ctr-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm) }
.ctr-card-img{ display:block; aspect-ratio:16/10; overflow:hidden; background:var(--c-primary-050) }
.ctr-card-img img{ width:100%; height:100%; object-fit:cover }
.ctr-card-body{ padding:1.1rem 1.25rem 1.35rem; display:flex; flex-direction:column; gap:.4rem; flex:1 }
.ctr-card-date{ font-size:.72rem; color:var(--c-ink-3); margin:0; font-weight:700; letter-spacing:.06em; text-transform:uppercase }
.ctr-card-title{ font-size:1.02rem; margin:0 }
.ctr-card-title a{ color:inherit; text-decoration:none }
.ctr-card-title a:hover{ color:var(--c-primary) }
.ctr-card-more{ font-family:var(--font-head); font-weight:700; text-decoration:none; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; margin-top:auto }
.idr-loadmore{ text-align:center; margin-top:var(--sp-md) }
/* Blog grid: five across on the full viewport, 80px gutters on desktop */
.idr-blog-full > .ctr-inner{ max-width:none; padding-inline:16px }
@media (min-width:861px){ .idr-blog-full > .ctr-inner{ padding-inline:80px } }
.idr-post-grid .idr-scard-media{ aspect-ratio:16/10 }
.idr-post-grid .idr-scard-body{ padding:.9rem 1rem 1.1rem; gap:.35rem }
.idr-post-grid .idr-scard-title{ font-size:.95rem }
.idr-post-grid .idr-scard-text{ font-size:.82rem }
.idr-blog-intro{ max-width:none; font-size:.98rem }
.idr-blog-intro h2{ font-size:1.4rem; margin-top:0; clear:left }
.idr-blog-intro img{ display:block; width:100%; height:auto; border-radius:var(--radius,18px); margin:0 0 1.25rem }
@media (min-width:861px){ .idr-blog-intro img{ float:right; width:min(44%,560px); margin:.25rem 0 1.25rem 2.5rem } .idr-blog-intro::after{ content:''; display:block; clear:both } }

/* ---------- 21. FAQ (inline accordion + library pages) --------- */

.idr-faq{ max-width:860px }
.idr-faq-title{ margin-bottom:var(--sp-sm) }
.idr-faq-list{ display:grid; gap:.6rem }
.idr-faq-item{ background:#fff; border:1px solid var(--c-line); border-radius:12px; padding:0; box-shadow:var(--shadow-sm) }
.idr-faq-item summary{ list-style:none; cursor:pointer; padding:1rem 3rem 1rem 1.25rem; font-family:var(--font-head); font-weight:700; color:var(--c-primary-900); position:relative; font-size:.98rem }
.idr-faq-item summary::-webkit-details-marker{ display:none }
.idr-faq-item summary::after{ content:'+'; position:absolute; right:1.1rem; top:50%; transform:translateY(-50%); width:26px; height:26px; border-radius:50%; background:var(--c-primary-050); color:var(--c-primary-700); display:grid; place-items:center; font-weight:800; transition:transform .2s ease }
.idr-faq-item[open] summary::after{ transform:translateY(-50%) rotate(45deg) }
.idr-faq-answer{ padding:0 1.25rem 1.1rem; color:var(--c-ink-2); font-size:.94rem }

.idr-faq-search{ display:flex; gap:.5rem; max-width:560px; margin-top:1.25rem }
.idr-faq-search input{ flex:1; font:inherit; font-size:.95rem; padding:.75rem 1rem; border-radius:999px; border:1.5px solid rgba(255,255,255,.35); background:rgba(255,255,255,.14); color:#fff; min-height:48px }
.idr-faq-search input::placeholder{ color:rgba(255,255,255,.7) }
.idr-faq-search input:focus{ outline:none; background:#fff; color:var(--c-ink); border-color:#fff }
.idr-faq-rows{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem }
.idr-faq-rows li{ margin:0 }
.idr-faq-rows a{ display:flex; align-items:center; justify-content:space-between; gap:1rem; background:#fff; border:1px solid var(--c-line); border-radius:12px; padding:1rem 1.25rem; text-decoration:none; color:var(--c-primary-900); font-family:var(--font-head); font-weight:700; font-size:.98rem; box-shadow:var(--shadow-sm); transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease }
.idr-faq-rows a:hover{ transform:translateX(4px); border-color:var(--c-primary-100); box-shadow:var(--shadow-md); color:var(--c-primary-700) }
.idr-faq-rows a span{ flex:none; width:28px; height:28px; border-radius:50%; background:var(--c-primary-050); color:var(--c-primary-700); display:grid; place-items:center; font-weight:800 }
.idr-faq-rows li.is-hidden{ display:none }
.idr-faq-empty{ color:var(--c-ink-3); font-size:.92rem }

.idr-faq-single{ display:grid; gap:var(--sp-md); align-items:start }
@media (min-width:900px){ .idr-faq-single{ grid-template-columns:1.6fr .9fr; gap:var(--sp-lg) } }
.idr-faq-answer-body{ font-size:1.05rem; line-height:1.8 }
.idr-side-card{ position:sticky; top:96px; background:var(--c-surface-2); border:1px solid var(--c-line); border-radius:var(--radius-lg); padding:1.6rem 1.5rem }
.idr-side-card h3{ margin-bottom:.4rem }
.idr-side-card p{ font-size:.9rem; margin-bottom:1rem }
.idr-side-card .ctr-btn{ width:100%; margin-bottom:.6rem }
.idr-related{ margin-top:var(--sp-lg); padding-top:var(--sp-md); border-top:1px solid var(--c-line) }
.idr-related-grid{ display:grid; gap:.75rem; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; margin:1rem 0 0; padding:0 }
@media (max-width:900px){ .idr-related-grid{ grid-template-columns:1fr } }
.idr-related-grid li{ margin:0 }
.idr-related-grid a{ display:flex; justify-content:space-between; gap:.75rem; align-items:flex-start; background:#fff; border:1px solid var(--c-line); border-radius:12px; padding:1rem 1.1rem; text-decoration:none; color:var(--c-primary-900); font-weight:700; font-size:.92rem; min-height:100%; transition:border-color .15s ease, transform .15s ease }
.idr-related-grid a:hover{ border-color:var(--c-primary); transform:translateY(-2px); color:var(--c-primary-700) }
.idr-related-grid a span{ color:var(--c-primary); flex:none }

/* ---------- 22. Entrance animations --------------------------- */

/* Opt-in only when JavaScript is running (the html.idr-js flag is set in the
   head), so a crawler or a visitor without JS never meets an invisible page. */
.idr-js .idr-anim{ opacity:0; transform:translateY(18px); transition:opacity .6s ease var(--d,0ms), transform .6s cubic-bezier(.2,.7,.2,1) var(--d,0ms) }
.idr-js .idr-anim.in{ opacity:1; transform:none }
@media (prefers-reduced-motion:reduce){ .idr-js .idr-anim{ opacity:1; transform:none; transition:none } .ctr-btn,.idr-scard{ transition:none } }

/* ---------- 23. Utilities & print ------------------------------ */

@media (max-width:640px){ .hide-mobile{ display:none!important } }
@media (min-width:641px) and (max-width:980px){ .hide-tablet{ display:none!important } }
@media (min-width:981px){ .hide-desktop{ display:none!important } }
.idr-postforge .idr-prose{ max-width:none }
.idr-postforge .pfBtnCTA,.pfWrap .pfBtnCTA{ display:inline-flex; align-items:center; gap:.5rem; min-height:46px; padding:.8rem 1.6rem; border-radius:999px; border:0; background:linear-gradient(120deg,#055E80 0%,#0084B4 52%,#0E8193 100%); color:#fff; font-family:var(--font-head); font-weight:700; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; box-shadow:0 8px 20px rgba(0,132,180,.32); position:relative; overflow:hidden; isolation:isolate }
.idr-postforge .pfBtnCTA::after,.pfWrap .pfBtnCTA::after{ content:''; position:absolute; top:0; left:0; width:60%; height:100%; background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.5) 50%,transparent 100%); transform:skewX(-20deg) translateX(-230%); pointer-events:none; z-index:1 }
.idr-postforge .pfBtnCTA:hover::after,.pfWrap .pfBtnCTA:hover::after{ transform:skewX(-20deg) translateX(360%); transition:transform .75s ease }
.idr-postforge .pfBtnCTA:hover,.pfWrap .pfBtnCTA:hover{ box-shadow:0 12px 28px rgba(3,137,210,.42) }
/* Blog single (AutoPost): match the header width, 1230px */
.idr-postforge > .ctr-container > .ctr-inner{ max-width:1230px }
.idr-faq-related{ margin-top:1.5rem; padding:1rem 1.25rem; background:var(--c-surface-2); border-radius:12px; font-size:.92rem }
.idr-faq-related a{ font-weight:700; text-decoration:none }
.idr-faq-related a:hover{ text-decoration:underline }

@media print{
  .site-header,.idr-callbar,.idr-float,.site-footer,.idr-cta,.nav-toggle,.idr-topbar{ display:none!important }
  body{ padding-bottom:0; color:#000 }
}

/* Service index on the "cleaning services in {city}" keyword pages */
.idr-svcindex .idr-cities-list{ grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:.6rem }
.idr-svcindex .idr-cities-list a{ align-items:flex-start; min-height:0; padding:.8rem .95rem; line-height:1.3 }
.idr-svcindex .idr-city-pin{ margin-top:.1rem }
.idr-svcindex small{ display:block; margin-top:.15rem; font-weight:500; font-size:.78rem; color:var(--c-muted, #4A6B80) }

/* "What is included" cards, founder signature, gallery columns (keyword pages) */
.idr-included{ display:grid; grid-template-columns:repeat(var(--cols,3),minmax(0,1fr)); gap:1rem; margin:1.25rem 0 .5rem }
@media (max-width:900px){ .idr-included{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:520px){ .idr-included{ grid-template-columns:1fr } }
.idr-inc{ background:#fff; border:1px solid var(--c-line); border-radius:16px; padding:1.25rem 1.2rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:.35rem }
.idr-inc-icon{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--c-primary); color:#fff; margin-bottom:.3rem }
.idr-inc-icon svg{ width:20px; height:20px; fill:currentColor }
.idr-inc h3{ font-size:1.02rem; margin:0; color:var(--c-primary-900) }
.idr-inc p{ margin:0; font-size:.92rem; color:var(--c-ink-2); line-height:1.55 }
.idr-founder{ background:#fff; border:1px solid var(--c-line); border-radius:20px; overflow:hidden; box-shadow:var(--shadow-md); display:grid; align-items:center; margin:.5rem 0 }
@media (min-width:820px){ .idr-founder{ grid-template-columns:minmax(300px,44%) 1fr } }
.idr-founder-media{ padding:22px 0 22px 22px; display:flex; align-items:center }
@media (max-width:819px){ .idr-founder-media{ padding:22px 22px 0 } }
.idr-founder-media img{ width:100%; height:auto; object-fit:contain; display:block; border-radius:16px; box-shadow:0 14px 34px rgba(9,50,110,.16) }
.idr-founder-body{ padding:32px 34px; display:flex; flex-direction:column; justify-content:center; gap:.6rem }
.idr-founder-pill{ align-self:flex-start; padding:4px 12px; border-radius:999px; background:var(--c-primary-050); border:1px solid rgba(0,132,180,.25); color:var(--c-primary-700); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase }
.idr-founder-body h3{ font-size:1.45rem; margin:0; color:var(--c-primary-900); line-height:1.2 }
.idr-founder-body h3 em{ color:var(--c-primary); font-style:italic }
.idr-founder-body p{ margin:0; color:var(--c-ink-2); line-height:1.7 }

/* Gallery + lightbox (was a conditional component; the shortcode output is not in the raw content, so it lives here) */
.idr-gallery{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:.75rem }
.idr-gallery figure{ margin:0 }
.idr-gallery img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:var(--radius-sm); cursor:zoom-in;
  transition:transform .3s ease, box-shadow .3s ease;
}
.idr-gallery img:hover{ transform:scale(1.02); box-shadow:var(--shadow-md) }
.idr-gallery figcaption{ font-size:.82rem; color:var(--c-ink-3); margin-top:.35rem }
@media (max-width:480px){ .idr-gallery{ grid-template-columns:1fr 1fr; gap:.5rem } }

.idr-lb{ position:fixed; inset:0; z-index:9999; background:rgba(9,11,74,.94); display:none; align-items:center; justify-content:center }
.idr-lb.open{ display:flex }
.idr-lb img{ max-width:94vw; max-height:86vh; border-radius:var(--radius-sm); box-shadow:var(--shadow-lg) }
.idr-lb button{
  position:absolute; background:rgba(255,255,255,.14); border:0; color:#fff;
  width:52px; height:52px; border-radius:50%; cursor:pointer; font-size:1.5rem;
  display:grid; place-items:center; transition:background .2s ease;
}
.idr-lb button:hover{ background:rgba(255,255,255,.3) }
.idr-lb-close{ top:18px; right:18px }
.idr-lb-prev{ left:14px; top:50%; transform:translateY(-50%) }
.idr-lb-next{ right:14px; top:50%; transform:translateY(-50%) }
@media (prefers-reduced-motion:reduce){ .idr-gallery img{ transition:none } }

.idr-gallery--4{ grid-template-columns:repeat(4,minmax(0,1fr)) }
.idr-gallery--3{ grid-template-columns:repeat(3,minmax(0,1fr)) }
@media (max-width:900px){ .idr-gallery--4,.idr-gallery--3{ grid-template-columns:repeat(2,minmax(0,1fr)) } }

/* Page hero with a city photo behind the blue (keyword pages) */
.idr-page-hero--photo > .ctr-inner{ position:static }
.idr-page-hero-bg{ position:absolute; inset:0; z-index:0; pointer-events:none }
.idr-page-hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 45%; display:block }
.idr-page-hero-bg::after{ content:''; position:absolute; inset:0; background:linear-gradient(112deg,rgba(3,137,210,.94) 0%,rgba(0,132,180,.84) 60%,rgba(60,190,255,.78) 100%) }
.idr-page-hero--photo .idr-svc-hero-grid{ position:relative; z-index:2 }
/* Service index with thumbnails */
.idr-svcindex .idr-cities-list a{ gap:.75rem }
.idr-svcindex-img{ flex:none; width:68px; height:52px; border-radius:10px; overflow:hidden; background:var(--c-primary-050) }
.idr-svcindex-img img{ width:100%; height:100%; object-fit:cover; display:block }
/* Two equal text columns */
.idr-cols2{ display:grid; gap:1.5rem 3rem; max-width:none }
@media (min-width:860px){ .idr-cols2{ grid-template-columns:1fr 1fr } }
.idr-cols2 > div > :first-child{ margin-top:0 }

/* ---------- 24. iDust additions: inner hero, mega menu, wide blog, footer --- */

.idr-page-hero{ background:#0B334A; background-image:radial-gradient(ellipse 60% 80% at 15% 50%,rgba(0,194,194,.22),transparent 70%),linear-gradient(112deg,#06202F 0%,#0B334A 55%,#0E4A66 100%) }
.idr-page-hero::before{ opacity:.6 }
.idr-page-hero h1 em{ color:#7FE7E3; font-style:italic }
.idr-page-hero .idr-eyebrow,.idr-page-hero .idr-eyebrow .idr-star{ color:#7FE7E3 }
.idr-page-hero .ctr-btn--light{ background:#00C2C2; color:#06202F; border-color:#00C2C2 }
.idr-page-hero .ctr-btn--light:hover{ background:#37DED8; color:#06202F }
.idr-page-hero .ctr-btn--ghost-light{ border-color:rgba(255,255,255,.55); color:#fff }
.idr-page-hero .idr-crumbs a{ color:rgba(255,255,255,.8) }
.idr-page-hero .idr-crumbs li[aria-current]{ color:#7FE7E3 }

.site-brand img{ max-height:60px }
@media (min-width:861px){ .site-brand img{ max-height:82px } }
.idr-header-cta{ border-color:transparent; border-radius:999px; font-size:.86rem; gap:.4rem }
.idr-header-cta svg{ width:12px; height:12px }
.site-nav .menu a{ font-weight:600; font-size:.95rem }
.site-nav .menu .current-menu-item > a{ color:#20B4C4 }

/* Nav dropdowns (desktop): clean, left-anchored, aligned */
@media (min-width:1080px){
  .site-nav .menu li.idr-mega{ position:static }
  .site-nav .idr-mega > a{ padding-bottom:1.1rem; margin-bottom:-.6rem }
  .site-nav .idr-mega > a::after{ content:''; position:static; left:auto; right:auto; bottom:auto; background:none; display:inline-block; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); margin-left:.4rem; opacity:.55; transition:transform .18s ease }
  .site-nav .idr-mega:hover > a::after{ transform:rotate(225deg) translateY(2px) }
  .idr-mega-panel{
    position:absolute; left:0; top:100%; margin-top:.5rem;
    background:#fff; border:1px solid var(--c-line); border-radius:14px; box-shadow:0 24px 54px rgba(11,51,74,.16);
    padding:.5rem; z-index:70; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(6px);
    transition:opacity .16s ease, transform .16s ease, visibility 0s linear .25s;
  }
  .idr-mega--loc .idr-mega-panel{ left:50%; right:auto; transform:translateX(-50%) translateY(6px) }
  .idr-mega-panel::before{ content:''; position:absolute; left:0; right:0; bottom:100%; height:.6rem }
  .idr-mega:hover > .idr-mega-panel,.idr-mega:focus-within > .idr-mega-panel{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); transition-delay:0s }
  .idr-mega--loc:hover > .idr-mega-panel,.idr-mega--loc:focus-within > .idr-mega-panel{ transform:translateX(-50%) translateY(0) }

  /* Services: three cards side by side */
  .idr-mega-panel--services{ width:560px; padding:.85rem }
  .idr-mega--svc .idr-mega-panel{ left:50%; transform:translateX(-50%) translateY(6px) }
  .idr-mega--svc:hover > .idr-mega-panel,.idr-mega--svc:focus-within > .idr-mega-panel{ transform:translateX(-50%) translateY(0) }
  .idr-svc-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem }
  .idr-svc-card{ display:flex; flex-direction:column; align-items:flex-start; gap:.15rem; padding:1rem .95rem; border-radius:13px; background:#F2F9FB; border:1px solid var(--c-line); text-decoration:none; transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease }
  .idr-svc-card:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(0,132,180,.14); border-color:#0084B4 }
  .idr-svc-card-ic{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:#0084B4; color:#fff; margin-bottom:.4rem }
  .idr-svc-card-ic svg{ width:22px; height:22px }
  .idr-svc-card strong{ color:#0B334A; font-size:.95rem; font-weight:700; line-height:1.25 }
  .idr-svc-card small{ color:var(--c-ink-3); font-size:.77rem; font-weight:500; line-height:1.35 }

  /* Locations: horizontal, bulleted, with a call row */
  .idr-mega-panel--locations{ width:min(1000px,calc(100vw - 40px)); padding:1rem 1.3rem }
  .idr-mega-loc-head{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--c-ink-3); font-weight:800; margin:0 0 .7rem; padding:0 .25rem; text-align:center }
  .idr-mega-cities{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(7,1fr); gap:.05rem .5rem }
  .idr-mega-cities a{ display:flex; align-items:center; gap:.4rem; font-size:.84rem; font-weight:600; color:#0F3B54; padding:.34rem .5rem; border-radius:8px; text-decoration:none; white-space:nowrap }
  .idr-mega-cities a::before{ content:''; width:5px; height:5px; border-radius:50%; background:#00C2C2; flex:none }
  .idr-mega-cities a:hover{ background:#E6F6F8; color:#0084B4 }
  .idr-mega-loc-foot{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:.9rem; padding-top:.85rem; border-top:1px solid var(--c-line) }
  .idr-mega-loc-foot span{ font-size:.85rem; color:var(--c-ink-2); flex:1; min-width:180px }
  .idr-mega-loc-call{ display:inline-flex; align-items:center; gap:.4rem; background:#0084B4; color:#fff; font-weight:800; font-size:.86rem; padding:.55rem .95rem; border-radius:999px; text-decoration:none }
  .idr-mega-loc-call:hover{ background:#0B334A }
  .idr-mega-loc-call svg{ width:15px; height:15px }
  .idr-mega-loc-foot .idr-mega-all{ margin:0 }
  .idr-mega-all{ display:inline-block; font-size:.76rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#0084B4; text-decoration:none }
}
@media (max-width:1079px){
  .idr-mega-panel{ padding:.1rem 0 .6rem .5rem }
  .idr-svc-cards{ display:grid; grid-template-columns:1fr; gap:.1rem }
  .idr-svc-card{ flex-direction:row; align-items:center; gap:.6rem; background:transparent; border:0; padding:.5rem .25rem }
  .idr-svc-card:hover{ transform:none; box-shadow:none }
  .idr-svc-card-ic{ width:34px; height:34px; margin:0; border-radius:9px }
  .idr-svc-card-ic svg{ width:18px; height:18px }
  .idr-svc-card strong{ font-size:.92rem }
  .idr-svc-card small{ display:none }
  .idr-mega-loc-head{ display:none }
  .idr-mega-cities{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 .5rem }
  .idr-mega-cities a{ display:flex; align-items:center; gap:.4rem; font-size:.88rem; color:var(--c-ink-2); padding:.4rem .25rem; text-decoration:none }
  .idr-mega-cities a::before{ content:''; width:5px; height:5px; border-radius:50%; background:#00C2C2; flex:none }
  .idr-mega-loc-foot{ display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; margin-top:.6rem; padding-top:.6rem; border-top:1px solid var(--c-line) }
  .idr-mega-loc-foot span{ font-size:.84rem; color:var(--c-ink-2) }
  .idr-mega-loc-call{ display:inline-flex; align-items:center; gap:.4rem; background:#0084B4; color:#fff; font-weight:800; font-size:.86rem; padding:.5rem .9rem; border-radius:999px; text-decoration:none }
  .idr-mega-loc-call svg{ width:15px; height:15px }
  .idr-mega-all{ display:inline-block; font-size:.78rem; font-weight:800; color:#0084B4; margin:.4rem 0; text-decoration:none }
  .site-nav .idr-mega > .idr-mega-panel{ display:none }
  .site-nav .idr-mega.is-open > .idr-mega-panel{ display:block }
}

/* Footer: round logo, social, BBB, signature */
.idr-foot-logo{ display:block; width:104px; height:104px; border-radius:50%; overflow:hidden; background:#fff; margin:0 0 1rem; box-shadow:0 10px 30px rgba(11,51,74,.25) }
.idr-foot-logo img{ width:100%; height:100%; max-height:none; object-fit:contain; margin:0 }
.idr-foot-brand .idr-foot-social{ margin-top:1rem }
.idr-foot-social a{ width:40px; height:40px; border:0; background:transparent }
.idr-foot-social svg{ width:20px; height:20px }
.site-footer h3{ font-size:1.1rem; font-weight:800; margin-bottom:1rem; color:#fff }
.idr-foot-list{ list-style:none; margin:0; padding:0 }
.idr-foot-list li{ margin-bottom:.5rem }
.idr-foot-list a{ font-size:.95rem; color:rgba(255,255,255,.92); text-decoration:none; display:inline-flex; align-items:center; gap:.55rem }
.idr-foot-list a::before{ content:''; width:6px; height:6px; border-radius:50%; background:#2FD0D0; flex:none }
.idr-foot-list a:hover{ color:#fff; text-decoration:underline }
.idr-foot-contact{ list-style:none; margin:0 0 1.2rem; padding:0 }
.idr-foot-contact li{ margin-bottom:.6rem }
.idr-foot-contact a,.idr-foot-contact span{ color:rgba(255,255,255,.92); text-decoration:none; font-size:.95rem; display:inline-flex; align-items:center; gap:.5rem }
.idr-foot-contact a:hover{ color:#fff; text-decoration:underline }
.idr-foot-contact svg{ width:16px; height:16px; opacity:.85; flex:none }
.idr-foot-bbb{ display:inline-block; margin-top:.4rem; background:#fff; border-radius:8px; padding:.3rem .5rem }
.idr-foot-bbb img{ height:40px; width:auto; margin:0 }
.idr-foot-bottom{ justify-content:space-between }
.idr-foot-bottom a{ color:#fff }
.idr-sig a{ color:#fff; font-weight:800; text-decoration:none }
.idr-sig a:hover{ text-decoration:underline }
@media (max-width:859px){ .idr-foot-brand{ text-align:center } .idr-foot-brand .idr-foot-logo{ margin-inline:auto } .idr-foot-brand .idr-foot-social{ justify-content:center } }
@media (min-width:860px){ .site-footer-inner{ grid-template-columns:1.4fr 1fr 1fr 1.3fr; align-items:start; gap:var(--sp-lg) } }

/* Blog: full-width grid */
.idr-blog-full{ width:100%; padding:var(--sp-lg) clamp(16px,2.5vw,40px) }
.idr-blog-full-in{ max-width:1800px; margin-inline:auto }
.idr-post-grid{ display:grid; gap:1.1rem; grid-template-columns:1fr }
@media (min-width:560px){ .idr-post-grid{ grid-template-columns:repeat(2,1fr) } }
@media (min-width:900px){ .idr-post-grid{ grid-template-columns:repeat(3,1fr) } }
@media (min-width:1200px){ .idr-post-grid{ grid-template-columns:repeat(4,1fr) } }
@media (min-width:1600px){ .idr-post-grid{ grid-template-columns:repeat(5,1fr); gap:1.25rem } }
.idr-post-grid .idr-scard-media{ position:relative; display:block; aspect-ratio:16/10; overflow:hidden; background:#E6F6F8 }
.idr-post-grid .idr-scard-media img{ width:100%; height:100%; object-fit:cover }
.idr-scard-cat{ position:absolute; top:.7rem; left:.7rem; background:#00C2C2; color:#06202F; font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:.32rem .65rem; border-radius:999px }
.idr-scard-ph{ display:block; width:100%; height:100%; background:linear-gradient(135deg,#0B334A,#0E4A66) }
.idr-post-grid .idr-scard-title{ font-size:1.02rem }
.idr-loadmore{ text-align:center; margin-top:2rem }

/* Mosaic gallery (gallery page) */
.idr-mosaic-wrap{ width:100%; padding:0 clamp(6px,.6vw,12px) clamp(6px,.6vw,12px) }
.idr-mosaic{ display:grid; grid-template-columns:repeat(2,1fr); grid-auto-rows:clamp(130px,22vw,260px); grid-auto-flow:dense; gap:clamp(6px,.6vw,12px) }
@media (min-width:700px){ .idr-mosaic{ grid-template-columns:repeat(4,1fr) } }
@media (min-width:1100px){ .idr-mosaic{ grid-template-columns:repeat(6,1fr) } }
@media (min-width:1700px){ .idr-mosaic{ grid-template-columns:repeat(8,1fr) } }
.idr-mosaic-item{ position:relative; display:block; margin:0; padding:0; border:0; background:#0B334A; overflow:hidden; border-radius:12px; cursor:zoom-in; width:100%; height:100% }
.idr-mosaic-item--wide{ grid-column:span 2 }
.idr-mosaic-item--tall{ grid-row:span 2 }
.idr-mosaic-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease }
.idr-mosaic-item:hover img{ transform:scale(1.05) }
.idr-mosaic-item::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(6,32,47,.45)); opacity:0; transition:opacity .3s ease }
.idr-mosaic-item:hover::after{ opacity:1 }
.idr-mosaic noscript img{ width:100%; height:100%; object-fit:cover; border-radius:12px }
