/* ============================================================
   SightSeeker — Theme chrome (header, footer, nav, floats)
   Locked to Figma: navy #184058 on #FEFEFE / #F5F5F5.
   Plus Jakarta Sans (brand) + Open Sans (nav pills) + Manrope.
   ============================================================ */

/* ---------- Brandmark ---------- */
.ss-brandmark {
  font-family: var(--ss-font-display); font-weight: var(--ss-fw-x);
  font-size: 1.4rem; letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy);
}
.ss-brandmark span { color: var(--ss-navy); }
.ss-brandmark--invert { color: var(--ss-navy); font-size: 1.6rem; }

/* ---------- Header ---------- */
.ss-header {
  position: fixed; inset: 0 0 auto 0; z-index: 1000; height: var(--ss-header-h);
  display: flex; align-items: center;
  background: #FEFEFE;                 /* always solid white, fixed */
  border-bottom: 1px solid var(--ss-line);
  transition: box-shadow var(--ss-dur-2) var(--ss-ease), height var(--ss-dur-2) var(--ss-ease);
}
.ss-header.is-stuck { height: 64px; box-shadow: var(--ss-shadow-sm); }
.ss-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--ss-sp-5); width:100%; }
.ss-header__brand { display:flex; align-items:center; }
.ss-header__brand img { max-height: 40px; width:auto; }

/* Nav pills — Open Sans 600, white pill, navy text (Figma) */
.ss-nav__list { list-style:none; display:flex; align-items:center; gap: 8px; margin:0; padding:0; }
.ss-nav__list a {
  font-family: var(--ss-font-ui); font-size: 0.95rem; font-weight: var(--ss-fw-semi);
  letter-spacing: var(--ss-tracking-tight); color: var(--ss-charcoal);
  padding: 9px 18px; border-radius: var(--ss-r-pill);
  background: transparent; border:1px solid transparent;
  transition: background var(--ss-dur-1) var(--ss-ease), color var(--ss-dur-1) var(--ss-ease), border-color var(--ss-dur-1) var(--ss-ease);
}
.ss-nav__list a:hover, .ss-nav__list .current-menu-item > a {
  background: #FEFEFE; color: var(--ss-navy); border-color: var(--ss-line);
  box-shadow: var(--ss-shadow-xs);
}

.ss-header__actions { display:flex; align-items:center; gap: var(--ss-sp-4); }
.ss-langswitch { display:flex; align-items:center; gap:5px; font-family: var(--ss-font-display); font-size:0.95rem; letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); }
.ss-langswitch a { color: var(--ss-navy); font-weight: 400; }
.ss-langswitch a.is-active { font-weight: var(--ss-fw-bold); }
.ss-langswitch a:hover { opacity: .7; }
.ss-btn--sm { padding: 10px 22px; font-size: 0.9rem; }

/* burger */
.ss-burger { display:none; width:44px; height:44px; background:none; border:0; cursor:pointer; padding:10px; }
.ss-burger span { display:block; height:2px; background: var(--ss-navy); border-radius:2px; margin:4px 0; transition: transform var(--ss-dur-1) var(--ss-ease), opacity var(--ss-dur-1) var(--ss-ease); }
.ss-burger[aria-expanded="true"] span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.ss-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.ss-burger[aria-expanded="true"] span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

/* mobile nav */
.ss-mobilenav {
  position: fixed; inset: var(--ss-header-h) 0 0 0; z-index: 999;
  background: rgba(254,254,254,0.98); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  padding: var(--ss-sp-7) var(--ss-gutter); overflow-y:auto;
}
.ss-mobilenav__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: var(--ss-sp-3); }
.ss-mobilenav__list a { font-family: var(--ss-font-display); font-size: 1.35rem; font-weight: var(--ss-fw-semi); letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); display:block; padding: 10px 0; border-bottom:1px solid var(--ss-line); }

/* push content below fixed header */
.site-content { padding-top: var(--ss-header-h); }
body.home .site-content { padding-top: 0; }

