/* ================================================================
   Samaan Legal — Home Page  (design-faithful v3)
   ================================================================ */

/* ── Variables ──────────────────────────────────────────────── */
:root {
  --primary:      #1b2a4a;
  --primary-dk:   #121d31;
  --accent:       #c19a36;
  --accent-dk:    #a6842c;
  --accent-lite:  rgba(193,154,54,.10);
  --accent-line:  rgba(193,154,54,.22);
  --white:        #ffffff;
  --cream:        #f6f1e8;
  --light:        #EDE8DF;
  --text-h:       #1b2a4a;
  --text-b:       #4B4B60;
  --text-m:       #5c6470;
  --border:       #efeae0;
  --sh-sm:        0 2px 12px rgba(6,26,51,.06);
  --sh-md:        0 8px 32px rgba(6,26,51,.11);
  --sh-lg:        0 20px 60px rgba(6,26,51,.15);
  --r:            6px;
  --r-lg:         12px;
  --wrap:         1440px;
  --sh-header-offset: 88px;
  --font-h:       'Playfair Display', Georgia, serif;
  --font-b:       'Inter', system-ui, -apple-system, sans-serif;
  --font-ar:      'Noto Sans Arabic', 'Segoe UI', sans-serif;
}

html {
  overflow-x: hidden;
  scroll-padding-top: var(--sh-header-offset);
}

/* Anchor targets — offset for sticky header */
#about,
#team,
#leistungen,
#ablauf,
#bewertungen,
#faq,
#kontakt,
#termin {
  scroll-margin-top: var(--sh-header-offset);
}

/* ── Reset (scoped) ─────────────────────────────────────────── */
.samaan-home *, .samaan-home *::before, .samaan-home *::after { box-sizing: border-box; }
.samaan-home { font-family: var(--font-b); color: var(--text-b); line-height: 1.65; -webkit-font-smoothing: antialiased; }
.samaan-home img { max-width: 100%; display: block; }
.samaan-home a { transition: color .18s; }

/* ── Container ──────────────────────────────────────────────── */
.sh-container { max-width: var(--wrap); margin-inline: auto; padding-inline: 28px; }

/* ── Utility ────────────────────────────────────────────────── */
.sh-eyebrow {
  display: inline-block;
  font-size: .78rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 14px;
}

.sh-section-header { text-align: center; max-width: 700px; margin-inline: auto; margin-bottom: 56px; }
.sh-section-header .sh-eyebrow { display: block; margin-bottom: 14px; }
.sh-section-header h2 {
  font-family: var(--font-h);
  font-size: clamp(1.7rem, 2.8vw, 2.3rem);
  color: var(--text-h); line-height: 1.25; margin-bottom: 14px;
}
.sh-section-header p { color: var(--text-m); font-size: 1.1rem; max-width: 560px; margin-inline: auto; }

/* ── Buttons ────────────────────────────────────────────────── */
.sh-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 30px;
  font-family: var(--font-b); font-size: .83rem; font-weight: 600;
  letter-spacing: .05em; text-transform: uppercase;
  text-decoration: none; border: 2px solid transparent;
  border-radius: 0; cursor: pointer;
  transition: background .26s ease, color .26s ease, box-shadow .26s ease, transform .26s ease;
  white-space: nowrap;
}
.sh-btn--lg { padding: 15px 36px; font-size: .88rem; letter-spacing: .06em; }
.sh-btn--block { width: 100%; justify-content: center; }
.sh-btn--wrap {
  white-space: normal;
  text-align: center;
  justify-content: center;
  line-height: 1.45;
  hyphens: auto;
}

.sh-btn--primary { background: var(--primary); color: var(--white); }
.sh-btn--primary:hover { background: var(--primary-dk); color: var(--white); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(27,42,74,.18); }

.sh-btn--accent { background: var(--accent); color: var(--white); }
.sh-btn--accent:hover { background: var(--accent-dk); color: var(--white); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(193,154,54,.28); }

.sh-btn--accent-alt { background: var(--accent); color: var(--primary); font-weight: 700; }
.sh-btn--accent-alt:hover { background: var(--accent-dk); color: var(--white); transform: translateY(-1px); }

.sh-btn--outline { border-color: var(--primary); color: var(--primary); background: transparent; }
.sh-btn--outline:hover { background: var(--primary); color: var(--white); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(27,42,74,.14); }

.sh-btn--outline-white { border-color: rgba(255,255,255,.45); color: var(--white); background: transparent; }
.sh-btn--outline-white:hover,
.sh-btn--outline-white:focus-visible { border-color: var(--white); background: var(--white); color: var(--primary); transform: translateY(-1px); }


/* ================================================================
   HEADER
   ================================================================ */
.sh-header {
  position: sticky; top: 0; z-index: 1000;
  background: var(--white); border-bottom: 1px solid var(--border);
  box-shadow: 0 1px 14px rgba(27,42,74,.07);
}
.sh-header__inner { display: flex; align-items: center; gap: 20px; height: 76px; }

/* Logo */
.sh-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; flex-shrink: 0; }

.sh-logo__icon {
  display: block;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
}
.sh-logo__img {
  display: block;
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.sh-logo__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
  gap: 8px;
}
.sh-logo__name {
  font-family: var(--font-h);
  font-size: 1.27rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--primary);
}
.sh-logo__tagline {
  font-family: var(--font-b);
  font-size: .70rem;
  font-weight: 600;
  letter-spacing: .32em;
  color: #c19a36;
  text-transform: uppercase;
}

/* Footer logo mark — see FOOTER section */

/* Nav */
.sh-nav { flex: 1; }
.sh-nav__list { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
.sh-nav__link {
  display: flex; align-items: center; gap: 5px;
  padding: 8px 16px; color: var(--text-b);
  text-decoration: none; font-size: .80rem; font-weight: 600;
  letter-spacing: .09em; text-transform: uppercase;
  border-radius: var(--r);
  position: relative;
  transition: color .2s;
  white-space: nowrap;
}

/* Gold underline — hidden by default */
.sh-nav__link::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 50%; right: 50%;
  height: 2px;
  background: var(--accent);
  border-radius: 2px;
  transition: left .25s ease, right .25s ease;
}

/* Expand underline on hover and active */
.sh-nav__link:hover { color: var(--primary); }
.sh-nav__link:hover::after,
.sh-nav__link.is-active::after { left: 16px; right: 16px; }

.sh-nav__link.is-active { color: var(--primary); font-weight: 600; }
.sh-nav__link svg { opacity: .5; }

/* Actions */
.sh-header__actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; margin-inline-start: auto; }
.sh-header .sh-btn { padding: 10px 24px; font-size: .82rem; letter-spacing: .06em; }

/* Lang switcher */
.sh-lang-switcher { display: flex; align-items: center; }
.sh-lang-drop { position: relative; }
.sh-lang-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 72px;
  padding: 8px 30px 8px 22px;
  font-family: var(--font-b);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--primary) !important;
  background: var(--white) !important;
  border: 1px solid var(--border) !important;
  border-radius: 999px;
  box-shadow: var(--sh-sm) !important;
  cursor: pointer;
  transition: color .2s, border-color .2s, background .2s, box-shadow .2s;
}
.sh-lang-btn:hover {
  color: var(--accent-dk) !important;
  border-color: var(--accent-line) !important;
  background: var(--cream) !important;
}
.sh-lang-drop.is-open .sh-lang-btn {
  color: var(--accent-dk) !important;
  border-color: var(--accent) !important;
  background: var(--cream) !important;
  box-shadow: 0 4px 14px rgba(193, 154, 54, .14) !important;
}
.sh-lang-btn svg {
  position: absolute;
  right: 12px;
  top: 50%;
  margin-top: -3px;
  opacity: .85;
  width: 10px;
  transition: transform .22s ease;
}
.sh-lang-drop.is-open .sh-lang-btn svg {
  transform: rotate(180deg);
}

.sh-lang-drop__list {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  width: 100%;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  list-style: none;
  padding: 6px;
  margin: 0;
  z-index: 200;
  box-shadow: var(--sh-md);
}
.sh-lang-drop.is-open .sh-lang-drop__list {
  display: block;
  animation: sh-lang-drop-in .18s ease;
}
@keyframes sh-lang-drop-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.sh-lang-drop__list li {
  margin: 0;
  padding: 0;
}
.sh-lang-drop__opt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 38px;
  padding: 8px 12px;
  background: none !important;
  border: none !important;
  border-radius: 9px;
  font-family: var(--font-b);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--primary) !important;
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  transition: color .15s, background .15s;
}
.sh-lang-drop__opt:hover {
  color: var(--accent-dk) !important;
  background: var(--cream) !important;
}
.sh-lang-drop__opt.is-current {
  color: var(--accent-dk) !important;
  background: var(--accent-lite);
}

/* Polylang output */
.sh-lang-switcher > ul { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.sh-lang-switcher ul li a {
  display: inline-flex; align-items: center;
  padding: 4px 6px;
  font-family: var(--font-b); font-size: .80rem; font-weight: 600;
  letter-spacing: .07em; text-transform: uppercase;
  color: var(--text-b); text-decoration: none;
  transition: color .15s;
}
.sh-lang-switcher ul li a:hover,
.sh-lang-switcher ul li.current-lang a { color: var(--accent); }

/* Search */
.sh-search-btn {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; background: none; border: none;
  cursor: pointer; color: var(--text-m); border-radius: var(--r); transition: all .15s;
}
.sh-search-btn:hover { color: var(--primary); background: var(--cream); }

/* Mobile toggle */
.sh-mobile-toggle {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 36px; height: 36px; background: none; border: none;
  cursor: pointer; padding: 8px; border-radius: var(--r);
}
.sh-mobile-toggle span { display: block; height: 2px; background: var(--primary); border-radius: 1px; transition: all .2s; }

/* Mobile nav panel */
.sh-mobile-nav {
  display: none; position: absolute; top: 76px; inset-inline: 0;
  background: var(--white); border-bottom: 1px solid var(--border);
  box-shadow: var(--sh-md); padding: 16px 28px; z-index: 999;
}
.sh-mobile-nav.is-open { display: block; }
.sh-mobile-nav ul { list-style: none; padding: 0; margin: 0; }
.sh-mobile-nav ul li { border-bottom: 1px solid var(--border); }
.sh-mobile-nav ul li:last-child { border-bottom: none; }
.sh-mobile-nav ul li a { display: block; padding: 14px 0; color: var(--text-b); text-decoration: none; font-weight: 500; font-size: .95rem; }
.sh-mobile-nav ul li a.is-active { color: var(--primary); font-weight: 600; }


/* ================================================================
   ABOVE-FOLD WRAPPER
   ================================================================ */
.sh-above-fold {
  /* semantic wrapper — hero height is content-driven, no fixed viewport constraint */
}

/* ================================================================
   HERO
   ================================================================ */

.sh-hero {
  background: var(--white);
  overflow: hidden;
}
/* Two-column grid: text left (45%) / photo right (55%).
   align-items: stretch makes the image column fill the text column height exactly.
   min-height is a safety net only — actual height is driven by content. */
.sh-hero__grid {
  display: grid;
  grid-template-columns: 42% 58%;
  gap: 0;
  align-items: stretch;
  min-height: 0;
}
.sh-hero__left {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  /* Equal space above badge and below Google trust row */
  padding-block: 48px;
  padding-inline-start: clamp(32px, 5.5vw, 80px);
  padding-inline-end: clamp(24px, 3vw, 48px);
}
.sh-hero__content {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.sh-hero__badge {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 9px 20px;
  background: #ffffff; border: 1px solid #c19a36;
  border-radius: 40px;
  font-size: .73rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  color: #1b2a4a; margin-bottom: 24px;
  align-self: flex-start;
}
.sh-hero__badge::before { content: ''; width: 6px; height: 6px; background: var(--accent); border-radius: 50%; flex-shrink: 0; }

.sh-hero__title {
  font-family: var(--font-h);
  font-size: clamp(2.1rem, 3.2vw, 3.5rem);
  line-height: 1.07;
  letter-spacing: -0.018em;
  color: var(--text-h);
  margin-bottom: 32px;
  font-weight: 700;
}
.sh-hero__title em {
  font-family: var(--font-h);
  font-style: normal;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--accent);
}

.sh-hero__text {
  color: var(--text-m);
  font-size: 1.05rem;
  line-height: 1.8;
  margin-bottom: 28px;
  max-width: 500px;
  text-wrap: pretty;
}
.sh-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 28px; margin-bottom: 0; }

