/* =========================================================
   URBANLINE INTERIORS — DESIGN SYSTEM
   Palette drawn from the brand mark: deep indigo "U" rising out
   of a bright yellow arc. Display face: Sora (bold/geometric,
   echoes the logo's confident sans lettering). Body face: Inter.
   Signature element: a recurring "U" swoosh divider between
   sections, the same silhouette as the logo's negative space.
   ========================================================= */

:root{
  --ink:        #14142B;
  --navy:       #1B1750;
  --navy-2:     #2E2A6E;
  --navy-soft:  #3E3A83;
  --yellow:     #FFDE00;
  --yellow-dark:#E8C700;
  --cloud:      #FAF9F6;
  --cloud-2:    #F1EFEA;
  --line:       #E7E4DC;
  --gray:       #6B6B80;

  --font-display: 'Sora', sans-serif;
  --font-body:    'Inter', sans-serif;

  --radius: 14px;
  --radius-lg: 26px;
  --shadow-soft: 0 20px 50px -25px rgba(27, 23, 80, 0.35);
  --shadow-card: 0 10px 30px -18px rgba(20, 20, 43, 0.25);
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cloud);
  overflow-x: hidden;
}
h1,h2,h3,h4,h5,h6{
  font-family: var(--font-display);
  color: var(--navy);
  font-weight: 700;
  letter-spacing: -0.01em;
}
a{ text-decoration: none; color: inherit; }
img{ max-width: 100%; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

.eyebrow{
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy-2);
  background: rgba(255,222,0,0.35);
  padding: 6px 16px;
  border-radius: 999px;
  margin-bottom: 14px;
}
.eyebrow-light{ background: rgba(255,255,255,0.16); color: var(--yellow); }