/* ---------- Footer (Figma: light #F5F5F5, navy text) ---------- */
.ss-footer { background: var(--ss-cloud); color: var(--ss-navy); padding-block: var(--ss-sp-9) var(--ss-sp-6); }
.ss-footer h1,.ss-footer h2,.ss-footer h3,.ss-footer h4,.ss-footer p { color: var(--ss-navy); }
.ss-footer__top { display:grid; grid-template-columns: 1.5fr 1fr 1fr 0.9fr; gap: var(--ss-sp-7); align-items:start; }
.ss-footer__tag { font-family: var(--ss-font-display); font-weight: var(--ss-fw-bold); font-size: clamp(1.4rem,1.1rem+1vw,1.85rem); line-height:1.25; letter-spacing: var(--ss-tracking-tight); max-width: 16ch; margin-top: var(--ss-sp-5); color: var(--ss-navy); }
.ss-footer__social { display:flex; gap:10px; margin-top: var(--ss-sp-6); }
.ss-footer__social a { width:38px;height:38px;border:1px solid var(--ss-navy); border-radius:50%; display:grid;place-items:center; font-size:0.72rem; font-weight:700; color: var(--ss-navy); }
.ss-footer__social a:hover { background: var(--ss-navy); color: #FEFEFE; }
.ss-footer__col h4 { font-family: var(--ss-font-display); font-weight: var(--ss-fw-bold); font-size: 1.4rem; letter-spacing: var(--ss-tracking-tight); margin-bottom: var(--ss-sp-5); }
.ss-footer__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: var(--ss-sp-3); }
.ss-footer__list a { font-family: var(--ss-font-display); color: var(--ss-navy); font-size: 1.05rem; font-weight: var(--ss-fw-medium); letter-spacing: var(--ss-tracking-tight); }
.ss-footer__list a:hover { opacity:.6; }
.ss-footer__wa { display:inline-block; color: var(--ss-navy); font-weight:700; font-size:1.05rem; border-bottom:2px solid var(--ss-navy); padding-bottom:3px; }
.ss-footer__reply { font-size:0.9rem; color: var(--ss-slate); margin:10px 0 18px; }
.ss-footer__rule { border:0; height:1px; background: var(--ss-line); margin: var(--ss-sp-8) 0 var(--ss-sp-5); }
.ss-footer__bottom { display:flex; justify-content:center; gap: var(--ss-sp-4); font-family: var(--ss-font-display); font-size:0.875rem; letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); flex-wrap:wrap; text-align:center; }
.ss-footer__legal { display:flex; gap: var(--ss-sp-5); }
.ss-footer__legal a { color: var(--ss-navy); }
.ss-footer__legal a:hover { opacity:.6; }