/* Featured book — authority signal before CTAs */
.sh-hero__book {
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: 520px;
  padding: 16px 20px 16px 16px;
  text-decoration: none;
  color: inherit;
  background:
    linear-gradient(135deg, rgba(193,154,54,.08) 0%, transparent 42%),
    var(--cream);
  border-inline-start: 3px solid var(--accent);
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.sh-hero__book:hover {
  background:
    linear-gradient(135deg, rgba(193,154,54,.12) 0%, transparent 48%),
    #f9f5ee;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(26, 43, 74, .08);
}
.sh-hero__book-cover {
  flex-shrink: 0;
  line-height: 0;
  filter: drop-shadow(0 10px 18px rgba(26, 43, 74, .22));
  transition: transform .3s ease;
}
.sh-hero__book:hover .sh-hero__book-cover {
  transform: translateY(-3px) scale(1.03);
}
.sh-hero__book-cover img {
  width: 88px;
  height: auto;
  display: block;
}
.sh-hero__book-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding-block: 2px;
}
.sh-hero__book-eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent);
}
.sh-hero__book-title {
  font-family: var(--font-h);
  font-size: clamp(1.05rem, 1.4vw, 1.22rem);
  font-weight: 700;
  color: var(--text-h);
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.sh-hero__book-sub {
  font-size: .86rem;
  color: var(--text-m);
  letter-spacing: .02em;
}
.sh-hero__book-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--primary);
}
.sh-hero__book-cta svg {
  transition: transform .2s ease;
}
.sh-hero__book:hover .sh-hero__book-cta {
  color: var(--accent-dk);
}
.sh-hero__book:hover .sh-hero__book-cta svg {
  transform: translateX(3px);
}
[dir="rtl"] .sh-hero__book:hover .sh-hero__book-cta svg {
  transform: translateX(-3px);
}

/* Columbus achievement — high-contrast strip in hero text flow */
.sh-hero__achievement {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 520px;
  margin-top: 10px;
  padding: 14px 18px 14px 14px;
  text-decoration: none;
  color: var(--white);
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dk) 100%);
  border-inline-start: 3px solid var(--accent);
  box-shadow: 0 12px 32px rgba(18, 29, 49, .22);
  transition: transform .25s ease, box-shadow .25s ease;
}
.sh-hero__achievement:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(18, 29, 49, .3);
  color: var(--white);
}
.sh-hero__achievement-media {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 4px;
  overflow: hidden;
  background: rgba(0, 0, 0, .25);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .35);
}
.sh-hero__achievement-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.sh-hero__achievement-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1;
}
.sh-hero__achievement-eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent);
}
.sh-hero__achievement-copy strong {
  font-family: var(--font-h);
  font-size: clamp(1.1rem, 1.5vw, 1.28rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1.2;
}
.sh-hero__achievement-meta {
  font-size: .86rem;
  color: rgba(255, 255, 255, .78);
  line-height: 1.4;
}
.sh-hero__achievement-arrow {
  flex-shrink: 0;
  color: var(--accent);
  transition: transform .2s ease;
}
.sh-hero__achievement:hover .sh-hero__achievement-arrow {
  transform: translateX(3px);
}
[dir="rtl"] .sh-hero__achievement:hover .sh-hero__achievement-arrow {
  transform: translateX(-3px);
}

/* Gold accent line below title */
.sh-hero__divider {
  display: block;
  width: 48px; height: 3px;
  background: var(--accent);
  border-radius: 2px;
  margin-bottom: 22px;
}

/* Outlined hero buttons */
.sh-btn--hero-outline {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 13px 24px;
  font-family: var(--font-b); font-size: .78rem; font-weight: 600;
  letter-spacing: .07em; text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--primary); color: var(--primary);
  background: transparent;
  cursor: pointer; transition: all .2s ease;
  white-space: nowrap;
}
.sh-btn--hero-outline:hover { background: var(--primary); color: var(--white); }
.sh-btn--hero-outline svg { flex-shrink: 0; }

/* Location line */
.sh-hero__location {
  display: flex; align-items: center; gap: 7px;
  font-size: .84rem; font-weight: 500;
  color: var(--text-m);
}
.sh-hero__location svg { color: var(--accent); flex-shrink: 0; }

.sh-hero__image {
  overflow: hidden;
  background: var(--light);
  width: 100%;
  align-self: stretch;
  position: relative;
  min-height: clamp(440px, 58vw, 620px);
  height: auto;
  max-height: none;
}
/* Soft left-edge fade — image blends into the white text area */
.sh-hero__image::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to right, #ffffff 0%, rgba(255,255,255,0.06) 10%, transparent 22%);
}
.sh-hero__image img,
.sh-hero__image .sh-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}

/* Feature bar sits below the full-viewport grid */
.sh-hero__features-bar {
  flex-shrink: 0;
  border-top: 1px solid var(--border);
  background: var(--white);
}
.sh-hero__features {
  display: flex; flex-direction: row; gap: 0;
  padding-block: 24px;
  flex-wrap: nowrap;
}
.sh-hero__feature {
  display: flex; align-items: flex-start; gap: 16px;
  flex: 1; min-width: 0;
  padding-inline-end: 28px;
  border-inline-end: 1px solid var(--border);
}
.sh-hero__feature + .sh-hero__feature { padding-inline-start: 28px; }
.sh-hero__feature:last-child { border-inline-end: none; padding-inline-end: 0; }

.sh-hero__feature-icon {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; flex-shrink: 0;
  background: var(--accent-lite); border: 1px solid var(--accent-line);
  border-radius: 10px; color: var(--accent);
}
.sh-hero__feature-icon svg { width: 22px; height: 22px; }
.sh-hero__feature-body { display: flex; flex-direction: column; gap: 6px; }
.sh-hero__feature-body strong { font-size: .9375rem; font-weight: 700; color: var(--text-h); }
.sh-hero__feature-body span  { font-size: .875rem; color: var(--text-m); line-height: 1.5; }


/* ================================================================
   STATS BAR
   ================================================================ */
.sh-stats { background: var(--cream); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding-block: 28px; }
.sh-stats .sh-container { max-width: 100%; padding-inline: max(28px, calc((100vw - var(--wrap)) / 2 + 28px)); }
.sh-stats__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 48px;
  flex-wrap: wrap;
}
.sh-stats__tagline {
  flex: 1; min-width: 220px; max-width: 400px;
  font-size: 1.05rem; font-weight: 600;
  color: var(--text-h); line-height: 1.5;
  padding-right: 32px;
  border-right: 1px solid var(--border);
}
.sh-stats__grid {
  display: flex; gap: 48px; align-items: center; flex-wrap: wrap;
}
.sh-stats__item { display: flex; align-items: center; gap: 16px; }
.sh-stats__icon { color: var(--accent); flex-shrink: 0; }
.sh-stats__icon svg { width: 34px; height: 34px; }
.sh-stats__number { display: block; font-family: var(--font-h); font-size: 2.25rem; font-weight: 700; color: var(--primary); line-height: 1; }
.sh-stats__label { display: block; font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text-m); margin-top: 5px; }
.sh-stats__item--trust {
  text-decoration: none;
  color: inherit;
  transition: opacity .15s;
}
.sh-stats__item--trust:hover { opacity: .85; }


/* ================================================================
   CLIENT SATISFACTION (trust, not restaurant-style stars)
   ================================================================ */
.sh-client-trust {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding: 12px 18px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, box-shadow .15s;
}
.sh-client-trust:hover {
  border-color: rgba(197,152,62,.4);
  box-shadow: 0 4px 16px rgba(26,43,74,.06);
}
.sh-client-trust__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--accent-lite);
  color: var(--accent);
  flex-shrink: 0;
}
.sh-client-trust__body strong {
  display: block;
  font-family: var(--font-h);
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary);
  line-height: 1.3;
}
.sh-client-trust__body span {
  display: block;
  font-size: .8rem;
  color: var(--text-m);
  margin-top: 2px;
}
.sh-client-trust--banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin: 0 auto 40px;
  max-width: 780px;
  padding: 22px 28px;
  background: linear-gradient(135deg, rgba(197,152,62,.07), rgba(26,43,74,.03));
  border: 1px solid rgba(197,152,62,.2);
  border-radius: var(--r-lg);
}
.sh-client-trust__banner-main {
  display: flex;
  align-items: center;
  gap: 20px;
}
.sh-client-trust__banner-num {
  font-family: var(--font-h);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--primary);
  line-height: 1;
}
.sh-client-trust__banner-text strong {
  display: block;
  font-family: var(--font-h);
  font-size: 1.15rem;
  color: var(--text-h);
  margin-bottom: 4px;
}
.sh-client-trust__banner-text span {
  font-size: .88rem;
  color: var(--text-m);
}
.sh-client-trust__banner-link {
  font-size: .9rem;
  font-weight: 600;
  color: var(--primary);
  text-decoration: none;
  white-space: nowrap;
}
.sh-client-trust__banner-link:hover { color: var(--accent); }


/* ================================================================
   PRACTICE AREAS — Grid
   ================================================================ */
.sh-practice { padding-block: 96px; background: var(--light); }

.sh-practice__grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 20px; margin-bottom: 52px;
}

.sh-practice__card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r); padding: 28px 24px;
  transition: all .22s ease;
}
.sh-practice__card:hover {
  border-color: var(--accent);
  box-shadow: var(--sh-md); transform: translateY(-4px);
}

/* Icon box — distinctive gold-tinted square */
.sh-practice__card-icon {
  display: flex; align-items: center; justify-content: center;
  width: 52px; height: 52px;
  background: var(--accent-lite);
  border-radius: var(--r);
  color: var(--primary);
  margin-bottom: 18px; flex-shrink: 0;
}

.sh-practice__card h3 {
  font-family: var(--font-h); font-size: 1.05rem; font-weight: 600;
  color: var(--text-h); margin-bottom: 8px; line-height: 1.35;
}
.sh-practice__card p { font-size: .92rem; color: var(--text-m); line-height: 1.6; margin-bottom: 20px; }

.sh-practice__link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .85rem; font-weight: 700; color: var(--accent);
  text-decoration: none; text-transform: uppercase; letter-spacing: .05em;
  transition: gap .15s, color .15s;
}
.sh-practice__link:hover { color: var(--accent-dk); gap: 10px; }

.sh-section-cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  text-align: center;
}
.sh-practice .sh-section-cta,
.sh-practice-list .sh-section-cta {
  margin-top: 48px;
  padding-top: 8px;
}


/* ================================================================
   PRACTICE AREAS — Full list
   ================================================================ */
.sh-practice-list { padding-block: 72px; background: var(--white); }
.sh-practice-list--page {
  padding-block: 56px 88px;
}
.sh-practice-list--page .sh-practice-list__inner {
  margin-bottom: 0;
}
.sh-practice-list__header { margin-bottom: 40px; }
.sh-practice-list__header .sh-eyebrow { display: block; }
.sh-practice-list__header h2 { font-family: var(--font-h); font-size: 1.85rem; color: var(--text-h); }
.sh-practice-list__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 0 80px; }
.sh-practice-list__eyebrow {
  font-size: .72rem; font-weight: 700;
  letter-spacing: .13em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 8px;
}

.sh-practice-list__item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 0; border-bottom: 1px solid var(--border);
  color: var(--text-b); text-decoration: none;
  font-size: 1rem; font-weight: 500;
  transition: color .15s;
}
.sh-practice-list__item:hover { color: var(--primary); }
.sh-practice-list__item:hover .sh-list-arrow { color: var(--accent); transform: translateX(4px); }
.sh-list-arrow { color: var(--text-m); flex-shrink: 0; transition: color .15s, transform .15s; }


/* ================================================================
   ABOUT
   ================================================================ */
.sh-about { padding-block: 96px; background: var(--cream); }
.sh-about__inner {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: 80px;
  align-items: stretch;
}

