/* SGOne shared UI — forms, page heroes, lightbox, inner pages. */

.sg-form .sg-form-field { margin-bottom: 0; }
.sg-form label { display: block; font-weight: 600; font-size: .88rem; margin-bottom: .35rem; }

/* Aligned enquiry form — shared label gutter, stacked rows */
.sg-form--aligned { --sg-form-label: minmax(7.5rem, 9.5rem); }
.sg-form--aligned .sg-form-item {
  display: grid;
  grid-template-columns: var(--sg-form-label) minmax(0, 1fr);
  gap: .65rem 1.25rem;
  align-items: center;
  margin-bottom: .85rem;
}
.sg-form--aligned .sg-form-label {
  margin: 0;
  text-align: left;
  padding-right: 0;
  line-height: 1.35;
  font-weight: 600;
  font-size: .88rem;
}
.sg-form--aligned .sg-form-item--top { align-items: start; }
.sg-form--aligned .sg-form-item--top .sg-form-label { padding-top: .7rem; }
.sg-form--aligned .sg-form-item--actions { align-items: start; }
.sg-form--aligned .sg-form-actions { min-width: 0; }
.sg-form--aligned .sg-form-actions .sg-form-submit { width: auto; min-width: 10rem; }
.sg-contact-form .sg-form--aligned input,
.sg-contact-form .sg-form--aligned textarea {
  width: 100%;
  max-width: none;
}
.sg-form input, .sg-form textarea {
  width: 100%;
  padding: .7rem .85rem;
  border: 1px solid #d4d4d4;
  border-radius: 8px;
  font: inherit;
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.sg-form input:focus, .sg-form textarea:focus {
  outline: none;
  border-color: #333;
  box-shadow: 0 0 0 3px rgba(255, 212, 0, .22);
}
.sg-form-row { display: grid; gap: .85rem; }
.sg-form-row--2 { grid-template-columns: 1fr 1fr; }
.sg-form-submit { margin-top: .25rem; }
.sg-req { color: #c62828; }
.sg-form-note { color: #666; font-size: .88rem; margin-top: .75rem; }
.sg-form-success {
  background: linear-gradient(135deg, #e8f5e9, #f1f8e9);
  border: 1px solid #a5d6a7;
  padding: 1rem 1.15rem;
  border-radius: 10px;
  margin-bottom: 1rem;
}
.sg-form-panel {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 12px 32px rgba(0,0,0,.06);
}

.sg-page-hero {
  background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%);
  color: #fff;
  padding: 2.75rem 0;
}
.sg-page-hero-inner,
.sg-page-hero .sm-container,
.sg-page-hero .wc-container { max-width: 1180px; margin: 0 auto; padding: 0 1rem; }
.sg-page-hero h1 { margin: 0 0 .75rem; font-size: clamp(1.75rem, 3.5vw, 2.5rem); line-height: 1.15; }
.sg-page-eyebrow,
.sg-page-hero .sm-eyebrow--light {
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .72rem;
  opacity: .75;
  margin: 0 0 .5rem;
  font-weight: 700;
}
.sg-page-lead,
.sm-page-hero-lead { max-width: 42rem; opacity: .9; margin: 0; font-size: 1.05rem; line-height: 1.6; }

/* Inner page content */
.sg-inner-page,
.wc-section.wc-page { padding: 3rem 0 4rem; }
.sg-inner-page .wc-content,
.wc-page .wc-content { max-width: 100%; }
.sg-page-blocks,
.sg-content-blocks { line-height: 1.75; }
.sg-page-blocks > *:first-child,
.sg-content-blocks > *:first-child { margin-top: 0; }
.sg-page-blocks > * + *,
.sg-content-blocks > * + * { margin-top: 1.5rem; }
.sg-block-title {
  margin: 0 0 1rem;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  line-height: 1.2;
}
.sg-text-block { margin: 0 0 1rem; max-width: 52rem; line-height: 1.75; }
.sg-quote,
.sm-quote {
  border-left: 4px solid #ffd400;
  margin: 1.5rem 0;
  padding: .85rem 1.15rem;
  background: rgba(255, 212, 0, .12);
  font-style: italic;
  max-width: 52rem;
}
.sg-page-body { max-width: 52rem; line-height: 1.75; margin-top: 0; }
.sg-page-body h2 { margin-top: 2rem; }
.sg-page-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #e8e8e8; }

.sg-content-blocks .sg-feature-grid,
.sg-content-blocks .sg-insight-grid,
.sm-feature-grid,
.sm-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin: 0; }
.sg-feature-card, .sg-insight-card,
.sm-feature-card, .sm-insight-card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 1.25rem;
  box-shadow: 0 4px 16px rgba(0,0,0,.04);
}
.sg-feature-card h3, .sg-insight-card h3,
.sm-feature-card h3, .sm-insight-card h3 { margin: 0 0 .5rem; font-size: 1rem; line-height: 1.3; }
.sg-feature-card p, .sg-insight-card p,
.sm-feature-card p, .sm-insight-card p { margin: 0; font-size: .95rem; }

.sg-process-steps,
.sm-process-steps { counter-reset: sgstep; list-style: none; padding: 0; margin: 0; max-width: 52rem; }
.sg-process-steps li,
.sm-process-steps li {
  counter-increment: sgstep;
  position: relative;
  padding: 0 0 1.5rem 3rem;
  border-left: 2px solid #e8e8e8;
  margin-left: 1rem;
}
.sg-process-steps li::before,
.sm-process-steps li::before {
  content: counter(sgstep);
  position: absolute;
  left: -1.05rem;
  top: 0;
  width: 2rem;
  height: 2rem;
  background: #ffd400;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: .85rem;
}
.sg-process-steps li:last-child,
.sm-process-steps li:last-child { border-left-color: transparent; }
.sg-process-steps li p,
.sm-process-steps li p { margin: .35rem 0 0; color: #555; }

.wc-page-disclosure .sg-page-blocks h3,
.wc-page-disclosure .wc-content h3 {
	margin: 2rem 0 0.75rem;
	font-size: 1.15rem;
	color: var(--wc-primary, #1e3a5f);
}
.wc-page-disclosure .sg-page-blocks p + p,
.wc-page-disclosure .wc-content p + p { margin-top: 1rem; }
.wc-page-contact .sg-page-blocks { margin-bottom: 1.5rem; }

.sg-lightbox-trigger { cursor: zoom-in; position: relative; }
.sg-lightbox {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(0,0,0,.92);
  display: flex; align-items: center; justify-content: center; padding: 2rem;
}
.sg-lightbox[hidden] { display: none !important; }
body.sg-lightbox-open { overflow: hidden; }
.sg-lightbox-stage { max-width: min(1100px, 92vw); max-height: 85vh; }
.sg-lightbox-stage img {
  max-width: 100%; max-height: 85vh; border-radius: 8px;
  box-shadow: 0 24px 80px rgba(0,0,0,.5);
  animation: sgLightboxIn .25s ease;
}
@keyframes sgLightboxIn {
  from { opacity: 0; transform: scale(.96); }
  to { opacity: 1; transform: scale(1); }
}
.sg-lightbox-close {
  position: absolute; top: 1rem; right: 1rem;
  background: transparent; border: 0; color: #fff;
  font-size: 2.5rem; line-height: 1; cursor: pointer;
}
.sg-lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.12); border: 0; color: #fff;
  font-size: 2rem; width: 3rem; height: 3rem; border-radius: 50%; cursor: pointer;
}
.sg-lightbox-prev { left: 1rem; }
.sg-lightbox-next { right: 1rem; }

.wc-contact-layout.sg-contact-layout--split,
.wc-contact-layout.sg-contact-layout {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) minmax(0, 2.8fr) !important;
  gap: 1.75rem;
  align-items: start;
  margin-top: .5rem;
}
.wc-contact-layout .sg-contact-sidebar { order: 1; }
.wc-contact-layout .sg-contact-form-panel { order: 2; min-width: 0; }
.sg-contact-sidebar,
.wc-contact-sidebar.sg-contact-sidebar {
  background: rgba(0,0,0,.03);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 1.35rem 1.5rem;
  align-self: start;
}
.sg-contact-form-panel {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 1.5rem 1.75rem;
  box-shadow: 0 10px 28px rgba(0,0,0,.04);
}
.wc-page-contact .sg-contact-form-panel .sg-contact-form-intro h2,
.sg-contact-sidebar h3,
.wc-contact-sidebar h3 { margin: 0 0 .75rem; font-size: 1.15rem; }
.wc-contact-sidebar p,
.sg-contact-sidebar p { margin: 0 0 .5rem; line-height: 1.55; }
.sg-block-contact-form .wc-container { max-width: 980px; }