/* ---------- Floating WhatsApp ---------- */
.ss-wa-float {
  position: fixed; right: 22px; bottom: 22px; z-index: 900;
  width: 56px; height: 56px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center;
  box-shadow: 0 10px 30px rgba(37,211,102,0.4);
  transition: transform var(--ss-dur-1) var(--ss-ease), box-shadow var(--ss-dur-1) var(--ss-ease);
}
.ss-wa-float:hover { transform: scale(1.07) translateY(-2px); color:#fff; box-shadow: 0 16px 40px rgba(37,211,102,0.5); }

/* ---------- Sticky mobile CTA bar ---------- */
.ss-mobilebar { display:none; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px){
  .ss-nav, .ss-header__cta { display:none; }
  .ss-burger { display:block; }
  .ss-footer__top { grid-template-columns: 1fr 1fr; gap: var(--ss-sp-6); }
  .ss-footer__brandcol { grid-column: 1 / -1; }
}
@media (max-width: 640px){
  .ss-footer__top { grid-template-columns: 1fr; }
  .ss-wa-float { bottom: 80px; }
  .ss-mobilebar {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:901;
    background: rgba(254,254,254,0.95); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
    border-top:1px solid var(--ss-line); padding:10px 14px; gap:10px;
  }
  .ss-mobilebar a { flex:1; text-align:center; padding:14px; border-radius: var(--ss-r-pill); font-family: var(--ss-font-display); font-weight:700; font-size:0.95rem; letter-spacing: var(--ss-tracking-tight); }
  .ss-mobilebar__wa { background:#25D366; color:#fff; }
  .ss-mobilebar__cta { background: var(--ss-navy); color: #FEFEFE; }
}

/* blog cards (Figma blog layout) */
.ss-postcard { display:flex; flex-direction:column; gap:14px; padding:0; overflow:hidden; border:0; background:transparent; }
.ss-postcard:hover { transform:none; box-shadow:none; }
.ss-postcard__media { overflow:hidden; border-radius: var(--ss-r-lg); background: var(--ss-media); aspect-ratio: 3/2; }
.ss-postcard__media img { width:100%; height:100%; object-fit:cover; transition: transform var(--ss-dur-3) var(--ss-ease); }
.ss-postcard:hover .ss-postcard__media img { transform: scale(1.04); }
.ss-postcard__cat { font-family: var(--ss-font-alt); font-size:0.85rem; font-weight:600; letter-spacing: var(--ss-tracking-alt); color: var(--ss-navy); text-transform:uppercase; }
.ss-postcard h3 { font-family: var(--ss-font-alt); font-weight: var(--ss-fw-bold); letter-spacing: var(--ss-tracking-alt); margin:0; }
.ss-postcard h3 a { color: var(--ss-ink); }
.ss-postcard__meta { display:flex; align-items:center; gap:14px; font-family: var(--ss-font-alt); font-size:0.9rem; color: var(--ss-ink); }
.ss-postcard__meta span.sep { width:1px; height:16px; background: var(--ss-line-soft); }

/* ============================================================
   Homepage sections (home-fallback) — Figma navy/white language
   ============================================================ */

/* Trust band */
.ss-trust { padding-block: var(--ss-sp-7); border-block: 1px solid var(--ss-line); background: var(--ss-bg); }
.ss-trust__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--ss-sp-6); flex-wrap: wrap; }
.ss-trust__label { font-family: var(--ss-font-display); font-weight: var(--ss-fw-semi); letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); margin: 0; font-size: 0.95rem; }
.ss-trust__logos { display: flex; gap: var(--ss-sp-5); flex: 1; justify-content: center; flex-wrap: wrap; }
.ss-trust__logo { width: 96px; height: 30px; border-radius: 6px; background: var(--ss-mist); }
.ss-trust__rating { display: flex; align-items: center; gap: 10px; }
.ss-trust__stars { color: var(--ss-navy); letter-spacing: 2px; }
.ss-trust__ratingtxt { font-size: 0.9rem; color: var(--ss-slate); font-weight: var(--ss-fw-medium); }
@media (max-width: 760px){ .ss-trust__logos{ display:none; } }

/* Value-prop flow */
.ss-flow { display: flex; align-items: center; justify-content: center; gap: var(--ss-sp-4); flex-wrap: wrap; margin-top: var(--ss-sp-7); }
.ss-flow__node { font-family: var(--ss-font-display); font-weight: var(--ss-fw-bold); letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); background: var(--ss-bg-alt); border: 1px solid var(--ss-line); border-radius: var(--ss-r-pill); padding: 14px 30px; font-size: 1.05rem; }
.ss-flow__node.is-goal { background: var(--ss-navy); color: #FEFEFE; border-color: var(--ss-navy); }
.ss-flow__arrow { color: var(--ss-muted); font-size: 1.3rem; }
@media (max-width: 600px){ .ss-flow__arrow{ transform: rotate(90deg); } .ss-flow{ flex-direction: column; } }

/* Industry cards */
.ss-ind-card { display: flex; flex-direction: column; gap: 10px; min-height: 100%; }
.ss-ind-card h3 { margin: 0; color: var(--ss-navy); }
.ss-ind-card p { margin: 0 0 6px; flex: 1; }
.ss-ind-card .ss-link-arrow { color: var(--ss-navy); }

/* Case studies */
.ss-case { display: flex; flex-direction: column; gap: 6px; }
.ss-case__metric { font-family: var(--ss-font-display); font-weight: var(--ss-fw-x); font-size: clamp(2.4rem,1.6rem+2.6vw,3.4rem); letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); line-height: 1; }
.ss-case__label { font-weight: var(--ss-fw-semi); color: var(--ss-charcoal); }
.ss-case__client { font-size: 0.9rem; color: var(--ss-slate); margin: 8px 0 0; }