.sh-about__image {
  position: relative;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-height: 0;
}
.sh-about__image-frame {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: 100%;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--light);
}
.sh-about__image-frame > img,
.sh-about__image-frame > .sh-placeholder {
  position: absolute;
  left: -6%;
  width: 112%;
  height: 125%;
  top: 0;
  object-fit: cover;
  object-position: center top;
  display: block;
  max-width: none;
  transform: scale(0.9) translateY(-10%);
  transform-origin: center top;
}

/* Floating badge */
.sh-about__badge {
  position: absolute; bottom: 32px; inset-inline-start: -24px;
  background: var(--white); border-radius: var(--r);
  box-shadow: var(--sh-md);
  display: flex; align-items: center; gap: 16px;
  padding: 20px 24px;
  border-inline-start: 4px solid var(--accent);
}
.sh-about__badge svg { color: var(--accent); flex-shrink: 0; }
.sh-about__badge strong {
  display: block; font-family: var(--font-h);
  font-size: 1.7rem; font-weight: 700; color: var(--text-h); line-height: 1;
}
.sh-about__badge span { display: block; font-size: .82rem; color: var(--text-m); margin-top: 4px; }

/* Content */
.sh-about__content .sh-eyebrow { display: block; }
.sh-about__content h2 {
  font-family: var(--font-h);
  font-size: clamp(1.3rem, 1.7vw, 1.5rem);
  color: var(--text-h); margin-bottom: 18px; line-height: 1.28;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.sh-about__content > p { color: var(--text-m); line-height: 1.78; margin-bottom: 28px; font-size: 1.07rem; }

.sh-about__list { list-style: none; padding: 0; margin: 0 0 20px; }
.sh-about__list li {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 13px 0; border-bottom: 1px solid var(--border);
  font-size: 1rem; color: var(--text-b);
}
.sh-about__list li:last-child { border-bottom: none; }
.sh-about__list li::before {
  content: ''; width: 7px; height: 7px; min-width: 7px;
  background: var(--accent); border-radius: 50%; margin-top: .48em;
}

.sh-about__trust {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 4px 0 26px;
  width: 100%;
  box-sizing: border-box;
  background: var(--white);
  border: 1px solid var(--border);
  border-inline-start: 3px solid var(--accent);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  overflow: hidden;
}

.sh-about__trust-row {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  text-decoration: none;
  color: inherit;
  transition: background .2s ease;
}

.sh-about__trust-row + .sh-about__trust-row {
  border-top: 1px solid var(--border);
}

.sh-about__trust-row:hover {
  background: rgba(193, 154, 54, .06);
}

.sh-about__trust-media {
  display: block;
  width: 48px;
  flex-shrink: 0;
}

.sh-about__trust-media img {
  width: 100%;
  height: auto;
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(26, 43, 74, .14);
}

.sh-about__trust-media--deal img {
  aspect-ratio: 3/4;
  object-fit: cover;
}

.sh-about__trust-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.sh-about__trust-eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
}

.sh-about__trust-copy strong {
  font-family: var(--font-h);
  font-size: 1.02rem;
  color: var(--text-h);
  line-height: 1.25;
}

.sh-about__trust-meta {
  font-size: .82rem;
  color: var(--text-m);
  line-height: 1.4;
}

.sh-about__actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  margin-top: 0;
  width: 100%;
  box-sizing: border-box;
}

.sh-about__actions .sh-btn {
  flex: 1 1 0;
  max-width: 100%;
  justify-content: center;
  white-space: normal;
  text-align: center;
  line-height: 1.35;
  min-width: 0;
  box-sizing: border-box;
}

.sh-about__content {
  min-width: 0;
}

/* Retired homepage variants */
.sh-about__proofline,
.sh-about__proof {
  display: none;
}

/* ================================================================
   ABOUT PAGE — hero, pillars, timeline, credentials
   ================================================================ */
.sh-about-page {
  background: var(--cream);
}

/* Hero */
.sh-about-hero {
  background: linear-gradient(180deg, var(--white) 0%, var(--cream) 100%);
  border-bottom: 1px solid var(--border);
  padding: 28px 0 72px;
}

.sh-about-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  color: var(--text-m);
  margin-bottom: 36px;
}

.sh-about-breadcrumb a {
  color: var(--text-m);
  text-decoration: none;
}

.sh-about-breadcrumb a:hover {
  color: var(--primary);
}

.sh-about-breadcrumb [aria-current="page"] {
  color: var(--text-h);
  font-weight: 500;
}

.sh-about-hero__grid {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 420px);
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}

.sh-about-hero__content .sh-eyebrow {
  display: block;
}

.sh-about-hero__title {
  font-family: var(--font-h);
  font-size: clamp(2.1rem, 4.2vw, 3.2rem);
  color: var(--text-h);
  line-height: 1.12;
  margin: 12px 0 20px;
  max-width: 14ch;
}

.sh-about-hero__lead {
  margin: 0 0 32px;
  font-size: 1.08rem;
  line-height: 1.78;
  color: var(--text-m);
  max-width: 58ch;
}

.sh-about-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: 36px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
  box-shadow: var(--sh-sm);
  overflow: hidden;
}

.sh-about-hero__stat {
  flex: 1 1 140px;
  padding: 20px 24px;
  border-inline-end: 1px solid var(--border);
}

.sh-about-hero__stat:last-child {
  border-inline-end: none;
}

.sh-about-hero__stat strong {
  display: block;
  font-family: var(--font-h);
  font-size: clamp(1.6rem, 2.5vw, 2rem);
  color: var(--primary);
  line-height: 1;
  margin-bottom: 6px;
}

.sh-about-hero__stat span {
  display: block;
  font-size: .82rem;
  color: var(--text-m);
  line-height: 1.4;
}

.sh-about-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.sh-about-hero__linkedin {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--primary);
  font-weight: 600;
  font-size: .95rem;
  text-decoration: none;
  transition: color .15s, gap .15s;
}

.sh-about-hero__linkedin:hover {
  color: var(--accent);
  gap: 12px;
}

.sh-about-hero__visual {
  position: relative;
}

.sh-about-hero__frame {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
  aspect-ratio: 3/4;
  background: var(--light);
  box-shadow: var(--sh-lg);
}

.sh-about-hero__frame::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid rgba(193, 154, 54, .25);
  pointer-events: none;
  z-index: 1;
}

.sh-about-hero__frame > img,
.sh-about-hero__frame > .sh-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sh-about-hero__badge {
  position: absolute;
  bottom: 28px;
  inset-inline-start: -28px;
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--white);
  border-radius: var(--r);
  box-shadow: var(--sh-md);
  padding: 18px 22px;
  border-inline-start: 4px solid var(--accent);
  max-width: calc(100% + 28px);
}

.sh-about-hero__badge svg {
  color: var(--accent);
  flex-shrink: 0;
}

.sh-about-hero__badge strong {
  display: block;
  font-family: var(--font-h);
  font-size: 1.05rem;
  color: var(--text-h);
  line-height: 1.2;
}

.sh-about-hero__badge span {
  display: block;
  font-size: .78rem;
  color: var(--text-m);
  margin-top: 2px;
}

/* Pillars */
.sh-about-pillars {
  padding-block: 72px;
  background: var(--cream);
}

.sh-about-pillars__header {
  text-align: center;
  max-width: 560px;
  margin: 0 auto 48px;
}

.sh-about-pillars__header .sh-eyebrow {
  display: block;
}

.sh-about-pillars__header h2 {
  font-family: var(--font-h);
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  color: var(--text-h);
  margin: 10px 0 0;
}

.sh-about-pillars__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.sh-about-pillar {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 28px 24px;
  box-shadow: var(--sh-sm);
  transition: border-color .2s, box-shadow .2s, transform .2s;
}

.sh-about-pillar:hover {
  border-color: var(--accent-line);
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}

.sh-about-pillar__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--accent-lite);
  color: var(--accent);
  margin-bottom: 16px;
}

.sh-about-pillar p {
  margin: 0;
  font-size: .98rem;
  line-height: 1.6;
  color: var(--text-b);
}

/* About — office locations */
.sh-about-offices {
  padding-block: 88px;
  background: var(--cream);
  border-block: 1px solid var(--border);
}

/* Offices reveal animation */
.sh-about-offices__grid[data-offices-grid].is-prep .sh-about-office {
  opacity: 0;
  transform: translateY(18px) scale(0.985);
  transition:
    opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow .2s ease,
    border-color .2s ease;
}

.sh-about-offices__grid[data-offices-grid].is-prep .sh-about-office.is-revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.sh-about-offices__grid[data-offices-grid].is-prep .sh-about-office.is-revealed:hover {
  transform: translateY(-3px);
}

.sh-about-offices__header {
  max-width: 640px;
  margin-bottom: 48px;
}

.sh-about-offices__header .sh-eyebrow {
  display: block;
  margin-bottom: 12px;
}

.sh-about-offices__header h2 {
  font-family: var(--font-h);
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  font-weight: 700;
  color: var(--primary);
  margin: 0 0 14px;
  line-height: 1.15;
}

.sh-about-offices__header p {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--text-m);
}

.sh-about-offices__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}

.sh-about-office {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(27, 42, 74, .06);
  transition: transform .2s ease, box-shadow .2s ease;
}

.sh-about-office:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(27, 42, 74, .1);
}

.sh-about-office__media {
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: linear-gradient(145deg, var(--primary) 0%, #2a3f66 100%);
  border: 0;
  padding: 0;
  width: 100%;
  cursor: default;
  text-align: left;
  font: inherit;
  color: inherit;
}

.sh-about-office__media--gallery {
  position: relative;
  cursor: pointer;
}

.sh-about-office__media--gallery:hover .sh-about-office__img {
  transform: scale(1.02);
}

.sh-about-office__media--gallery .sh-about-office__img {
  transition: transform .25s ease;
}

.sh-about-office__img,
.sh-about-office__media .sh-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sh-about-office__media .sh-placeholder {
  min-height: 100%;
  border-radius: 0;
}

.sh-about-office__body {
  padding: 24px 26px 26px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.sh-about-office__body h3 {
  margin: 0;
  font-family: var(--font-h);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary);
}

.sh-about-office__body p {
  margin: 0;
  font-size: .95rem;
  line-height: 1.6;
  color: var(--text-m);
  flex: 1;
}

.sh-about-office__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  transition: color .15s ease, gap .15s ease;
}

.sh-about-office__link:hover {
  color: var(--primary);
  gap: 10px;
}

/* Lightbox gallery */
.sh-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.sh-lightbox:not(.is-open) {
  pointer-events: none;
}

.sh-lightbox[hidden] {
  display: none !important;
}

.sh-lightbox.is-open {
  display: flex;
}

.sh-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 18, 32, .88);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity .22s ease;
}

.sh-lightbox.is-open .sh-lightbox__backdrop {
  opacity: 1;
}

.sh-lightbox__panel {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  max-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  opacity: 0;
  transform: translateY(10px) scale(0.985);
  transition: opacity .24s ease, transform .24s ease;
}

.sh-lightbox.is-open .sh-lightbox__panel {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.sh-lightbox__stage {
  margin: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-inline: 56px;
}

.sh-lightbox__img {
  display: block;
  max-width: 100%;
  max-height: min(72vh, 720px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, .35);
  background: var(--primary);
  opacity: 1;
  transform: translateZ(0);
  transition: opacity .18s ease;
}

.sh-lightbox__img.is-transitioning {
  opacity: 0;
}

.sh-lightbox__caption {
  margin: 14px 0 0;
  max-width: 640px;
  text-align: center;
  font-size: .92rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .85);
}

.sh-lightbox__counter {
  margin: 0;
  text-align: center;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .65);
}

.sh-lightbox__close,
.sh-lightbox__nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .12);
  color: var(--white);
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
}

.sh-lightbox__close:hover,
.sh-lightbox__nav:hover {
  background: rgba(255, 255, 255, .22);
}

.sh-lightbox__close {
  position: absolute;
  top: -52px;
  right: 0;
  width: 42px;
  height: 42px;
}

.sh-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
}

.sh-lightbox__nav:disabled {
  opacity: .35;
  cursor: default;
}

