:root {
  --primary-color: #005b96;
  --secondary-color: #0d64b8;
  --accent-color: #ff6f61;
  --page-bg: #e9f4ff;
  --card-bg: #f7fbff;
  --transition-speed: .3s;
}

/* Reset */
*,
*::before,
*::after { margin: 0; padding: 0; box-sizing: border-box; }

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

/* Body */
body {
  font-family: Arial, sans-serif;
  background: var(--page-bg);
  color: #333;
  line-height: 1.6;
}

body.nav-open {
  overflow: hidden;
}

input,
textarea {
  font: inherit;
  color: inherit;
}

input::placeholder,
textarea::placeholder {
  font: inherit;
  color: rgba(14, 78, 126, 0.6);
  opacity: 1;
}

/* --- Helpful links card --- */
.info-links {
  background: linear-gradient(180deg, #ffffff, #f7fbff);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  margin-top: .75rem;
}
.info-links__title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 .25rem;
}
.info-links__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: .25rem .75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.info-links__list li::before {
  content: "↗";
  margin-right: .5rem;
  font-size: .9em;
  opacity: .7;
}
.info-links__list a { text-decoration: none; }
.info-links__list a:hover { text-decoration: underline; }

/* Utilities used above */
.muted { color: rgba(0,0,0,.6); }
.d-none { display: none !important; }

/* Small, compact X button you’re already using for docs */
.ircc-remove-btn {
  position: absolute;
  top: .25rem;
  right: .25rem;
  line-height: 1;
  background: transparent;
  border: 0;
  font-size: 1.25rem;
  cursor: pointer;
}


/* ──────────────────────────────────
   HEADER & BANNER
   ──────────────────────────────────*/
.site-header {
  position: relative;
}
.mobile-header-bar{
  display:none;
  align-items:center;
  justify-content:space-between;
  width:100%;
  gap:1.5rem;
}
.mobile-logo-heading{
  margin:0;
}
.mobile-header-logo{
  display:block;
  height:60px;
  width:auto;
  flex-shrink:0;
  object-fit:contain;
}
.site-header__hero{
  display:none;
  margin:0;
}
.site-header__hero img{
  display:block;
  width:100%;
  height:auto;
}
@media(min-width:801px){
  .site-header__hero{display:block}
}
@media(max-width:800px){
  .site-header{
    padding-top:0;
    background:none;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:0;
  }
  .mobile-header-bar{
    display:flex;
    height:100px;
    padding:0 1.5rem;
    background:linear-gradient(135deg,#061a3c 0%,#0b2f5c 52%,#144676 100%);
    box-shadow:0 22px 36px -12px rgba(5,25,58,.55);
    border-bottom:1px solid rgba(255,255,255,.12);
    position:relative;
    z-index:5;
  }
  .mobile-logo-heading{
    display:flex;
    align-items:center;
  }
  .mobile-header-logo{height:56px;max-width:200px;}
  .site-header__hero{display:none}
  .hamburger{
    position:static;
    transform:none;
    margin-left:auto;
  }
}

/* ──────────────────────────────────
   NAVIGATION
   ──────────────────────────────────*/
.main-nav{background:var(--primary-color)}
.nav-inner{display:flex;justify-content:center;position:relative}

/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:4px;cursor:pointer;
  position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:100}
.hamburger span{width:25px;height:3px;background:#fff;border-radius:2px;
  transition:transform .3s}

.nav-close{
  display:none;
  position:fixed;
  top:1rem;
  right:1rem;
  z-index:130;
  border:1px solid transparent;
  border-radius:999px;
  background:transparent;
  color:#fff;
  font-size:1.75rem;
  line-height:1;
  width:44px;
  height:44px;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.nav-close:focus-visible{
  outline:2px solid rgba(255,255,255,.85);
  outline-offset:2px;
}

/* Links */
.nav-links{
  display:flex;list-style:none;gap:1.5rem;justify-content:center;margin-top:0;align-items:center;
  width:100%;background:var(--primary-color);transition:background-color var(--transition-speed)
}
.nav-links li{position:relative}
.nav-links a{
  color:#fff;text-decoration:none;font-size:1rem;padding:.6em 1.4em;
  display:block;border-radius:12px 12px 0 0;transition:none;
  position:relative;
  margin-top:0;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-.6em;
  height:.6em;
  border-radius:0 0 12px 12px;
  background:transparent;
  transition:none;
  pointer-events:none;
  z-index:-1
}
.nav-item--has-children{display:flex;flex-direction:column;align-items:center}
.nav-parent{display:flex;align-items:center;gap:.35rem}
.nav-submenu{
  list-style:none;
  display:none;
  width:100%;
  margin:0;
  padding:0;
}
.nav-links:not(.open) li.active a,
.nav-links:not(.open) a:focus,
.nav-links:not(.open) a:hover:not(.active){
  color:var(--primary-color);background:var(--page-bg);
  font-weight:bold;z-index:2;
  margin-top:7px;
}
.nav-links:not(.open) li.active a::after,
.nav-links:not(.open) a:focus::after,
.nav-links:not(.open) a:hover:not(.active)::after{
  background:var(--page-bg)
}
@media(max-width:800px){
  .main-nav{position:relative;z-index:101}
  .nav-inner{justify-content:flex-start;height:32px;position:relative;z-index:120}
  .hamburger{display:flex}
  body.nav-open .hamburger{display:none}
  body.nav-open .nav-close{
    display:flex;
    background:rgba(0,0,0,.28);
    border-color:rgba(255,255,255,.4);
    backdrop-filter:blur(6px);
  }
  body.nav-open .nav-close:hover,
  body.nav-open .nav-close:focus-visible{
    background:rgba(0,0,0,.38);
    border-color:rgba(255,255,255,.6);
    transform:translateY(-1px);
  }
  .nav-links{
    display:none;
    flex-direction:column;
    align-items:stretch;
    position:fixed;
    inset:0;
    padding:2.5rem 1.25rem 3.5rem;
    margin:0;
    background:var(--primary-color);
    box-shadow:none;
    width:100vw;
    height:100vh;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    z-index:110;
    gap:.35rem;
    touch-action:pan-y;
    overscroll-behavior:contain;
  }
  .nav-links.open{display:flex!important;animation:fadeIn .2s ease-out forwards}
  .nav-links li{
    width:min(470px,calc(100% - 2.4rem));
    margin:0 auto;
    text-align:left;
    border-radius:14px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.08);
    box-shadow:0 10px 22px rgba(0,0,0,.1);
    overflow:hidden;
    flex:0 0 auto;
  }
  .nav-links li + li{margin-top:.35rem}
  .nav-links li:last-child{border-bottom:none}
  .nav-links a{
    width:100%;
    padding:.85em 1.15rem;
    font-size:1.05em;
    background:none;
    border-radius:0;
  }
  .nav-item--has-children{align-items:stretch}
  .nav-parent{display:block}
  .nav-parent a{display:block;background:transparent}
  .nav-links .nav-submenu{
    display:none;
    flex-direction:column;
    background:rgba(255,255,255,.96);
    border-radius:0 0 12px 12px;
    margin:0;
    width:100%;
    padding:0;
  }
  .nav-links.open .nav-submenu{display:flex}
  .nav-links .nav-submenu li{border-bottom:1px solid rgba(14,78,126,.12);background:none;box-shadow:none;border-radius:0;width:100%;margin:0;flex:0 0 auto}
  .nav-links .nav-submenu li:last-child{border-bottom:none}
  .nav-links .nav-submenu a{
    padding:.6em 1.15rem;
    font-size:1rem;
    color:var(--primary-color);
    background:none;
  }
  .nav-links .nav-submenu a:focus{background:rgba(14,78,126,.08);color:var(--primary-color)}
  .nav-links:not(.open) .nav-submenu a[aria-current="page"]{font-weight:700}
  .nav-links.open > li.active > a,
  .nav-links.open > li.active > .nav-parent > a{
    background:none;
    color:#fff;
    font-weight:inherit;
    font-style:normal;
  }
  .nav-links.open .nav-submenu li.active > a{
    color:var(--primary-color);
    font-weight:inherit;
  }
  .nav-links a:focus{
    background:rgba(255,255,255,.98);
    color:var(--primary-color);
    font-weight:700;
  }
  .nav-links a::after{display:none}
}

