
/* ---------- Location/Industry/Service page shared components ---------- */
.oh-content-block{ max-width:760px; margin:0 auto; }
.oh-content-block h2{ font-size:clamp(26px,3vw,36px); font-weight:700; color:var(--ink); line-height:1.2; margin-bottom:16px; }
.oh-content-block > p.oh-lead{ font-size:16px; color:#5b5b70; line-height:1.7; margin-bottom:36px; }
.oh-content-block h3{ font-size:19px; font-weight:700; color:var(--accent-2); margin-bottom:10px; margin-top:28px; }
.oh-content-block p{ font-size:15px; color:#5b5b70; line-height:1.7; margin-bottom:14px; }

.oh-stat-band{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:1000px; margin:0 auto; }
.oh-stat-band-item{ text-align:center; padding:26px 18px; border-radius:16px; background:linear-gradient(160deg, rgba(41,38,114,0.06), rgba(27,197,189,0.05)); border:1px solid rgba(20,20,43,0.06); }
.oh-stat-band-item b{ display:block; font-family:'Kumbh Sans',sans-serif; font-size:clamp(24px,2.6vw,32px); font-weight:800; color:var(--accent-2); margin-bottom:8px; }
.oh-stat-band-item span{ font-size:13.5px; color:#5b5b70; line-height:1.4; }

.oh-split{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; max-width:1200px; margin:0 auto; }
.oh-split.oh-reverse{ direction:rtl; }
.oh-split.oh-reverse > *{ direction:ltr; }
.oh-split h2{ font-size:clamp(26px,3vw,36px); font-weight:700; color:var(--ink); line-height:1.18; margin:16px 0; }
.oh-split p{ color:#5b5b70; font-size:15.5px; line-height:1.7; margin-bottom:16px; }
.oh-split ul{ list-style:none; padding:0; margin:0 0 20px; }
.oh-split li{ display:flex; align-items:center; gap:10px; font-size:14.5px; color:var(--ink); font-weight:600; margin-bottom:12px; }
.oh-split li .oh-dot{ width:8px; height:8px; border-radius:50%; background:var(--accent); flex-shrink:0; }
.oh-split-visual{ position:relative; border-radius:24px; min-height:340px; overflow:hidden; background:linear-gradient(150deg, rgba(41,38,114,0.08), rgba(27,197,189,0.06)); border:1px solid rgba(20,20,43,0.08); display:flex; align-items:center; justify-content:center; font-size:12px; letter-spacing:1.5px; color:rgba(20,20,43,0.3); text-transform:uppercase; text-align:center; padding:20px; }

.oh-testimonial{ max-width:820px; margin:0 auto; text-align:center; }
.oh-testimonial .oh-mark{ font-family:'Kumbh Sans',sans-serif; font-size:56px; font-weight:800; color:rgba(41,38,114,0.15); line-height:1; margin-bottom:6px; }
.oh-testimonial blockquote{ font-family:'Kumbh Sans',sans-serif; font-size:clamp(19px,2.2vw,25px); font-weight:600; color:var(--ink); line-height:1.4; margin:0 0 22px; }
.oh-testimonial .oh-author{ display:flex; align-items:center; justify-content:center; gap:12px; }
.oh-testimonial .oh-avatar{ width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg, var(--accent-2), var(--accent)); flex-shrink:0; }
.oh-testimonial .oh-author-info{ text-align:left; }
.oh-testimonial .oh-author-info b{ display:block; font-size:14px; color:var(--ink); }
.oh-testimonial .oh-author-info span{ font-size:12.5px; color:#9a9aab; }

.oh-area-grid{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; max-width:960px; margin:0 auto; }
.oh-area-chip{
  padding:13px 24px; border-radius:999px; background:#fff; border:1px solid rgba(20,20,43,0.08);
  font-weight:600; font-size:14px; color:var(--ink); text-decoration:none !important;
  box-shadow:0 3px 12px rgba(20,20,43,0.04); transition:border-color .25s, transform .25s, background .25s;
}
.oh-area-chip:hover{ border-color:var(--accent); transform:translateY(-3px); background:rgba(27,197,189,0.06); }

.oh-spotlight{ display:grid; grid-template-columns:1fr 1fr; max-width:1200px; margin:0 auto; border-radius:28px; overflow:hidden; box-shadow:0 26px 60px -24px rgba(18,16,58,0.5); }
.oh-spotlight-visual{ background:linear-gradient(150deg, rgba(255,255,255,0.06), transparent); min-height:100%; display:flex; align-items:center; justify-content:center; font-size:11px; letter-spacing:2px; color:rgba(255,255,255,0.25); text-transform:uppercase; padding:40px; background-color:var(--accent-2); }
.oh-spotlight-copy{ background:linear-gradient(150deg, var(--accent-2), var(--dark) 130%); padding:52px 44px; position:relative; overflow:hidden; }
.oh-spotlight-copy::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 60% at 20% 0%, rgba(27,197,189,0.28), transparent 65%); }
.oh-spotlight-copy > *{ position:relative; z-index:1; }
.oh-spotlight-copy .oh-tag{ font-size:12px; letter-spacing:1.5px; font-weight:700; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:14px; }
.oh-spotlight-copy h3{ color:#fff; font-size:26px; font-weight:700; margin-bottom:14px; font-family:'Kumbh Sans',sans-serif; }
.oh-spotlight-copy p{ color:rgba(255,255,255,0.65); font-size:14.5px; line-height:1.6; margin-bottom:24px; }
.oh-spotlight-stats{ display:flex; gap:26px; margin-bottom:24px; flex-wrap:wrap; }
.oh-spotlight-stats b{ display:block; font-family:'Kumbh Sans',sans-serif; font-size:24px; font-weight:800; color:#fff; }
.oh-spotlight-stats span{ font-size:11px; color:rgba(255,255,255,0.55); }

@media (max-width:820px){
  .oh-split{ grid-template-columns:1fr; gap:34px; }
  .oh-split.oh-reverse{ direction:ltr; }
  .oh-stat-band{ grid-template-columns:1fr; }
  .oh-spotlight{ grid-template-columns:1fr; }
  .oh-spotlight-visual{ min-height:160px; }
}

.oh-hero-left{ position:relative; justify-content:flex-start !important; padding-top:200px !important; padding-bottom:80px !important; min-height:0 !important; }

.oh-hero-visual{ position:absolute; top:0; right:6vw; bottom:0; width:36%; display:none; pointer-events:none; }
@media (min-width:1000px){ .oh-hero-visual{ display:block; } }

.oh-radar-card{
  position:absolute; top:210px; left:50%; transform:translateX(-50%); width:300px;
  background:rgba(20,18,50,0.55); border:1px solid rgba(255,255,255,0.14); border-radius:24px;
  padding:30px 26px 24px; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 30px 60px rgba(0,0,0,0.4);
}
.oh-radar-mini{ position:relative; width:200px; height:200px; margin:0 auto 22px; }
.oh-radar-ring{ position:absolute; inset:0; border:1px solid rgba(27,197,189,0.4); border-radius:50%; opacity:0; animation:oh-radar-pulse 3.6s cubic-bezier(.2,.6,.35,1) infinite; }
.oh-radar-ring:nth-child(2){ animation-delay:1.2s; }
.oh-radar-ring:nth-child(3){ animation-delay:2.4s; }
@keyframes oh-radar-pulse{
  0%{ transform:scale(0.15); opacity:0.9; border-color:rgba(27,197,189,0.7); }
  80%{ opacity:0.15; }
  100%{ transform:scale(1); opacity:0; border-color:rgba(27,197,189,0); }
}
.oh-radar-pin{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:16px; height:16px; border-radius:50%; background:var(--accent);
  box-shadow:0 0 0 6px rgba(27,197,189,0.22), 0 0 34px 9px rgba(27,197,189,0.35);
}
.oh-radar-dot{ position:absolute; width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.7); box-shadow:0 0 8px 2px rgba(27,197,189,0.4); }
.oh-radar-stats{ display:flex; justify-content:space-around; border-top:1px solid rgba(255,255,255,0.14); padding-top:18px; }
.oh-radar-stat{ text-align:center; }
.oh-radar-stat b{ display:block; font-family:'Kumbh Sans',sans-serif; font-size:22px; font-weight:800; color:#fff; }
.oh-radar-stat .oh-up{ color:var(--accent); }
.oh-radar-stat span{ display:block; font-size:11px; color:rgba(255,255,255,0.55); margin-top:2px; }

@media (max-width:640px){ .oh-eyebrow{ white-space:normal; text-align:center; } }

.oh-service-list{ max-width:1080px; margin:0 auto; }
.oh-service-row{
  display:flex; align-items:center; gap:32px; padding:34px 6px;
  border-bottom:1px solid rgba(20,20,43,0.08); text-decoration:none !important;
  cursor:pointer; transition:background .3s ease, padding-left .3s ease;
}
.oh-service-list > .oh-service-row:first-child{ border-top:1px solid rgba(20,20,43,0.08); }
.oh-service-row:hover{ background:rgba(27,197,189,0.05); padding-left:16px; }
.oh-service-num{ font-family:'Kumbh Sans',sans-serif; font-weight:800; font-size:14px; color:rgba(41,38,114,0.3); width:32px; flex-shrink:0; }
.oh-service-main{ flex:1; display:flex; align-items:center; gap:28px; flex-wrap:wrap; min-width:0; }
.oh-service-row h3{ font-family:'Kumbh Sans',sans-serif; font-weight:800; font-size:clamp(22px,2.8vw,32px); color:var(--ink) !important; margin:0; min-width:230px; transition:color .3s ease; }
.oh-service-row:hover h3{ color:var(--accent-2) !important; }
.oh-service-row p{ color:#5b5b70 !important; font-size:14.5px; margin:0; max-width:420px; line-height:1.5; }
.oh-service-arrow{
  width:46px; height:46px; border-radius:50%; border:1.5px solid rgba(20,20,43,0.15); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:var(--ink);
  transition:background .3s ease, border-color .3s ease, transform .3s ease, color .3s ease;
}
.oh-service-row:hover .oh-service-arrow{ background:var(--accent); border-color:var(--accent); color:#06231F; transform:rotate(45deg); }
@media (max-width:700px){
  .oh-service-row{ flex-wrap:wrap; }
  .oh-service-main{ flex-direction:column; align-items:flex-start; gap:8px; }
}

/* ---------- Picture service cards — real cards again (per feedback), but each with a coloured
   "media" header (icon on a brand gradient, standing in for photography until real imagery
   exists) instead of plain text-only boxes, and individually scroll-revealed via oh-fade-left/
   oh-fade-right so the grid doesn't read as one static blocky wall. ---------- */
.oh-pic-card{
  display:flex; flex-direction:column; height:100%; background:#fff; border-radius:20px; overflow:hidden;
  border:1px solid rgba(20,20,43,0.08); box-shadow:0 4px 16px rgba(20,20,43,0.05); cursor:pointer;
  text-decoration:none !important; transition:transform .35s ease, box-shadow .35s ease;
}
.oh-pic-card:hover{ transform:translateY(-8px); box-shadow:0 20px 40px rgba(20,20,43,0.14); }
.oh-pic-media{ position:relative; height:150px; display:flex; align-items:center; justify-content:center; font-size:42px; overflow:hidden; flex-shrink:0; }
.oh-pic-media::after{ content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 15% 0%, rgba(255,255,255,0.3), transparent 60%); }
.oh-pic-media-a{ background:linear-gradient(135deg, var(--accent-2), var(--accent)); }
.oh-pic-media-b{ background:linear-gradient(135deg, var(--accent), var(--accent-3)); }
.oh-pic-media-c{ background:linear-gradient(135deg, var(--accent-3), var(--accent-2)); }
.oh-pic-body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.oh-pic-card h3{ font-family:'Kumbh Sans',sans-serif; font-weight:800; font-size:19px; color:var(--ink) !important; margin:0 0 8px; }
.oh-pic-card p{ color:#5b5b70 !important; font-size:14px; line-height:1.55; margin:0 0 16px; flex:1; }
.oh-pic-card .oh-card-link{ margin-top:auto; position:static; }
.oh-pic-card .oh-card-link::after{ content:none; }
