/* ==========================================================================
   S5 IT Consulting — shared design system
   ========================================================================== */

:root{
  --bg:#F8F7F4;
  --surface:#ffffff;
  --verge-orange:#E96D3F;
  --verge-orange-hover:#f97316;
  --verge-blue:#1D4ED8;
  --ink:#0f172a;
  --muted:#475569;
  --border:rgba(15,23,42,.10);
}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
}

.font-display{ font-family:'Clash Display', sans-serif; }
.font-mono-tech{ font-family:'JetBrains Mono', monospace; }

.eyebrow{
  font-family:'JetBrains Mono', monospace;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.25em;
  color:var(--verge-orange);
}

a{ color:inherit; text-decoration:none; }
::selection{ background:var(--verge-orange); color:#fff; }

/* ---------- Navbar ---------- */
.navbar-s5{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  transition:box-shadow .3s ease;
}
.navbar-s5.is-scrolled{ box-shadow:0 4px 20px rgba(15,23,42,.06); }
.navbar-s5 .nav-link{ color:#475569; font-size:.9rem; font-weight:400; padding:.5rem .9rem; }
.navbar-s5 .nav-link:hover, .navbar-s5 .nav-link.active{ color:var(--ink); }
.logo-badge{ background:#0f172a; border-radius:.5rem; padding:.35rem; display:inline-flex; flex-shrink:0; }
.logo-badge img{ height:2rem; width:auto; }

.dropdown-menu-s5{
  border:1px solid var(--border);
  border-radius:1rem;
  box-shadow:0 20px 45px -12px rgba(15,23,42,.18);
  padding:.6rem;
}
.dropdown-menu-s5 .dropdown-item{
  border-radius:.6rem;
  padding:.6rem .8rem;
  font-size:.85rem;
  color:#334155;
  white-space:normal;
}
.dropdown-menu-s5 .dropdown-item:hover, .dropdown-menu-s5 .dropdown-item:focus{
  background:rgba(233,109,63,.08);
  color:var(--verge-orange);
}
.dropdown-menu-s5 .dropdown-item.view-all{
  border-top:1px solid var(--border);
  margin-top:.4rem;
  padding-top:.8rem;
  font-weight:600;
  color:var(--verge-orange);
}

.phone-pill{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.85rem;
  color:#334155;
}
.phone-pill i{ color:var(--verge-orange); }

.btn-verge{
  background:var(--verge-orange); color:#fff; border:none; border-radius:999px;
  font-weight:600; font-size:.9rem; padding:.65rem 1.5rem; transition:background-color .3s ease;
  white-space:nowrap;
}
.btn-verge:hover{ background:var(--verge-orange-hover); color:#fff; }
.btn-outline-verge{
  border:1px solid rgba(15,23,42,.2); border-radius:999px; font-weight:600; font-size:.9rem;
  padding:.65rem 1.5rem; color:var(--ink); background:transparent; transition:.3s;
}
.btn-outline-verge:hover{ border-color:var(--verge-orange); color:var(--verge-orange); }
.btn-verge-outline-light{
  border:1px solid rgba(255,255,255,.35); border-radius:999px; font-weight:600; font-size:.9rem;
  padding:.65rem 1.5rem; color:#fff; background:transparent; transition:.3s;
}
.btn-verge-outline-light:hover{ border-color:#fff; background:rgba(255,255,255,.08); color:#fff; }

/* ---------- Hero (home) ---------- */
.hero{ position:relative; padding-top:6rem; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:120%; object-fit:cover; }
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(248,247,244,.92), rgba(248,247,244,.85) 40%, var(--bg));
}
.hero-inner{ position:relative; z-index:1; }
.hero h1{ font-family:'Clash Display', sans-serif; font-weight:500; font-size:2.75rem; line-height:1; letter-spacing:-.03em; }
@media (min-width:992px){ .hero h1{ font-size:4.5rem; } }
.text-orange{ color:var(--verge-orange); }

.dcig-card{
  background:rgba(255,255,255,.85); backdrop-filter:blur(16px); border:1px solid var(--border);
  border-radius:1rem; padding:1.5rem; box-shadow:0 8px 32px rgba(15,23,42,.08);
}

/* ---------- Page header (inner pages) ---------- */
.page-header{
  position:relative; padding:8.5rem 0 4.5rem; overflow:hidden; border-bottom:1px solid var(--border);
}
.page-header-bg{ position:absolute; inset:0; z-index:0; }
.page-header-bg img{ width:100%; height:100%; object-fit:cover; }
.page-header-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(15,23,42,.92), rgba(15,23,42,.75));
}
.page-header-inner{ position:relative; z-index:1; color:#fff; }
.page-header h1{
  font-family:'Clash Display', sans-serif; font-weight:500; letter-spacing:-.02em;
  font-size:2.25rem; color:#fff;
}
@media (min-width:992px){ .page-header h1{ font-size:3.25rem; } }
.page-header .eyebrow{ color:#f8b199; }
.breadcrumb-trail{ font-size:.85rem; color:rgba(255,255,255,.65); }
.breadcrumb-trail a:hover{ color:#fff; }
.breadcrumb-trail .sep{ margin:0 .5rem; opacity:.5; }

/* ---------- Marquee ---------- */
.marquee-wrap{
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.7); padding:1.5rem 0; overflow:hidden;
}
.marquee-track{ display:flex; width:max-content; animation:marquee 34s linear infinite; }
.marquee-track span.item{
  display:flex; align-items:center; margin:0 2rem; white-space:nowrap;
  font-family:'Clash Display', sans-serif; font-size:1.5rem; font-weight:500; color:#334155;
}
.marquee-track span.item i{ color:var(--verge-orange); margin-left:2.5rem; font-size:.85rem; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------- Sections ---------- */
.section-pad{ padding:5.5rem 0; }
@media (min-width:768px){ .section-pad{ padding:7.5rem 0; } }
.section-pad-sm{ padding:3.5rem 0; }
h2.section-title{ font-family:'Clash Display', sans-serif; font-weight:500; letter-spacing:-.02em; font-size:1.85rem; }
@media (min-width:992px){ h2.section-title{ font-size:2.6rem; } }
.section-alt{ border-top:1px solid var(--border); background:rgba(255,255,255,.7); }

/* ---------- Cards ---------- */
.stat-card, .card-s5{
  background:var(--surface); border:1px solid var(--border); border-radius:1rem; box-shadow:0 1px 2px rgba(0,0,0,.05);
}
.stat-card .stat-num{ font-family:'Clash Display', sans-serif; font-size:1.8rem; font-weight:500; color:var(--verge-orange); }

blockquote.founder-quote{ border-left:2px solid var(--verge-orange); padding-left:1.5rem; }
blockquote.founder-quote p{ font-family:'Clash Display', sans-serif; font-size:1.2rem; color:#1e293b; line-height:1.4; }

.chapter-card{
  background:var(--bg); border:1px solid var(--border); border-radius:1rem; padding:2rem; transition:all .5s ease;
}
.chapter-card:hover{ border-color:rgba(233,109,63,.6); box-shadow:0 10px 15px rgba(0,0,0,.08); }
.chapter-card .chapter-num{ font-family:'JetBrains Mono', monospace; font-size:.85rem; color:#94a3b8; }
.chapter-card:hover .chapter-num{ color:var(--verge-orange); }
.chapter-card i.chapter-icon{ font-size:1.4rem; color:var(--verge-blue); }
.chapter-card:hover i.chapter-icon{ color:var(--verge-orange); }
.chapter-card .section-body p{ margin-bottom:.9rem; }
.chapter-card .section-body p:last-child{ margin-bottom:0; }

.service-card{
  background:var(--bg); border:1px solid var(--border); border-radius:1rem; padding:2rem; height:100%; transition:all .5s ease;
  display:flex; flex-direction:column;
}
.service-card:hover{ border-color:rgba(233,109,63,.6); box-shadow:0 10px 15px rgba(0,0,0,.08); transform:translateY(-4px); }
.service-card .svc-icon{ font-size:1.6rem; color:var(--verge-blue); margin-bottom:1.25rem; }
.service-card:hover .svc-icon{ color:var(--verge-orange); }
.service-card .svc-link{ margin-top:auto; font-weight:600; font-size:.85rem; color:var(--verge-orange); display:inline-flex; align-items:center; gap:.35rem; }

.badge-card{
  background:var(--surface); border:1px solid var(--border); border-radius:1rem; padding:1.5rem; height:100%;
  transition:transform .4s cubic-bezier(.22,1,.36,1), border-color .4s ease, box-shadow .4s ease;
}
.badge-card:hover{ border-color:rgba(233,109,63,.6); box-shadow:0 20px 60px -15px rgba(233,109,63,.3); transform:translateY(-6px); }

/* ---------- Testimonials ---------- */
.testimonial-card{
  background:var(--surface); border:1px solid var(--border); border-radius:1rem; padding:2rem; height:100%;
  display:flex; flex-direction:column;
}
.testimonial-card i.bi-quote{ font-size:1.6rem; color:var(--verge-orange); margin-bottom:1.25rem; }
.testimonial-card blockquote{ font-size:.9rem; color:#475569; flex:1; }
.testimonial-card figcaption{ margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid var(--border); }
.testimonial-card figcaption .name{ font-family:'Clash Display', sans-serif; font-weight:500; }
.testimonial-card figcaption .role{ font-size:.75rem; color:#64748b; }
#testimonialCarousel .carousel-control-prev,
#testimonialCarousel .carousel-control-next{
  position:static; width:2.75rem; height:2.75rem; border-radius:50%; background:var(--surface);
  border:1px solid var(--border); opacity:1; margin:0 .4rem;
}
#testimonialCarousel .carousel-control-prev:hover,
#testimonialCarousel .carousel-control-next:hover{ background:var(--verge-orange); border-color:var(--verge-orange); }
#testimonialCarousel .carousel-control-prev:hover i, #testimonialCarousel .carousel-control-next:hover i{ color:#fff; }
#testimonialCarousel .carousel-control-prev i, #testimonialCarousel .carousel-control-next i{ color:var(--ink); font-size:1rem; }

/* ---------- CTA band ---------- */
.cta-band{
  background:#0f172a; border-radius:1.5rem; padding:3rem; color:#fff; position:relative; overflow:hidden;
}
.cta-band::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(600px 200px at 15% 20%, rgba(233,109,63,.25), transparent 60%);
}
.cta-band h2{ font-family:'Clash Display', sans-serif; font-weight:500; font-size:1.9rem; position:relative; z-index:1; }
.cta-band p{ position:relative; z-index:1; }
.cta-band .cta-actions{ position:relative; z-index:1; }

/* ---------- FAQ accordion ---------- */
.accordion-s5 .accordion-item{
  background:var(--surface); border:1px solid var(--border); border-radius:1rem !important; margin-bottom:1rem; overflow:hidden;
}
.accordion-s5 .accordion-button{
  font-family:'Clash Display', sans-serif; font-weight:500; font-size:1.05rem; color:var(--ink); padding:1.25rem 1.5rem;
  background:var(--surface);
}
.accordion-s5 .accordion-button:not(.collapsed){ color:var(--verge-orange); background:rgba(233,109,63,.05); box-shadow:none; }
.accordion-s5 .accordion-button:focus{ box-shadow:none; border-color:var(--border); }
.accordion-s5 .accordion-button::after{ filter:hue-rotate(0deg); }
.accordion-s5 .accordion-body{ padding:0 1.5rem 1.5rem; color:var(--muted); font-size:.92rem; }

/* ---------- Forms ---------- */
.form-s5 .form-control, .form-s5 .form-select{
  border:1px solid var(--border); border-radius:.75rem; padding:.75rem 1rem; font-size:.9rem; background:var(--surface);
}
.form-s5 .form-control:focus, .form-s5 .form-select:focus{
  border-color:var(--verge-orange); box-shadow:0 0 0 .2rem rgba(233,109,63,.15);
}
.form-s5 label{ font-size:.8rem; font-weight:600; color:#334155; margin-bottom:.4rem; }
.form-s5 .form-check-label{ font-size:.78rem; color:#64748b; font-weight:400; }

/* ---------- Team ---------- */
.team-card{
  background:var(--surface); border:1px solid var(--border); border-radius:1rem; overflow:hidden; height:100%;
  transition:all .4s ease;
}
.team-card:hover{ border-color:rgba(233,109,63,.6); box-shadow:0 20px 40px -18px rgba(15,23,42,.25); transform:translateY(-6px); }
.team-card .team-photo{ aspect-ratio:4/5; overflow:hidden; }
.team-card .team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-card .team-body{ padding:1.25rem 1.5rem 1.5rem; }
.team-card .team-name{ font-family:'Clash Display', sans-serif; font-weight:500; font-size:1.15rem; }
.team-card .team-role{ font-size:.8rem; color:var(--verge-orange); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }

.team-lead-card{
  background:#0f172a; color:#fff; border-radius:1.25rem; overflow:hidden; display:flex; flex-direction:column;
}
@media (min-width:768px){ .team-lead-card{ flex-direction:row; } }
.team-lead-card .lead-photo{ flex:0 0 40%; }
.team-lead-card .lead-photo img{ width:100%; height:100%; object-fit:cover; min-height:280px; }
.team-lead-card .lead-body{ padding:2.5rem; }

/* ---------- Sidebar (service detail pages) ---------- */
.sidebar-card{ background:var(--surface); border:1px solid var(--border); border-radius:1rem; padding:1.5rem; }
.sidebar-card .sidebar-title{ font-family:'Clash Display', sans-serif; font-weight:500; font-size:1.1rem; margin-bottom:1rem; }
.related-list a{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.7rem .9rem; border-radius:.65rem;
  font-size:.85rem; color:#334155; transition:.2s;
}
.related-list a:hover{ background:rgba(233,109,63,.08); color:var(--verge-orange); }
.related-list a.active{ background:rgba(233,109,63,.1); color:var(--verge-orange); font-weight:600; }
.sidebar-cta{ background:var(--verge-orange); border-radius:1rem; padding:1.75rem; color:#fff; }
.sidebar-cta h4{ font-family:'Clash Display', sans-serif; font-weight:500; font-size:1.15rem; }

.include-list li{ display:flex; gap:.75rem; padding:.5rem 0; font-size:.9rem; color:var(--muted); }
.include-list i{ color:var(--verge-orange); margin-top:.2rem; flex-shrink:0; }

/* ---------- Footer ---------- */
footer.site-footer{ border-top:1px solid var(--border); background:#0f172a; color:rgba(255,255,255,.7); }
footer.site-footer h2{ font-family:'Clash Display', sans-serif; font-weight:500; letter-spacing:-.04em; line-height:1; font-size:2.25rem; color:#fff; }
@media (min-width:992px){ footer.site-footer h2{ font-size:3rem; } }
footer.site-footer .footer-heading{ font-family:'Clash Display', sans-serif; color:#fff; font-weight:500; font-size:1.1rem; margin-bottom:1.25rem; }
footer.site-footer a:hover{ color:var(--verge-orange); }
footer.site-footer .footer-links li{ margin-bottom:.6rem; font-size:.88rem; }
footer.site-footer .contact-item{ display:flex; gap:.75rem; font-size:.88rem; margin-bottom:.9rem; }
footer.site-footer .contact-item i{ color:var(--verge-orange); margin-top:.15rem; }
.newsletter-form .form-control{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15); color:#fff; border-radius:999px 0 0 999px;
  padding:.7rem 1.1rem; font-size:.85rem;
}
.newsletter-form .form-control::placeholder{ color:rgba(255,255,255,.4); }
.newsletter-form .btn{ border-radius:0 999px 999px 0; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); font-size:.8rem; }
.footer-bottom a:hover{ color:var(--verge-orange); }

.contact-link{
  font-family:'Clash Display', sans-serif; font-size:1.3rem; color:#fff; display:inline-flex; align-items:center; gap:.75rem; transition:color .3s;
}
.contact-link:hover{ color:var(--verge-orange); }

/* ---------- Misc utility ---------- */
.icon-circle{
  width:3rem; height:3rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:rgba(233,109,63,.1); color:var(--verge-orange); font-size:1.2rem; flex-shrink:0;
}
.map-frame{ border-radius:1rem; overflow:hidden; border:1px solid var(--border); }
.map-frame iframe{ width:100%; height:100%; min-height:320px; border:0; display:block; }

/* ==========================================================================
   Motion & interaction \u2014 makes the site feel alive
   ========================================================================== */

html{ scroll-behavior:smooth; }
section[id]{ scroll-margin-top:90px; }

body{ animation:pageFadeIn .6s ease both; }
@keyframes pageFadeIn{ from{ opacity:0; } to{ opacity:1; } }

/* Scroll progress bar */
#scrollProgress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:1100;
  background:linear-gradient(90deg, var(--verge-orange), var(--verge-blue));
  transition:width .1s linear;
}

/* ---- Scroll-reveal (JS adds .reveal then .is-visible when in view) ---- */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--reveal-delay, 0s);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ---- Hero / page-header entrance (pure CSS, no JS needed) ---- */
.hero-inner .eyebrow,
.hero-inner h1,
.hero-inner > .row > div > p.text-secondary,
.hero-inner .btn,
.hero-inner .dcig-card{
  animation:heroUp .8s cubic-bezier(.16,1,.3,1) both;
}
.hero-inner .eyebrow{ animation-delay:.05s; }
.hero-inner h1{ animation-delay:.15s; }
.hero-inner > .row > div > p.text-secondary{ animation-delay:.28s; }
.hero-inner .btn{ animation-delay:.4s; }
.hero-inner .dcig-card{ animation-delay:.3s; }
@keyframes heroUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:translateY(0); } }

.page-header-inner .eyebrow{ animation:heroUp .7s cubic-bezier(.16,1,.3,1) .05s both; }
.page-header-inner h1{ animation:heroUp .7s cubic-bezier(.16,1,.3,1) .15s both; }
.page-header-inner .breadcrumb-trail{ animation:heroUp .7s cubic-bezier(.16,1,.3,1) .3s both; }

/* ---- Card lift + cursor-glow ---- */
.chapter-card, .service-card, .badge-card, .testimonial-card, .team-card, .card-s5, .stat-card, .sidebar-card{
  position:relative; overflow:hidden;
  transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s cubic-bezier(.16,1,.3,1), border-color .45s ease;
}
.chapter-card::before, .service-card::before, .badge-card::before, .testimonial-card::before, .team-card::before{
  content:""; position:absolute; inset:0; z-index:0; opacity:0; pointer-events:none;
  background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), rgba(233,109,63,.14), transparent 70%);
  transition:opacity .4s ease;
}
.chapter-card:hover::before, .service-card:hover::before, .badge-card:hover::before,
.testimonial-card:hover::before, .team-card:hover::before{ opacity:1; }
.chapter-card > *, .service-card > *, .badge-card > *, .testimonial-card > *, .team-card > *{ position:relative; z-index:1; }

.service-card:hover, .badge-card:hover{ transform:translateY(-8px); }
.testimonial-card:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -20px rgba(15,23,42,.2); }
.stat-card{ transition:transform .3s ease, box-shadow .3s ease; }
.stat-card:hover{ transform:translateY(-4px); box-shadow:0 16px 30px -16px rgba(15,23,42,.18); }

.svc-icon, .chapter-icon{ transition:transform .4s cubic-bezier(.34,1.56,.64,1), color .3s ease; }
.service-card:hover .svc-icon{ transform:scale(1.15) rotate(-4deg); }
.chapter-card:hover .chapter-icon{ transform:scale(1.15) rotate(4deg); }
.service-card .svc-link i{ transition:transform .3s ease; display:inline-block; }
.service-card:hover .svc-link i{ transform:translateX(5px); }

/* Badge shine sweep */
.badge-card{ isolation:isolate; }
.badge-card::after{
  content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; z-index:2; pointer-events:none;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-20deg); transition:left .7s ease;
}
.badge-card:hover::after{ left:130%; }

/* Icon circle micro-bounce */
.icon-circle{ transition:transform .35s cubic-bezier(.34,1.56,.64,1), background-color .3s ease, color .3s ease; }
*:hover > .icon-circle, .icon-circle:hover{ transform:scale(1.1); background:var(--verge-orange); color:#fff; }

/* ---- Buttons: lift + ripple ---- */
.btn-verge, .btn-outline-verge, .btn-verge-outline-light{
  position:relative; overflow:hidden;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease, background-color .3s ease, color .3s ease, border-color .3s ease;
}
.btn-verge:hover{ transform:translateY(-3px); box-shadow:0 14px 28px -10px rgba(233,109,63,.55); }
.btn-outline-verge:hover, .btn-verge-outline-light:hover{ transform:translateY(-3px); }
.btn-verge:active, .btn-outline-verge:active, .btn-verge-outline-light:active{ transform:translateY(0) scale(.97); }
.btn-ripple{
  position:absolute; border-radius:50%; background:rgba(255,255,255,.55); pointer-events:none;
  transform:scale(0); animation:rippleAnim .6s ease-out forwards;
}
.btn-outline-verge .btn-ripple, .btn-verge-outline-light .btn-ripple{ background:rgba(233,109,63,.35); }
@keyframes rippleAnim{ to{ transform:scale(2.6); opacity:0; } }

/* ---- Nav link underline ---- */
.navbar-s5 .nav-link{ position:relative; }
.navbar-s5 .nav-link::after{
  content:""; position:absolute; left:.9rem; right:.9rem; bottom:.15rem; height:2px; background:var(--verge-orange);
  transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.navbar-s5 .nav-link:hover::after, .navbar-s5 .nav-link.active::after{ transform:scaleX(1); }
.logo-badge{ transition:transform .4s cubic-bezier(.34,1.56,.64,1); }
.navbar-brand:hover .logo-badge{ transform:rotate(-8deg) scale(1.08); }

/* ---- Marquee: pause on hover, subtle depth ---- */
.marquee-wrap:hover .marquee-track{ animation-play-state:paused; }
.marquee-track span.item{ transition:color .3s ease, transform .3s ease; }
.marquee-track span.item:hover{ color:var(--verge-orange); transform:scale(1.06); }

/* ---- CTA band: slow ambient glow drift ---- */
.cta-band::before{ animation:ctaGlow 8s ease-in-out infinite alternate; }
@keyframes ctaGlow{
  from{ background-position:0% 0%; opacity:.8; }
  to{ background-position:15% 10%; opacity:1; }
}
.cta-band .btn-verge{ animation:none; }

/* ---- Stat numbers: subtle pop once counted ---- */
.stat-num{ display:inline-block; }

/* ---- Accordion polish ---- */
.accordion-s5 .accordion-button{ transition:background-color .3s ease, color .3s ease; }
.accordion-s5 .accordion-button::after{ transition:transform .35s cubic-bezier(.34,1.56,.64,1); }

/* ---- Testimonial carousel indicators ---- */
#testimonialCarousel .carousel-indicators{ position:static; margin:1.5rem 0 0; gap:.4rem; }
#testimonialCarousel .carousel-indicators [data-bs-target]{
  width:.5rem; height:.5rem; border-radius:50%; background:var(--border); opacity:1; border:none; transition:.3s;
}
#testimonialCarousel .carousel-indicators .active{ background:var(--verge-orange); width:1.4rem; border-radius:999px; }

/* ---- Back to top ---- */
#backToTop{
  position:fixed; right:1.5rem; bottom:1.5rem; width:2.9rem; height:2.9rem; border-radius:50%;
  background:var(--ink); color:#fff; border:none; display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; box-shadow:0 10px 25px -8px rgba(15,23,42,.5); z-index:1050;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .35s ease, transform .35s ease, visibility .35s, background-color .3s ease;
}
#backToTop.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
#backToTop:hover{ background:var(--verge-orange); transform:translateY(-4px); }

/* ---- Form field liveliness ---- */
.form-s5 .form-control, .form-s5 .form-select{ transition:border-color .3s ease, box-shadow .3s ease, transform .2s ease; }
.form-s5 .form-control:focus, .form-s5 .form-select:focus{ transform:translateY(-1px); }

/* ---- Respect reduced-motion preference ---- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