/* Why us */
.ss-why { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(32px,5vw,72px); align-items: start; }
.ss-why__head .ss-btn { margin-top: var(--ss-sp-5); }
.ss-why__list { display: grid; gap: var(--ss-sp-5); }
.ss-why__item { display: flex; gap: var(--ss-sp-4); padding-bottom: var(--ss-sp-5); border-bottom: 1px solid var(--ss-line); }
.ss-why__item:last-child { border-bottom: 0; padding-bottom: 0; }
.ss-why__num { font-family: var(--ss-font-display); font-weight: var(--ss-fw-x); color: var(--ss-navy); opacity: .35; font-size: 1.4rem; min-width: 48px; }
.ss-why__item h4 { margin: 0 0 4px; color: var(--ss-navy); }
.ss-why__item p { margin: 0; }
@media (max-width: 860px){ .ss-why{ grid-template-columns: 1fr; } }

/* Testimonials */
.ss-quote { display: flex; flex-direction: column; gap: var(--ss-sp-4); }
.ss-quote__stars { color: var(--ss-navy); letter-spacing: 2px; }
.ss-quote blockquote { margin: 0; font-family: var(--ss-font-alt); font-size: 1.2rem; line-height: 1.5; color: var(--ss-charcoal); letter-spacing: var(--ss-tracking-alt); }
.ss-quote figcaption { font-size: 0.92rem; color: var(--ss-slate); }
.ss-quote figcaption strong { color: var(--ss-navy); }

/* Process steps */
.ss-step { display: flex; flex-direction: column; gap: 8px; }
.ss-step__num { font-family: var(--ss-font-display); font-weight: var(--ss-fw-x); font-size: 1.6rem; color: var(--ss-navy); opacity: .3; }
.ss-step h4 { margin: 0; color: var(--ss-navy); }
.ss-step p { margin: 0; font-size: 0.95rem; }