.sh-lightbox__nav--prev { left: 0; }
.sh-lightbox__nav--next { right: 0; }

@media (max-width: 720px) {
  .sh-lightbox {
    padding: 16px;
  }

  .sh-lightbox__stage {
    padding-inline: 44px;
  }

  .sh-lightbox__close {
    top: -46px;
  }

  .sh-lightbox__nav {
    width: 40px;
    height: 40px;
  }

  .sh-lightbox__img {
    max-height: 58vh;
  }
}

body.sh-lightbox-open {
  overflow: hidden;
}

/* Story + timeline */
.sh-about-story {
  padding-block: 0 88px;
}

.sh-about-story__intro {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 56px;
}

.sh-about-story__intro .sh-eyebrow {
  display: block;
}

.sh-about-story__intro h2 {
  font-family: var(--font-h);
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  color: var(--text-h);
  margin: 10px 0 16px;
}

.sh-about-story__intro p {
  margin: 0;
  color: var(--text-m);
  line-height: 1.78;
  font-size: 1.07rem;
}

.sh-about-story__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 32px;
  align-items: start;
}

.sh-about-timeline h3 {
  font-family: var(--font-h);
  font-size: 1.25rem;
  color: var(--text-h);
  margin: 0 0 32px;
}

.sh-about-timeline {
  --timeline-rail: 40px;
  --timeline-line-x: calc(var(--timeline-rail) / 2 - 1px);
}

.sh-about-timeline__list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.sh-about-timeline__list::before {
  content: '';
  position: absolute;
  inset-inline-start: var(--timeline-line-x);
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, var(--accent) 0%, rgba(193, 154, 54, .2) 100%);
  border-radius: 2px;
}

.sh-about-timeline__item {
  display: grid;
  grid-template-columns: var(--timeline-rail) 1fr;
  gap: 24px;
  padding-bottom: 32px;
}

.sh-about-timeline__item:last-child {
  padding-bottom: 0;
}

.sh-about-timeline__marker {
  display: flex;
  justify-content: center;
  padding-top: 6px;
  position: relative;
  z-index: 1;
}

.sh-about-timeline__dot {
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--white);
  border: 3px solid var(--accent);
  box-shadow: 0 0 0 4px var(--cream);
  flex-shrink: 0;
}

.sh-about-timeline__item:first-child .sh-about-timeline__dot {
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--cream), 0 0 0 6px rgba(193, 154, 54, .25);
}

.sh-about-timeline__card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 24px 28px;
  box-shadow: var(--sh-sm);
  transition: border-color .2s, box-shadow .2s;
}

.sh-about-timeline__item:hover .sh-about-timeline__card {
  border-color: var(--accent-line);
  box-shadow: var(--sh-md);
}

.sh-about-timeline__period {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}

.sh-about-timeline__card strong {
  display: block;
  font-size: 1.08rem;
  color: var(--text-h);
  margin-bottom: 4px;
}

.sh-about-timeline__org {
  display: block;
  font-size: .9rem;
  font-weight: 600;
  color: var(--primary);
  margin-bottom: 10px;
}

.sh-about-timeline__card p {
  margin: 0;
  color: var(--text-m);
  line-height: 1.65;
  font-size: .95rem;
}

/* Credentials sidebar */
.sh-about-credentials {
  position: sticky;
  top: calc(var(--sh-header-offset) + 24px);
}

.sh-about-credentials__card {
  background: var(--primary);
  color: var(--white);
  border-radius: var(--r-lg);
  padding: 32px 28px;
  box-shadow: var(--sh-lg);
}

.sh-about-credentials__card h3 {
  font-family: var(--font-h);
  font-size: 1.2rem;
  color: var(--white);
  margin: 0 0 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.sh-about-credentials__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px;
}

.sh-about-credentials__item {
  padding: 14px 16px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: var(--r);
  transition: background .15s;
}

.sh-about-credentials__item:hover {
  background: rgba(255, 255, 255, .1);
}

.sh-about-credentials__label {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 4px;
}

.sh-about-credentials__value {
  display: block;
  font-size: .88rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .88);
}
.sh-about-credentials__value--link {
  text-decoration: none;
  color: var(--accent);
  transition: color .2s ease;
}
.sh-about-credentials__value--link:hover {
  color: #e0c06a;
}

/* Publication — featured (Über uns) + compact (home about / footer) */
.sh-about-publication {
  padding-block: 64px;
  background: var(--white);
}
.sh-about-publication__panel {
  display: grid;
  grid-template-columns: minmax(160px, 220px) 1fr;
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
  padding: clamp(28px, 4vw, 48px);
  background:
    linear-gradient(135deg, rgba(193,154,54,.10) 0%, transparent 40%),
    var(--cream);
  border-inline-start: 4px solid var(--accent);
}
.sh-about-publication__cover {
  justify-self: center;
  filter: drop-shadow(0 18px 36px rgba(26, 43, 74, .22));
}
.sh-about-publication__cover img {
  width: min(220px, 100%);
  height: auto;
}
.sh-about-publication__body .sh-eyebrow {
  display: block;
  margin-bottom: 12px;
}
.sh-about-publication__body h2 {
  font-family: var(--font-h);
  font-size: clamp(1.55rem, 2.4vw, 2.1rem);
  color: var(--text-h);
  line-height: 1.2;
  margin-bottom: 8px;
}
.sh-about-publication__sub {
  font-size: .95rem;
  color: var(--text-m);
  letter-spacing: .02em;
  margin-bottom: 16px;
}
.sh-about-publication__lead {
  color: var(--text-m);
  font-size: 1.05rem;
  line-height: 1.75;
  margin-bottom: 20px;
  max-width: 560px;
}
.sh-about-publication__points {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
}
.sh-about-publication__points li {
  position: relative;
  padding-inline-start: 22px;
  margin-bottom: 10px;
  color: var(--text-h);
  font-size: .95rem;
  line-height: 1.5;
}
.sh-about-publication__points li::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: .55em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}
.sh-about-publication__body .sh-btn svg {
  transition: transform .2s ease;
}
.sh-about-publication__body .sh-btn:hover svg {
  transform: translateX(3px);
}
[dir="rtl"] .sh-about-publication__body .sh-btn:hover svg {
  transform: translateX(-3px);
}

/* ── Selected transaction / deal tombstone ─────────────────── */
.sh-deal {
  padding-block: 72px;
  background: var(--cream);
  border-block: 1px solid var(--border);
}

.sh-deal__panel {
  display: grid;
  grid-template-columns: minmax(280px, 420px) 1fr;
  gap: clamp(40px, 6vw, 72px);
  align-items: center;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: clamp(28px, 3.5vw, 44px);
  box-shadow: var(--sh-sm);
  overflow: visible;
}

.sh-deal__gallery {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  padding-inline-end: 40px;
  padding-bottom: 32px;
  box-sizing: border-box;
}

.sh-deal__shot {
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 10px;
  overflow: hidden;
  background: var(--primary-dk);
  box-shadow: var(--sh-md);
  cursor: zoom-in;
  font: inherit;
  color: inherit;
  appearance: none;
  -webkit-appearance: none;
  transition: transform .2s ease, box-shadow .2s ease;
}

.sh-deal__shot img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
  pointer-events: none;
}

.sh-deal__shot--zoom:hover,
.sh-deal__shot--zoom:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--sh-lg);
  outline: none;
}

.sh-deal__shot--primary {
  width: min(100%, 300px);
  z-index: 1;
}

.sh-deal__shot--secondary {
  position: absolute;
  width: min(38%, 120px);
  inset-inline-end: 12px;
  bottom: 12px;
  transform: rotate(12deg);
  box-shadow: var(--sh-lg);
  border: 3px solid var(--white);
  z-index: 2;
}

.sh-deal__shot--secondary.sh-deal__shot--zoom:hover,
.sh-deal__shot--secondary.sh-deal__shot--zoom:focus-visible {
  transform: rotate(12deg) translateY(-3px) scale(1.03);
}

.sh-deal__body .sh-eyebrow {
  display: block;
  margin-bottom: 12px;
}

.sh-deal__body h2 {
  font-family: var(--font-h);
  font-size: clamp(1.7rem, 2.8vw, 2.35rem);
  color: var(--text-h);
  margin: 0 0 14px;
  line-height: 1.15;
}

.sh-deal__headline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 10px;
  margin: 0 0 8px;
  font-size: 1.05rem;
  color: var(--text-b);
}

.sh-deal__volume {
  font-family: var(--font-h);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--accent);
}

.sh-deal__sep {
  color: var(--text-m);
  opacity: .55;
}

.sh-deal__role {
  margin: 0 0 18px;
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--primary);
}

.sh-deal__lead {
  margin: 0 0 24px;
  max-width: 40rem;
  color: var(--text-m);
  font-size: 1.05rem;
  line-height: 1.75;
}

.sh-deal__facts {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  margin: 0;
}

.sh-deal__facts li {
  padding: 8px 14px;
  border: 1px solid var(--accent-line);
  border-radius: 999px;
  background: var(--accent-lite);
  color: var(--primary);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .03em;
}

/* Homepage compact teaser */
.sh-deal-teaser {
  padding-block: 28px 8px;
  background: var(--white);
}

.sh-deal-teaser__card {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 22px;
  align-items: center;
  max-width: 720px;
  margin-inline: auto;
  padding: 18px 20px;
  text-decoration: none;
  color: inherit;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
  transition: border-color .2s, box-shadow .2s, transform .2s;
}

.sh-deal-teaser__card:hover {
  border-color: var(--accent-line);
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}

.sh-deal-teaser__media {
  display: block;
  border-radius: 8px;
  overflow: hidden;
  background: var(--primary-dk);
  box-shadow: var(--sh-sm);
}

.sh-deal-teaser__media img {
  display: block;
  width: 100%;
  height: auto;
}

.sh-deal-teaser__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.sh-deal-teaser__body .sh-eyebrow {
  margin: 0;
}

.sh-deal-teaser__title {
  font-family: var(--font-h);
  font-size: 1.35rem;
  color: var(--text-h);
  line-height: 1.2;
}

.sh-deal-teaser__meta {
  font-size: .9rem;
  color: var(--text-m);
  line-height: 1.45;
}

.sh-deal-teaser__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: .88rem;
  font-weight: 700;
  color: var(--accent-dk);
}

.sh-deal-teaser__card:hover .sh-deal-teaser__cta svg {
  transform: translateX(3px);
}

.sh-deal-teaser__cta svg {
  transition: transform .2s ease;
}

[dir="rtl"] .sh-deal-teaser__card:hover .sh-deal-teaser__cta svg {
  transform: translateX(-3px);
}

@media (max-width: 900px) {
  .sh-deal__panel {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .sh-deal__gallery {
    max-width: 340px;
    margin-inline: auto;
  }
  .sh-deal__shot--secondary {
    inset-inline-end: 0;
  }
  .sh-deal__headline,
  .sh-deal__facts {
    justify-content: center;
  }
  .sh-deal__lead {
    margin-inline: auto;
    text-align: start;
  }
  .sh-deal__role {
    letter-spacing: .03em;
  }
}

@media (max-width: 640px) {
  .sh-deal { padding-block: 48px; }
  .sh-deal__panel { padding: 20px 16px; }
  .sh-deal__shot--secondary { display: none; }
  .sh-deal-teaser__card {
    grid-template-columns: 72px 1fr;
    gap: 14px;
    padding: 14px;
  }
  .sh-deal-teaser__title { font-size: 1.15rem; }
}


.sh-pub-compact {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 8px 0 24px;
  max-width: 100%;
  text-decoration: none;
  color: inherit;
  transition: opacity .2s ease;
}
.sh-pub-compact:hover { opacity: .88; }
.sh-pub-compact__cover img {
  width: 48px;
  height: auto;
  border-radius: 2px;
  box-shadow: 0 6px 16px rgba(26, 43, 74, .14);
}
.sh-pub-compact__meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.sh-pub-compact__eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
}
.sh-pub-compact__meta strong {
  font-family: var(--font-h);
  font-size: .95rem;
  color: var(--text-h);
  line-height: 1.25;
}
.sh-pub-compact__cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--primary);
}
.sh-footer .sh-pub-compact {
  margin: 0 0 28px;
}
.sh-footer .sh-pub-compact__eyebrow { color: var(--accent); }
.sh-footer .sh-pub-compact__meta strong { color: var(--white); }
.sh-footer .sh-pub-compact__cta { color: rgba(255,255,255,.78); }
.sh-footer .sh-pub-compact:hover .sh-pub-compact__cta { color: var(--accent); }

