/* CMS driven presentation tokens and approved public-site footer/hero details. */
:root {
  --color-primary: #071827;
  --color-secondary: #0B2238;
  --color-accent: #52799A;
  --color-page: #F4F6F8;
  --color-surface: #FFFFFF;
  --color-border: #d5dfe7;
  --section-dark: #0B2238;
  --section-alt: #EAF0F5;
  --button-bg: #1462AD;
  --button-hover: #1B70C1;
  --link-color: #52799A;
  --link-hover: #1462AD;
  --color-footer: #f4f1eb;
  --footer-text: #26313a;
  --section-alt: #e5ddd0;
  --section-dark: #202a36;
  --button-bg: #b88a4a;
  --button-hover: #a87531;
  --link-color: #91652e;
  --link-hover: #202a36;
  --font-size-h1: clamp(38px, 5vw, 65px);
  --font-size-h2: clamp(28px, 3vw, 40px);
  --font-size-h3: 20px;
  --weight-heading: 700;
  --weight-body: 400;
  --line-height-body: 1.6;
}

body { font-weight: var(--weight-body); line-height: var(--line-height-body); }
header { background: var(--header-background, #fffdf8f5); color: var(--header-text, var(--color-primary)); font-family: var(--header-font, var(--font-body)); font-size: var(--header-font-size, 13px); }
header.not-sticky { position: relative; }
.nav { min-height: var(--header-height, 78px); }
.nav-links { font-size: inherit; }
.nav-links a:hover, .nav-links .active, .nav-links [aria-current="page"] { color: var(--header-hover, #9b6c2c); }
.nav-cta { background: var(--header-cta, var(--color-primary)); }
h1, h2, h3 { font-weight: var(--weight-heading); }
h1 { font-size: var(--font-size-h1); }
h2 { font-size: var(--font-size-h2); }
h3 { font-size: var(--font-size-h3); }
h1 em { color: var(--color-accent); }
.section.alt { background: var(--section-alt, var(--color-sand)); }
.section.dark { background: var(--section-dark, var(--color-primary)); }
.btn { background: var(--button-bg, var(--color-accent)); border-color: var(--button-bg, var(--color-accent)); color: var(--color-button-text); border-radius: var(--radius-control); }
.btn:hover { background: var(--button-hover, #a87531); border-color: var(--button-hover, #a87531); filter: none; }
.link, .arrow { color: var(--link-color, var(--color-accent)); }
.link:hover, .arrow:hover { color: var(--link-hover, var(--color-primary)); }
.brand-name-light { color: inherit; }
.footer {
  position:relative;
  isolation:isolate;
  background: var(--color-footer, #f4f1eb);
  color: var(--footer-text, #26313a);
  font-family: var(--footer-font, var(--font-body));
  font-size: var(--footer-size, 14px);
  padding-top: var(--footer-space, 46px);
  border-top: 1px solid var(--color-border);
}
.footer-background-image { position:absolute; z-index:-2; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.footer-main.has-footer-background:before { position:absolute; z-index:-1; inset:0; content:""; background:rgba(244,241,235,.3); pointer-events:none; }
/* Footer is split at the thin line: review band above, main footer below, each with its own background. */
.footer.reference-footer { padding-top:0; }
.footer-review-band, .footer-main { position:relative; isolation:isolate; }
.footer-review-band { padding-top:34px; background:linear-gradient(180deg,#e8dcc6 0%,#f3ebdd 100%); }
.footer-review-band .footer-review-strip { margin-bottom:0; border-bottom-color:rgba(120,90,50,.18); }
.footer-review-band .ftr-dots span { background:#cdbb9c; }
.footer-review-band .ftr-dots span.active { background:#c9934a; }
.footer-main { padding-top:24px; }
@media(max-width:650px) { .footer-review-band { padding-top:25px; } }
.footer>.container { position:relative; z-index:1; }
.footer h3 { color: var(--footer-heading, #202a36); font-family: var(--footer-font, var(--font-body)); }
.footer p, .footer a { color: var(--footer-text, #26313a); font-size: var(--footer-size, 14px); }
.footer a:hover { color: var(--color-accent); }
.footer-tagline { white-space: pre-line; }
.footer-social { display: flex; flex-wrap: wrap; gap: 10px; }
.footer-bottom { border-color: var(--color-border); color: var(--footer-text, #26313a); }
.cms-added-section .btn { margin-top: 12px; }
.cms-faq { padding: 18px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-card); }
.cms-faq summary { font-weight: 700; cursor: pointer; }
.cms-content-box { display: flow-root; min-width: 0; overflow: visible; }
.cms-content-box img, .cms-rich-content img { display: block; width: auto; max-width: 100%; height: auto; object-fit: contain; margin: 18px 0; }
.cms-rich-content { max-width: 100%; overflow-wrap: anywhere; }
.cms-rich-content h2, .cms-rich-content h3, .cms-rich-content h4 { margin: 24px 0 10px; }
.cms-rich-content p, .cms-rich-content li { max-width: 100%; overflow-wrap: anywhere; }
.cms-preview-notice { position: fixed; z-index: 9999; bottom: 12px; left: 50%; transform: translateX(-50%); padding: 10px 16px; border-radius: 999px; background: #202a36; color: #fff; font: 600 13px Arial, sans-serif; box-shadow: 0 6px 24px #0003; }
.topbar { display:block; padding:13px 0; background:#03101b; color:#79a9d0; font-size:15px; letter-spacing:.025em; }
.topbar .container { justify-content:flex-start; width:min(1450px,calc(100% - 96px)); }
header { background:var(--header-background,#111820e8); border:0; border-bottom:1px solid #52799a55; }
header .container { width:min(1450px,calc(100% - 96px)); }
.nav { position:relative; min-height:116px; gap:18px; padding:10px 16px; }
.brand img.brand-logo { max-width:250px; max-height:82px; }
.nav-links { gap:10px; font-size:15px; font-weight:600; }
.nav-links a { display:inline-flex; align-items:center; gap:8px; min-height:60px; padding:0 14px; border:1px solid #8c9aa655; border-radius:12px; color:#f1f4f7; white-space:nowrap; }
.nav-links a::before { font-size:18px; line-height:1; color:#dce4eb; }
.nav-links a:nth-child(1)::before { content:"⌂"; }
.nav-links a:nth-child(2)::before { content:"●"; font-size:13px; }
.nav-links a:nth-child(3)::before { content:"★"; }
.nav-links a:nth-child(4)::before { content:"▱"; }
.nav-links a:nth-child(5)::before { content:"●"; font-size:13px; }
.nav-links a:nth-child(6)::before { content:"▤"; }
.nav-links a:nth-child(7)::before { content:"✉"; }
.nav-links a:hover { border-color:#52799a; background:#52799a22; color:#fff; }
.nav-links a.active,.nav-links a[aria-current="page"] { border-color:#397eb9; background:#1462ad; color:#fff; }
.nav-links a.active::before,.nav-links a[aria-current="page"]::before { color:#fff; }
.nav-cta { padding:16px 22px; border-radius:12px; background:#1462ad; border-color:#1462ad; color:#fff; font-size:16px; white-space:nowrap; }
.nav-cta:hover,.actions .btn:first-child:hover { background:#1b70c1; border-color:#1b70c1; }
.meta,.note,.crumb { color:#80a9c6; }
.stat-icon,.feature .icon { background:#52799a22; color:#80a9c6; border-color:#52799a; }
.trust-grid b,.checks li:before,.stars { color:#80a9c6; }
@media (max-width:1200px) {
  .topbar .container,header .container { width:calc(100% - 48px); }
  .brand img.brand-logo { max-width:205px; }
  .nav-links { gap:6px; font-size:13px; }
  .nav-links a { gap:6px; padding:0 9px; }
  .nav-cta { padding-inline:15px; font-size:14px; }
}
@media (max-width:1050px) {
  .nav { min-height:82px; }
  .menu-toggle { display:block; border-color:#52799a; color:#fff; }
  .nav-links { display:none; position:absolute; z-index:25; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; padding:14px; border:1px solid #52799a66; border-radius:12px; background:#101820f5; box-shadow:0 16px 35px #0006; }
  .nav-links.open { display:flex; }
  .nav-links a { min-height:46px; }
  .nav-cta { display:none; }
}
@media (max-width:700px) {
  .topbar { padding:9px 0; font-size:11px; }
  .topbar .container,header .container { width:calc(100% - 32px); }
  .nav { min-height:72px; padding:7px 10px; }
  .brand img.brand-logo { max-width:min(205px,58vw); max-height:62px; }
  .nav-links { top:100%; left:0; right:0; }
}
.hero-copy .eyebrow:after { content: none !important; }
.hero-slide .section-bg-image { opacity: .82; transform: scale(1); transition: opacity 1.2s ease, transform 5s ease; }
.hero-slide.is-active .section-bg-image { opacity: 1; transform: scale(1.08); }
.hero-slide.is-active .hero-copy { animation: cms-hero-zoom .55s ease-out both; }
@keyframes cms-hero-zoom { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .hero-slide .section-bg-image { transition: none; transform: none; opacity: 1; }
  .hero-slide.is-active .hero-copy { animation: none; }
}
@media (max-width: 700px) {
  .nav-links { top: var(--header-height, 68px); }
  h1 { font-size: min(var(--font-size-h1), 12vw); }
  h2 { font-size: min(var(--font-size-h2), 8.2vw); }
}

/* Approved National Detectives homepage hero. These overrides are scoped to index.html. */
.home-page { --color-primary:#071827; --color-secondary:#0B2238; --color-accent:#52799A; --color-button-text:#fff; }
.home-page .topbar { display:block; padding:13px 0; background:#03101b; color:#79a9d0; font-size:15px; letter-spacing:.025em; }
.home-page .topbar .container { justify-content:flex-start; }
.home-page header { background:var(--header-background,#111820e8); border:0; border-bottom:1px solid #52799a55; }
.home-page .topbar .container,
.home-page header .container,
.home-page .hero .container { width:min(1450px,calc(100% - 96px)); }
.home-page .nav { min-height:116px; gap:18px; padding:10px 16px; }
.home-page .brand img.brand-logo { max-width:250px; max-height:82px; }
.home-page .nav-links { gap:10px; font-size:15px; font-weight:600; }
.home-page .nav-links a { display:inline-flex; align-items:center; gap:8px; min-height:60px; padding:0 14px; border:1px solid #8c9aa655; border-radius:12px; color:#f1f4f7; white-space:nowrap; }
.home-page .nav-links a::before { font-size:18px; line-height:1; color:#dce4eb; }
.home-page .nav-links a:nth-child(1)::before { content:"⌂"; }
.home-page .nav-links a:nth-child(2)::before { content:"●"; font-size:13px; }
.home-page .nav-links a:nth-child(3)::before { content:"★"; }
.home-page .nav-links a:nth-child(4)::before { content:"▱"; }
.home-page .nav-links a:nth-child(5)::before { content:"●"; font-size:13px; }
.home-page .nav-links a:nth-child(6)::before { content:"▤"; }
.home-page .nav-links a:nth-child(7)::before { content:"✉"; }
.home-page .nav-links a:hover { border-color:#52799a; background:#52799a22; color:#fff; }
.home-page .nav-links a.active,
.home-page .nav-links a[aria-current="page"] { border-color:#397eb9; background:#1462ad; color:#fff; }
.home-page .nav-links a.active::before,
.home-page .nav-links a[aria-current="page"]::before { color:#fff; }
.home-page .nav-cta { padding:16px 22px; border-radius:12px; background:#1462ad; border-color:#1462ad; color:#fff; font-size:16px; white-space:nowrap; }
.home-page .nav-cta:hover,
.home-page .actions .btn:first-child:hover { background:#1b70c1; border-color:#1b70c1; }
.home-page .hero { min-height:726px; background:#071827; }
.home-page .hero-slide::before { background:linear-gradient(90deg,#07121de0 0%,#071827a8 48%,#07182719 100%); }
.home-page .hero-slide .section-bg-image { opacity:1; object-position:center center; }
.home-page .hero-slide:not(.is-active) .section-bg-image { filter:brightness(.78); }
.home-page .hero-slide.is-active .section-bg-image { filter:brightness(1); }
.home-page .hero-slide.is-leaving .section-bg-image { filter:brightness(.75); }
.home-page .hero .container { min-height:726px; padding:70px 0; }
.home-page .hero-copy { max-width:1000px; }
.home-page .hero-copy .eyebrow { color:#80b4dc; font-size:15px; letter-spacing:.17em; }
.home-page .hero h1 { max-width:1000px; color:#fff; font-size:clamp(50px,5vw,76px); line-height:1.06; }
.home-page .hero h1 em { color:#fff; }
.home-page .hero p { max-width:850px; color:#f1f4f7; font-size:21px; line-height:1.55; }
.home-page .hero .actions { gap:18px; margin-top:26px; }
.home-page .hero .actions .btn { min-height:70px; padding:17px 30px; border-radius:11px; background:#1462ad; border-color:#1462ad; color:#fff; font-size:19px; }
.home-page .hero .actions .btn.outline { background:#071827cc; border-color:#52799a; color:#fff; }
.home-page .hero .actions .btn.outline:hover { background:#52799a33; }
.home-page .hero .eyebrow:after { content:none; }
.home-page .hero-slide.is-active .hero-copy { animation:cms-hero-zoom .55s ease-out both; }
@media (max-width:1200px) {
  .home-page .topbar .container,.home-page header .container,.home-page .hero .container { width:calc(100% - 48px); }
  .home-page .brand img.brand-logo { max-width:205px; }
  .home-page .nav-links { gap:6px; font-size:13px; }
  .home-page .nav-links a { gap:6px; padding:0 9px; }
  .home-page .nav-cta { padding-inline:15px; font-size:14px; }
}
@media (max-width:1050px) {
  .home-page .nav { min-height:82px; }
  .home-page .menu-toggle { display:block; border-color:#52799a; color:#fff; }
  .home-page .nav-links { display:none; position:absolute; z-index:25; top:100%; left:24px; right:24px; flex-direction:column; align-items:stretch; padding:14px; border:1px solid #52799a66; border-radius:12px; background:#101820f5; box-shadow:0 16px 35px #0006; }
  .home-page .nav-links.open { display:flex; }
  .home-page .nav-links a { min-height:46px; }
  .home-page .nav-cta { display:none; }
  .home-page .hero { min-height:650px; }
  .home-page .hero .container { min-height:650px; }
}
@media (max-width:700px) {
  .home-page .topbar { padding:9px 0; font-size:11px; }
  .home-page .topbar .container,.home-page header .container,.home-page .hero .container { width:calc(100% - 32px); }
  .home-page .nav { min-height:72px; padding:7px 10px; }
  .home-page .brand img.brand-logo { max-width:min(205px,58vw); max-height:62px; }
  .home-page .nav-links { top:100%; left:16px; right:16px; }
  .home-page .hero,.home-page .home-carousel { min-height:680px; }
  .home-page .hero .container { min-height:680px; padding:58px 0; }
  .home-page .hero-slide .section-bg-image { object-position:64% center; }
  .home-page .hero-slide::before { background:linear-gradient(90deg,#07121de8,#071827a8 80%,#07182770); }
  .home-page .hero-copy .eyebrow { font-size:11px; letter-spacing:.12em; }
  .home-page .hero h1 { font-size:clamp(40px,10vw,58px); }
  .home-page .hero p { font-size:16px; }
  .home-page .hero .actions { gap:10px; }
  .home-page .hero .actions .btn { min-height:56px; padding:13px 17px; font-size:15px; }
}
.contact-website-field{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Homepage middle sections; the hero, header, contact CTA and footer remain separate. */
.home-middle-sections { color:#17212b; }
.home-middle-sections h2,.home-middle-sections h3,.home-middle-sections p { overflow-wrap:anywhere; }
.home-middle-sections .container { width:min(1200px,calc(100% - 48px)); }
.home-about-section,.home-services-section,.home-certifications-section,.home-why-section,.home-cities-section,.home-insights-section { padding:42px 0; }
.home-about-section { background:#f7f8f9; }
.home-about-layout { display:grid; grid-template-columns:.95fr 1.05fr; gap:48px; align-items:center; }
.home-section-heading h2 { margin:6px 0 10px; color:#17212b; font-size:clamp(23px,2.3vw,32px); line-height:1.16; }
.home-section-heading>.eyebrow { color:#607384; font-size:10px; letter-spacing:.1em; }
.home-section-heading>p,.home-about-description { margin:0; color:#53606b; font-size:13px; line-height:1.55; }
.home-about-description { max-width:610px; white-space:pre-line; }
.home-about-stats { display:flex; flex-wrap:wrap; gap:20px; margin-top:17px; }
.home-about-stats>div { display:grid; gap:2px; min-width:100px; }
.home-about-stats strong { color:#b88a4a; font-size:20px; line-height:1.15; }
.home-about-stats span { color:#45515d; font-size:11px; line-height:1.3; }
.home-about-visual { position:relative; min-height:210px; overflow:hidden; background:#0c1e2d; }
.home-about-visual:after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,#07182722,#07182705 70%,#07182740); pointer-events:none; }
.home-about-visual img { display:block; width:100%; min-height:210px; max-height:265px; object-fit:cover; }
.home-visual-note { position:absolute; z-index:1; top:12px; right:14px; display:grid; gap:5px; color:#eef1f4; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.home-image-background { position:relative; isolation:isolate; overflow:hidden; }
.home-image-background>.home-section-background { position:absolute; z-index:-2; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.home-image-background:after { position:absolute; z-index:-1; inset:0; content:""; background:var(--home-image-overlay,rgba(255,255,255,.82)); pointer-events:none; }
.home-image-background>.container { position:relative; z-index:1; }
.home-services-section { --home-image-overlay:rgba(255,255,255,0); }
.home-services-heading { margin:0 auto 26px; text-align:center; text-shadow:0 1px 3px rgba(5,14,22,.55),0 2px 18px rgba(5,14,22,.6); }
.home-services-heading>.eyebrow { display:flex; align-items:center; justify-content:center; gap:18px; color:#f2bd57; font:600 15px/1.2 var(--font-body); letter-spacing:.24em; }
.home-services-heading>.eyebrow:before,.home-services-heading>.eyebrow:after { content:""; display:block; flex:0 0 84px; height:1px; margin:0; background:currentColor; transform:none; animation:none; }
.home-services-heading h2 { margin:10px 0 12px; color:#fff; font-family:var(--font-heading); font-size:clamp(34px,4.4vw,62px); font-weight:400; line-height:1.08; }
.home-services-heading h2 em { color:#f2bd57; font-style:italic; }
.home-services-heading>p,.home-services-heading>.home-section-description { max-width:none; margin:0; color:#f3efe8; font-size:clamp(14px,1.3vw,18px); line-height:1.5; }
.home-services-grid { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:4px 2px 10px; }
.home-services-grid::-webkit-scrollbar { display:none; }
.home-service-card { flex:0 0 calc((100% - 32px) / 3); min-width:0; display:flex; flex-direction:column; overflow:hidden; background:#f3f4f5; color:#17212b; text-decoration:none; scroll-snap-align:start; border-radius:8px; }
.home-service-card>img { display:block; width:100%; aspect-ratio:1920/650; object-fit:cover; }
.home-service-copy { position:relative; display:flex; flex:1; flex-direction:column; align-items:flex-start; gap:6px; padding:14px 14px 36px; }
.home-service-copy h3 { margin:0; color:#17212b; font:700 14px/1.3 var(--font-body); }
.home-service-copy p { margin:0; color:#5b6570; font-size:12.5px; line-height:1.45; }
.home-service-copy>span { position:absolute; bottom:10px; left:14px; display:grid; width:24px; height:24px; place-items:center; border-radius:50%; background:#c99950; color:#fff; font-size:14px; }
.home-service-card:hover h3 { color:#a87531; }
.home-section-button { display:none; }
.home-services-slider { position:relative; }
.home-services-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:40px; height:40px; border:1px solid #c9934a66; border-radius:50%; background:rgba(201,147,74,.9); color:#fff; font-size:22px; cursor:pointer; display:grid; place-items:center; transition:background .2s; box-shadow:0 4px 14px rgba(0,0,0,.15); }
.home-services-arrow:hover { background:#b8822e; }
.home-services-prev { left:-20px; }
.home-services-next { right:-20px; }
.home-process-section { --home-image-overlay:linear-gradient(90deg,rgba(5,20,33,.92),rgba(5,20,33,.85)); padding:52px 0 56px; background:#0b2031; color:#fff; }
.home-process-heading { margin-bottom:30px; }
.home-process-heading h2 { color:#fff; font-size:clamp(22px,2.6vw,32px); }
.home-process-heading>.eyebrow { color:#d4a24f; }
.home-process-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.home-process-step { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0; padding:22px 18px; border:1px solid #c9934a55; border-radius:12px; background:rgba(12,28,44,.85); backdrop-filter:blur(4px); transition:border-color .25s,box-shadow .25s; }
.home-process-step:hover { border-color:#c9934a; box-shadow:0 6px 24px rgba(201,147,74,.15); }
.home-process-icon { flex:0 0 auto; display:grid; width:48px; height:48px; place-items:center; border-radius:50%; background:linear-gradient(135deg,#dba752,#c9934a); color:#0e1f2f; font-weight:800; font-size:15px; }
.home-step-number { display:block; color:#d5ad6c; font-size:13px; font-weight:700; letter-spacing:.12em; }
.home-process-step h3 { margin:0; color:#fff; font-size:15px; font-weight:700; line-height:1.35; }
.home-process-step p { margin:0; color:#c8d0d8; font-size:13px; line-height:1.55; }
.home-certifications-section { padding-top:26px; padding-bottom:26px; background:#faf8f4; }
.home-certifications-heading { text-align:center; }
.home-certifications-heading h2 { font-size:clamp(19px,2vw,26px); }
.home-certifications-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; justify-items:center; gap:18px; margin-top:14px; }
.home-certification { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; text-align:left; }
.home-certification img { flex:0 0 auto; width:66px; height:58px; object-fit:contain; }
.home-certification h3 { margin:0; font-size:12px; line-height:1.3; }
.home-certification p { margin:4px 0 0; color:#59636b; font-size:10px; line-height:1.35; }
.home-empty-state { margin:10px 0; color:#78828b; font-size:12px; }
.home-certifications-grid>.home-empty-state { grid-column:1/-1; text-align:center; }
.home-why-section { background: #faf6ef; }
.home-why-layout { display: grid; grid-template-columns: 380px minmax(0, 1fr); align-items: center; gap: 48px; }
.home-why-visual { position: relative; width: 380px; height: 420px; padding: 18px 0 18px 18px; }
.home-why-visual::before { content: ""; position: absolute; top: 0; left: 0; width: 60%; height: 50%; border-top: 3px solid #c9934a; border-left: 3px solid #c9934a; pointer-events: none; z-index: 1; }
.home-why-visual::after { content: ""; position: absolute; bottom: 0; right: 0; width: 60%; height: 50%; border-bottom: 3px solid #c9934a; border-right: 3px solid #c9934a; pointer-events: none; z-index: 1; }
.home-why-visual img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.home-why-content > .home-section-heading { margin-bottom: 20px; }
.home-why-divider { width: 48px; height: 3px; background: #0b2238; margin-bottom: 20px; }
.home-why-grid { display: flex; flex-direction: column; gap: 0; }
.home-why-item { border-bottom: 1px solid rgba(200,180,150,.25); }
.home-why-item:first-child { border-top: 1px solid rgba(200,180,150,.25); }
.home-why-question { display: flex; align-items: center; gap: 14px; width: 100%; padding: 16px 8px; border: 0; background: transparent; cursor: pointer; transition: background .15s ease; text-align: left; font: inherit; }
.home-why-question:hover { background: rgba(201,147,74,.04); }
.home-why-num { flex: 0 0 38px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #0b2238; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 14px; font-weight: 700; }
.home-why-bar { flex: 0 0 2px; width: 2px; height: 28px; background: #c9934a; margin: 0 4px; }
.home-why-title { flex: 1; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(14px, 1.4vw, 16px); font-weight: 600; color: #1a1a1a; line-height: 1.4; }
.home-why-toggle { flex: 0 0 32px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(200,180,150,.35); color: #0b2238; font-size: 20px; font-weight: 300; transition: transform .3s ease, background .2s ease; }
.home-why-item.is-open .home-why-toggle { transform: rotate(45deg); background: rgba(201,147,74,.1); }
.home-why-answer { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.home-why-answer-inner { padding: 0 8px 18px 60px; color: #4f5b66; font-size: 14px; line-height: 1.7; }
/* ---- Cities Section (Premium Dark) ---- */
.home-cities-section { --home-image-overlay:linear-gradient(180deg,rgba(10,24,38,.92) 0%,rgba(10,24,38,.85) 100%); padding:56px 0; background:#0b1e2f; color:#fff; }
.home-cities-heading { margin-bottom:8px; }
.home-cities-heading h2 { color:#fff; font-size:clamp(24px,2.6vw,34px); }
.home-cities-heading>.eyebrow { color:#d4a24f; }
.home-cities-heading p { color:#b0bcc6; }
.home-cities-top { display:grid; grid-template-columns:1fr auto; gap:32px; align-items:start; margin-bottom:32px; }
.home-cities-stats { display:flex; flex-direction:column; gap:16px; }
.home-cities-stat { display:flex; align-items:center; gap:12px; }
.home-cities-stat-icon { flex:0 0 40px; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,#dba752,#c9934a); color:#0e1f2f; }
.home-cities-stat strong { display:block; font-size:18px; font-weight:800; color:#fff; }
.home-cities-stat small { display:block; font-size:12px; color:#a0adb8; }
.home-cities-slider { position:relative; }
.home-cities-track { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:4px 0; }
.home-cities-track::-webkit-scrollbar { display:none; }
.home-city-card { flex:0 0 170px; display:flex; flex-direction:column; min-width:0; border:1px solid #c9934a44; border-radius:12px; overflow:hidden; background:rgba(15,30,48,.7); color:#fff; text-decoration:none; transition:border-color .25s,box-shadow .25s; scroll-snap-align:start; }
.home-city-card:hover { border-color:#c9934a; box-shadow:0 6px 24px rgba(201,147,74,.15); }
.home-city-img { position:relative; width:100%; height:110px; overflow:hidden; }
.home-city-img img { width:100%; height:100%; object-fit:cover; }
.home-city-info { padding:12px; display:flex; flex-direction:column; gap:3px; }
.home-city-pin { display:flex; align-items:center; gap:5px; font-size:13px; font-weight:700; color:#fff; }
.home-city-pin svg { flex:0 0 12px; color:#c9934a; }
.home-city-info small { font-size:11px; color:#8a9aaa; line-height:1.3; }
.home-city-arrow { margin-top:4px; color:#c9934a; font-size:14px; font-weight:700; }
.home-cities-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:36px; height:36px; border:1px solid #c9934a66; border-radius:50%; background:rgba(10,24,38,.85); color:#c9934a; font-size:20px; cursor:pointer; display:grid; place-items:center; transition:background .2s; }
.home-cities-arrow:hover { background:#c9934a; color:#0e1f2f; }
.home-cities-prev { left:-18px; }
.home-cities-next { right:-18px; }
/* ---- Blog + Reviews Section ---- */
.home-insights-section { background:#f8f3ec; padding:48px 0 54px; --home-image-overlay:rgba(249,244,237,.9); }
.home-middle-sections .home-insights-section>.container { width:min(1320px,calc(100% - 48px)); }
.home-insights-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); column-gap:64px; align-items:stretch; }
.home-reviews-panel { position:relative; min-width:0; }
.home-reviews-panel::before { content:""; position:absolute; left:-32px; top:0; bottom:0; width:1px; background:rgba(160,120,70,.22); }
.home-blog-panel { min-width:0; }
.home-insights-grid .home-section-heading { margin:0; }
.home-insights-grid .home-section-heading>.eyebrow { color:#b07a35; font-size:13px; font-weight:600; letter-spacing:.14em; }
.home-insights-grid .home-section-heading>.eyebrow::after { content:""; display:block; width:30px; height:2px; margin-top:9px; background:#c9934a; }
.home-insights-grid .home-section-heading h2 { margin:10px 0 0; color:#111b26; font-size:clamp(28px,2.7vw,40px); line-height:1.12; }
.home-insights-grid .home-section-heading>p,.home-insights-grid .home-section-heading>.home-section-description { margin:14px 0 0; color:#3f4a55; font-size:15px; line-height:1.5; }
.home-blog-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.home-blog-head .home-section-heading p,.home-blog-head .home-section-heading .home-section-description { display:none; }
.home-blog-btn { flex-shrink:0; display:inline-flex; align-items:center; gap:8px; margin-bottom:2px; padding:12px 24px; border:1.5px solid #c9934a; border-radius:6px; background:rgba(255,255,255,.35); color:#4a3115; font-size:15px; font-weight:700; text-decoration:none; white-space:nowrap; transition:background .2s,color .2s; }
.home-blog-btn:hover { background:#c9934a; color:#fff; }
.home-blog-desc { max-width:520px; margin:12px 0 0; color:#3f4a55; font-size:15px; line-height:1.5; }
.home-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:18px; }
.home-blog-item { display:flex; flex-direction:column; min-width:0; border:1px solid rgba(176,122,53,.12); border-radius:8px; overflow:hidden; background:#fdfaf6; color:#17212b; text-decoration:none; box-shadow:0 8px 22px rgba(70,45,15,.07); transition:box-shadow .2s,transform .2s; }
.home-blog-item:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(70,45,15,.12); }
.home-blog-img { width:100%; aspect-ratio:2.1/1; overflow:hidden; background:#e9e1d6; }
.home-blog-img img { display:block; width:100%; height:100%; object-fit:cover; }
.home-blog-copy { flex:1; display:flex; flex-direction:column; padding:0 18px 20px; }
.home-blog-date { position:relative; align-self:flex-start; display:inline-flex; align-items:center; gap:6px; margin:-14px 0 12px; padding:5px 10px; border-radius:4px; background:#f6e4c6; color:#6b4518; font-size:12.5px; font-weight:600; line-height:1.3; }
.home-blog-copy>strong:first-child { margin-top:16px; }
.home-blog-copy strong { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:#111b26; font-size:16.5px; font-weight:700; line-height:1.3; }
.home-blog-copy p { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin:8px 0 0; color:#4f5a64; font-size:14px; line-height:1.45; }
.home-blog-read { display:inline-flex; align-items:center; gap:8px; margin-top:auto; padding-top:16px; color:#7a4f1d; font-size:15px; font-weight:700; }
.home-review-carousel { position:relative; margin-top:24px; padding-right:30px; }
.home-review-window { overflow:hidden; margin:-4px 0 -16px; padding:4px 0 16px; }
.home-review-track { position:relative; display:flex; gap:16px; transition:transform .45s ease; }
.home-review-card { flex:0 0 calc(50% - 8px); min-width:0; display:flex; align-items:flex-start; gap:16px; padding:24px 20px 22px; border:1px solid rgba(176,122,53,.12); border-radius:8px; background:#fffdf9; box-shadow:0 8px 22px rgba(70,45,15,.07); }
.home-review-avatar { flex:0 0 64px; width:64px; height:64px; margin-top:16px; display:grid; justify-items:center; border-radius:50%; overflow:hidden; background:#f0dcc0; }
.home-review-avatar img { width:100%; height:100%; object-fit:cover; }
.home-review-avatar svg { width:74%; height:74%; align-self:end; fill:#1c1f24; }
.home-review-content { flex:1; min-width:0; }
.home-review-qmark { display:block; width:28px; height:22px; margin-bottom:12px; color:#c9934a; }
.home-review-qmark svg { display:block; width:100%; height:100%; fill:currentColor; }
.home-review-text { display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; margin:0; color:#2a2620; font-family:var(--font-heading); font-size:14.5px; line-height:1.55; }
.home-review-rating { margin:14px 0 10px; color:#e9a23b; font-size:19px; line-height:1; letter-spacing:3px; }
.home-review-rating span { color:#e5dccf; }
.home-review-card strong { display:block; color:#111b26; font-size:15.5px; font-weight:700; }
.home-review-card small { display:block; margin-top:4px; color:#55606b; font-size:14px; }
.home-review-arrow { position:absolute; top:50%; z-index:2; width:44px; height:44px; margin-top:-22px; display:grid; place-items:center; padding:0; border:1.5px solid #c9934a; border-radius:50%; background:#fffaf2; color:#8a5a1f; cursor:pointer; box-shadow:0 4px 12px rgba(70,45,15,.1); transition:background .2s,color .2s; }
.home-review-arrow[hidden] { display:none; }
.home-review-arrow:hover { background:#c9934a; color:#fff; }
.home-review-arrow svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.home-review-next { right:-16px; }
.home-review-prev { left:-22px; }
.home-review-dots { display:flex; justify-content:center; gap:8px; margin-top:26px; padding-right:30px; }
.home-review-dots button { width:24px; height:8px; padding:0; border:0; border-radius:8px; background:#d3c7b7; cursor:pointer; transition:width .25s,background .25s; }
.home-review-dots button.active { width:38px; background:#c9934a; }
.home-blog-panel>.link { display:none; }
@media(max-width:1000px) {
  .home-insights-grid { grid-template-columns:1fr; row-gap:44px; }
  .home-reviews-panel { padding-top:36px; border-top:1px solid rgba(160,120,70,.22); }
  .home-reviews-panel::before { display:none; }
}
@media(max-width:700px) {
  .home-middle-sections .home-insights-section>.container { width:calc(100% - 32px); }
  .home-insights-section { padding:34px 0 40px; }
  .home-blog-head { flex-direction:column; align-items:flex-start; gap:16px; }
  .home-blog-grid { grid-template-columns:1fr; }
  .home-review-carousel { padding-right:0; }
  .home-review-dots { padding-right:0; }
  .home-review-arrow { width:38px; height:38px; margin-top:-19px; }
  .home-review-next { right:-12px; }
  .home-review-prev { left:-12px; }
  .home-review-card { gap:14px; padding:22px 22px 22px 18px; }
  .home-review-text { display:block; overflow:visible; }
  .home-review-avatar { flex-basis:60px; width:60px; height:60px; margin-top:0; }
}
@media(max-width:650px) {
  .home-review-card { flex-basis:100%; }
}
@media(max-width:1000px) {
  .home-service-card { flex:0 0 calc((100% - 24px) / 3); }
  .home-cities-top { grid-template-columns:1fr; gap:20px; }
  .home-cities-stats { flex-direction:row; flex-wrap:wrap; gap:12px; }
  .home-process-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:650px) {
  .home-middle-sections .container { width:calc(100% - 32px); }
  .home-about-section,.home-services-section,.home-why-section { padding:28px 0; }
  .home-about-layout,.home-why-layout { grid-template-columns:1fr; gap:17px; }
  .home-about-visual,.home-about-visual img { min-height:170px; max-height:205px; }
  .home-why-visual { width:100%; height:280px; padding:14px 0 14px 14px; }
  .home-why-visual img { min-height:auto; }
  .home-about-stats { gap:12px; }
  .home-services-heading { margin-bottom:18px; }
  .home-services-heading>.eyebrow { gap:10px; font-size:11px; letter-spacing:.16em; }
  .home-services-heading>.eyebrow:before,.home-services-heading>.eyebrow:after { flex-basis:28px; }
  .home-service-card { flex:0 0 calc((100% - 12px) / 2); }
  .home-services-grid { gap:8px; }
  .home-service-copy { padding:8px 8px 25px; }
  .home-service-copy h3 { font-size:10px; }
  .home-service-copy p { font-size:9px; }
  .home-process-section { padding:32px 0; }
  .home-process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .home-process-step { padding:16px 14px; gap:8px; }
  .home-certifications-grid { grid-template-columns:1fr; gap:13px; }
  .home-certification { justify-content:flex-start; }
  .home-why-num { flex:0 0 32px; width:32px; height:32px; font-size:12px; }
  .home-why-question { gap:10px; padding:12px 6px; }
  .home-why-answer-inner { padding:0 6px 14px 48px; font-size:13px; }
  .home-cities-section { padding:32px 0; }
  .home-cities-arrow { display:none; }
  .home-services-arrow { display:none; }
  .home-city-card { flex:0 0 150px; }
  .home-city-img { height:90px; }
}
@media(max-width:380px) {
  .home-why-bar { height:20px; }
  .home-about-stats>div { min-width:75px; }
}

/* Reference matched contact CTA and shared footer. */
.cta-footer-section { padding:0!important; background:#071827!important; overflow:hidden; }
.cta-banner { position:relative; isolation:isolate; display:flex; align-items:center; justify-content:space-between; gap:48px; width:100%; max-width:none; min-height:424px; margin:0; padding:70px clamp(28px,5.4vw,88px); border-radius:0; overflow:hidden; }
.cta-banner::before { content:none; }
.cta-banner::after { position:absolute; inset:0; z-index:1; content:""; background:linear-gradient(90deg,rgba(5,21,37,.97) 0%,rgba(5,21,37,.9) 36%,rgba(5,21,37,.46) 70%,rgba(5,21,37,.32) 100%); pointer-events:none; }
.cta-banner .section-bg-image { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; opacity:1; }
.cta-banner > *:not(.section-bg-image) { position:relative; z-index:2; }
.cta-banner .eyebrow { margin:0 0 12px; color:#dba752; font-size:18px; font-weight:700; letter-spacing:.28em; }
.cta-banner h2 { max-width:690px; margin:0 0 18px; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:clamp(40px,4vw,64px); line-height:1.1; }
.cta-banner .cta-highlight { color:#dba752; }
.cta-banner p { max-width:760px; margin:0; color:#f1f4f7; font-size:clamp(17px,1.7vw,25px); line-height:1.45; }
.cta-banner .btn { flex:0 0 auto; min-width:300px; min-height:70px; padding:20px 28px; border:1px solid #e6b767; border-radius:9px; background:#dfa953; color:#111820; font-size:21px; font-weight:700; text-align:center; box-shadow:0 8px 24px #0003; }
.cta-banner .btn:hover { background:#edbd70; border-color:#edbd70; color:#111820; transform:translateY(-1px); }
.reference-footer { position:relative; padding:34px 0 0; overflow:hidden; background-color:#edf1f5!important; background-image:linear-gradient(135deg,transparent 0 74%,rgba(255,255,255,.48) 74% 82%,transparent 82%),linear-gradient(45deg,rgba(208,216,224,.3) 0 12%,transparent 12% 100%); color:#26313a; }
.reference-footer::before { position:absolute; inset:0; content:""; background:linear-gradient(145deg,transparent 0 19%,rgba(255,255,255,.43) 19% 20%,transparent 20%),linear-gradient(325deg,transparent 0 16%,rgba(255,255,255,.4) 16% 17%,transparent 17%); pointer-events:none; }
.reference-footer > .container, .reference-footer .footer-review-band > .container, .reference-footer .footer-main > .container { position:relative; z-index:1; width:min(1436px,calc(100% - 10.2vw)); }
.reference-footer .footer-grid { display:grid; grid-template-columns:1.18fr .78fr 1.22fr .82fr; gap:0; padding:0 0 24px; }
.reference-footer .footer-grid>div { min-width:0; padding:0 30px 0 36px; }
.reference-footer .footer-grid>div:first-child { padding-left:0; }
.reference-footer .footer-grid>div+div { border-left:1px solid #aeb8c2; }
.reference-footer .brand img.brand-logo { display:block; width:250px; max-width:100%; max-height:82px; object-fit:contain; object-position:left center; }
.reference-footer .footer-tagline { margin:12px 0 18px; color:#111820; font-size:18px; font-weight:600; line-height:1.45; white-space:normal; }
.reference-footer .footer-tagline strong { display:block; font-size:18px; }
.reference-footer .footer-grid h3 { position:relative; margin:0 0 13px; padding:0 0 9px; color:#111820; font-size:21px; line-height:1.2; }
.reference-footer .footer-grid h3::after { position:absolute; bottom:0; left:0; width:43px; height:3px; content:""; background:#d4a24f; }
.reference-footer .footer-links { display:grid; gap:5px; }
.reference-footer .footer-links a { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#111820; font-size:17px; font-weight:600; line-height:1.3; text-decoration:none; }
.reference-footer .footer-links a span { color:#4d5864; font-size:23px; line-height:.8; }
.reference-footer .footer-links a:hover { color:#a97932; }
.reference-footer .footer-social { display:flex; gap:18px; margin-top:20px; }
.reference-footer .footer-social-link { display:grid; width:40px; height:40px; place-items:center; border-radius:50%; background:#071827; color:#fff; font-size:19px; font-weight:700; line-height:1; text-decoration:none; }
.reference-footer .footer-social-link svg { display:block; width:22px; height:22px; }
.reference-footer .footer-social-link:hover { background:#d4a24f; color:#071827; }
.reference-footer .footer-social-link.is-unconfigured { cursor:pointer; }
.reference-footer .footer-bottom { display:flex; justify-content:space-between; gap:24px; min-height:0; padding:13px 0; border-top:1px solid #9ba7b2; color:#111820; font-size:15px; font-weight:600; }
.reference-footer .footer-bottom span+span { padding-left:34px; border-left:1px solid #9ba7b2; }
@media(max-width:1050px) {
  .cta-banner { min-height:390px; }
  .cta-banner .btn { min-width:230px; }
  .reference-footer .footer-grid { grid-template-columns:1fr 1fr; row-gap:24px; }
  .reference-footer .footer-grid>div:nth-child(3) { border-left:0; padding-left:0; }
}
@media(max-width:650px) {
  .cta-banner { min-height:490px; flex-direction:column; align-items:flex-start; justify-content:center; gap:28px; padding:54px 24px; }
  .cta-banner::after { background:linear-gradient(90deg,rgba(5,21,37,.94),rgba(5,21,37,.72)); }
  .cta-banner .eyebrow { font-size:13px; letter-spacing:.2em; }
  .cta-banner h2 { font-size:clamp(37px,10vw,50px); }
  .cta-banner p { font-size:17px; }
  .cta-banner .btn { min-width:0; min-height:60px; padding:17px 24px; font-size:18px; }
  .reference-footer { padding-top:25px; }
  .reference-footer>.container, .reference-footer .footer-review-band>.container, .reference-footer .footer-main>.container { width:calc(100% - 40px); }
  .reference-footer .footer-grid { grid-template-columns:1fr 1fr; gap:12px; padding-bottom:16px; }
  .reference-footer .footer-grid>div,.reference-footer .footer-grid>div:first-child,.reference-footer .footer-grid>div:nth-child(3) { padding:0 0 10px; border-left:0; border-bottom:1px solid #aeb8c2; }
  .reference-footer .footer-grid>div:first-child { grid-column:1/-1; }
  .reference-footer .footer-grid>div:nth-child(3) { padding-left:12px; border-left:1px solid #aeb8c2; }
  .reference-footer .footer-grid>div:last-child { grid-column:1/-1; padding:9px 0 0; border:0; border-top:1px solid #aeb8c2; }
  .reference-footer .footer-grid>div:last-child .footer-links { grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:10px; }
  .reference-footer .brand img.brand-logo { width:210px; max-height:68px; }
  .reference-footer .footer-tagline { margin:8px 0 12px; font-size:15px; }
  .reference-footer .footer-tagline strong { font-size:16px; }
  .reference-footer .footer-social { gap:12px; margin-top:12px; }
  .reference-footer .footer-social-link { width:36px; height:36px; }
  .reference-footer .footer-grid h3 { margin-bottom:9px; padding-bottom:7px; font-size:19px; }
  .reference-footer .footer-links { gap:3px; }
  .reference-footer .footer-links a { font-size:13px; line-height:1.25; }
  .reference-footer .footer-bottom { flex-direction:column; gap:7px; padding:10px 0; font-size:12px; }
  .reference-footer .footer-bottom span+span { padding:7px 0 0; border-left:0; border-top:1px solid #c0c8d0; }
}

/* ---- Footer Review Strip ---- */
.footer-review-strip { display:grid; grid-template-columns:1fr auto; gap:24px 48px; align-items:center; padding:28px 0 24px; border-bottom:1px solid rgba(0,0,0,.1); margin-bottom:24px; }
.ftr-heading { font-size:18px; font-weight:700; color:var(--footer-heading,#111820); margin:0 0 14px; }
.ftr-carousel { position:relative; }
.ftr-track { position:relative; min-height:90px; }
.ftr-slide { display:none; flex-direction:column; gap:6px; }
.ftr-slide.ftr-slide-active { display:flex; animation:ftr-in .4s ease; }
@keyframes ftr-in { from{opacity:0;transform:translateY(5px)} to{opacity:1;transform:none} }
.ftr-slide-stars { color:#c9934a; font-size:17px; letter-spacing:2px; }
.ftr-slide-quote { margin:0; font-size:15px; line-height:1.6; color:var(--footer-text,#26313a); font-style:italic; }
.ftr-slide-author { font-size:14px; font-weight:600; font-style:normal; color:var(--footer-heading,#111820); }
.ftr-dots { display:flex; gap:7px; margin-top:10px; }
.ftr-dots span { width:8px; height:8px; border-radius:50%; background:#bbb; cursor:pointer; transition:background .2s; }
.ftr-dots span.active { background:#c9934a; }
.ftr-empty { font-size:15px; color:var(--footer-text,#26313a); opacity:.6; margin:0; }
.ftr-right { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; }
.ftr-invite { margin:0; font-size:14px; color:var(--footer-text,#26313a); line-height:1.6; opacity:.75; }
.ftr-add-btn { padding:12px 26px; background:#c9934a; color:#fff; border:none; border-radius:7px; font-size:15px; font-weight:600; cursor:pointer; transition:background .2s,transform .15s; white-space:nowrap; }
.ftr-add-btn:hover { background:#b07d3a; transform:translateY(-1px); }
/* Review modal */
.rv-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:9999; display:flex; align-items:center; justify-content:center; padding:16px; opacity:0; transition:opacity .25s; }
.rv-modal-overlay.rv-modal-open { opacity:1; }
.rv-modal-box { background:#fff; border-radius:14px; padding:28px 28px 24px; width:100%; max-width:460px; position:relative; box-shadow:0 12px 48px rgba(0,0,0,.18); transform:translateY(10px); transition:transform .25s; }
.rv-modal-overlay.rv-modal-open .rv-modal-box { transform:none; }
.rv-modal-close { position:absolute; top:12px; right:14px; background:none; border:none; font-size:22px; line-height:1; cursor:pointer; color:#5d6b78; }
.rv-modal-close:hover { color:#1d2a36; }
.rv-modal-title { margin:0 0 18px; font-size:17px; font-weight:700; color:#1d2a36; }
.rv-modal-form { display:flex; flex-direction:column; gap:11px; }
.rv-form-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.rv-input { width:100%; padding:9px 11px; border:1px solid #dde2e8; border-radius:7px; font-size:13px; color:#1d2a36; outline:none; box-sizing:border-box; }
.rv-input:focus { border-color:#c9934a; box-shadow:0 0 0 2px rgba(201,147,74,.13); }
.rv-stars-row { display:flex; align-items:center; gap:3px; }
.rv-stars-label { font-size:12.5px; color:#5d6b78; margin-right:4px; }
.rv-star { background:none; border:none; font-size:24px; cursor:pointer; color:#ddd; padding:0 1px; line-height:1; transition:color .1s; }
.rv-star.rv-star-on,.rv-star.rv-star-hover { color:#c9934a; }
.rv-textarea { width:100%; padding:9px 11px; border:1px solid #dde2e8; border-radius:7px; font-size:13px; color:#1d2a36; resize:vertical; outline:none; box-sizing:border-box; font-family:inherit; }
.rv-textarea:focus { border-color:#c9934a; box-shadow:0 0 0 2px rgba(201,147,74,.13); }
.rv-submit-btn { padding:10px 26px; background:#c9934a; color:#fff; border:none; border-radius:7px; font-size:13.5px; font-weight:600; cursor:pointer; transition:background .2s; align-self:flex-start; }
.rv-submit-btn:hover { background:#b07d3a; }
.rv-submit-btn:disabled { opacity:.6; cursor:not-allowed; }
.rv-msg { font-size:12.5px; }
.rv-msg-ok { color:#2a7d4f; }
.rv-msg-err { color:#c0392b; }
@media (max-width:700px) {
  .footer-review-strip { grid-template-columns:1fr; }
  .rv-form-row { grid-template-columns:1fr; }
  .ftr-right { align-items:flex-start; text-align:left; }
}

/* Home Page form: rich text blocks, icon images and flexible step boxes */
.home-rich { white-space: normal; }
.home-rich > :first-child { margin-top: 0; }
.home-rich > :last-child { margin-bottom: 0; }
.home-rich p { margin: 0 0 8px; }
.home-section-description p, .home-about-description p { color: inherit; font-size: inherit; line-height: inherit; }
.home-rich :is(ul, ol) { margin: 0 0 8px; padding-left: 20px; }
.home-rich :is(h2, h3, h4) { margin: 10px 0 6px; line-height: 1.25; }
.home-rich img { max-width: 100%; height: auto; }
.home-rich a { color: inherit; text-decoration: underline; }
.home-section-heading > .home-section-description { color: #53606b; font-size: 13px; line-height: 1.55; }
.home-certifications-heading > .home-section-description { max-width: 720px; margin: 0 auto; color: #b8c4ce; }
.home-process-icon { overflow: hidden; }
.home-process-icon img { width: 100%; height: 100%; object-fit: contain; }
.home-process-icon svg { width: 24px; height: 24px; }
.home-process-step .home-rich { color: #c8d0d8; font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.cta-banner .cta-description { margin-top: 8px; }

/* ---------- Services page (services.html) ---------- */
.services-page .eyebrow { color: #dba752; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
/* Static hero banner */
.services-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 360px; padding: 64px 0; background: #071827; color: #fff; }
.services-hero > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.services-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5, 21, 37, .94) 0%, rgba(5, 21, 37, .8) 38%, rgba(5, 21, 37, .38) 72%, rgba(5, 21, 37, .25) 100%); }
.services-hero-copy { width: min(var(--container-width, 1200px), calc(100% - 40px)); }
.services-hero h1 { max-width: 640px; margin: 10px 0 16px; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(34px, 4.2vw, 56px); font-weight: 700; line-height: 1.12; }
.services-hero p { max-width: 560px; margin: 0; color: #e4e9ee; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.6; }

/* Cream services section with the card grid */
.services-explore { padding: 56px 0 64px; background: #f8f5ef; }
.services-explore-heading { max-width: 720px; margin: 0 auto 34px; text-align: center; }
.services-explore-heading h2 { margin: 8px 0 12px; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(30px, 3.2vw, 42px); line-height: 1.15; }
.services-divider { display: block; width: 64px; height: 3px; margin: 0 auto 16px; border-radius: 3px; background: #c9934a; }
.services-explore-heading p { margin: 0; color: #53606b; font-size: 16px; line-height: 1.6; }
.services-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.service-card { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid #ece4d6; border-radius: 12px; background: #fff; box-shadow: 0 8px 22px rgba(23, 33, 43, .07); transition: box-shadow .2s ease, transform .2s ease; }
.service-card:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(23, 33, 43, .12); }
.service-card-media { display: block; aspect-ratio: 1920 / 650; overflow: hidden; background: #0b2031; }
.service-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.service-card:hover .service-card-media img { transform: scale(1.03); }
.service-card-icon { position: absolute; left: 16px; top: 0; display: grid; place-items: center; width: 46px; height: 46px; margin-top: calc((100% * 8 / 16) - 23px); border: 3px solid #fff; border-radius: 50%; background: #f3dfb8; color: #8a5f25; box-shadow: 0 4px 12px rgba(23, 33, 43, .15); font-size: 18px; font-weight: 700; }
.service-card-icon svg { width: 20px; height: 20px; }
.service-card-body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 30px 18px 18px; }
.service-card-body h3 { margin: 0; font-family: var(--font-body, Arial, Helvetica, sans-serif); font-size: 17px; font-weight: 700; line-height: 1.3; }
.service-card-body h3 a { color: #17212b; text-decoration: none; }
.service-card-body h3 a:hover { color: #9b6c2e; }
.service-card-body p { margin: 0; color: #5d6670; font-size: 14px; line-height: 1.55; }
.service-card-link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; color: #17212b; font-size: 14px; font-weight: 700; text-decoration: none; }
.service-card-link span { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #f3dfb8; color: #8a5f25; font-size: 12px; transition: transform .2s ease; }
.service-card-link:hover { color: #9b6c2e; }
.service-card-link:hover span { transform: translateX(3px); }
.services-empty { grid-column: 1 / -1; margin: 0; padding: 30px; color: #5d6670; text-align: center; }

/* Begin with a conversation CTA */
.services-cta { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 330px; padding: 60px 0; background: #071827; color: #fff; }
.services-cta > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.services-cta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5, 21, 37, .95) 0%, rgba(5, 21, 37, .82) 42%, rgba(5, 21, 37, .45) 75%, rgba(5, 21, 37, .3) 100%); }
.services-cta-copy { width: min(var(--container-width, 1200px), calc(100% - 40px)); }
.services-cta h2 { max-width: 640px; margin: 10px 0 14px; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(32px, 3.6vw, 48px); line-height: 1.12; }
.services-cta p { max-width: 620px; margin: 0 0 26px; color: #dfe5ea; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.6; }
.services-cta-button { display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 14px 26px; border: 1px solid #e6b767; border-radius: 8px; background: #dfa953; color: #111820; font-size: 17px; font-weight: 700; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.services-cta-button:hover { background: #edbd70; color: #111820; transform: translateY(-1px); }

@media (max-width: 1100px) { .services-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px) {
  .services-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .services-hero, .services-cta { min-height: 300px; }
  .services-hero::after, .services-cta::after { background: linear-gradient(90deg, rgba(5, 21, 37, .93), rgba(5, 21, 37, .7)); }
}
@media (max-width: 520px) {
  .services-card-grid { grid-template-columns: 1fr; }
  .services-explore { padding: 40px 0 46px; }
  .services-hero, .services-cta { padding: 48px 0; }
  .services-cta-button { width: 100%; justify-content: center; }
}

/* Services hero slider: only built when the admin switches "Enable Hero Slider" on */
.services-hero.has-slider { display: grid; padding: 0; }
.services-hero.has-slider::after { content: none; }
.services-hero-slide { position: relative; isolation: isolate; grid-area: 1 / 1; display: flex; align-items: center; min-height: 360px; padding: 64px 0 76px; overflow: hidden; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.services-hero-slide.is-active { opacity: 1; visibility: visible; }
.services-hero-slide > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.services-hero-slide::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5, 21, 37, .94) 0%, rgba(5, 21, 37, .8) 38%, rgba(5, 21, 37, .38) 72%, rgba(5, 21, 37, .25) 100%); }
.services-hero-slide h2 { max-width: 640px; margin: 10px 0 16px; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(34px, 4.2vw, 56px); line-height: 1.12; }
.services-hero-text, .services-cta-text { max-width: 600px; color: #e4e9ee; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.6; }
.services-hero-text p, .services-cta-text p { color: inherit; font-size: inherit; line-height: inherit; }
.services-cta-text { margin-bottom: 26px; color: #dfe5ea; }
.services-hero-dots { position: absolute; left: 50%; bottom: 22px; z-index: 3; display: flex; gap: 8px; transform: translateX(-50%); }
.services-hero-dots button { width: 10px; height: 10px; padding: 0; border: 1px solid #ffffffb0; border-radius: 50%; background: transparent; cursor: pointer; }
.services-hero-dots button[aria-current="true"] { border-color: #dfa953; background: #dfa953; }
@media (prefers-reduced-motion: reduce) { .services-hero-slide { transition: none; } }

/* ---------- Individual service page template (service-detail.html) ---------- */
.service-page .sd-divider { display: block; width: 52px; height: 2px; margin: 14px 0 18px; border-radius: 2px; background: #c9934a; }
/* 1. Hero: the banner image stays clear; a light shade sits only behind the text on the left. */
.sd-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 300px; padding: 34px 0 40px; background: #0b2031; color: #fff; }
.sd-hero-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.sd-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7, 24, 39, .8) 0%, rgba(7, 24, 39, .55) 30%, rgba(7, 24, 39, 0) 56%); pointer-events: none; }
.sd-hero-copy { width: min(var(--container-width, 1200px), calc(100% - 40px)); }
.sd-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 22px; color: #e6ebef; font-size: 13px; }
.sd-crumbs a { color: #fff; text-decoration: none; }
.sd-crumbs a:first-child { padding-bottom: 2px; border-bottom: 2px solid #c9934a; }
.sd-crumbs a:hover { color: #f0c27a; }
.sd-hero h1 { max-width: 520px; margin: 0; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(32px, 3.8vw, 48px); font-weight: 700; line-height: 1.12; }
.sd-hero p { max-width: 460px; margin: 0; color: #f1f4f7; font-size: clamp(15px, 1.3vw, 17px); line-height: 1.6; }

/* 2. Main content + side image */
.sd-main { padding: 34px 0 44px; background: #fbf8f2; }
.sd-main-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: start; gap: 44px; }
.sd-content h2 { margin: 0; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(26px, 2.6vw, 34px); line-height: 1.18; }
.sd-rich { color: #3c4752; font-size: 15px; line-height: 1.7; overflow-wrap: anywhere; }
.sd-rich p { margin: 0 0 14px; }
.sd-rich :is(h2, h3, h4) { margin: 22px 0 10px; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); line-height: 1.25; }
.sd-rich h2 { font-size: 24px; } .sd-rich h3 { font-size: 20px; } .sd-rich h4 { font-size: 17px; }
.sd-rich :is(ul, ol) { margin: 0 0 14px; padding-left: 22px; }
.sd-rich li { margin: 0 0 6px; }
.sd-rich a { color: #9b6c2e; }
.sd-rich img, .sd-block-image img { display: block; max-width: 100%; height: auto; border-radius: 8px; }
.sd-block-image { margin: 6px 0 18px; }
.sd-rich > :last-child, .sd-rich-part > :last-child { margin-bottom: 0; }
.sd-rich-part + .sd-rich-part { margin-top: 14px; }
.sd-side { position: sticky; top: 110px; margin: 0; overflow: hidden; border-radius: 10px; box-shadow: 0 14px 34px rgba(23, 33, 43, .14); }
.sd-side img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }

/* 3. Why this investigation is important */
.sd-why { padding: 30px 0 36px; background: #f8efe2; text-align: center; }
.sd-why h2 { margin: 0; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(22px, 2.3vw, 30px); line-height: 1.2; }
.sd-why .sd-divider { margin: 12px auto 24px; }
.sd-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.sd-why-point { padding: 4px 22px; }
.sd-why-point + .sd-why-point { border-left: 1px solid #e6d7c2; }
.sd-why-icon { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 14px; border-radius: 50%; background: #f3dfb8; color: #17212b; }
.sd-why-icon svg { width: 26px; height: 26px; }
.sd-why-point h3 { margin: 0 0 8px; color: #17212b; font-family: var(--font-body, Arial, Helvetica, sans-serif); font-size: 16px; font-weight: 700; line-height: 1.3; }
.sd-why-point p { margin: 0; color: #4f5b66; font-size: 14.5px; line-height: 1.55; }

/* 4. Other services carousel */
.sd-other { padding: 30px 0 40px; background: #fbf8f2; }
.sd-other-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.sd-other-head h2 { margin: 0; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(22px, 2.3vw, 30px); line-height: 1.2; }
.sd-other-nav { display: flex; flex: 0 0 auto; gap: 10px; }
.sd-other-nav button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #d8dde2; border-radius: 50%; background: #fff; color: #17212b; font-size: 18px; cursor: pointer; transition: background .2s, color .2s; }
.sd-other-nav button[data-sd-next] { border-color: #071827; background: #071827; color: #fff; }
.sd-other-nav button:hover { background: #c9934a; border-color: #c9934a; color: #fff; }
.sd-other-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 56px) / 5); gap: 14px; padding: 4px 2px 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.sd-other-track::-webkit-scrollbar { display: none; }
.sd-other-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #ece4d6; border-radius: 9px; background: #fff; color: #17212b; text-decoration: none; box-shadow: 0 6px 18px rgba(23, 33, 43, .07); scroll-snap-align: start; transition: transform .2s, box-shadow .2s; }
.sd-other-card:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(23, 33, 43, .12); }
.sd-other-card img, .sd-other-noimage { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: #0b2031; }
.sd-other-body { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; }
.sd-other-body b { font-size: 14.5px; line-height: 1.3; }
.sd-other-arrow { display: grid; flex: 0 0 auto; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #f3dfb8; color: #8a5f25; font-size: 13px; }

@media (max-width: 1000px) { .sd-other-track { grid-auto-columns: calc((100% - 28px) / 3); } }
@media (max-width: 860px) {
  .sd-main-grid { grid-template-columns: 1fr; gap: 26px; }
  .sd-side { position: static; }
  .sd-hero::after { background: linear-gradient(90deg, rgba(7, 24, 39, .82), rgba(7, 24, 39, .45)); }
  .sd-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
  .sd-why-point:nth-child(odd) { border-left: 0; }
}
@media (max-width: 560px) {
  .sd-hero { min-height: 260px; }
  .sd-other-track { grid-auto-columns: 72%; }
  .sd-other-head { align-items: flex-end; }
  .sd-other-nav button { width: 36px; height: 36px; }
  .sd-why-point { padding: 4px 10px; }
}

/* 5. Two-column body layout (new service detail design) */
.sd-body { padding: 48px 0 64px; background: #fbf8f2; }
.sd-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; }
.sd-left { min-width: 0; }
.sd-content { margin-bottom: 32px; }
/* Sidebar */
.sd-sidebar { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 24px; }
/* Related services card */
.sd-related { background: #fff; border: 1px solid #ece4d6; border-radius: 14px; padding: 24px 20px; }
.sd-related-heading { margin: 0 0 16px; padding-bottom: 14px; border-bottom: 2px solid #f0e6d4; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 18px; font-weight: 700; line-height: 1.3; }
.sd-related-link { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f0ebe2; text-decoration: none; color: inherit; transition: color .2s; }
.sd-related-link:last-child { border-bottom: 0; padding-bottom: 0; }
.sd-related-link:hover { color: #c9934a; }
.sd-related-thumb { flex: 0 0 72px; width: 72px; height: auto; aspect-ratio: 1920 / 650; align-self: center; overflow: hidden; border-radius: 6px; background: #0b2031; }
.sd-related-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sd-related-noimage { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #0b2031 0%, #1a3a55 100%); }
.sd-related-text { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
.sd-related-text b { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 600; line-height: 1.35; color: #17212b; }
.sd-related-link:hover .sd-related-text b { color: #c9934a; }
.sd-related-arrow { flex: 0 0 auto; font-size: 14px; color: #c9934a; }
/* Expert card */
.sd-expert { position: relative; isolation: isolate; border-radius: 14px; padding: 28px 22px; background: #071420; color: #fff; overflow: hidden; }
.sd-expert::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(145deg, rgba(201,147,74,.18) 0%, transparent 60%); pointer-events: none; }
.sd-expert-heading { margin: 0 0 10px; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 20px; font-weight: 700; line-height: 1.25; color: #fff; }
.sd-expert-desc { margin: 0 0 20px; font-size: 14px; line-height: 1.6; color: #d1dae2; }
.sd-expert-btn { display: inline-block; padding: 10px 20px; border-radius: 6px; background: #c9934a; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s; }
.sd-expert-btn:hover { background: #b07d3a; }
/* FAQ section */
.sd-faq-section { margin-top: 32px; padding-top: 28px; border-top: 1px solid #ece4d6; }
.sd-faq-heading { margin: 0; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(22px, 2.2vw, 28px); line-height: 1.2; }
.sd-faq-item { border: 1px solid #e8e0d4; border-radius: 8px; margin-bottom: 10px; background: #fff; overflow: hidden; }
.sd-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; cursor: pointer; list-style: none; color: #17212b; font-size: 15.5px; font-weight: 600; line-height: 1.4; }
.sd-faq-item summary::-webkit-details-marker { display: none; }
.sd-faq-item summary::after { content: "+"; flex: 0 0 auto; font-size: 20px; font-weight: 400; color: #c9934a; transition: transform .2s; }
.sd-faq-item[open] summary::after { content: "−"; }
.sd-faq-answer { padding: 0 18px 16px; color: #3c4752; font-size: 15px; line-height: 1.7; }
.sd-faq-answer p { margin: 0; }
/* Feature image box (full banner image shown after overview) */
.sd-feature-image { margin: 24px 0; max-width: 82%; border-radius: 10px; overflow: hidden; box-shadow: 0 8px 28px rgba(23,33,43,.13); }
.sd-feature-image img { display: block; width: 100%; height: auto; }
/* Other Services inline grid */
.sd-other-services { padding: 48px 0 0; background: #faf8f4; }
.sd-other-heading { font-family: var(--font-heading, Georgia,"Times New Roman",serif); font-size: clamp(20px, 2vw, 26px); color: #17212b; margin: 0 0 6px; }
.sd-other-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; margin-top: 24px; }
.sd-other-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #ece4d6; border-radius: 12px; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow .2s, border-color .2s; }
.sd-other-card:hover { border-color: #c9934a; box-shadow: 0 6px 20px rgba(0,0,0,.09); }
.sd-other-img { aspect-ratio: 16/9; overflow: hidden; }
.sd-other-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.sd-other-card:hover .sd-other-img img { transform: scale(1.04); }
.sd-other-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.sd-other-body h3 { font-size: 14.5px; font-weight: 700; color: #17212b; margin: 0 0 6px; line-height: 1.3; }
.sd-other-body p { font-size: 13px; color: #6b7882; line-height: 1.5; margin: 0 0 10px; flex: 1; }
.sd-other-arrow { font-size: 12.5px; font-weight: 600; color: #c9934a; margin-top: auto; }

/* Expert CTA bar */
.sd-cta-bar { background: #071420; padding: 40px 0; margin-top: 0; }
.sd-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.sd-cta-copy h3 { font-family: var(--font-heading, Georgia,"Times New Roman",serif); font-size: clamp(18px, 2vw, 24px); color: #fff; margin: 0 0 8px; }
.sd-cta-copy p { font-size: 14px; color: #c8d8e8; margin: 0; line-height: 1.6; max-width: 560px; }
.sd-cta-btn { flex: 0 0 auto; display: inline-block; padding: 13px 28px; border-radius: 6px; background: #c9934a; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s; white-space: nowrap; }
.sd-cta-btn:hover { background: #b07d3a; }
@media (max-width: 640px) { .sd-cta-inner { flex-direction: column; align-items: flex-start; } .sd-other-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 420px) { .sd-other-grid { grid-template-columns: 1fr; } }

/* sd-why overrides when inside the two-column layout */
.sd-body .sd-why { background: #f8efe2; border-radius: 10px; padding: 24px 24px 28px; margin-top: 28px; text-align: left; }
.sd-body .sd-why h2 { font-size: clamp(20px, 2vw, 26px); }
.sd-body .sd-why .sd-divider { margin: 10px 0 18px; }
.sd-body .sd-why-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; }
.sd-body .sd-why-point { padding: 4px 12px; text-align: left; }
.sd-body .sd-why-point + .sd-why-point { border-left: 1px solid #e0d0b8; }
.sd-body .sd-why-icon { margin: 0 0 10px; }
@media (max-width: 960px) { .sd-layout { grid-template-columns: 1fr; } .sd-sidebar { position: static; } }
@media (max-width: 640px) { .sd-body { padding: 32px 0 48px; } .sd-body .sd-why-grid { grid-template-columns: 1fr; } .sd-body .sd-why-point + .sd-why-point { border-left: 0; border-top: 1px solid #e0d0b8; margin-top: 8px; } }

/* ---------- About page (about.html) ---------- */
.about-page .sd-divider { display: block; width: 52px; height: 2px; margin: 14px 0 18px; border-radius: 2px; background: #c9934a; }
.about-hero > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.about-eyebrow { color: #c9934a; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* Story and approach blocks */
.about-block { padding: 34px 0 40px; background: #fbf8f2; }
.about-block-alt { background: #f8efe2; }
.about-block-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 44px; }
.about-block-copy h2 { margin: 8px 0 0; color: #17212b; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(26px, 2.6vw, 34px); line-height: 1.18; }
.about-block-copy p { margin: 0 0 14px; color: #3c4752; font-size: 15.5px; line-height: 1.7; }
.about-block-copy p:last-child { margin-bottom: 0; }
.about-block-image { margin: 0; overflow: hidden; border-radius: 10px; box-shadow: 0 14px 34px rgba(23, 33, 43, .14); background: #0b2031; }
.about-block-image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

/* Continuous sliding words */
.about-marquee { position: relative; overflow: hidden; padding: 34px 0; background: linear-gradient(135deg, #faf6ef 0%, #f2e9d8 50%, #ece2cf 100%); }
.about-marquee-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.about-marquee-window { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.about-marquee-track { display: flex; align-items: center; width: max-content; animation: about-marquee var(--marquee-duration, 28s) linear infinite; will-change: transform; }
.about-marquee-word { padding: 0 52px; color: #b8873a; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(26px, 2.6vw, 34px); font-weight: 700; font-style: italic; white-space: nowrap; letter-spacing: 0.02em; }
.about-marquee-sep { flex: 0 0 auto; width: 6px; height: 28px; margin: 0 8px; border-left: 2px solid #c9934a44; border-right: 2px solid #c9934a44; }
@keyframes about-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .about-marquee-track { animation: none; } }

/* Achievements — dark cinematic full-width section */
.about-achievements { position: relative; isolation: isolate; padding: 32px 0 38px; background: #071420; color: #fff; overflow: hidden; }
.about-achievements-bg { position: absolute; inset: 0; z-index: -2; }
.about-achievements-bg img { width: 100%; height: 100%; object-fit: cover; }
.about-achievements::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(5,16,28,.82) 0%, rgba(5,16,28,.68) 50%, rgba(5,16,28,.82) 100%); }
.about-achievements-heading { max-width: 720px; margin: 0 auto 14px; text-align: center; }
.about-achievements-heading .about-eyebrow { display: flex; align-items: center; justify-content: center; gap: 14px; color: #c9934a; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 14px; }
.about-achievements-heading .about-eyebrow::before,
.about-achievements-heading .about-eyebrow::after { content: ""; width: 36px; height: 1px; background: #c9934a; }
.about-achievements-heading h2 { margin: 0 0 14px; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(28px, 3vw, 42px); line-height: 1.15; }
.about-achievements-heading h2 em { font-style: normal; color: #c9934a; }
.about-achievements-heading p { margin: 0; color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.7; }
.about-achievement-grid { display: flex; justify-content: center; gap: 0; }
.about-achievement { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 16px 28px; text-align: center; border-right: 2px solid rgba(201,147,74,.45); }
.about-achievement:last-child { border-right: none; }
.about-achievement-icon { display: grid; place-items: center; width: 70px; height: 70px; margin-bottom: 10px; border-radius: 50%; border: 2px solid #c9934a; background: transparent; color: #c9934a; }
.about-achievement-icon svg { width: 32px; height: 32px; }
.about-achievement strong { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(34px, 3.2vw, 46px); line-height: 1.1; color: #c9934a; }
.about-achievement-label { font-size: 15px; font-weight: 600; line-height: 1.3; color: rgba(255,255,255,.9); margin-top: 4px; white-space: nowrap; }
.about-achievement-label::before { content: ""; display: block; width: 28px; height: 2px; background: #c9934a; margin: 6px auto 8px; }

.home-page .about-achievements { padding: 24px 0 26px; }
.home-page .about-achievements-heading { max-width: 960px; margin-bottom: 8px; }
.home-page .about-achievements-heading .about-eyebrow { margin-bottom: 8px; }
.home-page .about-achievements-heading h2 { margin-bottom: 8px; }
.home-page .about-achievement { padding: 10px 28px; }
.home-page .about-achievement-icon { width: 56px; height: 56px; margin-bottom: 6px; }
.home-page .about-achievement-icon svg { width: 26px; height: 26px; }
@media (max-width: 1000px) { .about-achievement-grid { flex-wrap: wrap; } .about-achievement { flex: 0 0 50%; max-width: 50%; border-right: none; } .about-achievement:nth-child(odd) { border-right: 2px solid rgba(201,147,74,.45); } }
@media (max-width: 860px) {
  .about-block-grid { grid-template-columns: 1fr; gap: 24px; }
  .about-block-alt .about-block-image { order: 2; }
}
@media (max-width: 560px) {
  .about-achievements { padding: 40px 0 48px; }
  .about-achievement-grid { flex-direction: column; align-items: center; }
  .about-achievement { flex: none; width: 100%; max-width: 100%; border-right: none !important; border-bottom: 1px solid rgba(201,147,74,.18); padding: 22px 16px; }
  .about-achievement:last-child { border-bottom: none; }
  .about-marquee-word { padding: 0 32px; }
}

/* ============ Blog Page ============ */
[data-blog-page] { background: #071420; }
.bp-banner { position: relative; isolation: isolate; padding: 64px 0 56px; background: #071420; color: #fff; overflow: hidden; margin-top: calc(-1 * var(--site-header-h, 0px)); padding-top: calc(64px + var(--site-header-h, 0px)); }
.bp-banner-bg { position: absolute; inset: 0; z-index: -2; }
.bp-banner-bg img { width: 100%; height: 100%; object-fit: cover; }
.bp-banner::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5,16,28,.92) 0%, rgba(5,16,28,.82) 45%, rgba(5,16,28,.55) 100%); }
.bp-banner .container { position: relative; z-index: 2; }
.bp-banner-eyebrow { display: flex; align-items: center; gap: 12px; color: #c9934a; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 12px; }
.bp-banner-eyebrow::after { content: ""; width: 32px; height: 1px; background: #c9934a; }
.bp-banner h1 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(32px, 3.6vw, 48px); line-height: 1.12; margin: 0 0 14px; }
.bp-banner h1 em { font-style: normal; color: #c9934a; }
.bp-banner p { max-width: 540px; color: rgba(255,255,255,.75); font-size: 15px; line-height: 1.65; margin: 0 0 28px; }
.bp-search { display: flex; align-items: center; max-width: 520px; border-radius: 8px; overflow: hidden; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.06); }
.bp-search-icon { display: flex; align-items: center; padding-left: 16px; color: rgba(255,255,255,.45); flex: none; }
.bp-search-icon svg { width: 20px; height: 20px; }
.bp-search input { flex: 1; min-width: 0; padding: 14px 14px; border: 0; background: transparent; color: #fff; font-size: 14px; outline: none; }
.bp-search input::placeholder { color: rgba(255,255,255,.45); }
.bp-search button { flex: 0 0 auto; padding: 14px 28px; border: 0; background: #c9934a; color: #071420; font-size: 14px; font-weight: 700; cursor: pointer; transition: background .15s; }
.bp-search button:hover { background: #dba85c; }

.bp-body { padding: 48px 0 56px; background: #faf8f4; }
.bp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }
.bp-main-head { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; }
.bp-main-head h2 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(22px, 2.4vw, 30px); margin: 0; color: #17212b; flex: none; }
.bp-head-line { flex: 1; height: 1px; background: #c9934a; opacity: .35; }
.bp-main-head a { color: #c9934a; font-size: 13px; font-weight: 700; white-space: nowrap; flex: none; }
.bp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.bp-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,.06); transition: transform .2s, box-shadow .2s; text-decoration: none; color: inherit; display: flex; flex-direction: column; }
.bp-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,.1); }
.bp-card-img { position: relative; overflow: hidden; }
.bp-card-img img { width: 100%; height: 200px; object-fit: cover; display: block; }
.bp-card-tag { position: absolute; bottom: 10px; left: 12px; padding: 4px 10px; border-radius: 4px; background: #c9934a; color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.bp-card-body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.bp-card-body h3 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 17px; line-height: 1.3; margin: 0 0 8px; color: #17212b; }
.bp-card-body p { color: #5b6670; font-size: 13px; line-height: 1.55; margin: 0 0 14px; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bp-card-foot { display: flex; align-items: center; justify-content: space-between; }
.bp-card-foot span { color: #17212b; font-size: 13px; font-weight: 700; }
.bp-card-arrow { width: 34px; height: 34px; border-radius: 50%; border: 1px solid #c9934a; display: grid; place-items: center; color: #c9934a; font-size: 16px; flex: none; }
.bp-empty { grid-column: 1 / -1; text-align: center; padding: 40px 20px; color: #6d7882; font-size: 14px; }

.bp-sidebar { display: flex; flex-direction: column; gap: 28px; }
.bp-popular { background: #fff; border-radius: 14px; padding: 28px 24px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.bp-popular-head { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; }
.bp-popular-head svg { width: 20px; height: 20px; color: #c9934a; }
.bp-popular-head h3 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 19px; margin: 0; color: #17212b; }
.bp-popular-list { display: flex; flex-direction: column; gap: 0; }
.bp-popular-item { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid #f0ece4; text-decoration: none; color: inherit; transition: background .15s; }
.bp-popular-item:first-child { border-top: none; }
.bp-popular-item img { width: 68px; height: 56px; object-fit: cover; border-radius: 8px; flex: none; }
.bp-popular-item span { flex: 1; font-size: 13.5px; font-weight: 600; color: #17212b; line-height: 1.35; }
.bp-popular-arrow { width: 30px; height: 30px; border-radius: 50%; border: 1px solid #c9934a; display: grid; place-items: center; color: #c9934a; font-size: 14px; flex: none; }

.bp-insights { position: relative; isolation: isolate; border-radius: 14px; overflow: hidden; padding: 44px 28px 40px; background: #0b1e2f; color: #fff; }
.bp-insights-bg { position: absolute; inset: 0; z-index: -2; }
.bp-insights-bg img { width: 100%; height: 100%; object-fit: cover; }
.bp-insights::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,30,47,.88) 0%, rgba(11,30,47,.65) 100%); }
.bp-insights h3 { position: relative; z-index: 1; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(26px, 2.8vw, 34px); line-height: 1.15; margin: 0 0 16px; }
.bp-insights p { position: relative; z-index: 1; color: rgba(255,255,255,.7); font-size: 13.5px; line-height: 1.65; margin: 0 0 22px; }
.bp-insights-btn { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 14px 24px; border: 1px solid rgba(255,255,255,.3); border-radius: 8px; background: transparent; color: #fff; font-size: 13.5px; font-weight: 700; text-decoration: none; transition: background .15s, border-color .15s; }
.bp-insights-btn:hover { background: rgba(255,255,255,.08); border-color: #c9934a; }
.bp-insights-stats { position: relative; z-index: 1; display: flex; gap: 24px; margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); }
.bp-insights-stats div { text-align: center; }
.bp-insights-stats strong { display: block; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 24px; color: #c9934a; }
.bp-insights-stats small { color: rgba(255,255,255,.6); font-size: 11.5px; }

.bp-pagination { display: flex; gap: 6px; justify-content: center; margin-top: 36px; }
.bp-pagination button { width: 38px; height: 38px; border: 1px solid #d9d3c7; border-radius: 8px; background: #fff; color: #17212b; font-size: 14px; font-weight: 600; cursor: pointer; display: grid; place-items: center; transition: background .15s, border-color .15s; }
.bp-pagination button.is-active { background: #c9934a; color: #fff; border-color: #c9934a; }
.bp-pagination button:hover:not(.is-active) { border-color: #c9934a; }
.bp-pagination button:disabled { opacity: .35; cursor: default; }
.bp-page-btn { width: auto !important; padding: 0 14px; font-size: 13px !important; }
.bp-page-nums { display: flex; gap: 6px; }
.bp-page-gap { display: grid; place-items: center; width: 24px; color: #6b7280; font-weight: 700; }

/* Blogs page (Design G): Latest / Popular tabs, featured card + four-column grid */
.bpg .bpg-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 24px; }
.bpg .bpg-head h2 { margin: 0; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(24px, 2.4vw, 30px); line-height: 1.2; color: #17212b; }
.bpg .bpg-head h2 em { color: #c9934a; font-style: normal; }
.bpg-tabs { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid #e6dfd3; border-radius: 99px; background: #fff; }
.bpg-tabs button { padding: 8px 18px; border: 0; border-radius: 99px; background: transparent; color: #5b6670; font-size: 13px; font-weight: 700; cursor: pointer; }
.bpg-tabs button.is-on { background: #0b1e2f; color: #fff; }
.bpg-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.bpg-grid > .bp-empty { grid-column: 1 / -1; }
.bpg-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #e6dfd3; border-radius: 14px; background: #fff; color: #17212b; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.bpg-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(11, 30, 47, .12); }
.bpg-img { position: relative; overflow: hidden; aspect-ratio: 16 / 11; background: #0b1e2f; }
.bpg-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.bpg-card:hover .bpg-img img { transform: scale(1.05); }
.bpg-body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 16px 18px 18px; border-top: 3px solid #c9934a; }
.bpg-body h3 { display: -webkit-box; margin: 0; overflow: hidden; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 16.5px; line-height: 1.35; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.bpg-read { margin-top: auto; color: #c9934a; font-size: 13px; font-weight: 700; }
.bpg-card.is-wide { grid-column: span 2; flex-direction: row; }
.bpg-card.is-wide .bpg-img { flex: 1.1; aspect-ratio: auto; min-height: 260px; }
.bpg-card.is-wide .bpg-body { flex: 1; justify-content: center; padding: 24px; border-top: 0; border-left: 3px solid #c9934a; }
.bpg-card.is-wide .bpg-body h3 { font-size: 22px; }
.bpg-card.is-wide .bpg-read { margin-top: 6px; }
.bpg-tag { align-self: flex-start; padding: 3px 10px; border-radius: 99px; background: #fbefdc; color: #8a5a1c; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.bpg-slider { display: flex; align-items: center; gap: 12px; }
.bpg-track { display: grid; flex: 1; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 22px) / 4); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 10px; }
.bpg-track::-webkit-scrollbar { display: none; }
.bpg-track .bpg-card { scroll-snap-align: start; }
.bpg-arrow { flex: none; display: grid; place-items: center; width: 50px; height: 50px; padding: 0 0 3px; border: 2px solid #c9934a; border-radius: 50%; background: #c9934a; color: #fff; font-size: 34px; font-weight: 700; line-height: 1; cursor: pointer; box-shadow: 0 6px 16px rgba(201, 147, 74, .35); transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.bpg-arrow:hover:not(:disabled) { background: #0b1e2f; border-color: #0b1e2f; transform: scale(1.06); box-shadow: 0 8px 20px rgba(11, 30, 47, .3); }
.bpg-arrow:disabled { border-color: #cfc6b8; background: #ebe5db; color: #9a9184; box-shadow: none; cursor: default; }
.bpg-arrow[hidden] { display: none; }
@media (max-width: 1100px) {
  .bpg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bpg-track { grid-auto-columns: calc((100% - 2 * 22px) / 3); }
}
@media (max-width: 800px) {
  .bpg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .bpg-card.is-wide { grid-column: 1 / -1; flex-direction: column; }
  .bpg-card.is-wide .bpg-img { min-height: 220px; }
  .bpg-card.is-wide .bpg-body { border-left: 0; border-top: 3px solid #c9934a; }
  .bpg-track { grid-auto-columns: calc((100% - 16px) / 2); gap: 16px; }
}
@media (max-width: 520px) {
  .bpg-grid { grid-template-columns: 1fr; }
  .bpg-track { grid-auto-columns: 85%; }
  .bpg-arrow { width: 36px; height: 36px; font-size: 22px; }
}

@media (max-width: 900px) {
  .bp-layout { grid-template-columns: 1fr; }
  .bp-sidebar { flex-direction: row; flex-wrap: wrap; }
  .bp-popular { flex: 1; min-width: 260px; }
  .bp-insights { flex: 1; min-width: 260px; min-height: 320px; }
}
@media (max-width: 600px) {
  .bp-banner { padding: 44px 0 40px; }
  .bp-banner h1 { font-size: 28px; }
  .bp-search { flex-direction: column; }
  .bp-search button { padding: 12px; }
  .bp-grid { grid-template-columns: 1fr; gap: 18px; }
  .bp-card-img img { height: 180px; }
  .bp-body { padding: 32px 0 40px; }
  .bp-sidebar { flex-direction: column; }
  .bp-insights-stats { gap: 16px; }
}

/* ============ Blog Detail — Table of Contents ============ */
.bd-toc { background: #fff; border-radius: 14px; padding: 24px 22px; box-shadow: 0 4px 18px rgba(0,0,0,.06); border-left: 3px solid #c9934a; }
.bd-toc-head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid #f0ece4; }
.bd-toc-icon { font-size: 16px; color: #c9934a; }
.bd-toc-head h3 { margin: 0; font-family: var(--font-heading, Georgia, serif); font-size: 16px; color: #17212b; font-weight: 700; }
.bd-toc-list { margin: 0; padding: 0; list-style: none; counter-reset: toc; display: flex; flex-direction: column; gap: 2px; }
.bd-toc-item { counter-increment: toc; }
.bd-toc-link { display: flex; align-items: baseline; gap: 10px; padding: 7px 10px; border-radius: 6px; font-size: 13.5px; color: #4e5962; text-decoration: none; line-height: 1.35; transition: background .15s, color .15s; }
.bd-toc-link::before { content: counter(toc); flex: 0 0 20px; width: 20px; height: 20px; border-radius: 50%; background: #f0ece4; color: #c9934a; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.bd-toc-sub .bd-toc-link { padding-left: 22px; font-size: 13px; color: #6b7882; }
.bd-toc-sub .bd-toc-link::before { background: transparent; color: #c9934a; content: "–"; font-size: 14px; font-weight: 400; }
.bd-toc-link:hover { background: #fdf6ee; color: #c9934a; }
.bd-toc-link.is-active { background: #fdf0de; color: #b07830; font-weight: 600; }
.bd-toc-link.is-active::before { background: #c9934a; color: #fff; }

/* Reading Time + Author card */
.bd-read-card { background: #fff; border-radius: 14px; padding: 20px 22px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.bd-read-author { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid #f0ece4; }
.bd-author-avatar { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, #0b2031, #1a3a55); color: #c9934a; font-size: 18px; font-weight: 700; display: grid; place-items: center; }
.bd-author-info { display: flex; flex-direction: column; gap: 2px; }
.bd-author-name { font-size: 14px; font-weight: 700; color: #17212b; }
.bd-author-role { font-size: 11.5px; color: #c9934a; font-weight: 600; letter-spacing: .04em; }
.bd-read-meta { display: flex; align-items: center; gap: 16px; }
.bd-read-time { display: flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: #17212b; }
.bd-read-time svg { color: #c9934a; flex: none; }
.bd-read-words { font-size: 12px; color: #8a9299; }
/* Popular Tags cloud */
.bd-tags-card { background: #fff; border-radius: 14px; padding: 24px 22px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.bd-tags-cloud { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.bd-cloud-tag { display: inline-block; padding: 5px 12px; border-radius: 20px; background: #f5ede0; color: #8c5e22; font-size: 12px; font-weight: 600; text-decoration: none; transition: background .15s, color .15s; }
.bd-cloud-tag:hover { background: #c9934a; color: #fff; }

/* ============ Blog Detail Page ============ */
.bd-banner { position: relative; isolation: isolate; min-height: 520px; display: flex; align-items: center; padding: 72px 0 56px; background: #071420; color: #fff; overflow: hidden; }
.bd-banner-bg { position: absolute; inset: 0; z-index: -2; }
.bd-banner-bg img { width: 100%; height: 100%; object-fit: cover; }
.bd-banner::after { content: none; }
.bd-banner .container { position: relative; z-index: 2; }
.bd-banner-tag { display: inline-block; padding: 5px 14px; border: 1.5px solid #c9934a; border-radius: 4px; color: #c9934a; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 18px; }
.bd-banner h1 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(30px, 3.6vw, 48px); line-height: 1.15; margin: 0 0 14px; max-width: 700px; }
.bd-banner p { max-width: 600px; color: rgba(255,255,255,.75); font-size: 15px; line-height: 1.65; margin: 0; }

.bd-body { padding: 48px 0 56px; background: #faf8f4; }
.bd-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }

.bd-content { min-width: 0; }
.bd-article { background: #fff; border-radius: 14px; padding: 36px 32px; box-shadow: 0 4px 18px rgba(0,0,0,.06); margin-bottom: 0; }
.bd-article h2, .bd-article h3, .bd-article h4 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); color: #17212b; margin: 28px 0 12px; line-height: 1.3; }
.bd-article h2 { font-size: clamp(22px, 2.4vw, 28px); }
.bd-article h3 { font-size: clamp(18px, 2vw, 22px); }
.bd-article h2:first-child, .bd-article h3:first-child { margin-top: 0; }
.bd-article p, .bd-article li { color: #4e5962; font-size: 15px; line-height: 1.75; margin: 0 0 16px; }
.bd-article ul, .bd-article ol { padding-left: 20px; margin: 0 0 16px; }
.bd-article li { margin-bottom: 6px; }
.bd-article img { display: block; width: 100%; max-width: 100%; height: auto; border-radius: 10px; margin: 24px 0; }
.bd-article table { width: 100%; margin: 24px 0; border-collapse: collapse; background: #fff; }
.bd-article th, .bd-article td { padding: 16px; border: 1px solid #dedede; color: #222; font-size: 15px; line-height: 1.5; text-align: left; vertical-align: top; }
.bd-article tr:first-child td, .bd-article th { background: #f4f4f4; font-weight: 700; }
@media (max-width: 600px) { .bd-article th, .bd-article td { padding: 10px; font-size: 14px; } }
.bd-article .bd-image-author { margin: -14px 0 22px; color: #000; font-size: 16px; font-weight: 600; line-height: 1.4; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-article a { color: #c9934a; text-decoration: underline; }
.bd-article blockquote { margin: 28px 0; padding: 20px 24px; border-left: 4px solid #c9934a; background: #fdf6ee; border-radius: 0 8px 8px 0; }
.bd-article blockquote p { color: #5a3e1b; font-size: 16.5px; font-style: italic; line-height: 1.7; margin: 0; font-weight: 500; }
.bd-article blockquote cite { display: block; margin-top: 10px; font-size: 13px; color: #c9934a; font-style: normal; font-weight: 700; }
.bd-article .cms-content-box { display: flow-root; min-width: 0; }
.bd-article .cms-rich-content { max-width: 100%; overflow-wrap: anywhere; }
.bd-article .cms-rich-content h2, .bd-article .cms-rich-content h3, .bd-article .cms-rich-content h4 { margin: 28px 0 12px; }
.bd-article .cms-rich-content p, .bd-article .cms-rich-content li { max-width: 100%; overflow-wrap: anywhere; }
.bd-article .cms-rich-content img { display: block; width: auto; max-width: 100%; height: auto; }

.bd-divider { height: 1px; background: #e0d9ce; margin: 32px 0 24px; }
.bd-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.bd-tags-label { font-size: 15px; font-weight: 700; color: #17212b; margin-right: 4px; }
.bd-tag { display: inline-block; padding: 6px 16px; border: 1px solid #d9d3c7; border-radius: 20px; background: #fff; color: #4e5962; font-size: 13px; text-decoration: none; transition: border-color .15s, color .15s; }
.bd-tag:hover { border-color: #c9934a; color: #c9934a; }

.bd-share { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 32px; }
.bd-share-label { font-size: 14px; font-weight: 600; color: #6b7882; }
.bd-share-icons { display: flex; gap: 8px; }
.bd-share-icon { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: #fff; text-decoration: none; opacity: .72; transition: opacity .15s, transform .15s; }
.bd-share-icon:hover { opacity: 1; transform: scale(1.1); }
.bd-share-icon svg { width: 15px; height: 15px; }
.bd-share-fb { background: #1877f2; }
.bd-share-tw { background: #14171a; }
.bd-share-li { background: #0a66c2; }
.bd-share-wa { background: #25d366; }

.bd-prev-next { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; border-top: 1px solid #e0d9ce; padding-top: 28px; }
.bd-prev-next a { display: flex; align-items: center; gap: 12px; padding: 18px 20px; background: #fff; border: 1px solid #e0d9ce; border-radius: 12px; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.bd-prev-next a:hover { border-color: #c9934a; box-shadow: 0 4px 14px rgba(0,0,0,.06); }
.bd-pn-arrow { flex: none; font-size: 20px; color: #c9934a; }
.bd-pn-text { flex: 1; }
.bd-pn-label { display: block; font-size: 12px; color: #8a8a8a; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; margin-bottom: 4px; }
.bd-pn-title { display: block; font-size: 14px; font-weight: 700; color: #17212b; line-height: 1.35; }
.bd-pn-next { text-align: right; flex-direction: row-reverse; }

.bd-related { background: #fff; border-radius: 14px; padding: 28px 24px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.bd-related-head { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.bd-related-head h3 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 18px; margin: 0; color: #17212b; white-space: nowrap; }
.bd-related-line { flex: 1; height: 1px; background: #17212b; }
.bd-related-list { display: flex; flex-direction: column; }
.bd-related-item { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid #f0ece4; text-decoration: none; color: inherit; transition: background .15s; }
.bd-related-item:first-child { border-top: none; padding-top: 0; }
.bd-related-item:last-child { padding-bottom: 0; }
.bd-related-item img { width: 72px; height: 56px; object-fit: cover; border-radius: 8px; flex: none; }
.bd-related-item span { flex: 1; font-size: 13.5px; font-weight: 600; color: #17212b; line-height: 1.35; }
.bd-related-arrow { width: 32px; height: 32px; border-radius: 50%; border: 1px solid #c9934a; display: grid; place-items: center; color: #c9934a; font-size: 14px; flex: none; }

.bd-support { position: relative; isolation: isolate; border-radius: 14px; overflow: hidden; padding: 36px 28px; background: #0b1e2f; color: #fff; }
.bd-support-bg { position: absolute; inset: 0; z-index: -2; }
.bd-support-bg img { width: 100%; height: 100%; object-fit: cover; }
.bd-support::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,30,47,.88) 0%, rgba(11,30,47,.7) 100%); }
.bd-support h3 { position: relative; z-index: 1; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(22px, 2.4vw, 28px); line-height: 1.2; margin: 0 0 12px; }
.bd-support p { position: relative; z-index: 1; color: rgba(255,255,255,.75); font-size: 14px; line-height: 1.6; margin: 0 0 20px; }
.bd-support-btn { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border: none; border-radius: 8px; background: #c9934a; color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; transition: background .15s; }
.bd-support-btn:hover { background: #dba85c; }

.bd-sidebar { display: flex; flex-direction: column; gap: 28px; }
/* Bottom related blogs grid */
.bd-bottom-related { background: #f2ede4; padding: 56px 0; }
.bd-br-head { display: flex; align-items: center; gap: 20px; margin-bottom: 32px; }
.bd-br-head h2 { margin: 0; font-family: var(--font-heading, Georgia, serif); font-size: clamp(22px, 2.4vw, 28px); color: #17212b; white-space: nowrap; }
.bd-br-line { flex: 1; height: 1px; background: #c9b99a; }
.bd-br-all { flex: none; font-size: 13px; font-weight: 700; color: #c9934a; text-decoration: none; white-space: nowrap; }
.bd-br-all:hover { text-decoration: underline; }
.bd-br-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.bd-br-card { display: flex; flex-direction: column; background: #fff; border-radius: 14px; overflow: hidden; text-decoration: none; color: inherit; box-shadow: 0 4px 18px rgba(0,0,0,.07); transition: transform .2s, box-shadow .2s; }
.bd-br-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.12); }
.bd-br-img { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; background: #0b2031; }
.bd-br-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.bd-br-card:hover .bd-br-img img { transform: scale(1.04); }
.bd-br-cat { position: absolute; top: 12px; left: 12px; padding: 4px 10px; background: #c9934a; color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; border-radius: 4px; }
.bd-br-body { padding: 20px 20px 18px; display: flex; flex-direction: column; flex: 1; }
.bd-br-body h3 { margin: 0 0 10px; font-family: var(--font-heading, Georgia, serif); font-size: 16px; line-height: 1.35; color: #17212b; }
.bd-br-body p { margin: 0 0 16px; font-size: 13.5px; color: #6b7882; line-height: 1.6; flex: 1; }
.bd-br-read { font-size: 13px; font-weight: 700; color: #c9934a; }
@media (max-width: 700px) { .bd-br-grid { grid-template-columns: 1fr; } }

.bd-insights-section { position: relative; isolation: isolate; padding: 64px 0; background: #071420; color: #fff; overflow: hidden; }
.bd-insights-bg { position: absolute; inset: 0; z-index: -2; }
.bd-insights-bg img { width: 100%; height: 100%; object-fit: cover; }
.bd-insights-section::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5,16,28,.9) 0%, rgba(5,16,28,.7) 45%, rgba(5,16,28,.4) 100%); }
.bd-insights-section .container { position: relative; z-index: 2; max-width: 560px; margin-left: clamp(28px, 5.4vw, 88px); margin-right: auto; }
.bd-insights-section h2 { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(30px, 3.4vw, 44px); line-height: 1.15; margin: 0 0 6px; }
.bd-insights-section h2 em { font-style: italic; color: #c9934a; }
.bd-insights-section h2::after { content: ""; display: block; width: 56px; height: 2.5px; background: #c9934a; margin: 16px 0 0; border-radius: 2px; }
.bd-insights-section p { color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.65; margin: 18px 0 24px; }
.bd-insights-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 26px; border: 1.5px solid #c9934a; border-radius: 8px; background: transparent; color: #c9934a; font-size: 14px; font-weight: 700; text-decoration: none; transition: background .15s, color .15s; }
.bd-insights-btn:hover { background: #c9934a; color: #fff; }

@media (max-width: 900px) {
  .bd-layout { grid-template-columns: 1fr; }
  .bd-prev-next { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .bd-banner { min-height: 320px; padding: 40px 0; }
  .bd-banner h1 { font-size: 26px; }
  .bd-body { padding: 32px 0 40px; }
  .bd-article { padding: 24px 18px; }
  .bd-share { flex-direction: column; align-items: flex-start; gap: 12px; }
  .bd-insights-section .container { margin-left: 20px; }
}

/* Transparent header over each page's dark hero (height set by js/script.js as --site-header-h) */
.header-over-hero [data-site-header] { position: relative; z-index: 30; margin-bottom: calc(-1 * var(--site-header-h, 0px)); }
.header-over-hero header, .header-over-hero.home-page header { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
/* Homepage slider: slides are absolutely placed, so their text moves down below the header here. */
.header-over-hero .home-carousel .hero-slide > .container { margin-top: var(--site-header-h, 0px); }

/* ---------- Home hero: premium text reveal (enabled by the "hero-reveal" class set in js/script.js) ----------
   Slides still crossfade as before; on each new slide the text arrives in order:
   eyebrow → heading word by word (mask reveal) → gold word shimmer → description → buttons. */
.hero-reveal .hero-slide.is-active .hero-copy { animation: none; }
.hero-reveal .hero-slide.is-leaving .hero-copy { opacity: 0; transform: translateY(-12px); transition: opacity .45s ease, transform .45s ease; }
.hero-reveal .rv-word { display: inline-block; overflow: hidden; vertical-align: bottom; padding: .04em .06em .3em 0; margin: -.04em 0 -.3em; }
.hero-reveal .rv-word > span { display: inline-block; transform: translateY(115%); }
.hero-reveal .hero-slide.is-active .rv-word > span { animation: hero-mask-up 1.05s cubic-bezier(.2, .75, .2, 1) calc(.4s + var(--i, 0) * 90ms) both; }
.hero-reveal .hero-slide .hero-copy > .eyebrow,
.hero-reveal .hero-slide .hero-copy > p,
.hero-reveal .hero-slide .hero-copy > .actions { opacity: 0; }
.hero-reveal .hero-slide.is-active .hero-copy > .eyebrow { animation: hero-fade-up .75s ease-out .15s both; }
.hero-reveal .hero-slide.is-active .hero-copy > p { animation: hero-fade-up .9s ease-out 1.1s both; }
.hero-reveal .hero-slide.is-active .hero-copy > .actions { animation: hero-fade-up .9s ease-out 1.35s both; }
/* Gold highlighted word: a soft light sweep once it has appeared */
.hero-reveal .hero-slide.is-active h1 em .rv-word > span {
  background: linear-gradient(100deg, currentColor 0%, currentColor 40%, #f0c27a 50%, currentColor 60%, currentColor 100%);
  background-size: 250% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text;
  animation: hero-mask-up 1.05s cubic-bezier(.2, .75, .2, 1) calc(.4s + var(--i, 0) * 90ms) both, hero-gold-sheen 1.6s ease-in-out 1.7s both;
}
@supports (-webkit-background-clip: text) or (background-clip: text) {
  .hero-reveal .hero-slide.is-active h1 em .rv-word > span { -webkit-text-fill-color: transparent; }
}
@keyframes hero-mask-up { from { transform: translateY(115%); } to { transform: translateY(0); } }
@keyframes hero-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-gold-sheen { from { background-position: 100% 0; } to { background-position: 0 0; } }
@media (max-width: 700px) {
  .hero-reveal .hero-slide.is-active .rv-word > span { animation-duration: .9s; animation-delay: calc(.32s + var(--i, 0) * 65ms); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-reveal .rv-word > span, .hero-reveal .hero-slide .hero-copy > * { animation: none !important; transform: none !important; opacity: 1 !important; }
}
/* The outgoing slide keeps its text visible so it can fade out smoothly. */
.hero-reveal .hero-slide.is-leaving .hero-copy > * { opacity: 1; }
.hero-reveal .hero-slide.is-leaving .rv-word > span { transform: none; }

/* ===== Home FAQ Section ===== */
.home-faq-section { position: relative; overflow: hidden; padding: 48px 0; }
.home-faq-bg { position: absolute; inset: 0; z-index: 0; background: #0b2238; }
.home-faq-bg img { width: 100%; height: 100%; object-fit: cover; }
.home-faq-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgba(7,24,39,.8) 0%, rgba(11,34,56,.62) 40%, rgba(11,34,56,.58) 100%); }
.home-faq-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(280px,420px) minmax(0,1fr); gap: 60px; align-items: start; }
.home-faq-left { color: #fff; }
.home-faq-left .home-faq-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 16px; color: #dfa953; font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.home-faq-left .home-faq-eyebrow::after { content: ""; width: 32px; height: 1px; background: #dfa953; }
.home-faq-left h2 { margin: 0 0 20px; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(32px, 4vw, 48px); font-weight: 700; line-height: 1.15; }
.home-faq-left h2 em { color: #dfa953; font-style: normal; }
.home-faq-left p { margin: 0; color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.7; max-width: 380px; }
.home-faq-right { display: flex; flex-direction: column; gap: 0; }
.home-faq-item { border-bottom: 1px solid rgba(255,255,255,.18); }
.home-faq-item:first-child { border-top: 1px solid rgba(255,255,255,.18); }
.home-faq-question { display: flex; align-items: center; gap: 16px; width: 100%; padding: 15px 4px; border: 0; background: transparent; color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.35); font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(15px, 1.6vw, 18px); font-weight: 600; line-height: 1.4; text-align: left; cursor: pointer; transition: color .2s ease; }
.home-faq-question:hover { color: #dfa953; }
.home-faq-num { flex: 0 0 auto; color: #c9934a; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 20px; font-weight: 700; min-width: 32px; }
.home-faq-toggle { flex: 0 0 auto; margin-left: auto; display: grid; place-items: center; width: 30px; height: 30px; color: #fff; font-size: 22px; font-weight: 300; transition: transform .3s ease, color .2s ease; }
.home-faq-item.is-open .home-faq-toggle { transform: rotate(45deg); }
.home-faq-answer { max-height: 0; overflow: hidden; transition: max-height .4s ease, padding .3s ease; }
.home-faq-answer-inner { padding: 0 4px 20px 52px; color: rgba(255,255,255,.9); font-size: 16.5px; line-height: 1.75; -webkit-text-stroke: .35px currentColor; }
.home-faq-item.is-open .home-faq-answer { max-height: 600px; }
@media (max-width: 900px) {
  .home-faq-inner { grid-template-columns: 1fr; gap: 40px; }
  .home-faq-bg::after { background: linear-gradient(to bottom, rgba(7,24,39,.82) 0%, rgba(11,34,56,.65) 100%); }
  .home-faq-left { text-align: center; }
  .home-faq-left .home-faq-eyebrow { justify-content: center; }
  .home-faq-left p { margin: 0 auto; }
}
@media (max-width: 600px) {
  .home-faq-section { padding: 56px 0; }
  .home-faq-answer-inner { padding-left: 42px; }
}

/* ===== Sliding Text Strip ===== */
.home-sliding-section { position: relative; overflow: hidden; padding: 30px 0; background: linear-gradient(135deg, #faf6ef 0%, #f2e9d8 50%, #ece2cf 100%); }
.home-sliding-track-wrap { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.home-sliding-track { display: flex; align-items: center; }
.home-sliding-inner { display: flex; align-items: center; width: max-content; animation: sliding-scroll 32s linear infinite; will-change: transform; }
.home-sliding-item { display: flex; align-items: center; gap: 12px; padding: 0 28px; flex-shrink: 0; white-space: nowrap; }
.home-sliding-divider { flex: 0 0 auto; width: 6px; height: 24px; margin: 0 4px; border-left: 2px solid #c9934a44; border-right: 2px solid #c9934a44; }
.home-sliding-icon { width: 38px; height: 38px; flex-shrink: 0; display: grid; place-items: center; position: relative; }
.home-sliding-icon::before { content: ""; position: absolute; inset: 2px; background: linear-gradient(135deg, #fdf0de, #f5e4ca); border: 1px solid rgba(200,160,80,.22); border-radius: 4px; transform: rotate(45deg); }
.home-sliding-icon svg { position: relative; z-index: 1; width: 18px; height: 18px; color: #b0802a; fill: #b0802a; }
.home-sliding-text { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(13px, 1.3vw, 15px); font-weight: 600; color: #2c2416; line-height: 1.35; white-space: nowrap; }
@keyframes sliding-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@media (max-width: 900px) {
  .home-sliding-section { padding: 24px 0; }
  .home-sliding-item { gap: 10px; padding: 0 20px; }
  .home-sliding-icon { width: 32px; height: 32px; }
  .home-sliding-icon svg { width: 15px; height: 15px; }
  .home-sliding-divider { height: 20px; }
}
@media (max-width: 600px) {
  .home-sliding-section { padding: 18px 0; }
  .home-sliding-item { gap: 8px; padding: 0 14px; }
  .home-sliding-icon { width: 28px; height: 28px; }
  .home-sliding-icon svg { width: 13px; height: 13px; }
  .home-sliding-text { font-size: 12px; }
  .home-sliding-divider { height: 16px; margin: 0 2px; }
}

/* ===== Home Media Gallery Section ===== */
.home-gallery-section { position: relative; overflow: hidden; padding: 80px 0; }
.home-gallery-bg { position: absolute; inset: 0; z-index: 0; background: #0b2238; }
.home-gallery-bg-link { display: block; width: 100%; height: 100%; }
.home-gallery-bg img, .home-gallery-bg-link img { width: 100%; height: 100%; object-fit: cover; }
.home-gallery-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(7,24,39,.35) 0%, rgba(11,34,56,.25) 40%, rgba(11,34,56,.40) 100%); }
.home-gallery-content { position: relative; z-index: 1; }
.home-gallery-header { text-align: center; margin-bottom: 48px; }
.home-gallery-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; color: #dfa953; font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.home-gallery-eyebrow::before, .home-gallery-eyebrow::after { content: ""; width: 28px; height: 1px; background: #dfa953; }
.home-gallery-header h2 { margin: 0 0 16px; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(30px, 3.6vw, 44px); font-weight: 700; line-height: 1.2; }
.home-gallery-header h2 em { color: #dfa953; font-style: normal; }
.home-gallery-header p { margin: 0 auto; max-width: 600px; color: rgba(255,255,255,.68); font-size: 15px; line-height: 1.7; }
.home-gallery-grid { columns: 3; column-gap: 20px; }
.home-gallery-card { position: relative; border-radius: 8px; overflow: hidden; cursor: pointer; background: #0a1c2e; break-inside: avoid; margin-bottom: 20px; }
.home-gallery-card img { display: block; width: 100%; height: auto; transition: transform .45s ease, opacity .3s ease; }
.home-gallery-card:hover img { transform: scale(1.04); opacity: .85; }
.home-gallery-overlay { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: space-between; padding: 16px 18px; background: linear-gradient(to top, rgba(7,24,39,.78) 0%, rgba(7,24,39,.25) 45%, transparent 100%); opacity: 0; transition: opacity .35s ease; }
.home-gallery-card:hover .home-gallery-overlay { opacity: 1; }
.home-gallery-info { display: flex; flex-direction: column; gap: 2px; color: #fff; }
.home-gallery-info strong { font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: 15px; font-weight: 600; }
.home-gallery-info span { font-size: 13px; color: rgba(255,255,255,.7); }
.home-gallery-zoom { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(223,169,83,.85); color: #111820; flex-shrink: 0; transition: background .2s ease; }
.home-gallery-card:hover .home-gallery-zoom { background: #dfa953; }

/* Gallery lightbox modal */
.home-gallery-lightbox { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 24px; background: rgba(5,16,28,.92); opacity: 0; transition: opacity .3s ease; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.home-gallery-lightbox.is-open { opacity: 1; }
.home-gallery-lightbox img { max-width: 90vw; max-height: 85vh; width: auto; height: auto; border-radius: 6px; box-shadow: 0 16px 48px rgba(0,0,0,.5); object-fit: contain; }
.home-gallery-lightbox-close { position: absolute; top: 20px; right: 24px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 28px; cursor: pointer; display: grid; place-items: center; transition: background .2s ease; }
.home-gallery-lightbox-close:hover { background: rgba(255,255,255,.25); }

@media (max-width: 900px) {
  .home-gallery-grid { columns: 2; column-gap: 16px; }
  .home-gallery-card { margin-bottom: 16px; }
  .home-gallery-overlay { opacity: 1; }
}
@media (max-width: 600px) {
  .home-gallery-section { padding: 56px 0; }
  .home-gallery-grid { columns: 1; }
  .home-gallery-header { margin-bottom: 32px; }
  .home-gallery-lightbox img { max-width: 96vw; max-height: 80vh; }
  .home-gallery-lightbox-close { top: 12px; right: 14px; width: 38px; height: 38px; font-size: 24px; }
}

/* Floating WhatsApp (top) + Phone (below) buttons on the right side of every page */
.floating-contact { position: fixed; right: 18px; bottom: 24px; z-index: 60; display: flex; flex-direction: column; gap: 12px; }
.floating-contact-button { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; color: #fff; text-decoration: none; box-shadow: 0 8px 20px rgba(7, 24, 39, .28); transition: transform .2s ease, box-shadow .2s ease; }
.floating-contact-button svg { width: 26px; height: 26px; }
.floating-contact-button.is-whatsapp { background: #25d366; }
.floating-contact-button.is-phone { background: #1462ad; }
.floating-contact-button.is-phone svg { width: 22px; height: 22px; }
.floating-contact-button:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 12px 26px rgba(7, 24, 39, .34); color: #fff; }
.floating-contact-button:focus-visible { outline: 3px solid #dfa953; outline-offset: 3px; }
@media (max-width: 600px) {
  .floating-contact { right: 12px; bottom: 16px; gap: 10px; }
  .floating-contact-button { width: 44px; height: 44px; }
  .floating-contact-button svg { width: 23px; height: 23px; }
  .floating-contact-button.is-phone svg { width: 20px; height: 20px; }
}
/* Floating buttons: smaller and slightly transparent (glass look); solid on hover */
.floating-contact { gap: 10px; }
.floating-contact-button { width: 42px; height: 42px; border: 1px solid rgba(255, 255, 255, .35); box-shadow: 0 6px 16px rgba(7, 24, 39, .2); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.floating-contact-button svg { width: 21px; height: 21px; }
.floating-contact-button.is-whatsapp { background: rgba(37, 211, 102, .78); }
.floating-contact-button.is-phone { background: rgba(20, 98, 173, .78); }
.floating-contact-button.is-phone svg { width: 18px; height: 18px; }
.floating-contact-button.is-whatsapp:hover, .floating-contact-button.is-whatsapp:focus-visible { background: #25d366; }
.floating-contact-button.is-phone:hover, .floating-contact-button.is-phone:focus-visible { background: #1462ad; }
@media (max-width: 600px) {
  .floating-contact { gap: 8px; }
  .floating-contact-button { width: 38px; height: 38px; }
  .floating-contact-button svg { width: 19px; height: 19px; }
  .floating-contact-button.is-phone svg { width: 16px; height: 16px; }
}

/* Gold buttons: header "Get in Touch" and the hero's main button (was blue) */
.nav-cta, .home-page .nav-cta { background: #dfa953; border-color: #e6b767; color: #111820; }
.nav-cta:hover, .home-page .nav-cta:hover { background: #edbd70; border-color: #edbd70; color: #111820; }
.hero .actions .btn:not(.outline), .home-page .hero .actions .btn:not(.outline) { background: #dfa953; border-color: #e6b767; color: #111820; }
.hero .actions .btn:not(.outline):hover, .home-page .hero .actions .btn:not(.outline):hover,
.actions .btn:first-child:not(.outline):hover, .home-page .actions .btn:first-child:not(.outline):hover { background: #edbd70; border-color: #edbd70; color: #111820; }

/* Header top line: email + phone */
.topbar-contact { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 26px; }
.topbar-contact a { display: inline-flex; align-items: center; gap: 8px; color: #dfe5ea; text-decoration: none; letter-spacing: .01em; }
.topbar-contact a:hover { color: #edbd70; }
.topbar-contact svg { flex: 0 0 auto; width: 15px; height: 15px; color: #dfa953; }
@media (max-width: 600px) { .topbar-contact { gap: 6px 16px; } .topbar-contact svg { width: 13px; height: 13px; } }

/* Home "About National Detectives" image: show the whole picture (square uploads were cropped by a 265px height cap) */
.home-about-visual { width: 100%; max-width: 520px; min-height: 0; justify-self: end; }
.home-about-visual img { width: 100%; height: auto; min-height: 0; max-height: none; object-fit: contain; }
@media (max-width: 900px) {
  .home-about-visual { max-width: 100%; justify-self: stretch; }
  .home-about-visual, .home-about-visual img { min-height: 0; max-height: none; }
}

/* Home "About" section: smaller image box that grows with the text; any image size fills it automatically.
   Short text -> square box (a square upload shows completely); longer text -> the box gets taller and the image still fills it. */
.home-about-layout { grid-template-columns: minmax(0, 1fr) minmax(260px, 380px); align-items: stretch; gap: 48px; }
.home-about-copy { align-self: center; }
.home-about-visual { width: 100%; max-width: none; justify-self: stretch; align-self: stretch; min-height: 0; border-radius: 10px; }
.home-about-visual img { width: 100%; height: 100%; min-height: 380px; max-height: none; object-fit: cover; object-position: center; }
@media (max-width: 900px) {
  .home-about-layout { grid-template-columns: 1fr; gap: 20px; }
  .home-about-visual { max-width: 520px; justify-self: center; }
  .home-about-visual img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
}

/* Home "About National Detectives" text styling: gold rule under the heading, a lead first paragraph,
   calm body text and a "Know More About Us" link. Text itself comes from the admin unchanged. */
.home-about-copy { max-width: 640px; }
.home-about-section .home-section-heading { margin-bottom: 0; }
.home-about-section .home-section-heading h2::after { content: ""; display: block; width: 52px; height: 2px; margin: 16px 0 20px; border-radius: 2px; background: #c9934a; }
.home-about-section .home-about-description { max-width: none; color: #53606b; font-size: 16px; line-height: 1.75; }
.home-about-section .home-about-description > p { margin: 0 0 14px; }
.home-about-section .home-about-description > p:first-child { margin-bottom: 18px; padding-left: 16px; border-left: 3px solid #c9934a; color: #17212b; font-size: 19px; font-weight: 500; line-height: 1.6; }
.home-about-section .home-about-description > p:last-child { margin-bottom: 0; }
.home-about-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; padding: 11px 20px; border: 1px solid #c9934a; border-radius: 8px; color: #17212b; font-size: 15px; font-weight: 600; text-decoration: none; transition: background .2s ease, color .2s ease; }
.home-about-link span { color: #c9934a; transition: transform .2s ease, color .2s ease; }
.home-about-link:hover { background: #dfa953; border-color: #dfa953; color: #111820; }
.home-about-link:hover span { color: #111820; transform: translateX(3px); }
@media (max-width: 600px) {
  .home-about-section .home-about-description > p:first-child { font-size: 17px; }
}

/* ===== Inner-page banners: one centred, premium text style on every page (the Home slider is separate) =====
   Applies to .page-hero (About-style pages, Contact, Blogs, Cities, legal pages…), .sd-hero (About + each service)
   and .services-hero (Services page). Text comes from the admin; the look stays the same whatever the words. */
.page-hero, .sd-hero, .services-hero { display: flex; align-items: center; justify-content: center; min-height: 340px; text-align: center; }
.page-hero { padding: 56px 0; }
.services-hero-slide { justify-content: center; text-align: center; }
.page-hero .container, .sd-hero .sd-hero-copy, .services-hero .services-hero-copy { display: flex; flex-direction: column; align-items: center; margin-inline: auto; text-align: center; }
/* Small label above the heading, with short gold rules either side */
.services-hero .services-hero-copy > .eyebrow, .page-hero .container > .eyebrow { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 14px; color: #dfa953; font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.services-hero .services-hero-copy > .eyebrow::before, .services-hero .services-hero-copy > .eyebrow::after,
.page-hero .container > .eyebrow::before, .page-hero .container > .eyebrow::after { content: ""; width: 28px; height: 1px; background: #dfa953; }
/* Heading + centred gold rule */
.page-hero h1, .sd-hero h1, .services-hero h1, .services-hero-slide h2 { max-width: 880px; margin: 0 auto; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(32px, 4.2vw, 54px); font-weight: 700; line-height: 1.15; letter-spacing: .005em; text-shadow: 0 2px 22px rgba(0, 0, 0, .35); }
.page-hero h1::after, .sd-hero h1::after, .services-hero h1::after, .services-hero-slide h2::after { content: ""; display: block; width: 64px; height: 2px; margin: 20px auto 0; border-radius: 2px; background: linear-gradient(90deg, rgba(223, 169, 83, 0), #dfa953 20%, #dfa953 80%, rgba(223, 169, 83, 0)); }
.sd-hero .sd-divider { display: none; }
/* Description */
.page-hero p, .sd-hero p, .services-hero p, .services-hero-text { max-width: 640px; margin: 18px auto 0; color: #e8edf1; font-size: clamp(16px, 1.4vw, 18px); line-height: 1.7; }
.services-hero-text p { margin: 0; }
/* Even, centred shade so the photo stays visible and the text stays readable */
.page-hero::before { background: radial-gradient(ellipse at center, rgba(7, 24, 39, .74) 0%, rgba(7, 24, 39, .52) 55%, rgba(7, 24, 39, .38) 100%); }
.sd-hero::after, .services-hero::after, .services-hero-slide::after { background: radial-gradient(ellipse at center, rgba(7, 24, 39, .72) 0%, rgba(7, 24, 39, .5) 55%, rgba(7, 24, 39, .32) 100%); }
.sd-hero-image, .about-hero > .section-bg-image, .services-hero > .section-bg-image { object-position: center; }
@media (max-width: 600px) {
  .page-hero, .sd-hero, .services-hero { min-height: 280px; }
  .page-hero h1::after, .sd-hero h1::after, .services-hero h1::after, .services-hero-slide h2::after { margin-top: 16px; }
  .page-hero p, .sd-hero p, .services-hero p, .services-hero-text { margin-top: 14px; }
}

/* ===== Inner-page banners v2: text in a frosted-glass card, inset from the edge; the photo stays visible =====
   (overrides the centred version above; same pages: .page-hero, .sd-hero, .services-hero + its slides) */
.page-hero, .sd-hero, .services-hero { justify-content: flex-start; text-align: left; }
.services-hero-slide { justify-content: flex-start; text-align: left; }
.page-hero .container, .sd-hero .sd-hero-copy, .services-hero .services-hero-copy, .services-hero-slide .services-hero-copy {
  align-items: flex-start; text-align: left;
  width: min(640px, calc(100% - 40px));
  margin-left: max(20px, calc((100% - var(--container-width, 1200px)) / 2 + 20px)); margin-right: auto;
  padding: 34px 38px 36px;
  border: 1px solid rgba(255, 255, 255, .14); border-left: 3px solid #dfa953; border-radius: 14px;
  background: rgba(7, 24, 39, .42); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .28);
}
/* Label: one short gold rule after it */
.services-hero .services-hero-copy > .eyebrow, .page-hero .container > .eyebrow { margin: 0 0 12px; }
.services-hero .services-hero-copy > .eyebrow::before, .page-hero .container > .eyebrow::before { content: none; }
/* Heading + gold rule, left aligned */
.page-hero h1, .sd-hero h1, .services-hero h1, .services-hero-slide h2 { max-width: none; margin: 0; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.15; }
.page-hero h1::after, .sd-hero h1::after, .services-hero h1::after, .services-hero-slide h2::after { width: 56px; margin: 18px 0 0; background: #dfa953; }
/* Description */
.page-hero p, .sd-hero p, .services-hero p, .services-hero-text { max-width: none; margin: 16px 0 0; color: #eef2f5; font-size: clamp(15px, 1.3vw, 17px); line-height: 1.7; }
/* Light shade only: the card gives the text its contrast, so the photo stays clearly visible */
.page-hero::before { background: linear-gradient(90deg, rgba(7, 24, 39, .5) 0%, rgba(7, 24, 39, .22) 55%, rgba(7, 24, 39, .1) 100%); }
.sd-hero::after, .services-hero::after, .services-hero-slide::after { background: linear-gradient(90deg, rgba(7, 24, 39, .5) 0%, rgba(7, 24, 39, .22) 55%, rgba(7, 24, 39, .1) 100%); }
@media (max-width: 600px) {
  .page-hero .container, .sd-hero .sd-hero-copy, .services-hero .services-hero-copy, .services-hero-slide .services-hero-copy {
    width: calc(100% - 32px); margin-left: 16px; padding: 24px 22px 26px; border-radius: 12px;
  }
  .page-hero::before, .sd-hero::after, .services-hero::after, .services-hero-slide::after { background: rgba(7, 24, 39, .35); }
}

/* Banners v3: no card. Text sits on the photo, inset from the edge, left aligned; a soft shade on the left keeps it readable. */
.page-hero .container, .sd-hero .sd-hero-copy, .services-hero .services-hero-copy, .services-hero-slide .services-hero-copy {
  padding: 0; border: 0; border-radius: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none;
  width: min(660px, calc(100% - 40px));
  margin-left: max(20px, calc((100% - var(--container-width, 1200px)) / 2 + 48px));
}
.page-hero h1, .sd-hero h1, .services-hero h1, .services-hero-slide h2 { text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }
.page-hero p, .sd-hero p, .services-hero p, .services-hero-text { text-shadow: 0 1px 10px rgba(0, 0, 0, .4); }
.page-hero::before { background: linear-gradient(90deg, rgba(7, 24, 39, .78) 0%, rgba(7, 24, 39, .5) 45%, rgba(7, 24, 39, .12) 80%, rgba(7, 24, 39, .05) 100%); }
.sd-hero::after, .services-hero::after, .services-hero-slide::after { background: linear-gradient(90deg, rgba(7, 24, 39, .78) 0%, rgba(7, 24, 39, .5) 45%, rgba(7, 24, 39, .12) 80%, rgba(7, 24, 39, .05) 100%); }
@media (max-width: 600px) {
  .page-hero .container, .sd-hero .sd-hero-copy, .services-hero .services-hero-copy, .services-hero-slide .services-hero-copy { width: calc(100% - 40px); margin-left: 20px; padding: 0; }
  .page-hero::before, .sd-hero::after, .services-hero::after, .services-hero-slide::after { background: rgba(7, 24, 39, .5); }
}

/* Service banner keeps the 1920x650 image shape, so the same image is never cropped here or on service cards. */
.service-page .sd-hero { aspect-ratio: 1920 / 650; min-height: 0; padding-top: 10px; padding-bottom: 18px; }
.service-page .sd-hero-image[hidden] { display: none; }
/* Set by js/script.js when the text does not fit on the image: full image on top, text below it. */
.service-page .sd-hero.is-plain { aspect-ratio: auto; padding-bottom: 56px; }
.service-page .sd-hero.is-stacked { display: block; aspect-ratio: auto; padding-bottom: 30px; }
.service-page .sd-hero.is-stacked::after { display: none; }
.service-page .sd-hero.is-stacked .sd-hero-image { position: static; display: block; width: 100%; height: auto; margin-bottom: 22px; }
.service-page .sd-hero.is-stacked .sd-hero-image[hidden] { display: none; }
/* Set by js/script.js for long service names: slightly smaller text so it still fits on the banner. */
.service-page .sd-hero.is-compact .sd-slide h1, .service-page .sd-hero.is-compact .sd-slide h2 { font-size: clamp(24px, 3vw, 40px); }
.service-page .sd-hero.is-compact .sd-slide h1::after, .service-page .sd-hero.is-compact .sd-slide h2::after { margin-top: 12px; }
.service-page .sd-hero.is-compact .sd-slide p { margin-top: 10px; line-height: 1.55; }
/* Service banner: rotating text slides over the one banner image */
.sd-slides { display: grid; }
.sd-slide { grid-area: 1 / 1; opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; pointer-events: none; }
.sd-slide.is-active { opacity: 1; transform: none; pointer-events: auto; }
.sd-slide-eyebrow { font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.sd-hero .sd-slide h1 em, .sd-hero .sd-slide h2 em { color: #dfa953; font-style: normal; }
.sd-hero .sd-slide h2 { max-width: none; margin: 0; color: #fff; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(30px, 3.6vw, 48px); font-weight: 700; line-height: 1.15; letter-spacing: .005em; text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }
.sd-hero .sd-slide h2::after { content: ""; display: block; width: 56px; height: 2px; margin: 18px 0 0; border-radius: 2px; background: #dfa953; }
@media (prefers-reduced-motion: reduce) { .sd-slide { transition: none; transform: none; } }

/* ---------- Home "Our Certifications": logo cards in one line over a clean, light background ---------- */
.home-certifications-section { position: relative; padding: 46px 0 52px; background: rgba(13,30,45,.75); border-top: 3px solid #c9934a; color: #fff; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.home-certifications-section.home-image-background { --home-image-overlay: rgba(13,30,45,.68); }
.home-certifications-section > .home-section-background { opacity: .4; object-position: center; }
.home-certifications-heading { text-align: center; }
.home-certifications-heading > .eyebrow { display: inline-flex; align-items: center; gap: 10px; color: #d4a24f; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.home-certifications-heading > .eyebrow::before { content: ""; width: 26px; height: 1px; background: #c9934a; }
.home-certifications-heading h2 { margin: 10px 0 0; color: #fff; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.2; }
/* Cards: always one line; more logos scroll sideways instead of wrapping */
.home-certifications-grid { display: flex; flex-wrap: nowrap; justify-content: center; gap: 18px; margin-top: 28px; padding: 6px 4px 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.home-certifications-grid::-webkit-scrollbar { display: none; }
.home-certification { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 170px; height: 116px; padding: 16px 20px; border: 1px solid #ece4d6; border-radius: 12px; background: #fff; box-shadow: 0 8px 22px rgba(23, 33, 43, .08); scroll-snap-align: center; transition: transform .2s ease, box-shadow .2s ease; }
.home-certification:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(23, 33, 43, .12); }
.home-certification img { flex: 0 1 auto; width: 100%; height: 100%; max-height: 80px; object-fit: contain; }
@media (max-width: 760px) {
  .home-certifications-grid { justify-content: flex-start; gap: 12px; }
  .home-certification { width: 140px; height: 100px; padding: 14px 16px; }
  .home-certification img { max-height: 68px; }
}
/* Certification logos: less inner padding so logos with built-in white space still read clearly */
.home-certification { width: 180px; height: 120px; padding: 10px 12px; }
.home-certification img { max-height: 100px; }
@media (max-width: 760px) { .home-certification { width: 150px; height: 104px; padding: 8px 10px; } .home-certification img { max-height: 86px; } }
/* Certification logos: larger for clearer visibility */
.home-certification { width: 210px; height: 140px; padding: 10px 12px; }
.home-certification img { max-height: 120px; }
@media (max-width: 1100px) { .home-certification { width: 180px; height: 124px; } .home-certification img { max-height: 106px; } }
@media (max-width: 760px) { .home-certification { width: 170px; height: 118px; padding: 8px 10px; } .home-certification img { max-height: 100px; } }
@media (max-width: 1100px) and (min-width: 761px) { .home-certifications-grid { gap: 14px; } .home-certification { width: 166px; height: 118px; } .home-certification img { max-height: 100px; } }
/* Certificate logos: slightly stronger contrast so the small printed names read darker */
.home-certification img { filter: contrast(1.18) saturate(1.05); image-rendering: auto; }

/* ========== Contact Page ========== */

/* Form Section */
.cp-form-section { padding: 56px 0 0; background: #faf7f2; }
.cp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: start; }
.cp-form-card { padding: 44px 40px; background: #fff; border: 1px solid #ece4d6; border-radius: 14px 0 0 14px; }
.cp-eyebrow { color: #b88a4a; font-size: 12px; font-weight: 700; letter-spacing: .18em; margin-bottom: 10px; }
.cp-form-heading { font-family: var(--font-heading); font-size: clamp(26px, 2.6vw, 36px); color: #17212b; margin: 0 0 8px; line-height: 1.2; }
.cp-form-subtitle { color: #5d6670; font-size: 14px; margin: 0 0 28px; line-height: 1.6; }
.cp-formgrid { gap: 16px; }
.cp-formgrid .field label { font-size: 13px; font-weight: 700; color: #17212b; }
.cp-formgrid .field input,
.cp-formgrid .field select,
.cp-formgrid .field textarea { padding: 13px 14px; border: 1px solid #d7d0c5; border-radius: 8px; font-size: 14px; background: #fff; transition: border-color .2s; }
.cp-formgrid .field input:focus,
.cp-formgrid .field select:focus,
.cp-formgrid .field textarea:focus { border-color: #b88a4a; outline: none; box-shadow: 0 0 0 3px rgba(184, 138, 74, .12); }
.cp-formgrid .field textarea { min-height: 120px; resize: vertical; }
.cp-captcha-row { grid-column: 1 / -1; display: flex; align-items: center; gap: 0; }
.cp-captcha { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 700; color: #17212b; }
.cp-captcha-eq { font-size: 20px; font-weight: 700; color: #17212b; }
.cp-captcha-input { width: 100px; padding: 10px 14px !important; border: 1px solid #d7d0c5; border-radius: 8px; font-size: 15px; text-align: center; }
.cp-captcha-input:focus { border-color: #b88a4a; outline: none; box-shadow: 0 0 0 3px rgba(184, 138, 74, .12); }
.cp-submit-row { grid-column: 1 / -1; }
.cp-submit-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px; border-radius: 8px; background: #c9934a; border: 1px solid #c9934a; color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; transition: background .2s, transform .15s; }
.cp-submit-btn:hover { background: #b8822e; transform: translateY(-1px); }

/* Form right-side visual */
.cp-form-visual { position: relative; overflow: hidden; border-radius: 0 14px 14px 0; aspect-ratio: 1 / 1; display: flex; flex-direction: column; justify-content: flex-end; }
.cp-form-visual .section-bg-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cp-form-visual-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 24, 39, .1) 0%, rgba(7, 24, 39, .25) 50%, rgba(7, 24, 39, .7) 100%); z-index: 1; }
.cp-quote-mark { position: absolute; top: 26px; right: 36px; z-index: 2; font-family: Georgia, serif; font-size: 120px; line-height: 1; color: rgba(201, 147, 74, .35); }
.cp-form-visual-text { position: relative; z-index: 2; padding: 30px 32px; }
.cp-form-visual-text em { font-style: italic; color: #fff; font-family: var(--font-heading); font-size: clamp(24px, 2.4vw, 34px); line-height: 1.3; text-shadow: 0 2px 16px rgba(0, 0, 0, .45); }

/* Feature Cards */
.cp-features-section { padding: 48px 0; background: #faf7f2; }
.cp-features-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.cp-feature { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 28px 16px; background: transparent; }
.cp-feature-icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: linear-gradient(135deg, #f5e6cc, #eedcc0); margin-bottom: 16px; }
.cp-feature-icon svg { width: 30px; height: 30px; color: #9b6c2c; }
.cp-feature h3 { font-family: var(--font-heading); font-size: 17px; color: #17212b; margin: 0 0 8px; font-weight: 700; }
.cp-feature p { font-size: 13px; color: #5d6670; line-height: 1.55; margin: 0; }

/* Contact Information Section */
.cp-info-section { padding: 56px 0; background: #0b1f30; color: #fff; position: relative; overflow: hidden; }
.cp-info-section::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 50%, rgba(184, 138, 74, .06), transparent 70%); pointer-events: none; }
.cp-info-heading { font-family: var(--font-heading); font-size: clamp(28px, 3vw, 40px); color: #fff; margin: 0 0 8px; position: relative; }
.cp-info-subtitle { color: #c4ccd1; font-size: 15px; margin: 0 0 36px; position: relative; }
.cp-info-grid { display: flex; align-items: flex-start; gap: 40px; position: relative; }
.cp-info-item { display: flex; gap: 18px; align-items: flex-start; flex: 1; }
.cp-info-icon { display: grid; place-items: center; flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; background: rgba(184, 138, 74, .15); border: 1px solid rgba(184, 138, 74, .3); }
.cp-info-icon svg { width: 24px; height: 24px; color: #dfa953; }
.cp-info-item h3 { font-family: var(--font-heading); font-size: 18px; color: #fff; margin: 0 0 6px; }
.cp-info-value { font-size: 16px; font-weight: 600; color: #e8edf1; margin: 0 0 4px; }
.cp-info-meta { font-size: 13px; color: #8e9ba5; margin: 0; }
.cp-info-divider { width: 1px; align-self: stretch; background: rgba(255, 255, 255, .12); flex: 0 0 1px; }

/* Our Presence Section */
.cp-presence-section { padding: 56px 0 64px; background: #f9f5ef; position: relative; overflow: hidden; }
.cp-presence-eyebrow { text-align: center; color: #9b6c2c; font-size: 12px; font-weight: 700; letter-spacing: .2em; margin-bottom: 10px; }
.cp-presence-heading { text-align: center; font-family: var(--font-heading); font-size: clamp(26px, 2.8vw, 38px); color: #17212b; margin: 0 0 10px; }
.cp-presence-subtitle { text-align: center; color: #5d6670; font-size: 15px; margin: 0 0 32px; }
.cp-city-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.cp-city { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #fff; border: 1px solid #e8dcc8; border-radius: 8px; font-size: 13px; font-weight: 600; color: #17212b; white-space: nowrap; transition: border-color .2s, box-shadow .2s; }
.cp-city:hover { border-color: #c9934a; box-shadow: 0 4px 12px rgba(184, 138, 74, .12); }
.cp-city-pin { flex: 0 0 auto; width: 14px; height: 14px; color: #c9934a; }
.cp-city a { color: inherit; text-decoration: none; }
.cp-city a:hover { color: #c9934a; }
.cp-city.is-hidden { display: none; }
.cp-presence-toggle { text-align: center; margin-top: 28px; }
.cp-view-toggle { padding: 12px 36px; border-radius: 8px; background: #c9934a; border: 1px solid #c9934a; color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; transition: background .2s; }
.cp-view-toggle:hover { background: #b8822e; }

/* Features + Our Presence: admin-changeable background image (Background Images page) under a soft cream wash so text stays readable */
.cp-features-section, .cp-presence-section { position: relative; isolation: isolate; overflow: hidden; }
.cp-features-section > .section-bg-image, .cp-presence-section > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cp-features-section:has(> .section-bg-image)::before, .cp-presence-section:has(> .section-bg-image)::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(250, 247, 242, .72); pointer-events: none; }
.cp-features-section:has(> .section-bg-image) .cp-feature { background: rgba(255, 255, 255, .55); border-radius: 12px; }

/* Our Presence: the artwork is already soft, so only a light wash; landmarks stay on the sides */
.cp-presence-section:has(> .section-bg-image)::before { background: rgba(250, 247, 242, .12); }
.cp-presence-section > .section-bg-image { object-position: center bottom; }

/* Contact Information: admin-changeable background under a dark navy wash (darker on the text side) */
.cp-info-section { isolation: isolate; }
.cp-info-section > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cp-info-section:has(> .section-bg-image)::before { z-index: -1; background: linear-gradient(90deg, rgba(8, 24, 38, .95) 0%, rgba(8, 24, 38, .86) 45%, rgba(8, 24, 38, .55) 100%); }

/* Contact Page Responsive */
@media (max-width: 1050px) {
  .cp-features-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .cp-city-grid { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 900px) {
  .cp-form-grid { grid-template-columns: 1fr; }
  .cp-form-card { border-radius: 14px 14px 0 0; padding: 32px 24px; }
  .cp-form-visual { border-radius: 0 0 14px 14px; min-height: 280px; }
  .cp-info-grid { flex-direction: column; gap: 28px; }
  .cp-info-divider { width: 100%; height: 1px; flex: 0 0 1px; }
  .cp-city-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 700px) {
  .cp-form-section { padding: 36px 0 0; }
  .cp-form-card { padding: 24px 18px; }
  .cp-formgrid { grid-template-columns: 1fr; }
  .cp-formgrid .field.full { grid-column: auto; }
  .cp-captcha-row { grid-column: auto; }
  .cp-submit-row { grid-column: auto; }
  .cp-features-section { padding: 32px 0; }
  .cp-features-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .cp-feature { padding: 20px 12px; }
  .cp-feature-icon { width: 52px; height: 52px; }
  .cp-feature-icon svg { width: 24px; height: 24px; }
  .cp-info-section { padding: 40px 0; }
  .cp-presence-section { padding: 40px 0 48px; }
  .cp-city-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .cp-city { padding: 8px 10px; font-size: 12px; gap: 6px; }
  .cp-city-pin { width: 12px; height: 12px; }
}
@media (max-width: 480px) {
  .cp-city-grid { grid-template-columns: repeat(2, 1fr); }
  .cp-features-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .cp-captcha { font-size: 17px; }
  .home-process-grid { grid-template-columns: 1fr; }
}

/* ========== Our Edge Page ========== */

/* -- Accent colour: bright blue per the reference design -- */
.edge-page { --oe-blue: #4361ee; --oe-blue-light: #5a7bff; --oe-dark: #0a0f1e; --oe-navy: #0d1529; }

/* 1. Hero */
.oe-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; justify-content: space-between; min-height: 420px; padding: 60px 0; background: var(--oe-dark); color: #fff; }
.oe-hero > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.oe-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,15,30,.82) 0%, rgba(10,15,30,.55) 45%, rgba(10,15,30,.25) 70%, rgba(10,15,30,.4) 100%); pointer-events: none; }
.oe-hero-copy { position: relative; z-index: 1; width: min(560px, 50%); margin-left: max(20px, calc((100% - var(--container-width, 1200px)) / 2)); }
.oe-label { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #c8cdd4; }
.oe-label-line { display: inline-block; width: 40px; height: 2px; background: var(--oe-blue); }
.oe-hero h1 { margin: 14px 0 0; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(42px, 5.5vw, 72px); font-weight: 800; line-height: 1.05; color: #fff; }
.oe-accent { color: var(--oe-blue); }
.oe-hero-rule { width: 56px; height: 3px; margin: 16px 0; background: var(--oe-blue); border-radius: 2px; }
.oe-hero p { max-width: 440px; margin: 0 0 24px; color: #d0d5dc; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.65; }
.oe-hero-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; border-radius: 8px; background: var(--oe-blue); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; transition: background .2s, transform .15s; }
.oe-hero-btn:hover { background: var(--oe-blue-light); transform: translateY(-1px); color: #fff; }
.oe-hero-btn span { font-size: 18px; }

/* Floating tags on the right */
.oe-hero-tags { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 14px; margin-right: max(20px, calc((100% - var(--container-width, 1200px)) / 2 + 40px)); }
.oe-tag { display: inline-flex; align-items: center; gap: 10px; padding: 10px 22px; border: 1px solid rgba(67, 97, 238, .45); border-radius: 8px; background: rgba(67, 97, 238, .1); color: #fff; font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.oe-tag svg { color: var(--oe-blue-light); }

/* 2. What Makes Us Different */
.oe-approach { position: relative; isolation: isolate; overflow: hidden; padding: 60px 0; background: #fff; }
.oe-approach > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.oe-approach:has(> .section-bg-image)::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255,255,255,.88); pointer-events: none; }
.oe-eyebrow { display: flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #555d68; margin-bottom: 12px; }
.oe-eyebrow-line { display: inline-block; width: 36px; height: 2px; background: var(--oe-blue, #4361ee); }
.oe-eyebrow-light { color: rgba(255,255,255,.7); }
.oe-approach h2 { margin: 0 0 28px; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(26px, 2.8vw, 38px); color: #111820; line-height: 1.18; }
.oe-approach-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.oe-approach-cols p { margin: 0; color: #4a5260; font-size: 15px; line-height: 1.7; }
.oe-approach-cols p:last-child { padding-left: 36px; border-left: 2px solid #d5dae0; }

/* 3. Key Strengths */
.oe-strengths { position: relative; isolation: isolate; overflow: hidden; padding: 56px 0 60px; background: #f7f8fa; }
.oe-strengths > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.oe-strengths:has(> .section-bg-image)::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(247,248,250,.9); pointer-events: none; }
.oe-strengths h2 { margin: 0 0 32px; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(26px, 2.8vw, 38px); color: #111820; line-height: 1.18; }
.oe-strengths-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.oe-strength { display: flex; gap: 16px; padding: 24px 20px; border: 1px solid #e4e7ec; border-radius: 12px; background: #fff; transition: box-shadow .2s, transform .2s; }
.oe-strength:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,.07); }
.oe-strength-icon { flex: 0 0 52px; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 10px; background: #eef0f8; color: var(--oe-blue, #4361ee); }
.oe-strength h3 { margin: 0 0 6px; font-family: var(--font-body, Arial, Helvetica, sans-serif); font-size: 16px; font-weight: 700; color: #111820; line-height: 1.3; }
.oe-strength p { margin: 0; font-size: 13.5px; color: #5a6270; line-height: 1.55; }

/* 4. Investigation Process */
.oe-process { position: relative; isolation: isolate; overflow: hidden; padding: 56px 0 64px; background: var(--oe-navy, #0d1529); color: #fff; }
.oe-process > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.oe-process::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(13,21,41,.88) 0%, rgba(13,21,41,.7) 50%, rgba(13,21,41,.4) 100%); pointer-events: none; }
.oe-process .container { position: relative; z-index: 1; }
.oe-process-top { margin-bottom: 40px; }
.oe-process-text { max-width: 520px; }
.oe-process h2 { margin: 0 0 12px; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(26px, 2.8vw, 38px); color: #fff; line-height: 1.18; }
.oe-process-text > p { margin: 0; color: #b0b8c4; font-size: 15px; line-height: 1.65; }
.oe-process-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; }
.oe-step { position: relative; text-align: center; padding: 0 12px; }
.oe-step-circle { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 16px; border: 2px solid var(--oe-blue); border-radius: 50%; color: var(--oe-blue-light); background: rgba(67, 97, 238, .1); }
.oe-step-arrow { position: absolute; top: 30px; right: -8px; color: rgba(255,255,255,.35); font-size: 20px; font-weight: 300; }
.oe-step:last-child .oe-step-arrow { display: none; }
.oe-step h3 { margin: 0 0 8px; font-family: var(--font-body, Arial, Helvetica, sans-serif); font-size: 15px; font-weight: 700; color: #fff; }
.oe-step p { margin: 0; font-size: 13px; color: #8e97a6; line-height: 1.55; }

/* 5. CTA */
.oe-cta { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 380px; padding: 60px 0; background: var(--oe-dark); color: #fff; }
.oe-cta > .section-bg-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.oe-cta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,15,30,.88) 0%, rgba(10,15,30,.6) 50%, rgba(10,15,30,.3) 100%); pointer-events: none; }
.oe-cta-copy { position: relative; z-index: 1; width: min(560px, calc(100% - 40px)); margin-left: max(20px, calc((100% - var(--container-width, 1200px)) / 2)); }
.oe-cta h2 { margin: 0 0 16px; font-family: var(--font-heading, Georgia, "Times New Roman", serif); font-size: clamp(32px, 3.6vw, 48px); font-weight: 800; line-height: 1.1; color: #fff; }
.oe-cta p { max-width: 480px; margin: 0 0 28px; color: #c0c7d0; font-size: clamp(15px, 1.3vw, 17px); line-height: 1.7; }
.oe-cta-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; border-radius: 8px; background: var(--oe-blue); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; transition: background .2s, transform .15s; }
.oe-cta-btn:hover { background: var(--oe-blue-light); transform: translateY(-1px); color: #fff; }
.oe-cta-btn span { font-size: 18px; }

/* ===== Edge Page Responsive ===== */
@media (max-width: 1000px) {
  .oe-hero { flex-direction: column; align-items: flex-start; gap: 32px; padding: 48px 0; }
  .oe-hero-copy { width: calc(100% - 40px); margin-left: 20px; }
  .oe-hero-tags { flex-direction: row; flex-wrap: wrap; margin: 0 20px; }
  .oe-strengths-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .oe-approach-cols { grid-template-columns: 1fr; gap: 20px; }
  .oe-approach-cols p:last-child { padding-left: 0; border-left: 0; padding-top: 20px; border-top: 2px solid #e4e7ec; }
  .oe-process-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 28px; }
  .oe-step:nth-child(3) .oe-step-arrow { display: none; }
  .oe-hero { min-height: auto; }
}
@media (max-width: 560px) {
  .oe-strengths-grid { grid-template-columns: 1fr; }
  .oe-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oe-step:nth-child(2) .oe-step-arrow, .oe-step:nth-child(4) .oe-step-arrow { display: none; }
  .oe-step:nth-child(3) .oe-step-arrow { display: block; }
  .oe-hero-tags { gap: 8px; }
  .oe-tag { padding: 8px 14px; font-size: 12px; }
  .oe-hero h1 { font-size: clamp(36px, 10vw, 52px); }
  .oe-cta { min-height: auto; padding: 48px 0; }
}

/* ============================================================
   CITY DETAIL PAGE (city-detail.html)
   ============================================================ */

/* Banner */
.cd-hero { position: relative; min-height: 420px; display: flex; align-items: flex-end; background: #071420; overflow: hidden; }
.cd-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.cd-hero::after { content: none; }
.cd-hero-copy { position: relative; z-index: 2; padding-bottom: 52px; padding-top: 52px; }
.cd-crumbs { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #8fafc7; margin-bottom: 16px; flex-wrap: wrap; }
.cd-crumbs a { color: #8fafc7; text-decoration: none; transition: color .15s; }
.cd-crumbs a:hover { color: #c9934a; }
.cd-crumbs span[aria-hidden] { color: #4a6070; }
.cd-hero-copy h1 { font-family: var(--font-heading, Georgia,"Times New Roman",serif); font-size: clamp(28px, 4vw, 48px); color: #fff; line-height: 1.15; margin: 0 0 14px; }
.cd-hero-copy p { font-size: clamp(14px, 1.6vw, 17px); color: #c8d8e8; max-width: 620px; line-height: 1.65; margin: 0; }

/* Body — single background, continuous article feel */
.cd-body { background: #faf8f4; padding: 56px 0 68px; }

/* Section wrappers — no separate backgrounds, just flow */
.cd-section-wrap { padding: 0; background: none; }
.cd-section-wrap-alt { background: none; }

/* Each section clears floats, subtle divider between them */
.cd-section { overflow: hidden; padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid #e0d8cc; }
.cd-section-wrap:last-child .cd-section,
.cd-section-wrap-alt:last-child .cd-section { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

/* Image floats — normal: left, alt: right */
.cd-sec-img { float: right; width: 44%; margin: 6px 0 20px 36px; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 32px rgba(0,0,0,.12); }
.cd-section-alt .cd-sec-img { float: left; margin: 6px 36px 20px 0; }
.cd-sec-img img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }

/* Text flows naturally — border on outer edge (left for 1st, right for 2nd) */
.cd-sec-content { border-left: 3px solid #c9934a; padding-left: 22px; }
.cd-section-alt .cd-sec-content { border-left: none; border-right: 3px solid #c9934a; padding-left: 0; padding-right: 22px; }
.cd-sec-content h2, .cd-sec-content h3 { font-family: var(--font-heading, Georgia,"Times New Roman",serif); color: #17212b; margin: 0 0 14px; line-height: 1.3; }
.cd-sec-content h2 { font-size: clamp(20px, 2.2vw, 28px); }
.cd-sec-content h3 { font-size: clamp(17px, 1.8vw, 22px); }
.cd-sec-content p { color: #4a5568; font-size: 15.5px; line-height: 1.8; margin: 0 0 12px; }
.cd-sec-content p:last-child { margin-bottom: 0; }
.cd-sec-content ul { color: #4a5568; font-size: 15.5px; line-height: 1.8; padding-left: 20px; margin: 0 0 12px; }
.cd-sec-content strong { color: #17212b; }

/* Full-width text section (no image) */
.cd-section-full { padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid #e0d8cc; }
.cd-section-wrap:last-child .cd-section-full,
.cd-section-wrap-alt:last-child .cd-section-full { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.cd-section-full .cd-sec-content { display: block; max-width: 100%; }

/* Other Cities inline section */
.cd-other-cities-section { padding: 52px 0; background: #fff; border-top: 1px solid #ece4d6; }
.cd-other-cities-header { margin-bottom: 20px; }
.cd-other-cities-heading { font-family: var(--font-heading, Georgia,"Times New Roman",serif); font-size: clamp(22px, 2.4vw, 30px); color: #17212b; margin: 0; line-height: 1.25; }
.cd-city-arrow-btn { position: absolute; right: -20px; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 2px solid #c9934a; background: #fff; color: #c9934a; font-size: 28px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s; padding: 0; box-shadow: 0 4px 16px rgba(0,0,0,.12); z-index: 2; }
.cd-city-arrow-btn:hover { background: #c9934a; color: #fff; }
/* Wrapper needs relative positioning for the arrow */
.cd-other-cities-section .container { position: relative; }
.cd-city-grid { display: flex; overflow-x: auto; gap: 16px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.cd-city-grid::-webkit-scrollbar { display: none; }
.cd-city-card { flex: 0 0 180px; scroll-snap-align: start; display: flex; flex-direction: column; background: #faf8f4; border: 1px solid #ece4d6; border-radius: 12px; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow .2s, transform .2s; }
.cd-city-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.10); transform: translateY(-2px); }
.cd-city-card-img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.cd-city-card-img-placeholder { width: 100%; aspect-ratio: 4/3; background: #e8e0d4; }
.cd-city-card-body { padding: 10px 12px; }
.cd-city-card-name { display: block; font-size: 13.5px; font-weight: 700; color: #17212b; line-height: 1.3; margin-bottom: 3px; }
.cd-city-card:hover .cd-city-card-name { color: #c9934a; }
.cd-city-card-arrow { font-size: 12px; color: #c9934a; font-weight: 600; }

/* Expert CTA bar */
.cd-cta-bar { background: #071420; padding: 52px 0; position: relative; overflow: hidden; }
.cd-cta-bar .section-bg-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.25; }
.cd-cta-bar .cd-cta-inner { position: relative; z-index: 1; }
.cd-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.cd-cta-text { flex: 1; min-width: 260px; }
.cd-cta-heading { font-family: var(--font-heading, Georgia,"Times New Roman",serif); font-size: clamp(20px, 2.2vw, 28px); font-weight: 700; color: #fff; margin: 0 0 10px; line-height: 1.25; }
.cd-cta-desc { font-size: 15px; color: #c8d8e8; line-height: 1.6; margin: 0; }
.cd-cta-btn { flex: 0 0 auto; display: inline-block; padding: 14px 28px; border-radius: 8px; background: #c9934a; color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap; transition: background .2s; }
.cd-cta-btn:hover { background: #b07d3a; }

/* Services section city heading override */
.cd-services-heading { font-family: var(--font-heading, Georgia,"Times New Roman",serif); font-size: clamp(22px, 2.4vw, 30px); color: #fff; margin: 0 0 28px; line-height: 1.25; }
.cd-services-heading em { color: #c9934a; font-style: normal; }

/* Responsive */
@media (max-width: 700px) {
  .cd-hero { min-height: 320px; }
  .cd-body { padding: 36px 0 48px; }
  .cd-sec-img, .cd-section-alt .cd-sec-img { float: none; width: 100%; margin: 0 0 20px 0; }
  .cd-section { padding-bottom: 32px; margin-bottom: 32px; }
  .cd-section-full { padding-bottom: 32px; margin-bottom: 32px; }
  .cd-other-cities-section { padding: 36px 0; }
  .cd-cta-bar { padding: 36px 0; }
  .cd-cta-inner { flex-direction: column; text-align: center; }
  .cd-city-card { flex: 0 0 150px; }
}

/* Legal pages: each bullet line is its own paragraph so it stays editable in the admin. */
.legal-article li > p { margin: 0; }

/* ---- Phone view polish (phones only; desktop and tablet layouts are untouched) ---- */
@media (max-width: 700px) {
  /* Safety net: long words and links wrap instead of pushing the page sideways. */
  h1, h2, h3, h4, p, li, a, td, th { overflow-wrap: break-word; }
  img, video, iframe { max-width: 100%; }
  /* City pages: the "Other City Pages" arrow sits inside the screen. */
  .cd-city-arrow-btn { right: 4px; width: 40px; height: 40px; font-size: 24px; }
  /* Services list: the round icon sits on the photo's bottom edge (photo is 1920x650), not over the title. */
  .service-card-icon { margin-top: calc((100% * 650 / 1920) - 23px); }
  /* Blog page "Related Articles": the arrows stay small round buttons. */
  .bd-related-item .bd-related-arrow { flex: none; width: 32px; height: 32px; font-size: 14px; }
  /* Blog page banner: a light dark layer keeps the white title and menu button readable on bright cover images. */
  .bd-banner::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(5,16,28,.55) 0%, rgba(5,16,28,.72) 100%); }
  /* Service page "Other Investigation Services": thumbnails big enough to see. */
  .sd-related-thumb { flex: 0 0 88px; width: 88px; height: 56px; aspect-ratio: auto; }
  /* Small service cards (home and city pages): readable text. */
  .home-service-copy h3 { font-size: 13px; }
  .home-service-copy p { font-size: 12px; }
  .home-service-copy { padding: 10px 10px 42px; }
  /* Footer "Important Links": two roomy columns instead of three cramped ones. */
  .reference-footer .footer-grid>div:last-child .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; row-gap: 6px; }
  /* Blogs pagination: Previous / Next stay on one line. */
  .bp-page-btn { white-space: nowrap; padding: 0 10px; }
}
@media (max-width: 600px) {
  /* Blogs page banner: keep room for the header that sits over it. */
  .bp-banner { padding-top: calc(44px + var(--site-header-h, 0px)); }
  /* Media Gallery: two pictures per row so the section is not endlessly long. */
  .home-gallery-grid { columns: 2; column-gap: 12px; }
  .home-gallery-card { margin-bottom: 12px; }
}
@media (max-width: 700px) {
  /* Home FAQ: on phones the questions sit on a darker panel so the white text stays readable over any part of the image. */
  .home-faq-right { padding: 4px 14px; border-radius: 12px; background: rgba(7, 24, 39, .55); }
}
@media (max-width: 700px) {
  /* Blog tables wider than the phone scroll sideways inside the article instead of moving the whole page. */
  .bd-article table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
@media (max-width: 420px) {
  /* Blogs pagination on the smallest phones: wraps onto a second line if it does not fit. */
  .bp-pagination { flex-wrap: wrap; row-gap: 8px; }
}

/* Blog "Related Articles" (all screens): the arrow stays a small round button next to the title. */
.bd-related-item .bd-related-arrow { flex: none; width: 32px; height: 32px; font-size: 14px; }
/* Blog banner on wider screens: a soft dark layer behind the title side keeps it readable on bright cover images. */
@media (min-width: 701px) {
  .bd-banner::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5,16,28,.72) 0%, rgba(5,16,28,.45) 50%, rgba(5,16,28,.08) 100%); }
}