/* Final CTA */
.ss-finalcta { background: var(--ss-navy); color: #FEFEFE; padding-block: clamp(56px,6vw,96px); }
.ss-finalcta__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--ss-sp-7); flex-wrap: wrap; }
.ss-finalcta h2 { color: #FEFEFE; max-width: 18ch; margin: 0 0 12px; }
.ss-finalcta p { color: rgba(254,254,254,0.78); margin: 0; max-width: 46ch; }
.ss-finalcta__actions { display: flex; gap: var(--ss-sp-4); flex-wrap: wrap; }
.ss-btn--ghost-invert { border-color: rgba(254,254,254,0.4); color: #FEFEFE; background: transparent; }
.ss-btn--ghost-invert:hover { background: #FEFEFE; color: var(--ss-navy); border-color:#FEFEFE; }

/* ============================================================
   Homepage v2 — reference structure (image cards, hero-bg, splits)
   ============================================================ */

/* Header logo */
.ss-header__logo { height: 34px; width: auto; display: block; }
.ss-header.is-stuck .ss-header__logo { height: 30px; }

/* Hero with background image */
.ss-hero--bg { position: relative; min-height: 78vh; display: flex; align-items: center; padding-block: clamp(120px,16vh,200px) clamp(64px,9vh,120px); overflow: hidden; background: var(--ss-navy); }
.ss-hero--bg .ss-hero__bgimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.ss-hero__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(24,64,88,0.78) 0%, rgba(24,64,88,0.88) 100%); }
.ss-hero__bginner { position: relative; z-index: 2; max-width: 760px; text-align: center; margin-inline: auto; }
.ss-eyebrow--invert { color: #FEFEFE; justify-content: center; }
.ss-eyebrow--invert::before { background: rgba(254,254,254,0.6); }
.ss-hero__title { color: #FEFEFE; font-size: clamp(3rem,2rem+5vw,5rem); margin-bottom: 0.25em; }
.ss-hero__lead { color: rgba(254,254,254,0.9); font-size: var(--ss-fs-lead); line-height: 1.6; max-width: 56ch; margin-inline: auto; margin-bottom: var(--ss-sp-6); }
.ss-hero--bg .ss-hero__cta { display: flex; gap: var(--ss-sp-4); justify-content: center; flex-wrap: wrap; }

/* Trust band stats */
.ss-trust__stats { display: flex; gap: var(--ss-sp-6); }
.ss-trust__stats span { font-size: 0.9rem; color: var(--ss-slate); }
.ss-trust__stats strong { font-family: var(--ss-font-display); font-weight: var(--ss-fw-x); color: var(--ss-navy); font-size: 1.05rem; letter-spacing: var(--ss-tracking-tight); }
@media (max-width: 760px){ .ss-trust__stats{ display:none; } }

/* Split (text + media) */
.ss-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,80px); align-items: center; }
.ss-split__text h2 { margin-bottom: 0.5em; }
.ss-split__media img { width: 100%; border-radius: var(--ss-r-lg); box-shadow: var(--ss-shadow-md); }
.ss-split .ss-flow { justify-content: flex-start; margin-top: var(--ss-sp-5); }
.ss-split .ss-btn, .ss-split__text .ss-btn { margin-top: var(--ss-sp-5); }
@media (max-width: 860px){ .ss-split { grid-template-columns: 1fr; } .ss-split__media { order: -1; } }

/* Image cards (navy panel under image — reference style) */
.ss-imgcard { display: flex; flex-direction: column; background: var(--ss-navy); border-radius: var(--ss-r-md); overflow: hidden; min-height: 100%; box-shadow: var(--ss-shadow-sm); transition: transform var(--ss-dur-2) var(--ss-ease), box-shadow var(--ss-dur-2) var(--ss-ease); }
.ss-imgcard:hover { transform: translateY(-6px); box-shadow: var(--ss-shadow-lg); }
.ss-imgcard__media { display: block; aspect-ratio: 600/352; overflow: hidden; background: var(--ss-media); }
.ss-imgcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--ss-dur-3) var(--ss-ease); }
.ss-imgcard:hover .ss-imgcard__media img { transform: scale(1.05); }
.ss-imgcard__body { display: block; padding: 20px 22px 24px; }
.ss-imgcard__body h3 { color: #FEFEFE; font-size: 1.15rem; margin: 0 0 6px; }
.ss-imgcard__body p { color: rgba(254,254,254,0.72); font-size: 0.9rem; margin: 0; line-height: 1.55; }

/* Centered CTA under a grid */
.ss-center-cta { display: flex; justify-content: center; margin-top: var(--ss-sp-7); }

/* Trend band */
.ss-trend { padding-block: var(--ss-section-y); }
.ss-trend h2 { margin-bottom: 0.4em; }

/* Consulting cards */
.ss-consult { display: flex; flex-direction: column; gap: 10px; background: var(--ss-white); border: 1px solid var(--ss-line); border-radius: var(--ss-r-md); padding: clamp(28px,3vw,40px); transition: transform var(--ss-dur-2) var(--ss-ease), box-shadow var(--ss-dur-2) var(--ss-ease); }
.ss-consult:hover { transform: translateY(-6px); box-shadow: var(--ss-shadow-md); }
.ss-consult__num { font-family: var(--ss-font-display); font-weight: var(--ss-fw-x); font-size: 1.6rem; color: var(--ss-navy); opacity: .3; }
.ss-consult h3 { margin: 0; color: var(--ss-navy); }
.ss-consult p { margin: 0 0 6px; flex: 1; }
.ss-consult .ss-link-arrow { color: var(--ss-navy); }

/* Checklist (why choose) */
.ss-checklist { list-style: none; margin: var(--ss-sp-5) 0; padding: 0; display: grid; gap: var(--ss-sp-3); }
.ss-checklist li { display: flex; gap: 12px; align-items: flex-start; color: var(--ss-charcoal); font-size: 1.02rem; }
.ss-checklist__tick { flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--ss-navy); color: #FEFEFE; display: grid; place-items: center; font-size: 0.8rem; margin-top: 2px; }

/* Final CTA uses navy band (already styled in home section block) */
.ss-finalcta { background: var(--ss-navy); }

/* ============================================================
   SEO content sections — intro, service areas, FAQ
   ============================================================ */

/* Keyword intro */
.ss-intro h2 { margin-bottom: var(--ss-sp-5); }
.ss-intro p { font-size: 1.075rem; line-height: 1.8; color: var(--ss-text-soft); }
.ss-intro a { color: var(--ss-navy); font-weight: var(--ss-fw-semi); text-decoration: underline; text-decoration-color: var(--ss-line); text-underline-offset: 3px; }
.ss-intro a:hover { text-decoration-color: var(--ss-navy); }
.ss-intro strong { color: var(--ss-navy); }

/* Service areas */
.ss-areas { padding-block: var(--ss-section-y); }
.ss-areas__list { list-style: none; margin: var(--ss-sp-6) 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ss-areas__list li { font-family: var(--ss-font-display); font-weight: var(--ss-fw-semi); font-size: 0.95rem; letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); background: var(--ss-white); border: 1px solid var(--ss-line); border-radius: var(--ss-r-pill); padding: 9px 20px; }
.ss-areas__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: var(--ss-sp-5); }
.ss-areas__head .ss-h2 { margin-top: 8px; }
.ss-areas__head .ss-lead { margin-top: 10px; color: var(--ss-slate); }