@media (max-width: 900px) {
  .sh-about-publication__panel {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .sh-about-publication__lead,
  .sh-about-publication__points {
    margin-inline: auto;
    text-align: start;
    max-width: 520px;
  }
  .sh-about-publication__body .sh-btn {
    justify-content: center;
  }
}

/* CTA */
.sh-about-cta {
  padding-block: 0 96px;
}

.sh-about-cta__panel {
  position: relative;
  background: var(--primary);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-lg);
}

.sh-about-cta__glow {
  position: absolute;
  inset-inline-end: -80px;
  top: -80px;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(193, 154, 54, .22) 0%, transparent 70%);
  pointer-events: none;
}

.sh-about-cta__content {
  position: relative;
  text-align: center;
  padding: 56px clamp(24px, 5vw, 72px);
}

.sh-about-cta__content h2 {
  font-family: var(--font-h);
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  color: var(--white);
  margin: 0 0 14px;
}

.sh-about-cta__content p {
  max-width: 580px;
  margin: 0 auto 32px;
  color: rgba(255, 255, 255, .78);
  line-height: 1.72;
  font-size: 1.02rem;
}

.sh-about-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

/* ================================================================
   CLIENT JOURNEY
   ================================================================ */
.sh-process {
  padding-block: 72px;
  background: var(--cream);
}
.sh-process__panel {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 56px 40px 48px;
  box-shadow: 0 10px 48px rgba(26, 43, 74, 0.08);
}
.sh-process__panel .sh-section-header { margin-bottom: 48px; }
.sh-process__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
.sh-process__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 16px 22px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  transition:
    opacity .95s cubic-bezier(0.22, 1, 0.36, 1),
    transform .95s cubic-bezier(0.22, 1, 0.36, 1),
    border-color .2s,
    box-shadow .2s;
}
.sh-process__steps[data-process-steps].is-prep .sh-process__step {
  opacity: 0;
  transform: translateY(36px) scale(0.94);
}
.sh-process__steps[data-process-steps].is-prep .sh-process__step.is-revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.sh-process__steps[data-process-steps].is-prep .sh-process__step.is-revealed:hover {
  transform: translateY(-3px);
}
.sh-process__panel.is-prep .sh-process__footer {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .9s cubic-bezier(0.22, 1, 0.36, 1), transform .9s cubic-bezier(0.22, 1, 0.36, 1);
}
.sh-process__panel.is-visible .sh-process__footer {
  opacity: 1;
  transform: translateY(0);
}
.sh-process__step:hover {
  border-color: rgba(197,152,62,.4);
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(26,43,74,.08);
}
.sh-process__step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 44px;
  inset-inline-end: -16px;
  width: 16px;
  height: 2px;
  background: var(--accent);
  opacity: .45;
  pointer-events: none;
}
.sh-process__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--primary);
  color: var(--white);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
  margin-bottom: 12px;
}
.sh-process__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--accent-lite);
  color: var(--accent);
  margin-bottom: 14px;
}
.sh-process__body h3 {
  font-family: var(--font-h);
  font-size: 1.22rem;
  font-weight: 700;
  color: var(--primary);
  margin: 0 0 8px;
  line-height: 1.25;
}
.sh-process__body p {
  margin: 0;
  font-size: .8rem;
  line-height: 1.5;
  color: var(--text-m);
}
.sh-process__footer {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
  text-align: center;
  max-width: 520px;
  margin-inline: auto;
}
.sh-process__footer p {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-h);
  line-height: 1.5;
  margin: 0 0 20px;
}


/* ================================================================
   VALUES
   ================================================================ */
.sh-values { padding-block: 96px; background: var(--white); }
.sh-values__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }

.sh-values__card {
  padding: 48px 40px; border-radius: var(--r-lg);
  background: var(--cream); border: 1px solid var(--border);
  text-align: center; transition: all .22s ease;
}
.sh-values__card:hover { border-color: var(--accent); box-shadow: var(--sh-md); transform: translateY(-4px); }

.sh-values__icon {
  display: flex; justify-content: center; align-items: center;
  width: 72px; height: 72px; background: var(--accent-lite);
  border-radius: 50%; color: var(--accent); margin: 0 auto 24px;
}
.sh-values__card h3 { font-family: var(--font-h); font-size: 1.3rem; color: var(--text-h); margin-bottom: 12px; }
.sh-values__card p { color: var(--text-m); font-size: .95rem; line-height: 1.7; }


/* ================================================================
   TEAM
   ================================================================ */
.sh-team { padding-block: 96px; background: var(--cream); }
.sh-team__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }

.sh-team__card {
  background: var(--white); border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--border); transition: all .22s ease;
}
.sh-team__card:hover { transform: translateY(-6px); box-shadow: var(--sh-md); }

.sh-team__photo { aspect-ratio: 3/4; background: var(--light); overflow: hidden; }
.sh-team__photo img,
.sh-team__photo .sh-placeholder { width: 100%; height: 100%; object-fit: cover; }
.sh-team__photo img { transition: transform .3s ease; }
.sh-team__card:hover .sh-team__photo img { transform: scale(1.05); }

.sh-team__info { padding: 20px 22px; }
.sh-team__info h3 { font-family: var(--font-h); font-size: 1.05rem; color: var(--text-h); margin-bottom: 5px; }
.sh-team__info p { font-size: .84rem; color: var(--accent); font-weight: 600; }

.sh-team__social { display: flex; gap: 8px; margin-top: 14px; }
.sh-team__social a {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; background: var(--cream);
  border-radius: 50%; color: var(--text-m); text-decoration: none; transition: all .15s;
}
.sh-team__social a:hover { background: var(--primary); color: var(--white); }


/* ================================================================
   TESTIMONIALS
   ================================================================ */
.sh-testimonials {
  padding-block: 96px;
  background: var(--white);
  border-top: 1px solid var(--border);
}

.sh-testimonials__carousel {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sh-testimonials__viewport {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.sh-testimonials__track {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-block: 4px;
}
.sh-testimonials__track::-webkit-scrollbar { display: none; }

.sh-testimonials__nav {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--white);
  color: var(--primary);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s, opacity .15s;
}
.sh-testimonials__nav:hover:not(:disabled) {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}
.sh-testimonials__nav:disabled {
  opacity: .35;
  cursor: not-allowed;
}

.sh-testimonials__card {
  flex: 0 0 calc((100% - 48px) / 3);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  padding: 22px 24px 20px;
  background: var(--cream);
  border-radius: var(--r-lg);
  border: 1px solid rgba(27, 42, 74, 0.1);
  border-inline-start: 3px solid var(--accent);
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(27, 42, 74, 0.08);
  transition: border-color .2s, box-shadow .2s;
}
.sh-testimonials__card:hover {
  border-color: rgba(197, 152, 62, 0.45);
  box-shadow: 0 8px 28px rgba(27, 42, 74, 0.12);
}
.sh-testimonials__card::before {
  content: '\201C';
  position: absolute;
  top: 6px;
  inset-inline-end: 14px;
  font-family: var(--font-h);
  font-size: 3.5rem;
  line-height: 1;
  color: rgba(197, 152, 62, 0.1);
  pointer-events: none;
}

.sh-testimonials__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.sh-testimonials__google-g {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
}
.sh-google-g {
  display: block;
}
.sh-testimonials__stars {
  display: flex;
  gap: 2px;
  color: var(--accent);
  flex-shrink: 0;
}
.sh-testimonials__text {
  flex: 1;
  font-size: .92rem;
  line-height: 1.62;
  color: var(--text-h);
  margin: 0 0 16px;
  font-style: normal;
  font-weight: 500;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sh-testimonials__author {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(27, 42, 74, 0.1);
}
.sh-testimonials__avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--primary);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: .72rem;
  flex-shrink: 0;
}
.sh-testimonials__meta {
  font-size: .78rem;
  color: var(--text-b);
  font-weight: 600;
  line-height: 1.3;
}


/* ================================================================
   CTA BANNER
   ================================================================ */
.sh-cta-banner { background: var(--primary); padding-block: 80px; position: relative; overflow: hidden; }
.sh-cta-banner::before {
  content: ''; position: absolute; inset-inline-end: -80px; top: -80px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(197,152,62,.14) 0%, transparent 70%);
  pointer-events: none;
}
.sh-cta-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 48px; position: relative; }
.sh-cta-banner__text h2 { font-family: var(--font-h); font-size: clamp(1.5rem, 2.5vw, 2.1rem); color: var(--white); margin-bottom: 12px; line-height: 1.3; }
.sh-cta-banner__text p { color: rgba(255,255,255,.65); font-size: 1rem; max-width: 520px; }
.sh-cta-banner__actions { display: flex; gap: 14px; flex-shrink: 0; flex-wrap: wrap; }


/* ================================================================
   FAQ
   ================================================================ */
.sh-faq { padding-block: 96px; background: var(--cream); }
.sh-faq__list { width: 100%; }

.sh-faq__item {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r); margin-bottom: 10px;
  overflow: hidden; transition: border-color .2s;
}
.sh-faq__item[open] { border-color: var(--accent); box-shadow: var(--sh-sm); }

.sh-faq__question {
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 26px; font-weight: 600; font-size: 1rem;
  color: var(--text-h); cursor: pointer; list-style: none; user-select: none;
  transition: background .15s;
}
.sh-faq__question:hover { background: var(--cream); }
.sh-faq__question::-webkit-details-marker { display: none; }
.sh-faq__arrow { flex-shrink: 0; color: var(--accent); transition: transform .22s ease; }
details[open] .sh-faq__arrow { transform: rotate(180deg); }

.sh-faq__answer { padding: 18px 26px 22px; border-top: 1px solid var(--border); }
.sh-faq__answer p { color: var(--text-m); font-size: .96rem; line-height: 1.75; }

.sh-contact-cards { margin-top: 56px; scroll-margin-top: var(--sh-header-offset); }
.sh-contact-cards__intro {
  text-align: center; color: var(--text-m); font-size: 1.05rem;
  max-width: 640px; margin: 0 auto 28px; line-height: 1.6;
}
.sh-contact-cards__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
}
.sh-contact-card {
  display: block; background: var(--white); border: 1px solid var(--border);
  border-radius: 8px; padding: 24px 22px; text-decoration: none; color: inherit;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.sh-contact-card:hover {
  border-color: var(--accent); box-shadow: var(--sh-sm); transform: translateY(-2px);
}
.sh-contact-card h3 {
  font-family: var(--font-h); font-size: 1rem; color: var(--text-h);
  margin: 0 0 10px; line-height: 1.35;
}
.sh-contact-card p { margin: 0; color: var(--text-m); font-size: .9rem; line-height: 1.65; }
.sh-contact-card--whatsapp:hover h3 { color: #128C7E; }

@media (max-width: 1024px) {
  .sh-contact-cards__grid { grid-template-columns: repeat(2, 1fr); }
  .sh-testimonials__card { flex: 0 0 calc((100% - 24px) / 2); }
}
@media (max-width: 640px) {
  .sh-testimonials__card { flex: 0 0 100%; }
  .sh-testimonials__nav { width: 40px; height: 40px; }
}
@media (max-width: 560px) {
  .sh-contact-cards__grid { grid-template-columns: 1fr; }
}


/* ================================================================
   FOOTER
   ================================================================ */
.sh-footer {
  position: relative;
  background: linear-gradient(165deg, var(--primary) 0%, var(--primary-dk) 55%, #0d1524 100%);
  padding-top: 0;
  overflow: hidden;
}
.sh-footer::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(ellipse 80% 50% at 10% 0%, rgba(193,154,54,.08) 0%, transparent 55%),
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size: auto, 48px 48px, 48px 48px;
  pointer-events: none;
}
.sh-footer__accent {
  height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--accent) 20%, #e8c96a 50%, var(--accent) 80%, transparent 100%);
}
.sh-footer .sh-container { position: relative; z-index: 1; }

.sh-footer__top {
  display: grid;
  grid-template-columns: minmax(280px, 360px) 1fr;
  gap: 72px;
  padding: 72px 0 56px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

/* Brand column */
.sh-footer__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  margin-bottom: 22px;
}
.sh-footer__logo-mark {
  display: block;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  padding: 4px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
}
.sh-footer__logo-mark .sh-logo__img,
.sh-footer__logo-img {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
  filter: none;
  opacity: 1;
}
.sh-footer__logo-text {
  display: flex;
  flex-direction: column;
  gap: 7px;
  line-height: 1;
}
.sh-footer__logo-name {
  font-family: var(--font-h);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--white);
}
.sh-footer__logo-tagline {
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--accent);
}