.section{ padding: 96px 0; }
.section-sm{ padding: 64px 0; }
@media (max-width: 991px){
  .section{ padding: 64px 0; }
  .section-sm{ padding: 44px 0; }
}
.section-dark{ background: var(--navy); color: #fff; }
.section-dark h2, .section-dark h3, .section-dark h4{ color: #fff; }
.section-alt{ background: var(--cloud-2); }

.section-head{ max-width: 720px; margin-bottom: 48px; }
.section-head.mx-auto{ text-align: center; margin-left:auto; margin-right:auto; }
.section-head p{ color: var(--gray); font-size: 1.05rem; }

/* ---------- Buttons ---------- */
.btn-cta{
  background: var(--yellow);
  color: var(--navy);
  font-family: var(--font-display);
  font-weight: 700;
  border: none;
  padding: 13px 28px;
  border-radius: 999px;
  font-size: 0.95rem;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
  box-shadow: 0 10px 24px -12px rgba(255,222,0,0.7);
  white-space: nowrap;
}
.btn-cta:hover{ background: var(--yellow-dark); transform: translateY(-2px); color: var(--navy); }
.btn-cta-light{
  background: #fff;
  color: var(--navy);
  font-family: var(--font-display);
  font-weight: 700;
  border: none;
  padding: 13px 30px;
  border-radius: 999px;
}
.btn-cta-light:hover{ background: var(--yellow); }
.btn-outline-navy{
  border: 1.5px solid var(--navy);
  color: var(--navy);
  font-family: var(--font-display);
  font-weight: 600;
  padding: 11px 26px;
  border-radius: 999px;
  transition: all .25s ease;
  display: inline-block;
}
.btn-outline-navy:hover{ background: var(--navy); color: #fff; }
.btn-outline-white{
  border: 1.5px solid rgba(255,255,255,0.6);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 600;
  padding: 11px 26px;
  border-radius: 999px;
  display: inline-block;
}
.btn-outline-white:hover{ background:#fff; color: var(--navy); }

/* ---------- Topbar ---------- */
.topbar{ background: var(--navy); color: rgba(255,255,255,0.85); font-size: 0.82rem; }
.topbar-inner{ display:flex; justify-content: space-between; align-items:center; padding: 8px 0; }
.topbar a{ color: rgba(255,255,255,0.85); margin-right: 22px; }
.topbar a:hover{ color: var(--yellow); }
.topbar-right a{ margin-right:0; margin-left: 22px; }

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky; top: 0; z-index: 1030;
  background: #fff;
  box-shadow: 0 2px 18px -8px rgba(20,20,43,0.15);
}
.brand-logo{ height: 46px; width: auto; }
.navbar-nav .nav-link{
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--ink);
  padding: 10px 16px !important;
  font-size: 0.95rem;
}
.navbar-nav .nav-link.active, .navbar-nav .nav-link:hover{ color: var(--navy-2); }
.navbar-toggler{ border:none; padding: 4px; }
.navbar-toggler:focus{ box-shadow: 0 0 0 3px rgba(255,222,0,0.5); }
.toggler-bar{ display:block; width: 26px; height: 3px; margin: 5px 0; background: var(--navy); border-radius: 2px; }
.dropdown-menu{ border:none; box-shadow: var(--shadow-card); border-radius: 12px; padding: 8px; }
.dropdown-item{ font-weight: 500; border-radius: 8px; padding: 10px 14px; }
.dropdown-item:hover, .dropdown-item:focus{ background: var(--cloud-2); color: var(--navy-2); }

/* ---------- HERO (video) ---------- */
.hero{
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--navy);
}
.hero-media{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.hero-media video, .hero-media img{
  width:100%; height:100%; object-fit: cover; position:absolute; inset:0;
}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(20,17,60,0.55) 0%, rgba(20,17,60,0.45) 45%, rgba(20,17,60,0.92) 100%);
}
.hero-content{ position: relative; z-index: 2; color:#fff; padding: 90px 0 140px; }
.hero-content h1{
  color:#fff;
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1.05;
  margin-bottom: 20px;
}
.hero-content .lead{
  color: rgba(255,255,255,0.85);
  font-size: 1.15rem;
  max-width: 560px;
  margin-bottom: 32px;
}
.hero-stats{
  display:flex; flex-wrap:wrap; gap: 34px; margin-top: 46px;
}
.hero-stats .stat-num{
  font-family: var(--font-display); font-size: 2rem; font-weight: 800; color: var(--yellow); line-height:1;
}
.hero-stats .stat-label{ font-size: 0.85rem; color: rgba(255,255,255,0.75); margin-top:6px; }
.hero-actions .btn-cta{ margin-right: 14px; }

/* U-swoosh signature divider — echoes the logo's negative-space "U" */
.u-swoosh{
  position: relative;
  height: 90px;
  margin-top: -90px;
  z-index: 3;
}
.u-swoosh svg{ width:100%; height:100%; display:block; }

/* ---------- Stat strip ---------- */
.stat-strip{ background: #fff; }
.stat-strip .stat-box{ text-align:center; padding: 10px 8px; }
.stat-strip .stat-box .num{ font-family: var(--font-display); font-size: 2.2rem; font-weight: 800; color: var(--navy-2); }
.stat-strip .stat-box .label{ color: var(--gray); font-size: 0.88rem; font-weight:500; }

/* ---------- Service cards ---------- */
.service-card{
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: 420px;
  display:flex; align-items:flex-end;
  box-shadow: var(--shadow-card);
  transition: transform .35s ease;
}
.service-card:hover{ transform: translateY(-6px); }
.service-card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition: transform .6s ease;
}
.service-card:hover img{ transform: scale(1.06); }
.service-card::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(20,17,60,0) 30%, rgba(15,13,45,0.92) 100%);
}
.service-card-body{ position:relative; z-index:2; padding: 30px; color:#fff; }
.service-card-body .tag{
  font-family: var(--font-display); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
  color: var(--yellow); font-weight:700; margin-bottom: 8px; display:block;
}
.service-card-body h3{ color:#fff; font-size:1.5rem; margin-bottom:10px; }
.service-card-body p{ color: rgba(255,255,255,0.8); font-size:0.92rem; margin-bottom: 16px; }

/* ---------- Feature / why-choose items ---------- */
.feature-item{ display:flex; gap:18px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.feature-item:last-child{ border-bottom:none; }
.feature-icon{
  flex: 0 0 56px; height:56px; width:56px; border-radius: 16px;
  background: var(--cloud-2); display:flex; align-items:center; justify-content:center;
  font-size: 1.4rem; color: var(--navy-2);
}
.feature-item h4{ font-size: 1.08rem; margin-bottom:4px; }
.feature-item p{ color: var(--gray); margin-bottom:0; font-size:0.94rem; }

/* ---------- Package cards ---------- */
.pkg-card{
  background:#fff; border-radius: var(--radius-lg); overflow:hidden;
  box-shadow: var(--shadow-card); height:100%;
  display:flex; flex-direction:column;
  border: 2px solid transparent;
  transition: border-color .25s ease, transform .25s ease;
}
.pkg-card:hover{ transform: translateY(-6px); border-color: var(--yellow); }
.pkg-card .pkg-img{ height: 220px; overflow:hidden; }
.pkg-card .pkg-img img{ width:100%; height:100%; object-fit:cover; }
.pkg-card .pkg-body{ padding: 26px; flex:1; display:flex; flex-direction:column; }
.pkg-card .pkg-price{ font-family: var(--font-display); font-size:1.6rem; color: var(--navy-2); font-weight:800; margin: 8px 0 16px; }
.pkg-card .pkg-body ul{ list-style:none; padding:0; margin: 0 0 20px; }
.pkg-card .pkg-body ul li{ padding: 6px 0; font-size:0.92rem; color: var(--ink); }
.pkg-card .pkg-body ul li i{ color: var(--navy-2); margin-right:8px; }
.pkg-card.featured{ border-color: var(--yellow); }
.pkg-badge{
  background: var(--yellow); color: var(--navy); font-family: var(--font-display); font-weight:700;
  font-size: 0.72rem; letter-spacing:0.08em; text-transform:uppercase; padding: 5px 14px; border-radius: 999px;
  position:absolute; margin: 14px; z-index:2;
}

/* ---------- Gallery ---------- */
.gallery-tile{
  position:relative; border-radius: var(--radius); overflow:hidden; height: 280px;
  box-shadow: var(--shadow-card);
}
.gallery-tile img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.gallery-tile:hover img{ transform: scale(1.08); }
.gallery-tile .gallery-label{
  position:absolute; left:0; right:0; bottom:0;
  background: linear-gradient(0deg, rgba(15,13,45,0.85), transparent);
  color:#fff; padding: 20px 18px 14px; font-family: var(--font-display); font-weight:700; letter-spacing:0.04em;
}

/* ---------- Testimonials ---------- */
.testimonial-card{
  background:#fff; border-radius: var(--radius-lg); padding: 30px; height:100%;
  box-shadow: var(--shadow-card);
}
.testimonial-card .stars{ color: var(--yellow-dark); margin-bottom:14px; }
.testimonial-card p{ color: var(--ink); font-size:0.98rem; }
.testimonial-author{ display:flex; align-items:center; gap:12px; margin-top:18px; }
.testimonial-author img{ width:46px; height:46px; border-radius:50%; object-fit:cover; }
.testimonial-author .name{ font-family: var(--font-display); font-weight:700; font-size:0.92rem; }
.testimonial-author .role{ color: var(--gray); font-size:0.8rem; }

/* ---------- FAQ ---------- */
.accordion-item{ border:none; border-bottom: 1px solid var(--line); background:transparent; }
.accordion-button{
  font-family: var(--font-display); font-weight:700; color: var(--navy);
  background:transparent; padding: 22px 4px; box-shadow:none !important;
}
.accordion-button:not(.collapsed){ color: var(--navy-2); background:transparent; }
.accordion-button::after{ filter: none; }
.accordion-body{ color: var(--gray); padding: 0 4px 22px; }

/* ---------- Contact / process ---------- */
.process-step{ text-align:center; padding: 0 12px; }
.process-num{
  width:64px; height:64px; border-radius:50%; background: var(--navy);
  color: var(--yellow); font-family: var(--font-display); font-weight:800; font-size:1.3rem;
  display:flex; align-items:center; justify-content:center; margin: 0 auto 18px;
}
.process-step h4{ font-size:1.05rem; }
.process-step p{ color: var(--gray); font-size:0.9rem; }

/* ---------- Brand logo strip ---------- */
.brand-strip{ background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.brand-strip .marquee{ display:flex; gap: 60px; overflow:hidden; }
.brand-strip img{ height: 34px; opacity:0.6; filter: grayscale(1); }

/* ---------- Footer CTA ---------- */
.footer-cta{ background: var(--navy-2); color:#fff; padding: 60px 0; }
.footer-cta h2{ color:#fff; margin:0; font-size: clamp(1.5rem, 3vw, 2.1rem); }

/* ---------- Footer ---------- */
.site-footer{ background: var(--ink); color: rgba(255,255,255,0.7); padding: 64px 0 0; }
.footer-top{ padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.footer-logo{ height:44px; margin-bottom:16px; filter: brightness(0) invert(1); }
.footer-about{ font-size:0.9rem; line-height:1.6; }
.site-footer h6{ color:#fff; font-family: var(--font-display); font-weight:700; margin-bottom:18px; font-size:0.92rem; letter-spacing:0.04em; text-transform:uppercase; }
.footer-links{ list-style:none; padding:0; margin:0; }
.footer-links li{ margin-bottom: 12px; font-size:0.9rem; }
.footer-links a:hover{ color: var(--yellow); }
.footer-contact li{ display:flex; gap:10px; align-items:flex-start; }
.footer-contact i{ color: var(--yellow); margin-top:3px; }
.social-icons a{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; background: rgba(255,255,255,0.08); margin-right:8px; color:#fff;
}
.social-icons a:hover{ background: var(--yellow); color: var(--navy); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
  padding: 22px 0; font-size:0.82rem;
}
.footer-bottom-links a{ margin-left: 20px; }
.footer-bottom-links a:hover{ color: var(--yellow); }

/* ---------- WhatsApp float ---------- */
.whatsapp-float{
  position: fixed; bottom: 26px; right: 26px; z-index: 1040;
  width: 58px; height:58px; border-radius:50%;
  background: #25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  font-size: 1.7rem; box-shadow: 0 12px 30px -10px rgba(37,211,102,0.7);
  animation: floatPulse 2.6s ease-in-out infinite;
}
@keyframes floatPulse{ 0%,100%{ transform: scale(1);} 50%{ transform: scale(1.08);} }

/* ---------- Enquiry Modal ---------- */
.enquiry-modal-content{ border:none; border-radius: 22px; overflow:hidden; }
.enquiry-close{ position:absolute; top:16px; right:16px; z-index:5; background:#fff; border-radius:50%; opacity:1; padding:10px; }
.enquiry-side{
  background: linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff; height:100%; position:relative;
}
.enquiry-side-inner{ padding: 46px 34px; }
.enquiry-side-inner h3{ color:#fff; font-size:1.7rem; margin-bottom:14px; }
.enquiry-side-inner p{ color: rgba(255,255,255,0.75); font-size:0.92rem; }
.enquiry-points{ list-style:none; padding:0; margin-top:24px; }
.enquiry-points li{ margin-bottom:14px; font-size:0.9rem; }
.enquiry-points i{ color: var(--yellow); margin-right:10px; }
.enquiry-form-wrap{ padding: 40px 34px; }
.enquiry-form-wrap .form-label{ font-weight:600; font-size:0.86rem; color: var(--ink); }
.enquiry-form-wrap .form-control, .enquiry-form-wrap .form-select{
  border-radius: 10px; border: 1.5px solid var(--line); padding: 10px 14px; font-size:0.92rem;
}
.enquiry-form-wrap .form-control:focus, .enquiry-form-wrap .form-select:focus{
  border-color: var(--navy-2); box-shadow: 0 0 0 3px rgba(46,42,110,0.12);
}
.form-status.success{ color:#1b7a3d; font-weight:600; }
.form-status.error{ color:#c0392b; font-weight:600; }

/* ---------- Page hero (interior pages) ---------- */
.page-hero{
  background: linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff; padding: 130px 0 90px; position:relative; overflow:hidden;
}
.page-hero h1{ color:#fff; font-size: clamp(2rem, 4vw, 3rem); }
.page-hero .lead{ color: rgba(255,255,255,0.8); max-width:640px; }
.page-hero .breadcrumb-nav a{ color: rgba(255,255,255,0.65); }
.page-hero .breadcrumb-nav a:hover{ color: var(--yellow); }
.page-hero .breadcrumb-nav span{ color: var(--yellow); }

/* ---------- Misc ---------- */
.ratio-card{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-soft); }
.text-yellow{ color: var(--yellow-dark); }
.bg-navy{ background: var(--navy); }
.divider-line{ width:64px; height:4px; background: var(--yellow); border-radius:2px; margin-bottom:18px; }

/* ---------- HERO (flipspaces-style: pure full-bleed video, no text overlay) ---------- */
.hero-pure{
  position: relative;
  height: 100vh;
  min-height: 560px;
  overflow: hidden;
  background: var(--navy);
}
.hero-pure video, .hero-pure img.hero-fallback-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero-scroll-cue{
  position:absolute; bottom: 28px; left:50%; transform: translateX(-50%);
  z-index:3; color:#fff; text-align:center; font-family: var(--font-display);
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; opacity:0.85;
}
.hero-scroll-cue i{ display:block; font-size:1.3rem; animation: bounceDown 1.8s infinite; margin-top:4px; }
@keyframes bounceDown{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(8px);} }

/* ---------- Stat strip (flipspaces 6-up counters) ---------- */
.stat-strip-fs{ background:#fff; border-bottom: 1px solid var(--line); }
.stat-strip-fs .stat-box{ text-align:center; padding: 34px 10px; border-right: 1px solid var(--line); }
.stat-strip-fs .col:last-child .stat-box{ border-right:none; }
.stat-strip-fs .stat-box .num{ font-family: var(--font-display); font-size: 1.7rem; font-weight: 800; color: var(--navy-2); line-height:1.1; }
.stat-strip-fs .stat-box .label{ color: var(--gray); font-size: 0.78rem; font-weight:600; margin-top:6px; text-transform:uppercase; letter-spacing:0.03em; }
@media (max-width: 767px){
  .stat-strip-fs .stat-box{ border-right:none; border-bottom:1px solid var(--line); padding: 22px 8px; }
}

/* ---------- Who We Are (video thumbnail + text) ---------- */
.video-thumb{
  position:relative; border-radius: var(--radius-lg); overflow:hidden; cursor:pointer;
  box-shadow: var(--shadow-soft);
}
.video-thumb img{ width:100%; display:block; aspect-ratio: 4/3; object-fit:cover; }
.video-thumb .play-btn{
  position:absolute; inset:0; margin:auto; width:78px; height:78px; border-radius:50%;
  background: rgba(255,222,0,0.95); color: var(--navy); display:flex; align-items:center; justify-content:center;
  font-size: 1.6rem; top:50%; left:50%; transform: translate(-50%,-50%);
  transition: transform .25s ease;
}
.video-thumb:hover .play-btn{ transform: translate(-50%,-50%) scale(1.1); }
.video-thumb::after{ content:""; position:absolute; inset:0; background: rgba(15,13,45,0.15); }

/* ---------- Brand marquee (Trusted By) ---------- */
.marquee-wrap{ overflow:hidden; position:relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee-track{ display:flex; gap: 56px; width: max-content; animation: marqueeScroll 32s linear infinite; align-items:center; }
.marquee-track span{
  font-family: var(--font-display); font-weight:700; font-size:1.05rem; color: var(--gray);
  white-space:nowrap; opacity:0.75;
}
@keyframes marqueeScroll{ from{ transform: translateX(0);} to{ transform: translateX(-50%);} }

/* ---------- Featured project cards ---------- */
.project-card{ position:relative; }
.project-card .project-img{ border-radius: var(--radius); overflow:hidden; height: 320px; }
.project-card .project-img img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.project-card:hover .project-img img{ transform: scale(1.06); }
.project-card h4{ margin: 16px 0 2px; font-size:1.1rem; }
.project-card .loc{ color: var(--gray); font-size:0.85rem; }
.project-card .view-details{ font-family: var(--font-display); font-weight:700; font-size:0.85rem; color: var(--navy-2); }

/* ---------- Expertise cards (What We Do) ---------- */
.expertise-card{
  position: relative; border-radius: var(--radius-lg); overflow:hidden; height: 340px;
  display:flex; align-items:flex-end; box-shadow: var(--shadow-card);
}
.expertise-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.expertise-card:hover img{ transform: scale(1.08); }
.expertise-card::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,17,60,0.05) 40%, rgba(15,13,45,0.9) 100%); }
.expertise-card .body{ position:relative; z-index:2; padding: 26px; color:#fff; }
.expertise-card .body h4{ color:#fff; font-size:1.15rem; margin-bottom:8px; }
.expertise-card .body p{ color: rgba(255,255,255,0.78); font-size:0.87rem; margin:0; }

/* ---------- Technology pillars ---------- */
.tech-pillar{ padding: 22px 0; border-bottom:1px solid rgba(255,255,255,0.12); }
.tech-pillar:last-child{ border-bottom:none; }
.tech-pillar h4{ color: var(--yellow); font-family: var(--font-display); font-size:1.05rem; margin-bottom:6px; }
.tech-pillar p{ color: rgba(255,255,255,0.72); font-size:0.9rem; margin:0; }

/* ---------- Insight / blog cards ---------- */
.insight-card{ background:#fff; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-card); height:100%; }
.insight-card img{ width:100%; height:190px; object-fit:cover; }
.insight-card .body{ padding: 22px; }
.insight-card .meta{ font-size:0.76rem; color: var(--gray); text-transform:uppercase; letter-spacing:0.05em; font-weight:600; }
.insight-card h4{ font-size:1.02rem; margin: 8px 0 0; line-height:1.35; }

/* ---------- CTA banner + speak-to-expert (flipspaces bottom section) ---------- */
.cta-banner{
  background: linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%);
  border-radius: var(--radius-lg);
  padding: 0;
  overflow:hidden;
  position:relative;
}
.cta-banner-inner{ padding: 56px 46px; position:relative; z-index:2; }
.cta-banner .eyebrow-light{ margin-bottom:10px; }
.cta-banner h2{ color:#fff; }
.speak-expert-card{
  background:#fff; border-radius: var(--radius-lg); padding: 34px; box-shadow: var(--shadow-soft);
  height:100%;
}
.speak-expert-card h4{ margin-bottom:8px; }
.speak-expert-card p{ color: var(--gray); font-size:0.92rem; }

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline: 3px solid var(--navy-2); outline-offset: 2px;
}