/* Marquee wrapper (Elementor widget) */
.ss-marquee-wrap { margin-block: var(--ss-sp-4); }
.ss-marquee-wrap .ss-eyebrow { margin-bottom: var(--ss-sp-3); }

/* Map widget */
.ss-map { text-align: center; }
.ss-map__head { max-width: 640px; margin: 0 auto var(--ss-sp-5); }
.ss-map__head .ss-eyebrow { justify-content: center; display: flex; }
.ss-map__head .ss-h2 { margin-top: 8px; }
.ss-map__addr { margin-top: 10px; color: var(--ss-slate); font-weight: var(--ss-fw-medium); }
.ss-map__addr a { color: var(--ss-navy); }
.ss-map__frame { border-radius: var(--ss-r-lg, 18px); overflow: hidden; border: 1px solid var(--ss-line); box-shadow: var(--ss-shadow, 0 24px 60px rgba(24,64,88,.10)); background: var(--ss-mist); }
.ss-map__frame iframe { display: block; filter: grayscale(0.1); }

/* Contact form — honeypot + submit notice */
.ss-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ss-formnotice { max-width: 980px; margin: 0 auto var(--ss-sp-5); padding: 14px 20px; border-radius: var(--ss-r-pill, 999px); font-weight: var(--ss-fw-semi); text-align: center; }
.ss-formnotice--ok { background: #e7f5ec; color: #1c6b3e; border: 1px solid #bfe3cd; }
.ss-formnotice--err { background: #fcebec; color: #a32630; border: 1px solid #f3c6cb; }

/* FAQ accordion */
.ss-faq__list { display: grid; gap: 12px; }
.ss-faq__item { border: 1px solid var(--ss-line); border-radius: var(--ss-r-md); background: var(--ss-white); overflow: hidden; transition: border-color var(--ss-dur-1) var(--ss-ease), box-shadow var(--ss-dur-1) var(--ss-ease); }
.ss-faq__item[open] { border-color: transparent; box-shadow: var(--ss-shadow-sm); }
.ss-faq__item summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; font-family: var(--ss-font-display); font-weight: var(--ss-fw-bold); font-size: 1.08rem; letter-spacing: var(--ss-tracking-tight); color: var(--ss-navy); }
.ss-faq__item summary::-webkit-details-marker { display: none; }
.ss-faq__item summary::after { content: "+"; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--ss-bg-alt); color: var(--ss-navy); display: grid; place-items: center; font-size: 1.2rem; font-weight: 400; transition: transform var(--ss-dur-1) var(--ss-ease), background var(--ss-dur-1) var(--ss-ease); }
.ss-faq__item[open] summary::after { content: "−"; background: var(--ss-navy); color: #FEFEFE; }
.ss-faq__answer { padding: 0 24px 22px; }
.ss-faq__answer p { margin: 0; color: var(--ss-text-soft); line-height: 1.7; }

/* ---------- GSAP scroll text-reveal (split headings) ---------- */
.ss-rw { display: inline-block; overflow: hidden; vertical-align: top; line-height: inherit; padding-bottom: 0.12em; margin-bottom: -0.12em; }
.ss-rw__i { display: inline-block; will-change: transform; }
@media (prefers-reduced-motion: reduce){ .ss-rw{ overflow: visible; } .ss-rw__i{ transform: none !important; opacity: 1 !important; } }

/* ============================================================
   Design polish v3 — marquee, hero glow/parallax, card overlays
   ============================================================ */

/* Hero: parallax buffer + ambient glow */
.ss-hero--bg .ss-hero__bgimg { height: 124%; top: -12%; }
.ss-hero__glow { position: absolute; z-index: 1; inset: auto -10% -40% -10%; height: 70%;
  background: radial-gradient(55% 80% at 50% 100%, rgba(255,255,255,0.14), transparent 70%);
  pointer-events: none; }
.ss-hero__bginner .ss-display { text-shadow: 0 2px 30px rgba(10,30,45,0.35); }

/* Logo / industry marquee (trust band) */
.ss-marquee { margin-top: var(--ss-sp-6); overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ss-marquee__track { display: inline-flex; gap: 14px; white-space: nowrap; animation: ss-marquee 34s linear infinite; will-change: transform; }
.ss-marquee:hover .ss-marquee__track { animation-play-state: paused; }
.ss-marquee__item { font-family: var(--ss-font-display); font-weight: var(--ss-fw-semi); letter-spacing: var(--ss-tracking-tight); font-size: 0.95rem; color: var(--ss-slate); border: 1px solid var(--ss-line); border-radius: var(--ss-r-pill); padding: 9px 22px; background: var(--ss-white); }
@keyframes ss-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .ss-marquee__track{ animation: none; } }

/* Image cards: gradient overlay + hover affordance */
.ss-imgcard__media { position: relative; }
.ss-imgcard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(24,64,88,0.35)); opacity: 0; transition: opacity var(--ss-dur-2) var(--ss-ease); }
.ss-imgcard:hover .ss-imgcard__media::after { opacity: 1; }
.ss-imgcard__body { position: relative; }
.ss-imgcard__body::after { content: "→"; position: absolute; top: -34px; right: 20px; width: 34px; height: 34px; border-radius: 50%; background: var(--ss-navy); color: #FEFEFE; display: grid; place-items: center; font-size: 1rem; transform: translateY(8px) scale(0.7); opacity: 0; transition: transform var(--ss-dur-2) var(--ss-ease), opacity var(--ss-dur-2) var(--ss-ease); box-shadow: var(--ss-shadow-md); }
.ss-imgcard:hover .ss-imgcard__body::after { transform: translateY(0) scale(1); opacity: 1; }

/* Process steps: numbered circles + connector line */
.ss-step { position: relative; padding-top: 8px; }
.ss-step__num { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--ss-bg-alt); border: 1px solid var(--ss-line); color: var(--ss-navy); font-family: var(--ss-font-display); font-weight: var(--ss-fw-x); font-size: 1.2rem; opacity: 1; margin-bottom: var(--ss-sp-3); transition: background var(--ss-dur-2) var(--ss-ease), color var(--ss-dur-2) var(--ss-ease); }
.ss-step:hover .ss-step__num { background: var(--ss-navy); color: #FEFEFE; }
.ss-grid--4 .ss-step:not(:last-child) .ss-step__num::after { content: ""; position: absolute; top: 36px; left: 64px; right: -24px; height: 1px; background: var(--ss-line); }
@media (max-width: 960px){ .ss-grid--4 .ss-step .ss-step__num::after { display: none; } }

/* Section heading underline accent */
.ss-section-head h2 { position: relative; }

/* Buttons get a soft sheen on hover */
.ss-btn { position: relative; overflow: hidden; }
.ss-btn::before { content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,0.18), transparent); transform: skewX(-18deg); transition: left 0.6s var(--ss-ease); }
.ss-btn:hover::before { left: 140%; }

