.mhg-footer.mhg-signature-footer { padding: 0; background: #f7f8f5; color: #19261e; letter-spacing: 0; }
.mhg-signature-footer *, .mhg-signature-footer *::before, .mhg-signature-footer *::after { box-sizing: border-box; letter-spacing: 0; }
.mhg-signature-footer a { color: inherit; text-decoration: none; }
.sf-inner { width: min(1320px, calc(100% - 80px)); margin-inline: auto; }
.sf-scene { position: relative; height: 580px; overflow: hidden; background: #18211f; color: #fff; isolation: isolate; }
.sf-scenes, .sf-panel, .sf-photo, .sf-shade, .sf-drawing { position: absolute; inset: 0; width: 100%; height: 100%; }
.sf-panel[hidden] { display: none; }
.sf-photo { object-fit: cover; object-position: center 48%; }
.sf-shade { background: linear-gradient(90deg, rgba(10,20,15,.85), rgba(10,20,15,.55) 31%, rgba(10,20,15,.08) 65%); }
.sf-panel:not(:first-child) .sf-shade { background: linear-gradient(270deg, rgba(10,20,15,.9), rgba(10,20,15,.72) 28%, rgba(10,20,15,.02) 76%); }
.sf-panel-inner { position: relative; height: 100%; padding-top: 58px; }
.sf-copy { width: 510px; max-width: 47%; }
.sf-panel:not(:first-child) .sf-copy { margin-left: auto; }
.sf-eyebrow { margin: 0 0 20px; color: #e6ece7; font-size: 12px; line-height: 1.5; font-weight: 700; }
.sf-copy h2 { color: #fff; font-size: 68px; font-weight: 700; line-height: 1.05; margin: 0; }
.sf-period { color: #9bc54b; }
.sf-invitation { margin: 18px 0 26px; font-size: 27px; line-height: 1.4; max-width: 430px; color: #fff; }
.sf-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; }
.sf-primary { display: inline-flex; min-height: 48px; padding: 12px 18px; align-items: center; gap: 20px; background: #c7e595; color: #122619 !important; font-size: 14px; font-weight: 700; border-radius: 2px; transition: background-color 160ms ease; }
.sf-primary:hover { background: #e0f2c4; }
.sf-text-link { display: inline-flex; min-height: 48px; align-items: center; gap: 14px; color: #fff; font-size: 14px; font-weight: 700; }
.sf-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.sf-caption { position: absolute; right: 0; bottom: 134px; margin: 0; padding: 7px 10px; background: rgba(12,20,16,.86); color: #f0f4ef; font-size: 11px; line-height: 1.6; }
.sf-panel:not(:first-child) .sf-caption { right: auto; left: 0; }
.sf-drawing { color: #d3eac1; opacity: 0; pointer-events: none; }
.sf-drawing path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.sf-entering .sf-drawing { animation: sf-trace-fade 1600ms ease both; }
.sf-entering .sf-drawing path { animation: sf-trace 1350ms ease both; }
.sf-changing .sf-panel:not([hidden]) .sf-photo { animation: sf-photo-in 480ms ease both; }
.sf-route-wrap { position: absolute; bottom: 0; left: 0; right: 0; }
.sf-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(240,247,241,.48); background: rgba(17,31,24,.95); }
.sf-route { position: relative; display: flex; align-items: center; min-height: 108px; padding: 20px 26px; gap: 18px; color: #fff; border-right: 1px solid #45584a; outline-offset: -5px; }
.sf-route:last-child { border-right: 0; }
.sf-route::after { content: ''; position: absolute; left: 26px; right: 26px; bottom: 0; height: 3px; background: #c7e595; transform: scaleX(0); transform-origin: left; transition: transform 250ms ease; }
.sf-route[aria-selected="true"]::after, .sf-route:hover::after { transform: scaleX(1); }
.sf-route-number { align-self: flex-start; margin-top: 3px; font-size: 11px; color: #bdd0bf; }
.sf-route strong { display: block; font-size: 25px; line-height: 1.3; font-weight: 600; }
.sf-route-detail { display: block; font-size: 12px; line-height: 1.5; color: #c8d5cc; margin-top: 4px; }
.sf-route-arrow { margin-left: auto; font-size: 22px; color: #c7e595; }
.sf-brands { padding: 25px 0 22px; background: #fff; border-bottom: 1px solid #dbe2dc; }
.sf-brand-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.sf-brand-heading h3 { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.6; }
.sf-brand-heading > a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 13px; color: #365f35; }
.sf-brand-row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin-top: 10px; }
.sf-brand { min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 12px 16px 6px; gap: 16px; border-right: 1px solid #e3e8e3; }
.sf-brand:first-child { padding-left: 0; }
.sf-brand:last-child { padding-right: 0; border-right: 0; }
.sf-brand img { width: 100%; height: 43px; object-fit: contain; max-width: 135px; transition: transform 200ms ease; }
.sf-brand--ditec img { max-width: 112px; }
.sf-brand--lanopro img { max-width: 110px; }
.sf-brand > span { display: flex; width: 100%; align-items: center; justify-content: center; gap: 8px; font-size: 11px; color: #536257; line-height: 1.5; }
.sf-brand > span > span { color: #356035; }
.sf-brand:hover img { transform: translateY(-3px); }
.sf-brand:hover > span { color: #1a522d; }
.sf-contact-row { display: grid; grid-template-columns: 1.05fr 1fr 1.25fr; align-items: center; gap: 48px; padding-block: 30px; }
.sf-identity { display: flex; align-items: center; gap: 18px; }
.sf-identity img { width: 78px; height: auto; aspect-ratio: 280/246; object-fit: contain; }
.sf-identity > span { font-size: 15px; line-height: 1.6; color: #516054; }
.sf-identity strong { display: block; font-size: 15px; color: #233c29; }
.sf-contact address { font-style: normal; min-width: 0; }
.sf-contact address > span { display: block; font-size: 12px; color: #58685d; margin-bottom: 5px; }
.sf-direct a { display: table; min-height: 32px; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.sf-direct a.sf-phone { font-size: 25px; font-weight: 600; }
.sf-office a { display: block; font-size: 13px; line-height: 1.7; max-width: 400px; color: #48594d; }
.sf-office strong { display: block; font-size: 12px; margin-top: 5px; color: #315e38; }
.sf-contact a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sf-utility { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #cdd7ce; }
.sf-directory-bar { grid-column: 1; grid-row: 1; display: flex; align-items: center; align-self: start; min-height: 64px; }
.sf-quote { display: inline-flex; align-items: center; min-height: 44px; gap: 18px; color: #315b39 !important; font-size: 13px; font-weight: 600; }
.sf-directory { grid-column: 1 / -1; grid-row: 1; pointer-events: none; min-width: 0; }
.sf-directory summary { pointer-events: auto; margin-left: auto; width: max-content; max-width: 48%; min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 36px; font-size: 14px; font-weight: 700; cursor: pointer; list-style: none; }
.sf-directory summary::-webkit-details-marker { display: none; }
.sf-directory summary span { font-size: 24px; font-weight: 400; transition: transform 160ms ease; }
.sf-directory[open] summary span { transform: rotate(45deg); }
.sf-directory-grid { pointer-events: auto; display: grid; grid-template-columns: 1.2fr .8fr 1fr 1fr 1.1fr; gap: 30px; padding: 18px 0 28px; border-top: 1px solid #d8e0d8; }
.sf-directory-grid h3 { margin: 8px 0 12px; font-size: 15px; }
.sf-directory-grid a { display: flex; align-items: center; min-height: 36px; font-size: 13px; line-height: 1.6; }
.sf-directory-grid a:hover, .sf-legal a:hover, .sf-quote:hover, .sf-brand-heading a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sf-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid #d5ded6; padding-block: 16px; }
.sf-copyright { font-size: 12px; color: #526055; line-height: 1.6; }
.sf-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 0 20px; }
.sf-legal a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; color: #526055; }
.mhg-signature-footer .mhg-social-links { margin: 0; gap: 8px; flex-wrap: nowrap; }
.mhg-signature-footer .mhg-social-link { width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 10px; border: 1px solid #c5d0c7; border-radius: 50%; background: #fff; justify-content: center; }
.mhg-signature-footer .mhg-social-link:hover { background: #e6eddc; }
.mhg-signature-footer .mhg-social-link strong { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.mhg-signature-footer .mhg-social-link__icon { width: 22px; height: 22px; }
.mhg-signature-footer :is(a,summary):focus-visible { outline: 2px solid #286134; outline-offset: 4px; }
.sf-scene a:focus-visible { outline-color: #e2f4c8; }
.sf-route:focus-visible { outline-offset: -5px !important; }
@keyframes sf-trace { 0% { stroke-dashoffset: 1; } 100% { stroke-dashoffset: 0; } }
@keyframes sf-trace-fade { 0% { opacity: 0; } 25%,65% { opacity: .55; } 100% { opacity: 0; } }
@keyframes sf-photo-in { from { opacity: .3; } to { opacity: 1; } }
@media (min-width: 1700px) { .sf-scene { height: 650px; } .sf-panel-inner { padding-top: 90px; } }
@media (min-width: 701px) and (max-width: 1050px) {
  .sf-inner { width: calc(100% - 48px); }
  .sf-copy { max-width: 55%; }
  .sf-copy h2 { font-size: 54px; }
  .sf-invitation { font-size: 23px; }
  .sf-route { padding: 18px 14px; gap: 10px; }
  .sf-route strong { font-size: 21px; }
  .sf-route-detail { font-size: 11px; }
  .sf-brand { padding-inline: 12px; }
  .sf-brand img { height: 33px; }
  .sf-contact-row { gap: 24px; grid-template-columns: .9fr 1fr 1.2fr; }
  .sf-identity { flex-wrap: wrap; gap: 8px; }
  .sf-identity img { width: 60px; }
  .sf-direct a.sf-phone { font-size: 22px; }
  .sf-bottom { flex-wrap: wrap; }
}
@media (max-width: 700px) {
  .sf-inner { width: calc(100% - 40px); }
  .sf-scene { height: 565px; }
  .sf-photo { height: 270px; object-position: center center; }
  .sf-panel:nth-child(2) .sf-photo { object-position: 40% center; }
  .sf-shade, .sf-panel:not(:first-child) .sf-shade { height: 270px; background: linear-gradient(0deg, #18211f, transparent 48%); }
  .sf-panel-inner { padding-top: 268px; }
  .sf-copy, .sf-panel:not(:first-child) .sf-copy { max-width: none; width: 100%; margin-left: 0; }
  .sf-eyebrow { font-size: 10px; margin-bottom: 8px; }
  .sf-copy h2 { font-size: 42px; }
  .sf-invitation { margin: 10px 0 16px; font-size: 20px; line-height: 1.4; }
  .sf-actions { gap: 8px 16px; }
  .sf-primary { font-size: 13px; padding-inline: 12px; min-height: 44px; gap: 12px; }
  .sf-text-link { font-size: 12px; gap: 8px; min-height: 44px; }
  .sf-caption, .sf-panel:not(:first-child) .sf-caption { top: 10px; left: 0; right: auto; bottom: auto; max-width: 100%; font-size: 11px; padding: 5px 7px; }
  .sf-drawing { display: none; }
  .sf-route-wrap { width: 100%; }
  .sf-route { min-height: 90px; flex-wrap: wrap; gap: 5px 8px; padding: 14px 12px; align-content: center; }
  .sf-route-number { width: 100%; margin: 0; font-size: 10px; }
  .sf-route strong { font-size: 16px; }
  .sf-route-detail, .sf-route-arrow { display: none; }
  .sf-route::after { left: 12px; right: 12px; }
  .sf-brands { padding-block: 16px 20px; }
  .sf-brand-heading { display: block; }
  .sf-brand-heading h3 { font-size: 16px; }
  .sf-brand-heading > a { font-size: 12px; min-height: 44px; }
  .sf-brand-row { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px 0; margin-top: 8px; }
  .sf-brand, .sf-brand:first-child, .sf-brand:last-child { padding: 6px 8px; gap: 8px; border-right: 1px solid #e3e8e3; }
  .sf-brand:nth-child(4), .sf-brand:last-child { border-right: 0; }
  .sf-brand img { height: 34px; }
  .sf-brand > span { font-size: 11px; gap: 3px; }
  .sf-brand > span > span { display: none; }
  .sf-contact-row { grid-template-columns: 1fr; gap: 20px; padding-block: 24px; }
  .sf-identity { gap: 16px; }
  .sf-identity img { width: 60px; }
  .sf-direct { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0 8px; align-items: center; padding-top: 16px; border-top: 1px solid #d6dfd7; }
  .sf-contact address > span { margin: 0; font-size: 13px; }
  .sf-direct a { min-height: 44px; display: flex; align-items: center; }
  .sf-direct a.sf-phone { font-size: 22px; }
  .sf-direct a[href^="mailto"] { grid-column: 1/-1; }
  .sf-office { display: grid; gap: 8px; }
  .sf-office a { font-size: 13px; }
  .sf-office strong { min-height: 36px; display: flex; align-items: center; gap: 8px; margin: 0; }
  .sf-directory-bar { grid-column: 1/-1; min-height: 48px; }
  .sf-quote { font-size: 12px; }
  .sf-directory { grid-row: 2; }
  .sf-directory summary { width: 100%; max-width: none; min-height: 60px; border-top: 1px solid #d4ddd5; }
  .sf-directory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; }
  .sf-directory-grid a { min-height: 44px; }
  .sf-directory-grid h3 { font-size: 14px; }
  .sf-bottom { display: grid; gap: 8px; padding-bottom: 24px; }
  .sf-copyright { order: 3; }
  .sf-legal { gap: 0 16px; }
  .sf-legal a { font-size: 12px; }
  .mhg-signature-footer .mhg-social-links { order: -1; }
}
@media (max-width: 359px) {
  .sf-scene { height: 625px; }
  .sf-copy h2 { font-size: 36px; }
  .sf-invitation { font-size: 19px; }
  .sf-actions { gap: 0 12px; }
  .sf-brand-row { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .sf-brand:nth-child(3n) { border-right: 0; }
  .sf-brand:nth-child(4) { border-right: 1px solid #e3e8e3; }
  .sf-route strong { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .mhg-signature-footer *, .mhg-signature-footer *::after { animation: none !important; transition: none !important; }
  .sf-drawing { display: none; }
}
