/* Final shared layout rules, intentionally scoped above the legacy cascade. */
:root { --vista-gutter:24px; --vista-gap:24px; --vista-width:1240px; }
*, *::before, *::after { box-sizing:border-box; }
#main .shell, #main .vista-hero-grid, .footer > .shell {
  width:min(var(--vista-width), calc(100% - var(--vista-gutter) * 2)) !important;
  max-width:var(--vista-width) !important;
  margin-left:auto !important; margin-right:auto !important;
}
#main .section { padding:88px 0 !important; }
#main .vista-hero-section { padding:64px 0 72px; }
#main .vista-hero-grid { gap:48px; }
#main h2 { font-size:clamp(32px,3.5vw,48px) !important; line-height:1.12 !important; }
#main h3 { font-size:24px !important; line-height:1.22 !important; }
#main p, #main li { overflow-wrap:break-word; }
#main .center-head, #main .booking-head {
  max-width:780px !important; margin:0 auto 40px !important; text-align:center;
}
#main .center-head p, #main .booking-head p { font-size:18px !important; line-height:1.6 !important; }
#main .section-head { gap:32px !important; margin-bottom:40px !important; }
#main .three-info, #main .process-grid, #main .step-cards, #main .resource-grid,
#main .pricing-live-grid, #main .team-grid, #main .booking-agenda { gap:var(--vista-gap) !important; }
#main .three-info, #main .resource-grid, #main .pricing-live-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
#main .step-cards, #main .process-grid { grid-template-columns:repeat(4,minmax(0,1fr)) !important; }
#main .info-card, #main .process-card, #main .pricing-live-card { padding:28px !important; min-height:0 !important; }
#main .info-card p, #main .process-card p, #main .step-card p, #main .resource-card p,
#main .team-card-body p, #main .pricing-live-card p, #main .legal-card p,
#main .green-card p, #main .check-list li { font-size:16px !important; line-height:1.65 !important; }
#main .process-card > span { margin-bottom:24px !important; }
#main .step-num { margin-top:14px !important; margin-bottom:18px !important; }
#main .visual-frame > img.visual-composite {
  position:static !important; display:block !important; width:100% !important; max-width:100% !important;
  height:auto !important; min-height:0 !important; margin:0 !important; padding:0 !important;
  aspect-ratio:auto !important; object-fit:contain !important; transform:none !important;
}
#main .step-visual.visual-frame, #main .resource-art.visual-frame, #main .portrait-art.visual-frame {
  width:100% !important; height:auto !important; min-height:0 !important; padding:0 !important;
  aspect-ratio:auto !important; margin:0 0 24px !important; border-radius:16px !important;
}
#main .switch-visual.visual-frame { height:auto !important; min-height:0 !important; aspect-ratio:auto !important; padding:16px !important; }
#main .switch-visual .pane-card { width:100% !important; max-width:100% !important; margin:0 !important; padding:24px 8px 8px !important; }
#main .feature-switcher, #main .split-feature, #main .faq-layout { gap:48px !important; }
#main .contact-shell { gap:24px !important; }
#main .contact-shell > *, #main .field-grid > *, #main .team-grid > *, #main .vista-hero-grid > * { min-width:0; }
#main .contact-shell aside, #main .contact-form { padding:32px !important; }
#main .contact-shell aside.visual-frame > img { margin-bottom:24px !important; }
#main .contact-stat, #main .address-card { width:100% !important; max-width:100% !important; margin-left:0 !important; margin-right:0 !important; }
#main .contact-stat small, #main .address-card span, #main .address-card small, #main .booking-agenda p,
#main .booking-fallback p { font-size:14px !important; line-height:1.55 !important; }
#main .contact-form input, #main .contact-form select, #main .contact-form textarea { width:100%; min-width:0; font-size:16px !important; }
#main .booking-frame-wrap, #main .booking-agenda { max-width:100% !important; }
#main .team-grid.team-grid-photos { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
#main .team-card-photo { max-width:none !important; width:100%; }
#main .team-photo-frame { height:360px !important; aspect-ratio:auto !important; padding:20px; background:#edf1f4 !important; }
#main .team-photo-frame img { width:100% !important; height:100% !important; object-fit:contain !important; object-position:center !important; }
#main .team-card-body { padding:28px !important; }
#main .team-card-body > span { font-size:13px !important; line-height:1.5; display:block; min-height:40px; }
#main .cta-card { padding:48px !important; gap:32px !important; }
#main .cta-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.btn { height:auto !important; white-space:normal; text-align:center; line-height:1.4; padding-block:14px !important; }
.btn:focus-visible, a:focus-visible, button:focus-visible { outline:3px solid #256fdd; outline-offset:4px; }
.footer p, .footer a { font-size:15px !important; line-height:1.6; }
.footer .footer-grid { gap:32px !important; }
@media(max-width:1150px) {
  .site-header .desktop-nav, .site-header .nav-actions > .btn, .site-header .login-link { display:none !important; }
  .site-header .menu-toggle { display:inline-flex !important; }
  .site-header .nav-shell { justify-content:space-between; }
}
@media(max-width:980px) {
  #main .vista-hero-grid { grid-template-columns:minmax(0,1fr); }
  #main .vista-hero-media { grid-row:1; }
  #main .feature-switcher, #main .split-feature, #main .faq-layout,
  #main .contact-shell { grid-template-columns:minmax(0,1fr) !important; gap:32px !important; }
  #main .step-cards, #main .process-grid, #main .three-info, #main .resource-grid,
  #main .pricing-live-grid, #main .booking-agenda { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  #main .section-head { display:block !important; }
  #main .section-head > p { margin-top:20px; }
  #main .switch-list { grid-template-columns:minmax(0,1fr) !important; }
}
@media(max-width:600px) {
  :root { --vista-gutter:20px; --vista-gap:20px; }
  #main .section { padding:56px 0 !important; }
  #main .vista-hero-section { padding:32px 0 48px; }
  #main .vista-hero-grid { gap:28px; }
  #main .step-cards, #main .process-grid, #main .three-info, #main .resource-grid,
  #main .pricing-live-grid, #main .booking-agenda, #main .team-grid.team-grid-photos,
  #main .field-grid { grid-template-columns:minmax(0,1fr) !important; }
  #main .contact-shell aside, #main .contact-form, #main .cta-card { padding:24px !important; }
  #main .center-head, #main .booking-head { margin-bottom:28px !important; }
  #main .team-photo-frame { height:320px !important; }
  #main .button-row, #main .cta-actions, #main .booking-fallback { flex-direction:column; align-items:stretch !important; }
  #main .button-row .btn, #main .cta-actions .btn { width:100%; }
  .footer .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:28px 20px !important; }
  .footer .footer-brand { grid-column:1 / -1; }
  .footer .footer-grid > div:last-child { grid-column:auto; }
}