/* Card lift refinement */
.ss-card { will-change: transform; }

/* ============================================================
   Nav dropdowns (parent → children: Services / Industries / Locations)
   ============================================================ */
.ss-nav__list { position: relative; }
.ss-nav__list > li { position: relative; }
.ss-nav__list a { white-space: nowrap; }
.ss-nav__list .menu-item-has-children > a::after { content: "▾"; margin-left: 5px; font-size: 0.7em; opacity: 0.55; }
.ss-nav__list .sub-menu {
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 230px;
  list-style: none; margin: 0; padding: 8px;
  background: #FEFEFE; border: 1px solid var(--ss-line); border-radius: var(--ss-r-md);
  box-shadow: var(--ss-shadow-md);
  display: flex; flex-direction: column; gap: 2px;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity var(--ss-dur-1) var(--ss-ease), transform var(--ss-dur-1) var(--ss-ease), visibility var(--ss-dur-1) var(--ss-ease);
  z-index: 200;
}
.ss-nav__list > li:hover > .sub-menu,
.ss-nav__list > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ss-nav__list .sub-menu a { display: block; width: 100%; padding: 10px 14px; border-radius: var(--ss-r-sm); font-size: 0.92rem; }
.ss-nav__list .sub-menu a:hover { background: var(--ss-bg-alt); }
/* keep top-level row tighter now there are more items */
.ss-nav__list { gap: 4px; }
.ss-nav__list > li > a { padding: 9px 14px; }