.sh-footer__brand-desc {
  color: rgba(255,255,255,.58);
  font-size: .92rem;
  line-height: 1.75;
  margin: 0 0 24px;
  max-width: 320px;
}

.sh-footer__offices {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
}
.sh-footer__office {
  display: block;
  padding: 12px 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-inline-start: 2px solid var(--accent);
  border-radius: 0 6px 6px 0;
  text-decoration: none;
  color: inherit;
  transition: background .15s, border-color .15s, transform .15s;
}
.sh-footer__office:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(201,168,76,.25);
  transform: translateX(2px);
}
.sh-footer__office:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.sh-footer__office-label {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 4px;
}
.sh-footer__office:hover .sh-footer__office-addr { color: rgba(255,255,255,.75); }
.sh-footer__office-addr {
  display: block;
  font-size: .84rem;
  color: rgba(255,255,255,.55);
  line-height: 1.5;
}

.sh-footer__brand-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
.sh-footer__social { display: flex; gap: 8px; }
.sh-footer__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  color: rgba(255,255,255,.65);
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s, transform .2s;
}
.sh-footer__social a:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--primary);
  transform: translateY(-2px);
}
.sh-footer__cta {
  display: inline-flex;
  align-items: center;
  padding: 11px 22px;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--accent);
  border: 1px solid rgba(193,154,54,.45);
  border-radius: 4px;
  transition: background .2s, color .2s, border-color .2s;
}
.sh-footer__cta:hover {
  background: var(--accent);
  color: var(--primary);
  border-color: var(--accent);
}

/* Nav columns */
.sh-footer__nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  padding-top: 4px;
}
.sh-footer__col h4 {
  position: relative;
  color: var(--white);
  font-family: var(--font-h);
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: none;
  margin: 0 0 24px;
  padding-bottom: 12px;
}
.sh-footer__col h4::after {
  content: '';
  position: absolute;
  bottom: 0;
  inset-inline-start: 0;
  width: 28px;
  height: 2px;
  background: var(--accent);
  border-radius: 1px;
}
.sh-footer__col ul { list-style: none; padding: 0; margin: 0; }
.sh-footer__col ul li { margin-bottom: 11px; }
.sh-footer__col ul li a,
.sh-footer__col ul li span {
  color: rgba(255,255,255,.55);
  text-decoration: none;
  font-size: .9rem;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  transition: color .15s;
}
.sh-footer__col ul li a:hover { color: var(--accent); }
.sh-footer__col ul li svg {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  min-width: 14px;
  margin-top: 3px;
  opacity: .55;
  overflow: visible;
}
.sh-footer__col--contact ul li a:hover svg { opacity: 1; }
.sh-footer__hours {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: rgba(255,255,255,.5);
  font-size: .88rem;
  line-height: 1.55;
}
.sh-footer__hours svg { flex-shrink: 0; margin-top: 3px; opacity: .55; }

.sh-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 28px 0 32px;
}
.sh-footer__copy {
  color: rgba(255,255,255,.35);
  font-size: .82rem;
  margin: 0;
  letter-spacing: .02em;
}
.sh-footer__legal {
  display: flex;
  align-items: center;
  gap: 16px;
}
.sh-footer__legal-sep {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
}
.sh-footer__legal a {
  color: rgba(255,255,255,.4);
  font-size: .82rem;
  text-decoration: none;
  letter-spacing: .03em;
  transition: color .15s;
}
.sh-footer__legal a:hover { color: var(--accent); }


/* ================================================================
   PLACEHOLDERS
   ================================================================ */
.sh-placeholder {
  width: 100%;
  height: 100%;
  min-height: 200px;
  background: #ece8e0;
}

.sh-placeholder--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, #ece8e0 0%, #e2ddd3 100%);
}

.sh-placeholder__initials {
  font-family: var(--font-h);
  font-size: 2rem;
  font-weight: 700;
  color: rgba(27, 42, 74, .35);
  letter-spacing: .04em;
}


/* ================================================================
   RTL — Arabic
   ================================================================ */
[dir="rtl"].samaan-home, [dir="rtl"] .samaan-home { font-family: var(--font-ar), var(--font-b); }
[dir="rtl"] .sh-header__inner { flex-direction: row-reverse; }
[dir="rtl"] .sh-nav__list { flex-direction: row-reverse; }
[dir="rtl"] .sh-header__actions { margin-inline-start: 0; margin-inline-end: auto; }
[dir="rtl"] .sh-hero__inner { direction: rtl; }
[dir="rtl"] .sh-about__inner { direction: rtl; }

/* Hero gradient: in RTL the grid auto-mirrors (CSS Grid respects writing direction),
   so the image moves to the left column and the text to the right. The gradient must
   flip accordingly so it fades from the image's right edge toward the text. */
@media (min-width: 641px) {
  [dir="rtl"] .sh-hero__image::before {
    background: linear-gradient(to left, #ffffff 0%, rgba(255,255,255,0.06) 10%, transparent 22%);
  }
}
[dir="rtl"] .sh-about__badge { inset-inline-start: auto; inset-inline-end: -24px; border-inline-start: none; border-inline-end: 4px solid var(--accent); }
[dir="rtl"] .sh-cta-banner__inner { flex-direction: row-reverse; }
[dir="rtl"] .sh-footer__top { direction: rtl; }
[dir="rtl"] .sh-footer__bottom { flex-direction: row-reverse; }
[dir="rtl"] .sh-testimonials__card::before { inset-inline-end: auto; inset-inline-start: 22px; }
[dir="rtl"] .sh-practice-list__inner { direction: rtl; }


/* ================================================================
   TABLET NAV — collapse desktop nav between 769–1023px
   ================================================================ */
@media (max-width: 1023px) {
  .sh-mobile-toggle { display: flex; }
  .sh-nav, .sh-search-btn { display: none; }
}

/* ================================================================
   TRUST CARDS — 2×2 grid between 901px and 1100px
   ================================================================ */
@media (min-width: 901px) and (max-width: 1100px) {
  .sh-hero__features { flex-wrap: wrap; }
  .sh-hero__feature { flex: 1 1 calc(50% - 1px); border-inline-end: none; }
  .sh-hero__feature:nth-child(odd)  { border-inline-end: 1px solid var(--border); }
  .sh-hero__feature:nth-child(3)    { border-top: 1px solid var(--border); padding-top: 24px; padding-inline-start: 0 !important; }
  .sh-hero__feature:nth-child(4)    { border-top: 1px solid var(--border); padding-top: 24px; }
}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 1100px) {
  .sh-practice__grid { grid-template-columns: repeat(3,1fr); }
  .sh-team__grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 900px) {
  .sh-stats__grid { grid-template-columns: repeat(2,1fr); }
  .sh-stats__item { border-inline-end: none; border-bottom: 1px solid rgba(255,255,255,.1); padding: 16px 20px; }
  .sh-stats__item:nth-child(odd) { border-inline-end: 1px solid rgba(255,255,255,.1); }
  .sh-stats__item:nth-last-child(1), .sh-stats__item:nth-last-child(2) { border-bottom: none; }
  /* Tablet: balanced two-column hero, tighter padding */
  .sh-hero__grid { grid-template-columns: 48% 52%; min-height: 0; align-items: stretch; }
  .sh-hero__left { padding-block: 48px; padding-inline-start: clamp(24px, 4vw, 48px); padding-inline-end: 24px; }
  .sh-hero__image {
    height: auto;
    min-height: clamp(400px, 52vw, 540px);
    max-height: none;
  }
  .sh-about__inner { grid-template-columns: 1fr; gap: 0; }
  .sh-about-hero__grid { grid-template-columns: 1fr; gap: 48px; }
  .sh-about-hero__visual { order: -1; max-width: 420px; margin-inline: auto; width: 100%; }
  .sh-about-hero__badge { inset-inline-start: 16px; bottom: 20px; }
  .sh-about-pillars__grid { grid-template-columns: 1fr 1fr; }
  .sh-about-offices__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .sh-about-story__layout { grid-template-columns: 1fr; }
  .sh-about-credentials { position: static; }
  .sh-hero__features { flex-direction: column; gap: 14px; padding-block: 24px; }
  .sh-hero__feature { border-inline-end: none; padding-inline-end: 0; padding-inline-start: 0 !important; border-bottom: 1px solid var(--border); padding-bottom: 14px; }
  .sh-hero__feature:last-child { border-bottom: none; padding-bottom: 0; }
  .sh-about__image {
    height: auto;
    display: block;
  }
  .sh-about__image-frame {
    aspect-ratio: 4/3;
    max-height: 380px;
    height: auto;
  }
  .sh-about__image-frame > img,
  .sh-about__image-frame > .sh-placeholder {
    position: absolute;
  }
  .sh-about__actions {
    flex-wrap: wrap;
  }
  .sh-about__actions .sh-btn {
    flex: 1 1 100%;
  }
  .sh-about__badge { inset-inline-start: 16px; bottom: 20px; }
  .sh-footer__top { grid-template-columns: 1fr; gap: 48px; padding-top: 56px; }
  .sh-footer__brand-desc { max-width: 100%; }
  .sh-cta-banner__inner { flex-direction: column; text-align: center; }
  .sh-cta-banner__text p { max-width: 100%; }
  .sh-cta-banner__actions { justify-content: center; }
}

/* Mobile: stack to single column below 640px */
@media (max-width: 640px) {
  .sh-hero__grid { grid-template-columns: 1fr; min-height: unset; }
  .sh-hero__left { padding-block: 40px; padding-inline: 24px; order: 1; }
  .sh-hero__content { width: 100%; }
  .sh-hero__image {
    order: 2;
    position: relative;
    top: auto;
    aspect-ratio: 4/3;
    height: auto;
    min-height: 260px;
    max-height: 380px;
  }
  .sh-hero__actions { flex-wrap: wrap; gap: 12px; }
  .sh-hero__book {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 14px;
    max-width: 100%;
  }
  .sh-hero__book-cover img { width: 64px; }
  .sh-hero__achievement {
    max-width: 100%;
    padding: 12px 14px 12px 12px;
  }
  .sh-hero__achievement-media {
    width: 46px;
    height: 64px;
  }
  .sh-about-publication { padding-block: 48px; }
  .sh-about-publication__panel { padding: 24px 20px; }
  .sh-about-publication__cover img { width: 160px; }
  .sh-pub-compact { width: 100%; }
  .sh-about-hero { padding-bottom: 56px; }
  .sh-about-hero__stat { flex: 1 1 100%; border-inline-end: none; border-bottom: 1px solid var(--border); }
  .sh-about-hero__stat:last-child { border-bottom: none; }
  .sh-about-hero__actions { flex-direction: column; align-items: stretch; }
  .sh-about-hero__actions .sh-btn { width: 100%; justify-content: center; }
  .sh-about-hero__linkedin { justify-content: center; }
  .sh-about-pillars__grid { grid-template-columns: 1fr; }
  .sh-about-timeline { --timeline-rail: 32px; }
  .sh-about-timeline__item { gap: 16px; }
  .sh-about-timeline__card { padding: 20px; }
  .sh-about-cta__actions { flex-direction: column; width: 100%; }
  .sh-about-cta__actions .sh-btn { width: 100%; justify-content: center; }
}