@media (max-width: 900px) {
  .sg-form--aligned { --sg-form-label: 1fr; }
  .sg-form--aligned .sg-form-item {
    grid-template-columns: 1fr;
  }
  .sg-form--aligned .sg-form-label {
    text-align: left;
    padding-top: 0;
  }
  .sg-form-row--2,
  .sg-content-blocks .sg-feature-grid,
  .sg-content-blocks .sg-insight-grid,
  .sm-feature-grid,
  .sm-insight-grid { grid-template-columns: 1fr; }
  .wc-contact-layout.sg-contact-layout--split,
  .wc-contact-layout { grid-template-columns: 1fr; }
  .sg-inner-page,
  .wc-section.wc-page { padding: 2.25rem 0 3rem; }
}

.sg-home-blocks > section:first-child,
.sg-home-blocks > .sg-block-hero-slider:first-child,
.sg-home-blocks > .sg-block-hero-banner:first-child,
.sg-home-blocks > .ld-hero-wrap:first-child,
.sg-home-blocks > .aim-hero:first-child { margin-top: 0; }
.sg-home-blocks .sg-block-section-cards + .sg-block-section-cards { border-top: 0; }
.sg-home-blocks .sg-block-contact-form { padding: 2.5rem 0 3rem; background: #fff; }
.sgone-block-preview { margin: 0; }

/* Service / feature card icons (shared across brand themes) */
.wc-service-icon,
.wc-feature-icon {
  display: inline-block;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 12px;
  margin-bottom: 0.75rem;
  background-color: rgba(74,118,168,.12);
  -webkit-mask: center/1.35rem no-repeat;
  mask: center/1.35rem no-repeat;
}
.wc-service-icon { width: 2rem; height: 2rem; border-radius: 8px; margin-bottom: 0.5rem; }
.wc-feature-icon--shield,
.wc-service-icon--shield { background-color: #fee2e2; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2 4 5v6c0 5 3.4 9.7 8 11 4.6-1.3 8-6 8-11V5l-8-3Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2 4 5v6c0 5 3.4 9.7 8 11 4.6-1.3 8-6 8-11V5l-8-3Z'/%3E%3C/svg%3E"); }
.wc-feature-icon--handshake,
.wc-service-icon--handshake { background-color: #fef3c7; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M11 14h3v2h-5v-2h2zm-4-1 2-2 2 2-2 2-2-2zm8 0 2-2 2 2-2 2-2-2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M11 14h3v2h-5v-2h2zm-4-1 2-2 2 2-2 2-2-2zm8 0 2-2 2 2-2 2-2-2z'/%3E%3C/svg%3E"); }
.wc-service-icon--heart { background-color: #fce7f3; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 21s-8-4.5-8-11a5 5 0 0 1 9-3 5 5 0 0 1 9 3c0 6.5-8 11-8 11Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 21s-8-4.5-8-11a5 5 0 0 1 9-3 5 5 0 0 1 9 3c0 6.5-8 11-8 11Z'/%3E%3C/svg%3E"); }
.wc-service-icon--home { background-color: #dbeafe; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 3 2 12h3v8h6v-5h2v5h6v-8h3L12 3Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 3 2 12h3v8h6v-5h2v5h6v-8h3L12 3Z'/%3E%3C/svg%3E"); }
.wc-service-icon--chart { background-color: #e0e7ff; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M3 17h2v-7H3v7zm4 0h2V7H7v10zm4 0h2v-4h-2v4zm4 0h2V4h-2v13zm4 0h2v-6h-2v6Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M3 17h2v-7H3v7zm4 0h2V7H7v10zm4 0h2v-4h-2v4zm4 0h2V4h-2v13zm4 0h2v-6h-2v6Z'/%3E%3C/svg%3E"); }
.wc-service-icon--user { background-color: #f3e8ff; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4Zm0 2c-4 0-7 2-7 4v2h14v-2c0-2-3-4-7-4Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4Zm0 2c-4 0-7 2-7 4v2h14v-2c0-2-3-4-7-4Z'/%3E%3C/svg%3E"); }
.wc-service-icon--medical { background-color: #ffe4e6; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4Z'/%3E%3C/svg%3E"); }

/* Shared site footer */
.sg-site-footer { padding: 0; }
.sg-footer-newsletter {
  background: var(--wc-primary, #1e3a5f);
  color: #fff;
  padding: 2rem 0;
}
.sg-footer-newsletter-inner .sg-newsletter-form h3 {
  margin: 0 0 .35rem;
  font-size: 1.25rem;
}
.sg-footer-newsletter-inner .sg-newsletter-form p {
  margin: 0 0 1rem;
  opacity: .9;
}
.sg-newsletter-form-inner {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  max-width: 34rem;
}
.sg-newsletter-form-inner input[type="email"] {
  flex: 1 1 220px;
  min-width: 0;
  padding: .75rem 1rem;
  border: 0;
  border-radius: 999px;
}
.sg-newsletter-form-inner button { border-radius: 999px; white-space: nowrap; }
.sg-newsletter-success { margin: 0; color: #fff; }
.sg-footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem 2rem;
  padding: 2rem 0 1rem;
}
.sg-footer-heading,
.sg-footer-col .wc-footer-brand { font-weight: 700; margin: 0 0 .65rem; }
.sg-footer-tagline { margin: -.25rem 0 .5rem; opacity: .85; }
.sg-footer-links ul { list-style: none; margin: 0; padding: 0; }
.sg-footer-links li { margin: 0 0 .35rem; }
.sg-footer-links a { text-decoration: none; }
.sg-footer-bottom { padding: .75rem 0 1.5rem; border-top: 1px solid rgba(0,0,0,.08); margin-top: .5rem; }
.sg-contact-form-panel .sg-contact-form-intro h2 { margin: 0 0 .35rem; font-size: 1.35rem; }
.sg-contact-form-panel .sg-contact-form-intro p { margin: 0 0 1rem; color: #555; }
.sg-contact-form-wrap--compact .sg-contact-form-intro { display: none; }

/* Blog archive + single posts (shared across brand themes) */
.wc-post-list,
.sg-post-list {
  display: grid;
  gap: 1.25rem;
  margin-top: 1.5rem;
}
.wc-post-card,
.sg-post-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 1.35rem 1.5rem;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}
.wc-post-card h2,
.sg-post-card h2 { margin: 0 0 .35rem; font-size: 1.25rem; line-height: 1.3; }
.wc-post-card h2 a,
.sg-post-card h2 a { color: inherit; text-decoration: none; }
.wc-post-card h2 a:hover,
.sg-post-card h2 a:hover { text-decoration: underline; }
.wc-post-meta,
.sg-post-meta { margin: 0 0 .65rem; color: #666; font-size: .85rem; }
.wc-post-excerpt,
.sg-post-excerpt { margin: 0; color: #444; line-height: 1.65; }
.wc-post-body,
.sg-post-body { line-height: 1.75; max-width: 52rem; }
.wc-post-body h2,
.sg-post-body h2 { margin-top: 2rem; }
.wc-page-blog .wc-content > p,
.sg-page-blog > p { color: #555; max-width: 42rem; }