/* Mobile: show children indented under their parent */
.ss-mobilenav .sub-menu { list-style: none; margin: 4px 0 8px; padding: 0 0 0 16px; display: flex; flex-direction: column; gap: 2px; border-left: 2px solid var(--ss-line); }
.ss-mobilenav .sub-menu a { font-size: 1rem; font-weight: var(--ss-fw-medium); border-bottom: 0; padding: 6px 0; }
.ss-mobilenav .menu-item-has-children > a { border-bottom: 0; }

/* ============================================================
   Full-width site — 5% left/right padding (theme + Elementor)
   ============================================================ */
/* Force Elementor flexbox containers to render as column flex (some installs
   leave .e-con computing to display:inline, which collapses padding/layout). */
.e-con { display: flex !important; flex-direction: column; }
.e-con > .e-con-inner { display: flex !important; flex-direction: column; width: 100%; }
/* Boxed containers → full width with 5% side padding */
.e-con.e-con-boxed > .e-con-inner { max-width: 100% !important; padding-inline: 5%; box-sizing: border-box; }
/* Full-width containers: inner SS widgets use .ss-container--wide (5% gutter). */
.e-con.e-con-full > .e-con-inner { padding-inline: 0; }
.e-con.e-con-full { padding-inline: 0; }

/* ---------- Rich text / prose (SSC_Text) ---------- */
.ss-prose { color: var(--ss-text-soft); }
.ss-prose--narrow { max-width: 820px; margin-inline: auto; }
.ss-prose.is-center { text-align: center; margin-inline: auto; }
.ss-prose .ss-eyebrow { margin-bottom: var(--ss-sp-4); }
.ss-prose h1, .ss-prose h2, .ss-prose h3 { color: var(--ss-navy); margin-bottom: 0.55em; }
.ss-prose p { font-size: 1.075rem; line-height: 1.85; color: var(--ss-text-soft); margin: 0 0 1.1em; }
.ss-prose p:last-child { margin-bottom: 0; }
.ss-prose strong { color: var(--ss-navy); }
.ss-prose.is-center p { margin-inline: auto; }

/* ---------- Rich split (SSC_Split: text + image, alternating) ---------- */
.ss-split--rich { align-items: center; gap: clamp(36px,5vw,80px); }
.ss-split--rich .ss-split__text h2 { margin-bottom: 0.5em; }
.ss-split--rich .ss-split__text p { font-size: 1.05rem; line-height: 1.8; color: var(--ss-text-soft); margin: 0 0 1.05em; }
.ss-split--rich .ss-split__text p:last-of-type { margin-bottom: 0; }
.ss-split--rich .ss-checklist { margin-top: var(--ss-sp-5); }
.ss-split--rich .ss-btn { margin-top: var(--ss-sp-5); }
.ss-split--rich .ss-split__media img { width: 100%; border-radius: var(--ss-r-lg); box-shadow: var(--ss-shadow-md); aspect-ratio: 4/3; object-fit: cover; }
.ss-split__ph { width: 100%; aspect-ratio: 4/3; border-radius: var(--ss-r-lg); background: linear-gradient(135deg, var(--ss-media), #e7ebee); }
/* image-left variant: reverse the columns on desktop */
@media (min-width: 861px){
  .ss-split--imgleft { direction: rtl; }
  .ss-split--imgleft > * { direction: ltr; }
}
@media (max-width: 860px){
  .ss-split--rich .ss-split__media { order: -1; }
}

/* Header/Footer Theme-Builder widgets: mobile nav reuses .ss-nav__list */
.ss-mobilenav .ss-nav__list { flex-direction: column; align-items: stretch; gap: 4px; }
.ss-mobilenav .ss-nav__list a { font-family: var(--ss-font-display); font-size: 1.25rem; font-weight: var(--ss-fw-semi); color: var(--ss-navy); padding: 10px 0; }
.ss-mobilenav .ss-nav__list .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; background: transparent; padding: 0 0 6px 16px; }
.ss-mobilenav .ss-nav__list .sub-menu a { font-size: 1rem; font-weight: 500; }
/* Theme Builder header/footer wrappers shouldn't add constraints */
.elementor-location-header .ss-header { position: fixed; }
.elementor-location-footer .ss-footer { margin: 0; }