@media (max-width: 1100px) {
  .sh-process__steps { grid-template-columns: repeat(2, 1fr); }
  .sh-process__step::after { display: none; }
  .sh-process__panel { padding: 44px 28px 36px; }
}
@media (max-width: 640px) {
  .sh-process { padding-block: 48px; }
  .sh-process__panel { padding: 32px 20px 28px; }
  .sh-process__steps { grid-template-columns: 1fr; gap: 12px; }
  .sh-process__step {
    flex-direction: row;
    align-items: flex-start;
    text-align: start;
    gap: 14px;
    padding: 18px 16px;
  }
  .sh-process__num { margin-bottom: 0; flex-shrink: 0; margin-top: 2px; }
  .sh-process__icon { display: none; }
  .sh-process__body h3 { font-size: 1.12rem; margin-bottom: 4px; }
}
@media (max-width: 768px) {
  .sh-stats { padding-block: 22px; }
  .sh-stats__tagline { border-right: none; padding-right: 0; }
  .sh-stats__inner { flex-direction: column; align-items: flex-start; gap: 24px; }
  .sh-practice__grid { grid-template-columns: repeat(2,1fr); }
  .sh-team__grid { grid-template-columns: repeat(2,1fr); }
  .sh-values__grid { grid-template-columns: 1fr; }
  .sh-practice-list__inner { grid-template-columns: 1fr; }
  .sh-footer__nav { grid-template-columns: repeat(2, 1fr); }
  .sh-footer__bottom { flex-direction: column; text-align: center; }
}
@media (max-width: 520px) {
  .sh-practice__grid, .sh-team__grid { grid-template-columns: 1fr; }
  .sh-stats__grid { grid-template-columns: 1fr; }
  .sh-stats__item { border: none !important; }
  .sh-footer__nav { grid-template-columns: 1fr; }
  .sh-footer__brand-actions { flex-direction: column; align-items: flex-start; }
  .sh-about__content h2 { white-space: normal; }
  .sh-hero__actions { flex-direction: column; gap: 12px; }
  .sh-btn--hero-outline { width: 100%; justify-content: center; }
  .sh-btn--lg { width: 100%; justify-content: center; padding: 18px 32px; }
}
@media (max-width: 1150px) {
  .sh-header .sh-btn { display: none; }
}
@media (max-width: 540px) {
  .sh-logo__tagline { display: none; }
  .sh-footer__logo-tagline { display: none; }
}

/* ================================================================
   DESKTOP — hero image height matches hero section exactly
   ================================================================ */

/* The base min-height on .sh-hero__image uses a clamp() that was
   sized for mobile. On desktop, the flex chain already sets the
   image column height via align-items: stretch. Remove the clamp
   constraint so the grid fully controls column height.
   Also center the crop so the subject is not anchored to the left edge. */
@media (min-width: 901px) {
  .sh-hero__image { min-height: 0; }
  .sh-hero__image img,
  .sh-hero__image .sh-placeholder { object-position: center center; }
}

/* ================================================================
   ULTRA-WIDE — refinements 1600px+
   ================================================================ */

/* Visually center the content block within the left column.
   Symmetric padding + align-items: center give equal whitespace on both
   sides so the hero feels balanced rather than left-anchored at wide viewports. */
@media (min-width: 1600px) {
  .sh-hero__left {
    padding-inline: 32px;
    align-items: center;
  }
  .sh-hero__content {
    width: min(640px, 100%);
  }
  .sh-hero__actions { flex-wrap: nowrap; }
  .sh-hero__image::before {
    background: linear-gradient(to right, #ffffff 0%, rgba(255,255,255,0.05) 3%, transparent 8%);
  }
  [dir="rtl"] .sh-hero__image::before {
    background: linear-gradient(to left, #ffffff 0%, rgba(255,255,255,0.05) 3%, transparent 8%);
  }
}

/* ================================================================
   ACCESSIBILITY
   ================================================================ */
.samaan-home a:focus-visible,
.samaan-home button:focus-visible,
.samaan-home summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.sh-lang-btn:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .samaan-home *,
  .samaan-home *::before,
  .samaan-home *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ================================================================
   LEGAL PAGES
   ================================================================ */
.sh-legal {
  padding-block: 72px 96px;
  background: var(--cream);
  min-height: 50vh;
}
.sh-legal__article {
  max-width: 820px;
  margin-inline: auto;
  background: var(--white);
  border: 1px solid var(--border);
  box-shadow: var(--sh-sm);
  padding: 48px 56px;
}
.sh-legal__title {
  font-family: var(--font-h);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  color: var(--text-h);
  margin: 0 0 28px;
  line-height: 1.25;
}
.sh-legal__content {
  color: var(--text-b);
  font-size: 1rem;
  line-height: 1.75;
}
.sh-legal__content h2,
.sh-legal__content h3 {
  font-family: var(--font-h);
  color: var(--text-h);
  margin: 2em 0 .75em;
  line-height: 1.3;
}
.sh-legal__content h2 { font-size: 1.35rem; }
.sh-legal__content h3 { font-size: 1.1rem; }
.sh-legal__content p,
.sh-legal__content ul,
.sh-legal__content ol {
  margin: 0 0 1em;
}
.sh-legal__content ul,
.sh-legal__content ol {
  padding-inline-start: 1.25em;
}
.sh-legal__content a {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.sh-legal__content a:hover {
  color: var(--accent-dk);
}
@media (max-width: 640px) {
  .sh-legal__article { padding: 32px 24px; }
}

/* ================================================================
   PRACTICE INTERIOR PAGES
   ================================================================ */
.sh-page {
  background: var(--cream);
}
.sh-page-hero {
  padding: 56px 0 48px;
  background: var(--white);
  border-bottom: 1px solid var(--border);
}
.sh-page-hero--compact {
  padding-bottom: 40px;
}
.sh-page-hero__title {
  font-family: var(--font-h);
  font-size: clamp(1.9rem, 3.5vw, 2.75rem);
  color: var(--text-h);
  margin: 12px 0 16px;
  line-height: 1.2;
  max-width: 18ch;
}
.sh-page-hero__text {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--text-b);
  margin: 0;
  max-width: 62ch;
}
.sh-page-hero__link {
  display: inline-block;
  margin-top: 20px;
  font-size: .95rem;
  font-weight: 600;
  color: var(--primary);
  text-decoration: none;
}
.sh-page-hero__link:hover {
  color: var(--accent-dk);
}
.sh-page-section {
  padding-block: 72px;
}
.sh-page-section--tight-top {
  padding-top: 48px;
}
.sh-page-details {
  padding-block: 0 80px;
  background: var(--cream);
}
.sh-page-detail {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px 28px;
  align-items: start;
  padding: 32px 0;
  border-bottom: 1px solid var(--border);
  scroll-margin-top: 96px;
}
.sh-page-detail:last-of-type {
  border-bottom: none;
}
.sh-page-detail__icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--primary);
}
.sh-page-detail__body h2 {
  font-family: var(--font-h);
  font-size: 1.35rem;
  color: var(--text-h);
  margin: 0 0 10px;
  line-height: 1.3;
}
.sh-page-detail__body p {
  margin: 0;
  color: var(--text-b);
  line-height: 1.75;
  max-width: 68ch;
}
.sh-page-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
}
.sh-practice .sh-practice__card h2 {
  font-family: var(--font-h);
  font-size: 1.1rem;
  color: var(--text-h);
  margin: 0 0 8px;
  line-height: 1.35;
}
@media (max-width: 640px) {
  .sh-page-detail {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .sh-page-cta .sh-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ================================================================
   SERVICE PAGES
   ================================================================ */
.sh-service {
  background: var(--cream);
}
.sh-service-hero {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 32px 0 56px;
}
.sh-service-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  color: var(--text-m);
  margin-bottom: 28px;
}
.sh-service-breadcrumb a {
  color: var(--text-m);
  text-decoration: none;
}
.sh-service-breadcrumb a:hover {
  color: var(--primary);
}
.sh-service-breadcrumb [aria-current="page"] {
  color: var(--text-h);
  font-weight: 500;
}
.sh-service-hero__inner {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.sh-service-hero__icon {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 14px;
  color: var(--primary);
}
.sh-service-hero__title {
  font-family: var(--font-h);
  font-size: clamp(2rem, 3.8vw, 2.85rem);
  color: var(--text-h);
  margin: 10px 0 14px;
  line-height: 1.15;
  max-width: 20ch;
}
.sh-service-hero__intro {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--text-b);
  max-width: 62ch;
}
.sh-service-body {
  padding-block: 64px;
}
.sh-service-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 40px;
  align-items: start;
}
.sh-service-panel {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
  padding: 36px 40px;
  margin-bottom: 24px;
}
.sh-service-panel:last-child {
  margin-bottom: 0;
}
.sh-service-panel h2 {
  font-family: var(--font-h);
  font-size: 1.35rem;
  color: var(--text-h);
  margin: 0 0 20px;
  line-height: 1.3;
}
.sh-service-panel--accent {
  background: linear-gradient(135deg, var(--white) 0%, #faf8f3 100%);
  border-color: rgba(193, 154, 54, .22);
}
.sh-service-checklist {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sh-service-checklist li {
  position: relative;
  padding-inline-start: 1.5em;
  margin-bottom: 12px;
  color: var(--text-b);
  line-height: 1.65;
}
.sh-service-checklist li::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: .55em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
}
.sh-service-checklist li:last-child {
  margin-bottom: 0;
}
.sh-service-highlights {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 14px;
}
.sh-service-highlights li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--text-b);
  line-height: 1.6;
}
.sh-service-highlights svg {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--accent);
}
.sh-service-aside {
  position: sticky;
  top: calc(var(--sh-header-offset) + 16px);
  display: grid;
  gap: 20px;
}
.sh-service-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
  padding: 28px;
}
.sh-service-card--muted {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}
.sh-service-card h3 {
  font-family: var(--font-h);
  font-size: 1.1rem;
  margin: 0 0 10px;
  line-height: 1.35;
}
.sh-service-card p {
  margin: 0 0 18px;
  font-size: .92rem;
  line-height: 1.65;
  color: var(--text-m);
}
.sh-service-card--muted p,
.sh-service-card--muted a {
  color: rgba(255, 255, 255, .82);
}
.sh-service-card--muted a:hover {
  color: var(--white);
}
.sh-service-contact {
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}
.sh-service-contact li {
  margin-bottom: 8px;
}
.sh-service-contact a {
  color: rgba(255, 255, 255, .9);
  text-decoration: none;
  font-size: .92rem;
}
.sh-service-office {
  margin-bottom: 12px;
  font-size: .88rem;
  line-height: 1.55;
}
.sh-service-office strong {
  display: block;
  color: var(--white);
  font-weight: 600;
}
.sh-service-office span {
  color: rgba(255, 255, 255, .75);
}
.sh-service-hours {
  margin: 14px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, .15);
  font-size: .82rem;
  color: rgba(255, 255, 255, .7);
  line-height: 1.5;
}
.sh-service-related {
  padding-block: 72px 80px;
  background: var(--white);
  border-top: 1px solid var(--border);
}
.sh-service-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.sh-service-related__card {
  display: flex;
  flex-direction: column;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 28px;
  text-decoration: none;
  color: inherit;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.sh-service-related__card:hover {
  border-color: var(--accent);
  box-shadow: var(--sh-md);
  transform: translateY(-3px);
}
.sh-service-related__icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--primary);
  margin-bottom: 16px;
}
.sh-service-related__card h3 {
  font-family: var(--font-h);
  font-size: 1.05rem;
  color: var(--text-h);
  margin: 0 0 8px;
  line-height: 1.35;
}
.sh-service-related__card p {
  margin: 0 0 16px;
  font-size: .9rem;
  color: var(--text-m);
  line-height: 1.6;
  flex: 1;
}
.sh-service-related__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--primary);
}
.sh-service-cta {
  background: var(--primary);
  padding-block: 72px;
}
.sh-service-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.sh-service-cta h2 {
  font-family: var(--font-h);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--white);
  margin: 0 0 8px;
  line-height: 1.25;
}
.sh-service-cta p {
  margin: 0;
  color: rgba(255, 255, 255, .7);
  font-size: 1rem;
}
.sh-service-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  flex-shrink: 0;
}
@media (max-width: 1024px) {
  .sh-service-layout {
    grid-template-columns: 1fr;
  }
  .sh-service-aside {
    position: static;
    grid-template-columns: 1fr 1fr;
  }
  .sh-service-related__grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .sh-service-hero__inner {
    flex-direction: column;
  }
  .sh-service-panel {
    padding: 28px 24px;
  }
  .sh-service-aside {
    grid-template-columns: 1fr;
  }
  .sh-service-cta__inner {
    flex-direction: column;
    text-align: center;
  }
  .sh-service-cta__actions {
    width: 100%;
    justify-content: center;
  }
  .sh-service-cta__actions .sh-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ================================================================
   BLOG — archive + single post
   ================================================================ */
.sh-blog {
  background: var(--cream);
}

.sh-blog-hero {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 28px 0 56px;
}

.sh-blog-hero--single {
  padding-bottom: 40px;
}

.sh-blog-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  color: var(--text-m);
  margin-bottom: 28px;
}

