/* Virgo homepage and shared foundations. Legacy inner-page layouts remain in styles.css. */
img, picture { border-radius: 3px; }
.service-illustration { width: min(100%,220px); min-width: 0; margin-top: 18px; }
.service-illustration picture, .service-illustration img { width: 100%; }
.service-illustration img { aspect-ratio: var(--illustration-ratio,3 / 2); height: auto; object-fit: cover; }
.service-illustration--residential, .service-illustration--school { --illustration-ratio: 4 / 3; }
.service-illustration--boiler { --illustration-ratio: 777 / 1024; max-width: 180px; }
.service-illustration figcaption { margin-top: 6px; font-size: .6875rem; line-height: 1.4; color: var(--home-muted,var(--muted)); }
.service-illustration-group { display: grid; grid-template-columns: repeat(3,minmax(0,140px)); gap: 12px; margin-top: 18px; min-width: 0; }
.service-illustration-group .service-illustration { width: 100%; margin: 0; }
@media (max-width: 767px) {
  .service-illustration { max-width: 180px; }
  .service-illustration-group { grid-template-columns: repeat(2,minmax(0,140px)); }
}
:root {
  --brand-navy: #000d30;
  --brand-blue: #155bea;
  --brand-red: #cb394b;
  --surface-primary: #f6f5f1;
  --surface-secondary: #eceeea;
  --surface-elevated: #ffffff;
  --text-primary: #0c1a35;
  --text-secondary: #526078;
  --text-on-dark: #f7f8fc;
  --border-subtle: #d3d7dc;
  --overlay: #000d30;
  --page-bg: var(--surface-primary);
  --surface: var(--surface-elevated);
  --text: var(--text-primary);
  --muted: var(--text-secondary);
  --border: var(--border-subtle);
  --accent: #155bea;
  --accent-hover: #0c47c5;
  --link: var(--text-primary);
  --gutter: clamp(22px, 5vw, 80px);
  
}
:root[data-theme=dark] {
  --surface-primary: #0c172c;
  --surface-secondary: #111e35;
  --surface-elevated: #17263e;
  --text-primary: #f1f4fa;
  --text-secondary: #b5c1d4;
  --border-subtle: #31415b;
  --page-bg: var(--surface-primary);
  --surface: var(--surface-elevated);
  --text: var(--text-primary);
  --muted: var(--text-secondary);
  --border: var(--border-subtle);
  --link: var(--text-primary);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) {
    --surface-primary: #0c172c;
    --surface-secondary: #111e35;
    --surface-elevated: #17263e;
    --text-primary: #f1f4fa;
    --text-secondary: #b5c1d4;
    --border-subtle: #31415b;
    --page-bg: var(--surface-primary);
    --surface: var(--surface-elevated);
    --text: var(--text-primary);
    --muted: var(--text-secondary);
    --border: var(--border-subtle);
    --link: var(--text-primary);
  }
}
body { font-size: 1rem; }
.container { width: min(100% - var(--gutter) * 2, 1320px); }
.button { border-radius: 2px; padding: 15px 24px; min-height: 54px; gap: 28px; }
.text-link { text-decoration: none; line-height: 1.45; }
.text-link:hover { text-decoration: underline; }
.text-link .icon { transition: transform .2s; }
.text-link:hover .icon { transform: translateX(4px); }
::selection { background: var(--brand-blue); color: white; }
.site-header { position: relative; z-index: 20; }
.header-inner { min-height: 116px; gap: 32px; }
.header-inner .brand { width: 88px; }
.desktop-navigation, .desktop-tools { display: none; }
.header-phone { font-size: .875rem; }
.site-header .button { font-size: .875rem; }
.menu-trigger, .menu-close { border-radius: 2px; border-color: #a1b0c7; }
.mobile-menu .menu-header { min-height: 110px; }
.menu-navigation .sector-item a { font-size: 1.0625rem; padding-left: 22px; color: var(--muted); }
.menu-navigation .sector-item { border-bottom: 0; }
.site-footer { padding: 80px 0 28px; font-size: .875rem; border-top: 1px solid #283b5b; }
.footer-main { gap: 48px; }
.footer-identity .brand { width: 112px; margin-bottom: 24px; }
.footer-identity p { max-width: 31ch; }
.footer-heading { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 24px; }
.footer-nav { gap: 8px 20px; }
.footer-bottom { margin-top: 64px; padding-top: 28px; gap: 16px; }
.site-footer .theme-switch { margin-top: 28px; }
.mobile-contact { background: #000d30; }

@media (min-width: 1100px) {
  .header-inner { min-height: 132px; }
  .header-inner .brand { width: 98px; }
  .desktop-navigation { display: flex; gap: 26px; margin-left: auto; }
  .desktop-navigation > a { display: flex; align-items: center; min-height: 44px; font-size: .8125rem; font-weight: 600; }
  .desktop-navigation > a[aria-current], .desktop-navigation > a:hover { text-underline-offset: 10px; }
  .desktop-tools { display: flex; gap: 24px; align-items: center; }
  .menu-trigger, .fallback-navigation { display: none !important; }
  .header-phone { display: flex; align-items: center; gap: 10px; white-space: nowrap; text-decoration: none; }
  .footer-main { grid-template-columns: 1.1fr 1.1fr 1.1fr 1fr; gap: 42px; }
}
@media (min-width: 1100px) and (max-width: 1240px) {
  .desktop-navigation { gap: 16px; }
  .desktop-tools { gap: 16px; }
  .desktop-tools .button { padding-inline: 16px; gap: 14px; }
  .header-inner { gap: 22px; }
  .header-phone .icon { display: none; }
}

@media (max-width: 767px) {
  :root { --gutter: 24px; }
  .header-inner { min-height: 100px; }
  .header-inner .brand { width: 72px; }
  .site-footer { padding-top: 60px; }
  .footer-main { grid-template-columns: 1fr; gap: 40px; }
  .footer-nav { max-width: 360px; }
  .footer-bottom { margin-top: 40px; }
}
@media (max-width: 359px) { :root { --gutter: 20px; } }
@media (prefers-reduced-motion: reduce) { .text-link .icon { transition: none; } }