@media (max-width:800px) and (hover:hover){
  .nav-links .nav-submenu a:hover{background:rgba(14,78,126,.08);color:var(--primary-color)}
  .nav-links a:hover{
    background:rgba(255,255,255,.98);
    color:var(--primary-color);
    font-weight:700;
  }
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ──────────────────────────────────
   SLIDER & TEASER
   ──────────────────────────────────*/
.slider {
  position:relative;
  overflow:hidden;
  margin:24px auto 36px;
  border-radius:18px;
  box-shadow:0 12px 30px rgba(15,40,70,.12);
  background:var(--card-bg,#f8fafc);
  max-width:1100px;
  width:100%;
  touch-action:pan-y;
}
.slides{
  display:flex;
  transition:transform .7s ease-in-out;
  will-change:transform;
}
.slide{
  flex:0 0 100%;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1.2rem;
  align-items:center;
  background:var(--card-bg,#f8fafc);
  padding:clamp(1.8rem,4vw,3rem);
  box-sizing:border-box;
}
@media(min-width:700px){
  .slide{
    grid-template-columns:minmax(0,.35fr) minmax(0,1fr);
    gap:clamp(1.2rem,3vw,2.4rem);
    align-items:center;
  }
}
.slide img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  object-fit:cover;
  border-radius:12px;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
@media(min-width:700px){
  .slide img{
    max-height:175px;
    align-self:center;
  }
}
.slide-content{
  display:flex;
  flex-direction:column;
  gap:1rem;
  color:#384757;
}
.slide-title{
  font-size:clamp(1.5rem,1.2vw + 1.2rem,2.1rem);
  line-height:1.25;
  color:#0d1a33;
}
.slide p{margin:0;color:#384757;font-size:1.03rem;line-height:1.6}
.slide-cta{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  background:var(--primary-color);
  color:#fff;
  font-weight:700;
  padding:.65rem 1.5rem;
  border-radius:999px;
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}
.slide-cta::after{content:"→";font-size:1rem;line-height:1}
.slide-cta:hover,
.slide-cta:focus{
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(0,0,0,.18);
  background:var(--secondary-color);
  color:#fff;
}
.slider-buttons{
  position:absolute;
  top:50%;
  left:0;
  right:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 clamp(.5rem,2vw,1.5rem);
  transform:translateY(-50%);
  pointer-events:none;
}
.slider-buttons button{
  pointer-events:auto;
  background:rgba(0,0,0,.28);
  border:none;
  color:#fff;
  font-size:1.5rem;
  padding:.45rem .75rem;
  cursor:pointer;
  border-radius:999px;
  transition:background .2s ease,transform .2s ease;
  backdrop-filter:blur(6px);
}
.slider-buttons button:hover,
.slider-buttons button:focus{background:rgba(0,0,0,.6);transform:translateY(-1px)}
.slider--static .slider-buttons{display:none}

/* NEW: Instagram feed card styling */
.ig-feed{
  background:var(--card-bg,#f8fafc);
  padding:32px clamp(1.5rem,4vw,3rem);
  border-radius:16px;
  box-shadow:0 12px 30px rgba(15,40,70,.12);
  margin:0 auto 48px;
  max-width:1100px;
  width:100%;
}
.ig-feed h3{
  font-size:1.6rem;
  margin-bottom:1.5rem;
  color:#0d1a33;
}
.ig-feed .ig-widget{
  width:100%;
  border:0;
  overflow:hidden;
}

/* Responsive tweaks */
@media(max-width:699px){
  .slide{grid-template-columns:1fr;text-align:center}
  .slide-content{align-items:center}
  .slide-cta{width:100%;justify-content:center}
  .slider-buttons{padding:0 .75rem}
  .slide img{margin:0 auto}
}
@media(max-width:520px){
  .slider-buttons button{font-size:1.25rem;padding:.35rem .6rem}
}

/* ──────────────────────────────────
   ABOUT PAGE HERO
   ──────────────────────────────────*/
.about-hero{
  background:var(--card-bg);margin:36px 20px 0;padding:32px 36px;
  border-radius:18px;box-shadow:0 2px 14px rgba(14,78,126,.08);overflow:hidden
}
.about-text{
  position:relative;font-size:1.08rem;color:#11538c;line-height:1.7
}
.about-photo-float{
  float:left;width:40%;min-width:130px;margin:0 2rem 1.2rem 0;
  border-radius:14px;box-shadow:0 2px 8px rgba(14,78,126,.2);background:#e0e8ef
}
.about-text h1{
  color:#1569b8;font-size:clamp(1.5rem,3vw,2.2rem);margin-bottom:.45em
}
.about-text::after{content:"";display:table;clear:both}
.about-text p{margin-bottom:1.4em}
@media(max-width:750px){
  .about-hero{padding:18px 3vw 22px}
  .about-photo-float{
    float:none;display:block;margin:0 auto 1.2rem;width:70vw;max-width:95vw
  }
  .about-text h1{text-align:center}
}

/* ──────────────────────────────────
   VIDEO SECTION (unchanged)
   ──────────────────────────────────*/
.video-card{
  background:var(--card-bg);
  max-width:1100px;
  width:100%;
  margin:20px auto 0;
  padding:clamp(1.8rem,4vw,3rem);
  text-align:center;
  border-radius:18px;
  box-shadow:0 12px 30px rgba(15,40,70,.12);
}
.video-card h2{
  margin-bottom:18px;color:#0e4e7e;
  font-size:clamp(1.35rem,2vw,2.2rem);font-weight:700;
  text-shadow:0 2px 8px rgba(207,233,255,.5)
}
.video-container{
  position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden
}
.video-container iframe{
  position:absolute;inset:0;width:100%;height:100%;border:none;border-radius:8px;
}
@media(max-width:600px){
  .video-card{padding:clamp(1.4rem,5vw,2.2rem)}
}

/* ──────────────────────────────────
   FOOTER
   ──────────────────────────────────*/
footer{
  background:var(--primary-color);
  color:#fff;
  padding:20px 0;
  margin-top:20px;
}
footer p,
footer a{font-size:.9rem;color:#fff;text-decoration:none}
.footer-namebar{text-align:center;margin-top:1rem}
.footer-namebar img{max-width:175px;width:100%;height:auto}
.footer-wrap{max-width:1200px;margin-inline:auto;padding-inline:1rem;width:100%;}
.footer-content{padding:1.75rem 0;}
.footer-sections{display:grid;gap:1.25rem;justify-items:center;text-align:center}
.footer-sections{grid-template-columns:repeat(1,minmax(0,1fr));}
.footer-sections--multi{width:100%;}
.footer-section{min-width:0;width:100%}
.footer-section h4{margin-bottom:.55rem;font-size:1.1rem}
.footer-icon{display:inline-block;vertical-align:middle;margin-right:.5rem;color:inherit}
svg.footer-icon{width:20px;height:20px}
img.footer-icon{width:20px;height:auto}
.footer-contact p{margin-bottom:.35rem}
.footer-address-lines{display:flex;align-items:flex-start;justify-content:center;gap:.65rem;margin-top:.35rem;line-height:1.5}
.footer-address-lines .address-text{display:flex;flex-direction:column;gap:.2rem;align-items:center}
.footer-address .line{display:block}
.footer-address .line-1{white-space:nowrap}

/* Group hours icon with both lines and center them */
.footer-hours .footer-hours-lines{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  margin-top:.35rem;
  text-align:left;
}
.footer-hours .hours-text{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  align-items:flex-start;
  font-size:.9rem;
}
.footer-hours .hours-line{display:block}

.footer-hours p{margin-bottom:.35rem}
.footer-social .social-icons{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}
.footer-social .social-icons img{height:24px;width:24px}
footer .footer-contact .footer-icon{color:#d9edf7}
.footer-hours .footer-icon{margin-bottom:-.15rem}
.footer-bottom{background:var(--primary-color);color:#fff;text-align:center;font-size:.9rem}
@media (min-width:640px){
  .footer-sections--multi{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:992px){
  .footer-sections--multi{grid-template-columns:repeat(4,minmax(0,1fr));}
}

/* ──────────────────────────────────
   Contact page layout (unchanged)
   ──────────────────────────────────*/
.contact-details {
  margin: 32px 20px 0;
  padding: 32px 36px;
  background: var(--card-bg);
  border-radius: 18px;
  box-shadow: 0 2px 14px rgba(14,78,126,.08);
}

.contact-columns { display: flex; flex-wrap: wrap; gap: 2.5rem; }
.contact-office, .contact-form-panel { flex: 1 1 320px; }

.contact-details h2 { font-size: 1.4rem; color: #0e4e7e; margin-bottom: 0.75rem; }

.badge-moved { display:inline-block; padding:0.25rem 0.65rem; border-radius:999px; background:#ffe9a8; color:#5a4200; font-weight:600; font-size:0.85rem; margin-left:0.5rem; }

.split-address { font-style: normal; margin: 1rem 0 0.75rem; font-size: 1.05rem; color: #0e4e7e; }
.split-address .line { display: block; }

.contact-hours { margin-bottom: 1.2rem; color: #0e4e7e; font-weight: 600; }
.contact-hours span { font-weight: 400; display: block; }

.contact-methods { display: grid; gap: 0.6rem; margin-bottom: 1.5rem; }
.contact-methods p { margin: 0; display: flex; align-items: center; gap: 0.55rem; color: #0e4e7e; font-weight: 600; }
.contact-methods .footer-icon { margin-right: 0; flex-shrink: 0; }

.contact-methods a { color: inherit; text-decoration: none; }
.contact-methods a:hover, .contact-methods a:focus { text-decoration: underline; }

.contact-map { margin-top: 1.5rem; border-radius: 12px; overflow: hidden; box-shadow: 0 6px 20px rgba(14,78,126,.18); }
.contact-map iframe { width: 100%; height: 320px; border: 0; }

.contact-form-panel { background: #f1f7ff; border-radius: 16px; padding: 24px 28px; box-shadow: inset 0 0 0 1px rgba(14,78,126,.08); }
.contact-form-panel h1 { font-size: 1.35rem; margin-bottom: 1.2rem; color: #0e4e7e; }

.contact-form { display: grid; gap: 1rem; }
.contact-form label { font-weight: 600; color: #0e4e7e; }

.contact-form :where(input:not([type="checkbox"]):not([type="radio"]), textarea) {
  width: 100%;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  border: 1px solid rgba(14,78,126,.25);
  font-size: 1rem;
  line-height: 1.5;
  background: #fff;
  color: #0e4e7e;
  box-shadow: 0 1px 2px rgba(14,78,126,.08);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.contact-form :where(input:not([type="checkbox"]):not([type="radio"]), textarea):focus {
  outline: 2px solid rgba(13,100,184,.45);
  outline-offset: 1px;
  border-color: rgba(13,100,184,.55);
  box-shadow: 0 0 0 4px rgba(13,100,184,.12);
}
.contact-form textarea { min-height: 160px; resize: vertical; }

.contact-form button {
  justify-self: start;
  background: var(--secondary-color);
  color: #fff;
  border: none;
  padding: 0.75rem 1.75rem;
  border-radius: 999px;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--transition-speed);
}
.contact-form button:hover, .contact-form button:focus { background: #0e4e7e; }

.form-note { margin-top: 1.2rem; color: #0e4e7e; font-size: 0.95rem; }

@media (max-width: 900px) { .contact-form-panel { padding: 24px; } }
@media (max-width: 600px) {
  .contact-intro, .contact-details { margin: 24px 0 0; padding: 24px 20px; }
  .contact-form-panel { padding: 20px; }
}

/* ——— everything above remains exactly as in your current style.css ——— */
/* (I’m not duplicating the whole earlier file here to keep this message compact.) */

/* ──────────────────────────────────
   Requests & service pages
   ──────────────────────────────────*/
.requests-hero p.muted{color:#425873}

.requests-grid{
  display:grid;
  gap:clamp(14px,2vw,18px);
  margin:24px 0 56px;
  grid-template-columns:1fr;
}

.get-help-lead{
  display:grid;
  gap:clamp(1.5rem,3vw,2.25rem);
}

.get-help-lead h2{
  font-size:clamp(1.35rem,2.5vw,1.75rem);
  color:#0e4e7e;
  margin:0;
}

.get-help-lead__grid{
  display:grid;
  gap:clamp(1rem,2.4vw,1.6rem);
}

@media (min-width:720px){
  .get-help-lead__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

.get-help-lead__item{
  background:#fff;
  border-radius:14px;
  padding:clamp(1rem,2.6vw,1.5rem);
  border:1px solid rgba(14,78,126,.12);
  box-shadow:0 6px 20px rgba(14,78,126,.08);
  color:#0d1a33;
}

.get-help-lead__item h3{
  margin-top:0;
  margin-bottom:.35rem;
  color:#0e4e7e;
  font-size:clamp(1.05rem,2vw,1.25rem);
}

.get-help-lead__item p{color:#34597c;}

.get-help-lead__links{
  margin:0;
  padding-left:1.1rem;
  display:grid;
  gap:.45rem;
}

.get-help-lead__links a{
  color:var(--primary-color);
  font-weight:600;
}

.get-help-lead .info-callout{margin-top:0;}

.casework-main{
  display:flex;
  flex-direction:column;
  gap:0;
  padding-bottom:clamp(48px,6vw,72px);
}

.casework-callout{
  margin:clamp(16px,3vw,28px) 0 clamp(20px,3.6vw,36px);
  font-size:1.02rem;
  line-height:1.65;
}

.casework-jurisdiction{
  margin-top:clamp(28px,4vw,40px);
}

.casework-jurisdiction__intro{
  color:#34597c;
  margin:0;
  max-width:720px;
}

@media (min-width:600px){
  .requests-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (min-width:992px){
  .requests-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}

.request-card{
  background:var(--card-bg,#f8fafc);
  border-radius:14px;
  box-shadow:0 4px 18px rgba(15,40,70,.10);
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease;
}

.request-card:hover,
.request-card:focus{
  transform:translateY(-4px);
  box-shadow:0 18px 32px rgba(12,55,95,.14);
}

.request-card:focus-visible{
  outline:3px solid var(--secondary-color);
  outline-offset:4px;
}

.request-thumb{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  display:block;
}

.request-card__content{
  padding:clamp(18px,3vw,24px);
  display:flex;
  flex-direction:column;
  gap:.6rem;
  flex:1;
}

.request-card h3{color:#0d1a33;font-size:1.1rem}
.request-card p{color:#425873;font-size:.98rem}

.request-card__cta{
  margin-top:auto;
  font-weight:700;
  color:var(--primary-color);
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  letter-spacing:.01em;
}

.request-card__cta::after{
  content:"\2192";
  font-size:1.1em;
  transition:transform .18s ease;
}

.request-card:hover .request-card__cta::after,
.request-card:focus .request-card__cta::after{
  transform:translateX(4px);
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  background:var(--primary-color);
  color:#fff;
  font-weight:700;
  padding:.55rem 1.2rem;
  border-radius:999px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}

.btn:hover,
.btn:focus{
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(0,0,0,.18);
  background:var(--secondary-color);
}

/* Request detail layout */
.requests-main{margin-top:clamp(-1.2rem,-2.5vw,-.8rem);}

.requests-folder{
  background:var(--card-bg);
  border:1px solid rgba(14,78,126,.14);
  border-top:none;
  border-radius:0 0 22px 22px;
  box-shadow:0 24px 45px rgba(12,55,95,.15);
  padding:clamp(1.6rem,3vw,2.4rem);
  padding-top:clamp(2.1rem,4vw,2.9rem);
  position:relative;
  z-index:2;
}

.requests-folder::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:20px;
  background:linear-gradient(180deg,rgba(247,251,255,0),rgba(247,251,255,1));
  pointer-events:none;
}

.gethelp-hero{
  margin-bottom:clamp(1.2rem,3vw,1.8rem);
  max-width:720px;
}

.gethelp-hero h1{
  font-size:clamp(1.35rem,2.4vw,1.75rem);
  color:#0e4e7e;
}

.gethelp-hero p{margin-top:.35rem;color:#1a5084;}

.requests-folder .requests-grid{margin:0;gap:clamp(14px,2vw,18px);}

.req-card{
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%);
  border:1px solid rgba(14,78,126,.12);
  border-radius:18px;
  box-shadow:0 18px 32px rgba(12,55,95,.12);
  padding:clamp(16px,2.8vw,22px);
  display:flex;
  flex-direction:column;
  gap:.75rem;
  transition:transform .18s ease,box-shadow .18s ease;
}

.req-card:hover,
.req-card:focus-within{
  transform:translateY(-4px);
  box-shadow:0 24px 40px rgba(12,55,95,.16);
}

.req-thumb{
  height:130px;
  border-radius:12px;
  margin-bottom:.35rem;
  background:linear-gradient(180deg,#f0f7ff,#e4f0ff);
  overflow:hidden;
}

.req-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.req-title{font-weight:800;color:#113b6a;margin-bottom:.2rem;}
.req-text{color:#2b578a;margin-bottom:.6rem;}

.req-cta{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  background:var(--primary-color);
  color:#fff;
  padding:.55rem 1.1rem;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
}

.req-cta::after{content:"→";line-height:1;}

.req-cta:hover,
.req-cta:focus{background:var(--secondary-color);}

/* Requests tab navigation */
.requests-tabbar{
  background:var(--page-bg);
  border-bottom:1px solid rgba(14,78,126,.10);
}

@media(max-width:600px){
  .requests-tabbar{display:none}
}

.requests-tabbar .container{
  display:flex;
  justify-content:center;
}

.requests-tabbar .tab-links{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:clamp(.4rem,2.5vw,1.15rem);
  margin:0.3rem 0 0;
  padding:0;
  position:relative;
}

.requests-tabbar .tab-links>li{
  display:flex;
  align-items:center;
  position:relative;
}

.requests-tabbar .tab-links a,
.requests-tabbar .tab-links .tab-more-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  color:#0e4e7e;
  text-decoration:none;
  padding:.75rem .95rem;
  border-radius:12px 12px 0 0;
  line-height:1;
  white-space:nowrap;
  transition:color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}

.requests-tabbar .tab-links a{background:transparent;}

.requests-tabbar .tab-links a:hover,
.requests-tabbar .tab-links a:focus{color:var(--secondary-color);}

.requests-tabbar .tab-links a.active,
.requests-tabbar .tab-links a[aria-current="page"],
.requests-tabbar .tab-links .tab-more.has-active .tab-more-toggle,
.requests-tabbar .tab-links .tab-more.open .tab-more-toggle{
  color:var(--primary-color);
  background:var(--card-bg);
  border:1px solid rgba(14,78,126,.14);
  border-bottom:none;
  margin-bottom:-1px;
  padding-bottom:calc(.55rem + 3px);
  position:relative;
  z-index:3;
}

.requests-tabbar .tab-links a:hover:not(.active):not([aria-current="page"]),
.requests-tabbar .tab-links a:focus:not(.active):not([aria-current="page"]){
  color:var(--primary-color);
  background:var(--card-bg);
  border:1px solid rgba(14,78,126,.14);
  border-bottom:none;
  margin-bottom:-1px;
  padding-bottom:calc(.55rem + 3px);
  position:relative;
  z-index:3;
}

.requests-tabbar .tab-links .tab-more-toggle{
  background:none;
  border:none;
  cursor:pointer;
  font:inherit;
  gap:.35rem;
}

.requests-tabbar .tab-links .tab-more-toggle::after{
  content:"▾";
  font-size:.72em;
  transition:transform .2s ease;
}

.requests-tabbar .tab-links .tab-more.open .tab-more-toggle::after{transform:rotate(180deg);}

.requests-tabbar .tab-links .tab-more[hidden]{display:none;}

.requests-tabbar .tab-links .tab-more.has-active .tab-more-toggle::after{color:var(--primary-color);}

.requests-tabbar .tab-links .tab-more-list{
  position:absolute;
  top:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%);
  background:var(--card-bg);
  border:1px solid rgba(14,78,126,.14);
  border-radius:14px;
  box-shadow:0 20px 40px rgba(12,55,95,.18);
  padding:.45rem 0;
  min-width:210px;
  display:none;
  z-index:12;
}

.requests-tabbar .tab-links .tab-more.open .tab-more-list{display:block;}

.requests-tabbar .tab-links .tab-more-list li{display:block;margin:0;}

.requests-tabbar .tab-links .tab-more-list a{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  padding:.55rem 1.05rem;
  border-radius:0;
  color:#0e4e7e;
  background:transparent;
}

.requests-tabbar .tab-links .tab-more-list a:hover,
.requests-tabbar .tab-links .tab-more-list a:focus{
  background:rgba(14,78,126,.08);
  color:var(--primary-color);
}

.requests-tabbar .tab-links .tab-more-list a.active,
.requests-tabbar .tab-links .tab-more-list a[aria-current="page"]{
  background:rgba(14,78,126,.12);
  color:var(--primary-color);
  font-weight:800;
}

/* 1) Put the tabbar above the surface and draw a hairline under all tabs */
.requests-tabbar{
  position: relative;
  z-index: 3;
  border-bottom: 0;                /* we’ll draw our own line */
}
.requests-tabbar::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background: rgba(14,78,126,.10); /* the baseline under non-active tabs */
  z-index: 1;
}

/* 2) Normal tab, then the active tab gets a “skirt” that overlaps the card */
.requests-tabbar .tab-links a{
  border:1px solid transparent;
  border-bottom:0;
}

.requests-tabbar .tab-links a.active,
.requests-tabbar .tab-links a[aria-current="page"]{
  position: relative;
  background: var(--card-bg);
  color: var(--primary-color);
  border-color: rgba(14,78,126,.14);
  border-bottom: 0;                /* fuse with card below */
  z-index: 4;                      /* above the hairline */
}

/* The skirt: covers any rounding gap on every DPI/width */
.requests-tabbar .tab-links a.active::after,
.requests-tabbar .tab-links a[aria-current="page"]::after{
  content:"";
  position:absolute;
  left:-1px; right:-1px; bottom:-8px;  /* overlap amount */
  height:8px;
  background: var(--card-bg);
  border-left: 1px solid rgba(14,78,126,.14);
  border-right:1px solid rgba(14,78,126,.14);
  pointer-events:none;
}

.requests-tabbar .tab-links a:hover:not(.active):not([aria-current="page"])::after,
.requests-tabbar .tab-links a:focus:not(.active):not([aria-current="page"])::after{
  content:"";
  position:absolute;
  left:-1px; right:-1px; bottom:-8px;
  height:8px;
  background:var(--card-bg);
  border-left:1px solid rgba(14,78,126,.14);
  border-right:1px solid rgba(14,78,126,.14);
  pointer-events:none;
}

/* 3) Surface sits normally—no margin tricks */
.form-surface{
  position: relative;
  z-index: 2;
  margin-top: 0;
}

/* Responsive skirt length for the active tab */
@media (min-width: 833px) {
  .requests-tabbar .tab-links a.active::after,
  .requests-tabbar .tab-links a[aria-current="page"]::after,
  .requests-tabbar .tab-links a:hover:not(.active):not([aria-current="page"])::after,
  .requests-tabbar .tab-links a:focus:not(.active):not([aria-current="page"])::after{
    bottom: 0;          /* no overlap on wide view */
    height: 0;          /* hide the skirt */
    border-left: 0;
    border-right: 0;
  }
}

@media (max-width: 832px) {
  .requests-tabbar .tab-links a.active::after,
  .requests-tabbar .tab-links a[aria-current="page"]::after,
  .requests-tabbar .tab-links a:hover:not(.active):not([aria-current="page"])::after,
  .requests-tabbar .tab-links a:focus:not(.active):not([aria-current="page"])::after{
    bottom: -4px;       /* short overlap on narrow view */
    height: 4px;
    border-left: 1px solid rgba(14,78,126,.14);
    border-right: 1px solid rgba(14,78,126,.14);
  }
}

/* Reusable service form styles */
.form-surface{
  background:var(--card-bg);
  border-radius:14px;
  padding:16px 0 24px;
  margin-bottom:28px;
}

/* Flatten the surface + footer when tab bar occupies its own row */
.requests-tabbar + .form-surface{
  border-radius:0;
  margin-bottom:0;
}

.requests-tabbar + .form-surface + footer{
  margin-top:0;
}

.page-hero{
  max-width:1100px;
  margin:0 auto 12px;
  padding:16px clamp(16px,3vw,24px);
}

.page-hero.flags-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,320px);
  gap:clamp(16px,3vw,32px);
  align-items:center;
}

.page-hero.flags-hero .hero-copy{
  display:grid;
  gap:clamp(.65rem,1.8vw,1.1rem);
}

.page-hero.flags-hero .hero-media{
  margin:0;
  display:flex;
  justify-content:center;
}

.page-hero.flags-hero .hero-media img{
  max-width:100%;
  height:auto;
  border-radius:12px;
  box-shadow:0 12px 28px rgba(14,78,126,.18);
}

@media (max-width:860px){
  .page-hero.flags-hero{grid-template-columns:1fr;}
  .page-hero.flags-hero .hero-media{order:-1;}
}

.page-hero h1{
  color:#0e4e7e;
  font-size:clamp(1.35rem,2vw,1.8rem);
  margin-bottom:.35rem;
}

.page-hero p{color:#34597c;}

.form-wrap{
  max-width:1100px;
  margin:0 auto;
  padding:0 clamp(16px,3vw,24px) 8px;
}

.consent-section{
  background:linear-gradient(135deg,rgba(0,91,150,.12),rgba(13,100,184,.04));
  border:1px solid rgba(13,100,184,.14);
  border-radius:18px;
  box-shadow:0 18px 38px rgba(14,78,126,.12);
  padding:clamp(20px,3vw,36px);
  margin:clamp(22px,4vw,36px) auto clamp(28px,4vw,42px);
  display:grid;
  gap:clamp(16px,2vw,24px);
  color:#0e4e7e;
}

.consent-section h2{
  font-size:clamp(1.25rem,2.1vw,1.7rem);
  color:#0d3f68;
}

.consent-intro{
  font-size:clamp(1rem,1.1vw,1.1rem);
  max-width:60ch;
  color:#34597c;
}

.consent-step-list{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:clamp(16px,2.5vw,28px);
  counter-reset:consent-step;
  padding:0;
  margin:0;
}

.consent-step-list li{
  position:relative;
  counter-increment:consent-step;
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(13,100,184,.14);
  box-shadow:0 16px 32px rgba(13,100,184,.12);
  padding:clamp(22px,3vw,30px) clamp(18px,2.8vw,28px) clamp(20px,2.8vw,28px);
  display:grid;
  gap:.55rem;
  color:#34597c;
}

.consent-step-list li::before{
  content:counter(consent-step);
  position:absolute;
  top:-18px;
  left:22px;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--primary-color);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:1.15rem;
  box-shadow:0 12px 20px rgba(0,91,150,.28);
}

.consent-step-title{
  font-size:clamp(1.05rem,1.4vw,1.25rem);
  color:#0d3f68;
  margin:0;
}

.consent-step-list p{
  margin:0;
}

.consent-hint{
  color:#0d3f68;
  font-weight:600;
  background:rgba(255,255,255,.75);
  border-radius:12px;
  padding:clamp(12px,2vw,16px) clamp(14px,2.2vw,20px);
  box-shadow:inset 0 0 0 1px rgba(13,100,184,.16);
}

@media (max-width:640px){
  .consent-section{
    margin:clamp(18px,8vw,28px) auto;
    padding:clamp(18px,4vw,28px);
  }

  .consent-step-list li{
    padding:clamp(20px,6vw,26px) clamp(16px,6vw,24px) clamp(18px,6vw,24px);
  }

  .consent-step-list li::before{
    left:18px;
  }
}

.request-form{
  display:grid;
  gap:1rem;
  background:#fff;
  border-radius:12px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  padding:clamp(14px,2.5vw,22px);
}

.request-form .form-row{
  display:grid;
  gap:.75rem;
}

.form-section-card{
  display:grid;
  gap:clamp(.85rem,2vw,1.35rem);
  background:linear-gradient(135deg,rgba(14,78,126,.05),rgba(13,100,184,.02));
  border:1px solid rgba(14,78,126,.18);
  border-radius:18px;
  padding:clamp(18px,2.8vw,28px);
  box-shadow:0 16px 32px rgba(14,78,126,.1);
}

.request-form .form-section-card .group-title{
  margin-top:0;
}

.request-form .event-details{
  display:grid;
  gap:clamp(.85rem,2vw,1.25rem);
  background:rgba(247,251,255,.85);
  border:1px solid rgba(14,78,126,.16);
  border-radius:16px;
  padding:clamp(16px,2.4vw,24px);
  margin-top:.65rem;
  box-shadow:0 12px 24px rgba(14,78,126,.08);
}

.request-form .radio-fieldset{
  border:1px solid rgba(14,78,126,.16);
  border-radius:16px;
  padding:clamp(14px,2.2vw,22px);
  background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(247,251,255,.9));
  box-shadow:0 10px 24px rgba(14,78,126,.08);
  display:grid;
  gap:.65rem;
  margin:0;
}

.request-form .radio-fieldset legend{
  font-weight:700;
  color:#0e4e7e;
  padding:0 .35rem;
  margin:0;
}

.request-form .radio-fieldset .radio-list{
  margin-top:.15rem;
}

.request-form .radio-fieldset .radio-list label{
  align-items:center;
}

.request-form .radio-fieldset .radio-list label input[type="radio"]{
  margin-top:0;
}

.request-form .event-details[hidden]{
  display:none !important;
}

.request-form .event-details .group-title{
  margin-top:0;
}

.request-form .event-details .form-row + .form-row{
  margin-top:.85rem;
}

.request-form .event-note{
  margin-top:-.15rem;
  color:#34597c;
  font-size:.95rem;
  line-height:1.55;
}

.request-form .event-note a{
  color:inherit;
  text-decoration:underline;
}

.request-form .form-section-card .form-note{
  margin:-.2rem 0 .35rem;
  color:#34597c;
  font-size:.95rem;
}

.request-form .form-row .col-span-2{grid-column:span 2;}

.request-form .form-row.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.request-form .form-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.request-form .form-row.cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}

.request-form .check-inline{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  color:#0e4e7e;
  font-weight:600;
}

.request-form .check-inline input{margin:0;}

.request-form .schedule-row{align-items:start;}

.request-form .schedule-row .schedule-pair{
  display:grid;
  gap:.75rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.request-form .schedule-row .schedule-pair > div[hidden]{display:none;}

.request-form .schedule-row .schedule-pair > div{
  display:flex;
  flex-direction:column;
  gap:.35rem;
}

@media (max-width:820px){
  .request-form .form-row.cols-4{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width:720px){
  .request-form .form-row.cols-2,
  .request-form .form-row.cols-3,
  .request-form .form-row.cols-4{grid-template-columns:1fr;}

  .request-form .form-row.cols-2 > *,
  .request-form .form-row.cols-3 > *,
  .request-form .form-row.cols-4 > *{
    grid-column:auto !important;
  }
}

@media (max-width:720px){
  .request-form .schedule-row .schedule-pair{grid-template-columns:1fr;}
}

.request-form label{
  font-weight:600;
  color:#0e4e7e;
}

.request-form .required-indicator{
  color:#c2352b;
  margin-left:.25em;
  font-weight:700;
}

.request-form select{
  -webkit-appearance:none;
  appearance:none;
  padding-right:2.75rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%230e4e7e' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  background-size:.9rem auto;
  min-height:3.25rem;
}

.request-form select::-ms-expand{display:none;}

.request-form :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea){
  width:100%;
  padding:.75rem .85rem;
  border-radius:12px;
  border:1px solid rgba(14,78,126,.25);
  background:#fff;
  color:#0e4e7e;
  font-size:1rem;
  line-height:1.5;
  box-shadow:0 1px 2px rgba(14,78,126,.08);
  transition:border-color .15s ease,box-shadow .15s ease;
}

.request-form :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus{
  outline:2px solid rgba(13,100,184,.45);
  outline-offset:1px;
  border-color:rgba(13,100,184,.55);
  box-shadow:0 0 0 4px rgba(13,100,184,.12);
}

.request-form input[type="checkbox"],
.request-form input[type="radio"]{
  width:auto;
  padding:0;
}

.request-form textarea{min-height:140px;resize:vertical;}

.request-form .hint{font-size:.9rem;color:#3a638f;}

.request-form .ticket-attendee-section{
  display:grid;
  gap:1rem;
}

.request-form .ticket-entry-list{
  display:grid;
  gap:1rem;
}

.request-form .ticket-entry{
  border:1px solid rgba(14,78,126,.16);
  border-radius:14px;
  padding:1rem clamp(1rem,2.5vw,1.35rem);
  background:linear-gradient(180deg,rgba(247,251,255,.85),#fff);
  display:grid;
  gap:1rem;
}

.request-form .ticket-entry__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  font-weight:700;
  color:#0e4e7e;
}

.request-form .ticket-entry__title{font-size:1.05rem;}

.request-form .ticket-entry__remove{
  border:none;
  background:none;
  color:#c2352b;
  font-weight:600;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  padding:.25rem .4rem;
  border-radius:8px;
  transition:background .15s ease,color .15s ease;
}

.request-form .ticket-entry__remove:hover,
.request-form .ticket-entry__remove:focus-visible{
  background:rgba(194,53,43,.12);
  color:#961f17;
  outline:none;
}

.request-form .ticket-entry__fields{
  display:grid;
  gap:1rem;
}

.request-form .ticket-entry__same-address{
  font-size:.95rem;
  color:#0e4e7e;
}

.request-form .ticket-entry__same-address label{
  display:flex;
  align-items:center;
  gap:.45rem;
}

.request-form .ticket-entry-actions{
  display:flex;
  justify-content:flex-start;
  margin-top:1rem;
}

.request-form .ticket-entry-actions .btn-secondary{
  align-self:flex-start;
}

.request-form .ticket-entries[hidden]{display:none !important;}

.request-form .ticket-entry__remove[hidden]{display:none !important;}

.request-form .form-error{
  color:#b83224;
  font-weight:600;
  margin:.25rem 0 0;
}

.request-form .group-title{
  margin-top:.3rem;
  font-weight:700;
  color:#0e4e7e;
}

.request-form .radio-list{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;}
.request-form .radio-list label{display:flex;align-items:center;gap:.5rem;color:#0e4e7e;}

.request-form .check-grid{
  display:grid;
  gap:.65rem 1.25rem;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.form-extra-info{
  margin-top:clamp(26px,5vw,48px);
}

.form-extra-info .container{
  padding-inline:clamp(16px,3vw,32px);
}

.form-extra-info .form-section-card{margin:0;}
.form-extra-info [data-greeting-heading]{
  font-weight:600;
  color:#0e4e7e;
  font-size:1rem;
  margin:0;
}
.federal-greetings-card{
  gap:clamp(.4rem,1.5vw,.75rem);
}
.federal-greetings-card .form-note{
  margin:-.2rem 0 0;
  color:#34597c;
  font-size:.95rem;
}


.request-form .check-grid.alternate-options{grid-template-columns:1fr;}
.request-form .check-grid.alternate-options label{align-items:center;gap:.65rem;}
.request-form .check-grid.alternate-options input[type="checkbox"]{margin-top:0;}

.request-form .check-grid label{
  display:flex;
  gap:.5rem;
  align-items:flex-start;
  color:#0e4e7e;
}

.request-form .check-grid input[type="checkbox"]{
  margin-top:.2rem;
}

.request-form .actions{margin-top:.6rem;}

.btn-primary{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  background:var(--secondary-color);
  color:#fff;
  font-weight:700;
  border:none;
  padding:.75rem 1.4rem;
  border-radius:999px;
  cursor:pointer;
  text-decoration:none;
}

.btn-primary:hover,
.btn-primary:focus{background:#0e4e7e;}

.req{color:#c03;font-weight:700;margin-left:.2em;}

.hp{display:none !important;}

.hp-field{
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  white-space:nowrap !important;
}

.info-callout{
  background:#fff3cd;
  border:1px solid #ffe69c;
  color:#5a4200;
  border-radius:10px;
  padding:.9rem 1rem;
  margin:.8rem 0 0;
}

.jurisdiction-note{
  background:#fff8e6;
  border:1px solid #f3d48a;
  color:#5a4200;
  padding:.85rem 1rem;
  border-radius:10px;
  margin:1rem 0 1.2rem;
}

/* Consistent gutters */
:root{--gutter:20px;}

.container{
  max-width:1100px;
  margin-inline:auto;
  padding-inline:var(--gutter);
}

@media (max-width:600px){
  .requests-hero,
  .requests-grid{
    margin-left:var(--gutter);
    margin-right:var(--gutter);
  }
}

.footer-wrap{
  max-width:1100px;
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ────────────────────────────────
   Footer icon sizing + alignment fixes
   ────────────────────────────────*/

/* Larger location icon to match hours icon */
.footer-address .footer-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* Vertically center both lines next to the icon */
.footer-address-lines {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
}
.footer-address .address-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.4;
}

/* Normalize social icon proportions */
.footer-social .social-icons img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  aspect-ratio: 1 / 1;
  display: inline-block;
}

/* ──────────────────────────────────
   Breadcrumbs (matches main nav styling)
   ──────────────────────────────────*/
.breadcrumbs{
  background: var(--primary-color);
  color: #fff;
  box-shadow: 0 2px 8px rgba(15,40,70,.12);
}
.breadcrumbs .crumbs{
  max-width: 1100px;
  margin-inline: auto;
  padding: .55rem var(--gutter);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
}
.breadcrumbs a{
  color: #fff;
  text-decoration: none;
  opacity: .92;
}
.breadcrumbs a:hover,
.breadcrumbs a:focus{
  opacity: 1;
  text-decoration: underline;
}
.breadcrumbs .sep{
  opacity: .6;
  padding: 0 .25rem;
}
.breadcrumbs [aria-current="page"]{
  font-weight: 700;
  opacity: 1;
}

/* ──────────────────────────────────
   Requests hero – unify across pages
   ──────────────────────────────────*/
.requests-hero{
  background: var(--card-bg);
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(15,40,70,.08);
  padding: clamp(24px,3vw,32px);
  margin: 24px 0 8px;
  max-width: 1100px;
  display: flex;
  flex-direction: column;
  gap: .85rem;
}
.requests-hero h1{
  color: #0e4e7e;
  font-size: clamp(1.35rem,2vw,1.8rem);
  margin: 0;
}
.requests-hero p{
  color: #34597c;
  font-size: 1.03rem;
  margin: 0;
}

.requests-hero__note{
  font-size: .95rem;
  color: #2d5275;
}

.requests-hero__note a{
  color: var(--secondary-color);
  font-weight: 600;
}

.requests-hero__note a:hover,
.requests-hero__note a:focus{
  text-decoration: underline;
}

/* Card image consistency for this hub (optional) */
.request-card img{
  width: 92%;
  margin-left: 4%;
  margin-top: 4%;
  object-fit: contain;    /* icons/logos stay crisp */
  border-radius: 10px;
  background: linear-gradient(180deg,#f4f9ff, #e9f4ff);
}

/* ──────────────────────────────────
   Requests sub-nav (pills under the main nav)
   ──────────────────────────────────*/
.requests-subnav{
  background: var(--card-bg);
  border-radius: 14px;
  box-shadow: 0 4px 16px rgba(15,40,70,.08);
  margin: 16px auto;
  padding: 10px clamp(12px,3.2vw,24px);
  max-width: 1100px;
}
.requests-subnav .pill-list{
  display: flex;
  flex-wrap: wrap;               /* lets it flow into a 2nd row */
  gap: .6rem;
  justify-content: center;
}
.requests-subnav a{
  display: inline-block;
  padding: .55rem .95rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(13,100,184,.15);
  color: #0d4e7e;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.requests-subnav a:hover,
.requests-subnav a:focus{
  transform: translateY(-1px);
  border-color: rgba(13,100,184,.35);
}
.requests-subnav a.active,
.requests-subnav a[aria-current="page"]{
  background: var(--secondary-color);
  color: #fff;
  border-color: var(--secondary-color);
}


/* ──────────────────────────────────
   IRCC enquiry form
   ──────────────────────────────────*/
.ircc-form .ircc-section{
  border:1px solid rgba(14,78,126,.18);
  border-radius:14px;
  padding:clamp(16px,2.5vw,24px);
  background:#fff;
  display:grid;
  gap:1.3rem;
}

.ircc-form legend{
  font-weight:700;
  color:#0e4e7e;
  font-size:1.05rem;
  padding:0 .4rem;
}

.ircc-form .ircc-span-2{grid-column:span 2;}
@media(max-width:720px){
  .ircc-form .ircc-span-2{grid-column:span 1;}
}

.ircc-form .radio-stack{
  display:grid;
  gap:1.1rem;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
}

.ircc-form .about-option{
  position:relative;
}

.ircc-form .about-option input[type="radio"]{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  border:0;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.ircc-form .about-option__card{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  border:2px solid rgba(14,78,126,.16);
  border-radius:14px;
  padding:clamp(16px,2.5vw,22px);
  background:#fff;
  box-shadow:0 8px 18px rgba(14,78,126,.08);
  color:#0e4e7e;
  cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.ircc-form .about-option__card::before{
  content:"";
  flex-shrink:0;
  width:1.05rem;
  height:1.05rem;
  border-radius:50%;
  border:2px solid #0e4e7e;
  margin-top:.2rem;
  box-shadow:inset 0 0 0 0 #0e4e7e;
  transition:box-shadow .2s ease, border-color .2s ease;
}

.ircc-form .about-option__copy{
  display:grid;
  gap:.35rem;
}

.ircc-form .about-option__title{
  font-weight:700;
  font-size:1rem;
}

.ircc-form .about-option__desc{
  color:rgba(5,53,90,.78);
  font-size:.93rem;
  line-height:1.4;
}

.ircc-form .about-option__card:hover{
  border-color:rgba(13,100,184,.35);
  box-shadow:0 12px 24px rgba(14,78,126,.12);
  background:linear-gradient(135deg,#f3f9ff 0%,#fff 70%);
}

.ircc-form .about-option input[type="radio"]:checked + .about-option__card{
  border-color:#0d64b8;
  box-shadow:0 14px 28px rgba(14,78,126,.18);
  background:linear-gradient(135deg,#f3f9ff 0%,#fff 70%);
}

.ircc-form .about-option input[type="radio"]:checked + .about-option__card::before{
  box-shadow:inset 0 0 0 6px #0d64b8;
  border-color:#0d64b8;
}

.ircc-form .about-option input[type="radio"]:focus-visible + .about-option__card{
  outline:3px solid rgba(13,100,184,.45);
  outline-offset:3px;
}

.ircc-form .ircc-radio-list{flex-wrap:wrap;gap:.65rem;}

.ircc-subjects{display:grid;gap:1.4rem;}

.ircc-card,
.ircc-subcard{
  background:#fff;
  border:1px solid rgba(14,78,126,.16);
  border-radius:14px;
  box-shadow:0 6px 16px rgba(14,78,126,.08);
}

.ircc-card__header,
.ircc-subcard__header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  padding:.85rem 1.1rem;
  background:var(--card-bg);
  border-bottom:1px solid rgba(14,78,126,.14);
  color:#0e4e7e;
  font-weight:700;
}

.ircc-card__body,
.ircc-subcard__body{
  padding:clamp(16px,2.3vw,24px);
  display:grid;
  gap:1.05rem;
}

.ircc-card__body .applicationsContainer{display:grid;gap:1rem;}
.ircc-card__body > .btn-secondary{justify-self:flex-start;}

.ircc-remove-btn{
  border:none;
  background:transparent;
  color:#0e4e7e;
  font-size:1.4rem;
  line-height:1;
  padding:.1rem .35rem;
  border-radius:999px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}

.ircc-remove-btn:hover,
.ircc-remove-btn:focus{background:rgba(14,78,126,.12);color:#05355a;}

.ircc-remove-btn--hidden{display:none;}

.ircc-enquiry-types{display:grid;gap:.55rem;}

.ircc-check-grid{
  display:grid;
  gap:.65rem 1.25rem;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.ircc-check-grid label{
  display:flex;
  gap:.45rem;
  align-items:flex-start;
  color:#0e4e7e;
}

.ircc-check-grid input{margin-top:.25rem;}

.btn-secondary{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border:1px solid rgba(14,78,126,.35);
  color:#0e4e7e;
  background:#f4f8fc;
  padding:.6rem 1.2rem;
  border-radius:999px;
  font-weight:600;
  cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}

.btn-secondary:hover,
.btn-secondary:focus{
  background:rgba(14,78,126,.12);
  border-color:rgba(14,78,126,.6);
  color:#05355a;
}

.alert{
  border-radius:12px;
  padding:.85rem 1rem;
  font-size:.95rem;
  line-height:1.5;
}

.alert-info{background:#e7f3ff;border:1px solid #b9d8ff;color:#0e4e7e;}
.alert-warning{background:#fff4d6;border:1px solid #f5d086;color:#6a4a00;}
.alert-secondary{background:#f1f4f8;border:1px solid #cdd8e8;color:#314a63;}
.alert-danger{background:#fde7e7;border:1px solid #f3b6b6;color:#7c1f1f;}

.d-none{display:none !important;}

/* IRCC enquiry type tiles (responsive grid + tile styling) */
.ircc-enquiry-types { margin-top: 6px; }
.ircc-check-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

/* Mobile / narrow screens: 2 columns */
@media (max-width: 900px) {
  .ircc-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Make label a tappable tile with proper spacing and alignment */
.ircc-check-grid label {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(14,78,126,0.12);
  background: #ffffff;
  cursor: pointer;
  transition: box-shadow .18s ease, border-color .18s ease, transform .08s ease;
  user-select: none;
  line-height: 1.25;
  font-weight: 600;
  color: #0e4e7e;
}

/* Slight hover / focus affordance */
.ircc-check-grid label:hover,
.ircc-check-grid label:focus-within {
  box-shadow: 0 8px 18px rgba(14,78,126,.06);
  border-color: rgba(13,100,184,.25);
  transform: translateY(-1px);
}

/* Checkbox size + better alignment */
.ircc-check-grid input[type="checkbox"].enquiry-box {
  width: 18px;
  height: 18px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: var(--secondary-color); /* modern browsers */
}

/* When label receives class 'is-checked' (JS will toggle) show highlighted state */
.ircc-check-grid label.is-checked {
  background: linear-gradient(180deg, #f3f9ff 0%, #ffffff 100%);
  border-color: var(--secondary-color);
  box-shadow: 0 10px 22px rgba(13,100,184,0.06);
}

/* Make the conditional notes span the card body fully and have consistent spacing */
.status-note,
.clarification-note,
.urgent-note {
  width: 100%;
  margin-top: 0.8rem;
  grid-column: 1 / -1; /* full width inside grid containers */
  padding: 0.9rem 1rem;
}

/* Ensure the 'Other' label doesn't wrap awkwardly on narrow screens */
.ircc-check-grid label { white-space: nowrap; }
.ircc-check-grid label span { display: inline-block; } /* if you wrap text in spans later */

/* ---------- Fix for enquiry type spacing & wrapping ---------- */

/* Use border-box everywhere for these tiles to avoid overflow calculations */
.ircc-check-grid,
.ircc-check-grid * { box-sizing: border-box; }

/* Responsive grid: auto-fit will create as many columns as fit the space.
   min width ~180px keeps tiles a usable tap target; adjust as needed. */
.ircc-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  align-items: start;
  width: 100%;
}

/* Labels become flexible tiles that can wrap */
.ircc-check-grid label {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(14,78,126,0.12);
  background: #fff;
  cursor: pointer;
  transition: box-shadow .18s ease, border-color .18s ease, transform .08s ease;
  user-select: none;
  line-height: 1.2;
  font-weight: 600;
  color: #0e4e7e;
  white-space: normal;      /* allow wrapping */
  word-break: break-word;   /* break long words if necessary */
  min-height: 48px;         /* consistent tap target height */
}

/* Checkbox sizing and alignment — keep it centered vertically */
.ircc-check-grid input[type="checkbox"].enquiry-box {
  width: 18px;
  height: 18px;
  margin: 0;
  flex: 0 0 auto;
  align-self: center;
}

/* Prevent the label content from causing overflow */
.ircc-check-grid label,
.ircc-check-grid label > * {
  max-width: 100%;
}

/* Optional: slightly smaller padding at narrow widths so tiles don't become too tall */
@media (max-width: 420px) {
  .ircc-check-grid label { padding: 0.45rem 0.6rem; min-height: 44px; font-size: .97rem; }
  .ircc-check-grid { gap: 8px; }
}

/* Keep conditional notes full width and nicely spaced below the grid */
.status-note,
.clarification-note,
.urgent-note {
  width: 100%;
  margin-top: 0.9rem;
  padding: 0.9rem 1rem;
  grid-column: 1 / -1;  /* full width if inside a grid container */
}

/* Highlighted state for checked tiles (if you use the JS helper to toggle .is-checked) */
.ircc-check-grid label.is-checked {
  background: linear-gradient(180deg, #f3f9ff 0%, #ffffff 100%);
  border-color: var(--secondary-color);
  box-shadow: 0 10px 22px rgba(13,100,184,0.06);
}

/* Safety: if some prior CSS forced no-wrap, explicitly override it */
.ircc-check-grid label { white-space: normal !important; }

/* If you still see a horizontal scrollbar, this often means a parent element has a fixed width or large padding.
   Try reducing the right/left padding on the immediate card body on very narrow screens:
*/
@media (max-width: 360px) {
  .ircc-subcard__body, .ircc-card__body {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

.honeypot {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}

/* Small helper: visible required asterisk (re-usable) */
.req { color: #a40000; margin-left: 0.25rem; font-weight:700; }

/* Footer CTA reuse: match footer background variable (existing var used elsewhere) */
.footer-cta {
  background: var(--secondary-color);
  color: #fff;
  border-color: var(--secondary-color);
}

/* Supporting document row: position remove icon in top-right */
.supporting-document {
  position: relative;
  padding-top: 0.25rem; /* make space for the icon */
}

.supporting-document .ircc-remove-btn.remove-supporting {
  position: absolute;
  top: 6px;
  right: 6px;
  padding: 0.25rem 0.45rem;
  border-radius: 999px;
  font-size: 0.9rem;
  line-height: 1;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #a40000;
}

.supporting-document .ircc-remove-btn.remove-supporting:hover,
.supporting-document .ircc-remove-btn.remove-supporting:focus {
  background: rgba(164,0,0,0.06);
  color: #7a0000;
}

/* keep existing .ircc-remove-btn styles for consistency */
.ircc-remove-btn{
  border:none;
  background:transparent;
  color:#0e4e7e;
  font-size:1.4rem;
  line-height:1;
  padding:.1rem .35rem;
  border-radius:999px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}

.ircc-remove-btn:hover,
.ircc-remove-btn:focus{background:rgba(14,78,126,.12);color:#05355a;}

/* === Unified footer gradient === */
footer {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--secondary-color) 90%, white 10%) 0%,
    var(--primary-color) 100%
  );
  color: #fff;
}

footer .footer-namebar {
  background: transparent; /* keeps gold emblem area clean */
}

footer .footer-wrap,
footer .footer-bottom {
  background: transparent; /* allow the gradient to show through */
}

footer a {
  color: #fff;
  text-decoration: none;
}

footer a:hover {
  text-decoration: underline;
}
