/* OSVI v2 — detail pages made by tools/pages/*.mjs (services, eye care, Advanced Surgeries, Emergency,
   About Us, Corporate, Data Annotation, Hospitals): hero, cards, steps, panels, forms, FAQ. Shared parts: v2-base.css */
.sg-h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.05; margin-top: 14px; }
.v2 .sg-h2 { letter-spacing: -0.04em; }
.sg-h2 .v2-serif { color: var(--v2-magenta); }

/* hero */
.sg-hero { background: var(--v2-tint); padding: clamp(28px, 4vw, 56px) var(--v2-pad) clamp(44px, 5vw, 72px); }
.sg-hero__inner { max-width: 1280px; margin: 0 auto; }
.sg-crumbs { font-size: 13px; color: var(--v2-muted); margin-bottom: 18px; }
.v2 .sg-crumbs a { color: var(--v2-muted); }
.v2 .sg-crumbs a:hover { color: var(--v2-magenta); }
.v2 .sg-hero h1 { margin-top: 18px; font-size: clamp(40px, 5.6vw, 76px); line-height: 1; letter-spacing: -0.045em; max-width: 900px; }
.sg-hero h1 .v2-serif { color: var(--v2-magenta); }
.sg-sub { margin: 20px 0 0; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.55; color: var(--v2-ink-2); max-width: 720px; }
.sg-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.sg-cta .v2-wa-svg { color: var(--v2-wa-icon); }
.sg-points { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.sg-points li { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #EADDE8; border-radius: 999px; padding: 8px 14px; font-size: 14px; font-weight: 700; }
.sg-points li::before { content: "✓"; color: var(--v2-green); font-weight: 800; }

/* surgery categories */
.sg-list { padding: 72px var(--v2-pad); }
.sg-lead { font-size: 17px; line-height: 1.6; color: var(--v2-ink-2); max-width: 760px; margin: 14px 0 0; }
.sg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 40px; }
@media (min-width: 1024px) { .sg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sg-cat { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--v2-line); border-radius: 22px; padding: 22px; }
.sg-cat__icon { width: 54px; height: 54px; border-radius: 16px; background: var(--v2-tint-2); display: flex; align-items: center; justify-content: center; }
.v2 .sg-cat h3 { font-size: 19px; letter-spacing: -0.02em; margin-top: 16px; }
.sg-cat ul { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 7px; flex: 1; }
.sg-cat li { position: relative; padding-left: 18px; font-size: 14.5px; line-height: 1.45; color: var(--v2-ink-2); }
.sg-cat li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: #E2B9DE; }
.v2 .sg-cat li a { color: var(--v2-magenta); text-decoration: underline; text-underline-offset: 3px; }
.sg-cat__actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 18px; }
.v2 .sg-cat__enquire { font-weight: 800; font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
.v2 .sg-cat__wa { width: 44px; height: 44px; border-radius: 50%; background: #E7F6EE; color: var(--v2-wa); display: flex; align-items: center; justify-content: center; transition: background .2s ease, color .2s ease; }
.v2 .sg-cat__wa:hover { background: var(--v2-wa); color: #fff; }

/* how it works */
.sg-how { padding: 0 var(--v2-pad) 80px; }
.sg-how__panel { max-width: 1280px; margin: 0 auto; background: var(--v2-tint); border-radius: 40px; padding: clamp(28px, 5vw, 60px); }
.sg-steps { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.sg-steps li { background: #fff; border-radius: 22px; padding: 22px; }
.sg-steps li > span { font-size: 36px; font-weight: 800; color: #A0679A; letter-spacing: -0.04em; line-height: 1; }
.v2 .sg-steps h3 { font-size: 17px; margin-top: 12px; letter-spacing: -0.02em; }
.sg-steps p { font-size: 14.5px; color: var(--v2-ink-2); line-height: 1.55; margin: 6px 0 0; }

/* why */
.sg-why { background: var(--v2-plum); color: #fff; padding: 80px var(--v2-pad); }
.sg-why .sg-h2 .v2-serif { color: var(--v2-accent-dark); }
.sg-why__grid { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.sg-why__grid li { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 22px; padding: 22px; display: flex; flex-direction: column; gap: 6px; }
.sg-why__grid strong { font-size: 20px; font-weight: 800; }
.sg-why__grid span { color: var(--v2-on-dark); font-size: 15px; line-height: 1.5; }
.v2 .sg-why__grid a { color: #F3C6EF; text-decoration: underline; text-underline-offset: 3px; }

/* enquiry form */
.sg-enquire { padding: 80px var(--v2-pad); scroll-margin-top: 90px; }
.sg-enquire__card { max-width: 1280px; margin: 0 auto; background: #fff; border: 1px solid #F0E6EE; border-radius: 32px; box-shadow: 0 30px 70px rgba(43,16,41,.12); padding: clamp(24px, 4vw, 48px); display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 1024px) { .sg-enquire__card { grid-template-columns: 1fr 1.2fr; align-items: center; } }
.sg-enquire__text p { font-size: 16px; color: var(--v2-ink-2); line-height: 1.6; margin: 12px 0 0; }
.sg-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sg-field { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 700; color: var(--v2-ink-2); min-width: 0; }
.sg-field--wide { grid-column: 1 / -1; }
.sg-field select, .sg-field input { height: 52px; border: 1.5px solid #E7DCE5; background: #FCF9FB; border-radius: 14px; padding: 0 14px; font-size: 15px; color: var(--v2-ink); width: 100%; }
.sg-field select:focus, .sg-field input:focus { border-color: var(--v2-magenta); outline: none; box-shadow: 0 0 0 3px rgba(140,54,136,.2); }
.sg-form .v2-btn { grid-column: 1 / -1; border-radius: 14px; }
@media (max-width: 599px) { .sg-form { grid-template-columns: 1fr; } }

/* FAQ */
.sg-faq { padding: 0 var(--v2-pad) 88px; }
.sg-faq__inner { max-width: 880px; margin: 0 auto; }
.sg-faq__item { border-bottom: 1px solid var(--v2-line); }
.sg-faq__item:first-of-type { margin-top: 24px; }
.sg-faq__item summary { cursor: pointer; list-style: none; padding: 18px 40px 18px 0; font-size: 17px; font-weight: 800; position: relative; }
.sg-faq__item summary::-webkit-details-marker { display: none; }
.sg-faq__item summary::after { content: "+"; position: absolute; right: 6px; top: 12px; font-size: 26px; font-weight: 400; color: var(--v2-magenta); transition: transform .2s ease; }
.sg-faq__item[open] summary::after { transform: rotate(45deg); }
.sg-faq__item p { margin: 0 0 18px; font-size: 15.5px; line-height: 1.6; color: var(--v2-ink-2); }
.sg-note { margin: 24px 0 0; font-size: 13px; color: #625D68; line-height: 1.6; }

@media (prefers-reduced-motion: reduce) { .sg-faq__item summary::after, .sg-cat__wa { transition: none; } }

/* featured, full-width speciality (Organ Transplants) */
.sg-cat--wide { grid-column: 1 / -1; background: linear-gradient(120deg, #fff 55%, var(--v2-tint) 100%); border-color: #E2C7DF; }
@media (min-width: 768px) {
  .sg-cat--wide { display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "icon title actions" "icon list actions"; column-gap: 22px; align-items: center; }
  .sg-cat--wide .sg-cat__icon { grid-area: icon; width: 64px; height: 64px; }
  .v2 .sg-cat--wide h3 { grid-area: title; margin-top: 0; font-size: 22px; }
  .sg-cat--wide ul { grid-area: list; display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 8px; }
  .sg-cat--wide .sg-cat__actions { grid-area: actions; margin-top: 0; gap: 16px; }
}

/* ---------------- Emergency Care at Home page (emergency-care-at-home.html) ---------------- */
.em-alert { margin-top: 28px; max-width: 860px; background: #FFF1F2; border: 1px solid #F6C9CF; border-left: 5px solid var(--v2-red); border-radius: 16px; padding: 16px 18px; font-size: 15px; line-height: 1.6; color: #5A1620; }
.em-alert strong { color: #9B1C2C; }
.v2 .em-alert a { color: #9B1C2C; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.em-card p { margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: var(--v2-ink-2); flex: 1; }
.em-situations { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.em-situations li { background: #fff; border-radius: 16px; padding: 16px 18px 16px 46px; position: relative; font-size: 15px; font-weight: 600; line-height: 1.45; }
.em-situations li::before { content: ""; position: absolute; left: 18px; top: 20px; width: 12px; height: 12px; border-radius: 50%; background: var(--v2-red); box-shadow: 0 0 0 4px #FDE2E5; }
.em-situations__note { margin: 20px 0 0; font-size: 15px; color: var(--v2-ink-2); }
.em-areas { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.em-areas li { border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.08); border-radius: 999px; padding: 10px 18px; font-weight: 700; font-size: 15px; }
.emergency-v2 .sg-how + .sg-how { padding-top: 0; }
.em-short { display: none; }
/* phones: Call + WhatsApp side by side (short label), the four points two per row */
@media (max-width: 599px) {
  .emergency-v2 .sg-cta { flex-wrap: nowrap; gap: 10px; }
  .em-long { display: none; }
  .em-short { display: inline; }
  .emergency-v2 .sg-cta .v2-btn { flex: 1 1 0; min-width: 0; padding-left: 12px; padding-right: 12px; font-size: 15px; }
  .emergency-v2 .sg-points { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .emergency-v2 .sg-points li { font-size: 13px; padding: 8px 10px; border-radius: 14px; }
}
/* links inside text are underlined, not marked by colour alone */
.v2 .sg-enquire__text a, .v2 .sg-note a { color: var(--v2-magenta); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
/* safety card: 112 first, then OSVI as the backup when an ambulance is delayed */
.em-alert p { margin: 0; }
.em-alert p + p { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #F0B9C1; }
.em-alert .em-alert__osvi { color: var(--v2-magenta); }
.v2 .em-alert .em-alert__call { color: var(--v2-magenta); white-space: nowrap; }

/* ---------------- detail pages (eye care, services): text cards, split panels, chips, logos, related ---------------- */
.sg-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 40px; }
@media (min-width: 1024px) { .sg-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sg-card { background: #fff; border: 1px solid var(--v2-line); border-radius: 22px; padding: 24px; }
.sg-card__num { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 32px; padding: 0 10px; border-radius: 999px; background: var(--v2-tint-2); color: var(--v2-magenta); font-size: 14px; font-weight: 800; }
.v2 .sg-card h3 { font-size: 19px; letter-spacing: -0.02em; margin-top: 14px; }
.sg-card p { margin: 10px 0 0; font-size: 15px; line-height: 1.6; color: var(--v2-ink-2); }
.v2 .sg-h3 { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.1; letter-spacing: -0.03em; margin-top: 12px; }
.sg-how .sg-lead { margin-top: 12px; }
.sg-lead--dark { color: var(--v2-on-dark); }

.sg-split { padding-top: 0; }
.sg-split__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 900px) { .sg-split__grid { grid-template-columns: 1fr 1fr; } }
.sg-panel { background: var(--v2-tint); border-radius: 32px; padding: clamp(24px, 4vw, 40px); }
.sg-panel > p { margin: 14px 0 0; font-size: 16px; line-height: 1.6; color: var(--v2-ink-2); }
.sg-panel .sg-panel__label { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--v2-muted); margin-top: 22px; }
.sg-ticks { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.sg-ticks li { position: relative; padding-left: 28px; font-size: 15.5px; font-weight: 600; line-height: 1.45; }
.sg-ticks li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 20px; height: 20px; border-radius: 50%; background: #E7F6EE; color: var(--v2-green); font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.sg-chips { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sg-chips li { background: #fff; border: 1px solid #EADDE8; border-radius: 999px; padding: 8px 14px; font-size: 14px; font-weight: 700; }
.sg-logos { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.sg-logos li { background: #fff; border: 1px solid #EADDE8; border-radius: 16px; min-height: 72px; padding: 12px 14px; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 14px; font-weight: 800; line-height: 1.3; color: var(--v2-plum); }
.sg-logos img { max-width: 100%; height: 40px; width: auto; object-fit: contain; }

.sg-related { margin-top: 40px; }
.sg-related ul { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .sg-related a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid #E2C7DF; border-radius: 999px; background: #fff; font-size: 14.5px; font-weight: 700; color: var(--v2-magenta); }
.v2 .sg-related a:hover { background: var(--v2-tint); }
/* detail pages: six steps as 3 + 3 (not 5 + 1) on wide screens */
@media (min-width: 1024px) { .page-v2 .sg-steps--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* detail pages on phones: Book button full width, Call + WhatsApp side by side, points 2 per row, steps 2 per row */
@media (max-width: 599px) {
  .page-v2 .sg-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .page-v2 .sg-cta .v2-btn { min-width: 0; padding-left: 12px; padding-right: 12px; font-size: 15px; }
  .page-v2 .sg-cta .v2-btn--primary { grid-column: 1 / -1; }
  .page-v2 .sg-cta .pg-long { display: none; }
  .page-v2 .sg-points { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .page-v2 .sg-points li { font-size: 13px; padding: 8px 10px; border-radius: 14px; align-items: flex-start; }
  .page-v2 .sg-steps { grid-template-columns: 1fr 1fr; gap: 10px; }
  .page-v2 .sg-steps li { padding: 16px; border-radius: 18px; }
  .page-v2 .sg-steps li > span { font-size: 24px; }
  .v2.page-v2 .sg-steps h3 { font-size: 15px; margin-top: 8px; }
  .page-v2 .sg-steps p { font-size: 13.5px; }
}
/* overview pages: whole card is a link to the detail page */
.v2 .sg-card--link { display: flex; flex-direction: column; color: inherit; }
.v2 .sg-card--link h3 { margin-top: 0; }
.sg-card--link p { flex: 1; }
.v2 .sg-card__more { margin-top: 16px; font-weight: 800; font-size: 14px; color: var(--v2-magenta); }
.v2 .sg-card--link:hover { border-color: #E2C7DF; }
.v2 .sg-card--link:hover .sg-card__more { text-decoration: underline; text-underline-offset: 3px; }
/* "Read more" link at the bottom of a text card (underlined, so it is not marked by colour alone) */
.v2 .sg-card a.sg-card__more { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; text-decoration: underline; text-underline-offset: 3px; }
/* sections the Services menu jumps to land below the sticky header */
.page-v2 .sg-list[id], .page-v2 .sg-panel[id] { scroll-margin-top: 96px; }
/* overview page: second group of cards ("Also from OSVI Healthcare") */
.v2 .sg-more-title { margin-top: 48px; }
.sg-more-title + .sg-lead { margin-top: 8px; }
.sg-more-title ~ .sg-cards { margin-top: 24px; }
.sg-related + .sg-related { margin-top: 28px; }

/* ---------------- company pages (About, Corporate, Data Annotation, Hospitals) ---------------- */
.sg-list--tight { padding-top: 0; }
/* team */
.sg-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin-top: 40px; }
.sg-person { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid var(--v2-line); border-radius: 22px; padding: 22px; }
.sg-person img { flex: none; width: 96px; height: 120px; object-fit: cover; object-position: top; border-radius: 16px; background: var(--v2-tint-2); }
.v2 .sg-person h3 { font-size: 19px; letter-spacing: -0.02em; }
.sg-person .sg-person__role { margin: 2px 0 0; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--v2-magenta); }
.sg-person p { margin: 10px 0 0; font-size: 15px; line-height: 1.6; color: var(--v2-ink-2); }
/* partner logos in groups */
.v2 .sg-pgroup { display: flex; align-items: center; gap: 10px; margin-top: 40px; font-size: 18px; letter-spacing: -0.01em; }
.sg-pgroup__icon { width: 36px; height: 36px; border-radius: 50%; background: var(--v2-tint-2); color: var(--v2-magenta); display: inline-flex; align-items: center; justify-content: center; }
.sg-pgroup__count { font-size: 13px; font-weight: 800; color: var(--v2-muted); background: var(--v2-tint); border-radius: 999px; padding: 2px 10px; }
.sg-plogos { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.sg-plogos li { background: #fff; border: 1px solid #EADDE8; border-radius: 16px; height: 84px; padding: 12px 16px; display: flex; align-items: center; justify-content: center; }
.sg-plogos img { max-width: 100%; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.sg-plogos img.is-wide { width: 70%; }
/* Data Annotation: the 12 annotation types, labels as real text (icons cut from the old picture) */
.ann-grid { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px 24px; }
.ann-grid li { display: flex; align-items: center; gap: 14px; font-size: 16px; font-weight: 600; line-height: 1.35; color: var(--v2-ink); }
.ann-icon { flex: none; width: 63px; height: 58.5px; background: url(../images/annotation-icons.webp) calc(var(--i) * -63px) 0 / 756px 58.5px no-repeat; }
@media (max-width: 599px) { .sg-person { flex-direction: column; } .sg-plogos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sg-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* a steps panel straight after the hero needs space above it */
.sg-hero + .sg-how { padding-top: 72px; }
/* team: photo on top, text full width below */
.sg-person { flex-direction: column; }
.sg-person img { width: 112px; height: 140px; }
.sg-team { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
@media (min-width: 1024px) { .sg-plogos--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.sg-plogos--5 { margin-top: 28px; }