.sh-blog-breadcrumb a {
  color: var(--text-m);
  text-decoration: none;
}

.sh-blog-breadcrumb a:hover {
  color: var(--primary);
}

.sh-blog-breadcrumb [aria-current="page"] {
  color: var(--text-h);
  font-weight: 500;
}

.sh-blog-hero .sh-eyebrow {
  display: block;
}

.sh-blog-hero__title {
  font-family: var(--font-h);
  font-size: clamp(2rem, 3.8vw, 2.85rem);
  color: var(--text-h);
  margin: 10px 0 14px;
  line-height: 1.15;
  max-width: 22ch;
}

.sh-blog-hero__title--single {
  max-width: 28ch;
}

.sh-blog-hero__intro {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--text-b);
  max-width: 62ch;
}

.sh-blog-list {
  padding-block: 64px 96px;
}

.sh-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.sh-blog-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  transition: border-color .2s, box-shadow .2s, transform .2s;
}

.sh-blog-card:hover {
  border-color: var(--accent-line);
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}

.sh-blog-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.sh-blog-card__media {
  aspect-ratio: 16/10;
  background: var(--light);
  overflow: hidden;
}

.sh-blog-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.sh-blog-card:hover .sh-blog-card__media img {
  transform: scale(1.03);
}

.sh-blog-card__placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--light) 0%, var(--cream) 100%);
}

.sh-blog-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 24px;
}

.sh-blog-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-size: .78rem;
  color: var(--text-m);
}

.sh-blog-card__category {
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--accent);
}

.sh-blog-card__title {
  font-family: var(--font-h);
  font-size: 1.15rem;
  color: var(--text-h);
  margin: 0 0 10px;
  line-height: 1.35;
}

.sh-blog-card__excerpt {
  margin: 0 0 18px;
  color: var(--text-m);
  line-height: 1.65;
  font-size: .95rem;
  flex: 1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

.sh-blog-card__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--primary);
  font-weight: 600;
  font-size: .92rem;
  margin-top: auto;
}

.sh-blog-card:hover .sh-blog-card__more {
  color: var(--accent);
  gap: 12px;
}

.sh-blog-empty {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 56px 32px;
  text-align: center;
  color: var(--text-m);
}

.sh-blog-pagination {
  margin-top: 48px;
}

.sh-blog-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  margin: 0 4px;
  border: 1px solid var(--border);
  border-radius: var(--r);
  color: var(--text-b);
  text-decoration: none;
  background: var(--white);
}

.sh-blog-pagination .page-numbers.current,
.sh-blog-pagination .page-numbers:hover {
  border-color: var(--primary);
  color: var(--primary);
}

/* ================================================================
   BLOG — single post (detail page)
   ================================================================ */
.sh-post {
  background: var(--cream);
}

.sh-post-hero {
  background: linear-gradient(180deg, var(--white) 0%, var(--cream) 100%);
  border-bottom: 1px solid var(--border);
  padding: 28px 0 48px;
}

.sh-post-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  color: var(--text-m);
  margin-bottom: 32px;
}

.sh-post-breadcrumb a {
  color: var(--text-m);
  text-decoration: none;
}

.sh-post-breadcrumb a:hover {
  color: var(--primary);
}

.sh-post-breadcrumb [aria-current="page"] {
  color: var(--text-h);
  font-weight: 500;
}

.sh-post-hero__content .sh-eyebrow {
  display: block;
}

.sh-post-hero__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 12px 0 18px;
  font-size: .82rem;
  color: var(--text-m);
}

.sh-post-hero__category {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--accent-lite);
  border: 1px solid var(--accent-line);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--accent-dk);
  font-size: .72rem;
  line-height: 1.35;
  white-space: normal;
  text-align: start;
  max-width: 100%;
}

.sh-post-hero__title {
  font-family: var(--font-h);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--text-h);
  line-height: 1.18;
  margin: 0 0 18px;
  max-width: none;
}

.sh-post-hero__lead {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.75;
  color: var(--text-m);
  max-width: 68ch;
}

.sh-post-featured {
  margin-top: -8px;
  padding-bottom: 0;
}

.sh-post-featured__frame {
  margin: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  aspect-ratio: 21/9;
  box-shadow: var(--sh-lg);
  border: 1px solid rgba(193, 154, 54, .18);
  background: var(--light);
}

.sh-post-featured__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sh-post-body {
  padding-block: 40px 72px;
}

.sh-post-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px;
  align-items: start;
}

.sh-post-main {
  position: relative;
  z-index: 1;
}

.sh-post--has-image .sh-post-main {
  margin-top: -32px;
}

.sh-post-content {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: clamp(32px, 4vw, 52px) clamp(28px, 4vw, 56px);
  box-shadow: var(--sh-md);
}

.sh-post-content::before {
  content: '';
  display: block;
  width: 56px;
  height: 3px;
  background: var(--accent);
  border-radius: 2px;
  margin-bottom: 28px;
}

.sh-post-content > *:first-child {
  margin-top: 0;
}

.sh-post-content p {
  color: var(--text-b);
  line-height: 1.82;
  margin-bottom: 1.25em;
  font-size: 1.05rem;
}

.sh-post-content p:first-of-type {
  font-size: 1.12rem;
  color: var(--text-h);
}

.sh-post-content h2,
.sh-post-content h3 {
  font-family: var(--font-h);
  color: var(--text-h);
  line-height: 1.3;
}

.sh-post-content h2 {
  font-size: 1.45rem;
  margin: 2em 0 .65em;
}

.sh-post-content h3 {
  font-size: 1.2rem;
  margin: 1.6em 0 .5em;
}

.sh-post-content ul,
.sh-post-content ol {
  margin: 0 0 1.25em;
  padding-inline-start: 1.4em;
  color: var(--text-b);
  line-height: 1.75;
}

.sh-post-content li + li {
  margin-top: .45em;
}

.sh-post-content a {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sh-post-content a:hover {
  color: var(--accent);
}

.sh-post-footer {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}

.sh-post-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
  transition: color .15s, gap .15s;
}

.sh-post-back:hover {
  color: var(--accent);
  gap: 12px;
}

.sh-post-aside {
  position: sticky;
  top: calc(var(--sh-header-offset) + 24px);
}

.sh-post-aside__card {
  background: var(--primary);
  color: var(--white);
  border-radius: var(--r-lg);
  padding: 28px 24px;
  box-shadow: var(--sh-lg);
}

.sh-post-aside__author {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.sh-post-aside__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  background: rgba(255, 255, 255, .1);
  border: 2px solid var(--accent);
  flex-shrink: 0;
}

.sh-post-aside__avatar img,
.sh-post-aside__avatar .sh-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sh-post-aside__author strong {
  display: block;
  font-size: .98rem;
  line-height: 1.3;
}

.sh-post-aside__author span {
  display: block;
  font-size: .78rem;
  color: rgba(255, 255, 255, .68);
  margin-top: 2px;
}

.sh-post-aside__facts {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  gap: 14px;
}

.sh-post-aside__facts li {
  padding: 12px 14px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: var(--r);
}

.sh-post-aside__facts span {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 4px;
}

.sh-post-aside__facts strong {
  display: block;
  font-size: .88rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .9);
  font-weight: 500;
  overflow-wrap: anywhere;
}

.sh-post-aside .sh-btn--accent {
  width: 100%;
  justify-content: center;
  padding: 14px 18px;
  font-size: .76rem;
  letter-spacing: .04em;
  min-height: 52px;
}

.sh-post-related {
  padding-block: 0 72px;
}

.sh-post-related__header {
  text-align: center;
  max-width: 560px;
  margin: 0 auto 40px;
}

.sh-post-related__header .sh-eyebrow {
  display: block;
}

.sh-post-related__header h2 {
  font-family: var(--font-h);
  font-size: clamp(1.45rem, 2.5vw, 1.85rem);
  color: var(--text-h);
  margin: 10px 0 0;
}

.sh-blog-grid--related {
  grid-template-columns: repeat(2, 1fr);
  max-width: 920px;
  margin-inline: auto;
}

.sh-post-cta {
  padding-block: 0 96px;
}

.sh-post-cta__panel {
  position: relative;
  background: var(--primary);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-lg);
}

.sh-post-cta__glow {
  position: absolute;
  inset-inline-end: -80px;
  top: -80px;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(193, 154, 54, .22) 0%, transparent 70%);
  pointer-events: none;
}

.sh-post-cta__content {
  position: relative;
  text-align: center;
  padding: 56px clamp(24px, 5vw, 72px);
}

.sh-post-cta__content h2 {
  font-family: var(--font-h);
  font-size: clamp(1.45rem, 3vw, 2rem);
  color: var(--white);
  margin: 0 0 14px;
}

.sh-post-cta__content p {
  max-width: 560px;
  margin: 0 auto 32px;
  color: rgba(255, 255, 255, .78);
  line-height: 1.72;
}

.sh-post-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

.sh-post-cta__actions .sh-btn {
  min-width: min(100%, 300px);
  padding: 16px 32px;
  justify-content: center;
}

@media (max-width: 1024px) {
  .sh-blog-grid {
    grid-template-columns: 1fr 1fr;
  }

  .sh-post-layout {
    grid-template-columns: 1fr;
  }

  .sh-post-aside {
    position: static;
  }

  .sh-post-main {
    margin-top: 0;
  }

  .sh-post-featured {
    margin-bottom: 24px;
  }
}

@media (max-width: 640px) {
  .sh-blog-grid {
    grid-template-columns: 1fr;
  }

  .sh-blog-grid--related {
    grid-template-columns: 1fr;
  }

  .sh-blog-hero__title,
  .sh-blog-hero__title--single {
    max-width: none;
  }

  .sh-post-hero__title {
    max-width: none;
  }

  .sh-post-aside .sh-btn--accent {
    font-size: .8rem;
    padding: 16px 20px;
  }

  .sh-post-featured__frame {
    aspect-ratio: 16/10;
  }

  .sh-post-content {
    padding: 28px 24px;
  }

  .sh-post-cta__actions {
    flex-direction: column;
    width: 100%;
  }

  .sh-post-cta__actions .sh-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ================================================================
   CALENDLY POPUP — enlarge + clearer close control
   Defaults: ~80% × 90% (max-height 700px). We bump size slightly.
   ================================================================ */
.calendly-overlay .calendly-popup {
  width: 92% !important;
  height: 94% !important;
  max-width: 1180px !important;
  max-height: min(940px, 94vh) !important;
  min-width: 0 !important;
}

@media (max-width: 975px) {
  .calendly-overlay .calendly-popup {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    top: 44px !important;
  }
}

.calendly-overlay .calendly-popup-close {
  width: 44px !important;
  height: 44px !important;
  right: 18px !important;
  top: 18px !important;
  background-color: #1a1a1a !important;
  background-size: 18px 18px !important;
  background-position: center !important;
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
  transition: transform 0.15s ease, background-color 0.15s ease;
  z-index: 10;
}

.calendly-overlay .calendly-popup-close:hover,
.calendly-overlay .calendly-popup-close:focus {
  background-color: var(--accent, #c4a35a) !important;
  transform: scale(1.06);
}

@media (max-width: 975px) {
  .calendly-overlay .calendly-popup-close {
    right: 12px !important;
    top: 10px !important;
    width: 40px !important;
    height: 40px !important;
  }
}
