/* SOTOMAMORI mega menu final shared presentation. */
.sm-mega-menu--v24 {
  --sm-v2-green:#0b5738;
  --sm-v2-green-dark:#08452d;
  --sm-v2-soft:#f5faf7;
  --sm-v2-line:#dbe6df;
  --sm-v2-ink:#111;
}

.sm-mega-menu--v24 .sm-v2-mega-panel,
.sm-mega-menu--v24 .sm-v2-mega-panel * { box-sizing:border-box; }
.sm-mega-menu--v24 .sm-v2-mega-panel { color:var(--sm-v2-ink); }
.sm-mega-menu--v24 .sm-v2-mega-panel a { color:inherit; text-decoration:none; }
.sm-mega-menu--v24 .sm-v2-mega-panel__title { margin:0 0 18px; padding:0 0 16px; border-bottom:2px solid var(--sm-v2-green); }
.sm-mega-menu--v24 .sm-v2-mega-panel__title h2 { margin:0; color:var(--sm-v2-green); font-size:28px; font-weight:700; line-height:1.3; }
.sm-mega-menu--v24 .sm-v2-mega-panel h3,
.sm-mega-menu--v24 .sm-v2-mega-panel h4 { margin:0; color:#111; font-weight:700; }
.sm-mega-menu--v24 .sm-v2-mega-panel h3 { padding:0 0 9px; border-bottom:1px solid var(--sm-v2-green); font-size:16px; line-height:1.45; }
.sm-mega-menu--v24 .sm-v2-mega-panel h4 { margin-top:16px; font-size:15px; line-height:1.45; }

.sm-mega-menu--v24 .sm-v2-mega-service { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:30px; }
.sm-mega-menu--v24 .sm-v2-mega-service__main { display:grid; align-content:start; gap:22px; }
.sm-mega-menu--v24 .sm-v2-mega-service__side { display:grid; align-content:start; gap:18px; }
.sm-mega-menu--v24 .sm-v2-mega-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:14px; }
.sm-mega-menu--v24 .sm-v2-mega-panel--leak .sm-v2-mega-cards,
.sm-mega-menu--v24 .sm-v2-mega-cards--four { grid-template-columns:repeat(4,minmax(0,1fr)); }

.sm-mega-menu--v24 .sm-v2-mega-card {
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #d9e4de;
  border-radius:8px;
  background:#fff;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.sm-mega-menu--v24 .sm-v2-mega-card:hover,
.sm-mega-menu--v24 .sm-v2-mega-card:focus-visible {
  border-color:#9bb9a8;
  box-shadow:0 8px 18px rgba(11,87,56,.10);
  outline:2px solid var(--sm-v2-green);
  outline-offset:2px;
  transform:translateY(-2px);
}
.sm-mega-menu--v24 .sm-v2-mega-card__media,
.sm-mega-menu--v24 .sm-v2-mega-card__media.sm-v2-asset-slot--media { display:block; width:100%; margin:0; aspect-ratio:3 / 2; overflow:hidden; }
.sm-mega-menu--v24 .sm-v2-mega-card__media .sm-v2-asset-slot__image { display:block; width:100%; height:100%; object-fit:cover; }
.sm-mega-menu--v24 .sm-v2-mega-card .sm-linked-media__image,
.sm-mega-menu--v24 .sm-v2-mega-card:hover .sm-linked-media__image,
.sm-mega-menu--v24 .sm-v2-mega-card:focus-visible .sm-linked-media__image { transition:none; transform:none; }
.sm-mega-menu--v24 .sm-v2-mega-card__body { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; min-height:54px; padding:14px 15px; }
.sm-mega-menu--v24 .sm-v2-mega-card__body strong { grid-column:1; color:#111; font-size:16px; font-weight:700; line-height:1.45; }
.sm-mega-menu--v24 .sm-v2-mega-card__body small { grid-column:1; color:#222; font-size:14px; font-weight:500; line-height:1.55; }
.sm-mega-menu--v24 .sm-v2-mega-card__body b { grid-column:2; grid-row:1 / span 2; color:var(--sm-v2-green); font-size:18px; transition:transform .15s ease; }
.sm-mega-menu--v24 .sm-v2-mega-card:hover .sm-v2-mega-card__body b,
.sm-mega-menu--v24 .sm-v2-mega-card:focus-visible .sm-v2-mega-card__body b { transform:translateX(3px); }
.sm-mega-menu--v24 .sm-v2-mega-card--feature { display:grid; grid-template-columns:minmax(190px,.9fr) minmax(0,1fr); }
.sm-mega-menu--v24 .sm-v2-mega-card--feature .sm-v2-mega-card__body { align-content:center; }
.sm-mega-menu--v24 .sm-v2-mega-card--compact { display:grid; grid-template-columns:minmax(120px,42fr) minmax(0,58fr); }

.sm-mega-menu--v24 .sm-v2-mega-links { margin:8px 0 0; padding:0; list-style:none; }
.sm-mega-menu--v24 .sm-v2-mega-links a {
  display:flex;
  min-height:46px;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:8px 10px;
  border-bottom:1px solid #dfe6e2;
  color:#111;
  font-size:15px;
  font-weight:700;
  line-height:1.45;
  transition:background-color .15s ease;
}
.sm-mega-menu--v24 .sm-v2-mega-links a span { flex:0 0 auto; color:var(--sm-v2-green); font-weight:700; transition:transform .15s ease; }
.sm-mega-menu--v24 .sm-v2-mega-links a:hover,
.sm-mega-menu--v24 .sm-v2-mega-links a:focus-visible { background:var(--sm-v2-soft); color:#111; outline:2px solid var(--sm-v2-green); outline-offset:-2px; }
.sm-mega-menu--v24 .sm-v2-mega-links a:hover span,
.sm-mega-menu--v24 .sm-v2-mega-links a:focus-visible span { transform:translateX(3px); }
.sm-mega-menu--v24 .sm-v2-mega-service__secondary .sm-v2-mega-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }

.sm-mega-menu--v24 .sm-v2-mega-cta { padding:16px; border:1px solid var(--sm-v2-line); background:var(--sm-v2-soft); }
.sm-mega-menu--v24 .sm-v2-mega-cta p { margin:0 0 12px; color:#222; font-size:14px; font-weight:500; line-height:1.65; }
.sm-mega-menu--v24 .sm-v2-mega-cta .sm-v2-mega-cta__button { display:flex; width:100%; min-height:46px; justify-content:space-between; gap:10px; padding:12px 14px; color:#fff; font-size:15px; font-weight:700; }

.sm-mega-menu--v24 .sm-v2-mega-works { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:30px; }
.sm-mega-menu--v24 .sm-v2-mega-works__utility { align-self:start; }
.sm-mega-menu--v24 .sm-v2-mega-links--utility { display:grid; gap:12px; margin-top:14px; }
.sm-mega-menu--v24 .sm-v2-mega-links--utility li { display:block; }
.sm-mega-menu--v24 .sm-v2-mega-links--utility a { min-height:68px; padding:16px 18px; border:1px solid var(--sm-v2-line); border-radius:8px; background:#fff; font-size:16px; }

.sm-mega-menu--v24 .sm-v2-mega-about { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:30px; }
.sm-mega-menu--v24 .sm-v2-mega-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.sm-mega-menu--v24 .sm-v2-mega-business { margin-top:24px; padding-top:20px; border-top:1px solid var(--sm-v2-line); }
.sm-mega-menu--v24 .sm-v2-mega-business__cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:14px; }
.sm-mega-menu--v24 .sm-v2-mega-business__overview { display:flex; min-height:46px; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; padding:10px 14px; border:1px solid var(--sm-v2-line); color:#111; font-size:15px; font-weight:700; }

.sm-mega-menu--v24 .sm-v2-mega-stores { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr); gap:24px; align-items:start; }
.sm-mega-menu--v24 .sm-v2-mega-stores__cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }
.sm-mega-menu--v24 .sm-v2-mega-stores__business .sm-v2-mega-business__cards { grid-template-columns:1fr; gap:12px; }
.sm-mega-menu--v24 .sm-v2-mega-stores__business .sm-v2-mega-card--compact { grid-template-columns:minmax(110px,42fr) minmax(0,58fr); }
.sm-mega-menu--v24 .sm-v2-mega-stores__business .sm-v2-mega-card__body { min-height:0; align-content:center; }

.sm-mega-menu--v24 .sm-v2-asset-slot { display:grid; min-height:0; aspect-ratio:3 / 2; place-content:center; gap:5px; padding:12px; overflow:hidden; border:1px solid #d9e4de; background:var(--sm-v2-soft); color:#111; text-align:center; }
.sm-mega-menu--v24 .sm-v2-asset-slot__eyebrow { font-size:11px; font-weight:700; }
.sm-mega-menu--v24 .sm-v2-asset-slot strong { font-size:12px; font-weight:700; line-height:1.55; }
.sm-mega-menu--v24 .sm-v2-asset-slot small,
.sm-mega-menu--v24 .sm-v2-asset-slot__purpose { color:#222; font-size:10px; font-weight:500; line-height:1.45; }
.sm-mega-menu--v24 .sm-v2-asset-slot--media { display:block; padding:0; border:0; background:none; }

.sm-mega-menu__overlay { display:none; }

@media (min-width:1024px) {
  .sm-site-header { display:block !important; --sm-v2-mega-panel-gap:10px; isolation:isolate; }
  .sm-site-header .sm-global-nav { position:relative; z-index:3; overflow:visible; }
  .sm-site-header .sm-global-nav__link { position:relative; }
  .sm-site-header .sm-global-nav__link::after {
    position:absolute;
    z-index:2;
    bottom:calc(-1 * (var(--sm-v2-mega-panel-gap) + 1px));
    left:50%;
    width:0;
    height:0;
    border-right:10px solid transparent;
    border-bottom:10px solid var(--sm-v2-green);
    border-left:10px solid transparent;
    content:"";
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(-50%,10px,0);
    transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s;
  }
  .sm-site-header .sm-global-nav__item.is-open .sm-global-nav__link::after { opacity:1; visibility:visible; transform:translate3d(-50%,0,0); transition:opacity .2s ease,transform .2s ease,visibility 0s; }
  .sm-site-header .sm-mega-menu__overlay { position:fixed; inset:0; z-index:1; display:block; background:rgba(0,0,0,.30); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease,visibility 0s linear .18s; }
  .sm-site-header.sm-mega-menu-is-open .sm-mega-menu__overlay { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .18s ease,visibility 0s; }
  .sm-site-header .sm-mega-menu-layer { top:calc(100% + var(--sm-v2-mega-panel-gap)); z-index:2; pointer-events:none; }
  .sm-site-header .sm-mega-menu--v24 {
    right:auto;
    left:50%;
    z-index:1;
    display:block;
    width:min(calc(100vw - 64px),1280px);
    height:auto;
    max-height:calc(100vh - 170px);
    margin:0;
    overflow-x:hidden;
    overflow-y:auto;
    box-sizing:border-box;
    border:1px solid var(--sm-v2-line);
    border-radius:10px;
    background:#fff;
    box-shadow:0 12px 32px rgba(0,0,0,.10);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(-50%,10px,0);
    transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s;
  }
  .sm-site-header .sm-mega-menu--v24::before { position:absolute; top:calc(-1 * var(--sm-v2-mega-panel-gap)); right:0; left:0; height:var(--sm-v2-mega-panel-gap); content:""; }
  .sm-site-header .sm-mega-menu--v24.is-open { opacity:1; visibility:visible; pointer-events:auto; transform:translate3d(-50%,0,0); transition:opacity .2s ease,transform .2s ease,visibility 0s; }
  .sm-site-header .sm-mega-menu--v24 .sm-mega-menu__inner { box-sizing:border-box; width:100%; max-width:none; margin:0; padding:32px 40px 36px; }
  .sm-site-header .sm-mega-menu--v24 .sm-mega-menu__close { top:24px; right:34px; min-width:92px; min-height:42px; padding:8px 10px; border-radius:6px; color:var(--sm-v2-green); font-size:15px; font-weight:700; }
  .sm-site-header .sm-mega-menu--v24 .sm-mega-menu__close:hover,
  .sm-site-header .sm-mega-menu--v24 .sm-mega-menu__close:focus-visible { background:#edf7f1; color:var(--sm-v2-green); }
  .sm-site-header .sm-mega-menu--v24 .sm-v2-mega-panel { padding:0; }
  .sm-site-header .sm-mega-menu--v24 .sm-v2-mega-panel__title { padding-right:110px; }
}

@media (min-width:1024px) and (max-width:1150px) {
  .sm-site-header .sm-global-nav__list { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .sm-site-header .sm-global-nav__item { min-width:0; }
  .sm-site-header .sm-global-nav__link { min-width:0; gap:4px; padding:0 4px; font-size:13px; line-height:1.35; }
  .sm-site-header .sm-global-nav__text { min-width:0; word-break:keep-all; }
  .sm-site-header .sm-mega-menu--v24 .sm-mega-menu__inner { padding:28px 30px 30px; }
  .sm-site-header .sm-mega-menu--v24 .sm-mega-menu__close { top:20px; right:24px; }
  .sm-mega-menu--v24 .sm-v2-mega-service,
  .sm-mega-menu--v24 .sm-v2-mega-works { grid-template-columns:minmax(0,2fr) minmax(270px,1fr); gap:22px; }
  .sm-mega-menu--v24 .sm-v2-mega-cards { gap:10px; }
  .sm-mega-menu--v24 .sm-v2-mega-panel--leak .sm-v2-mega-cards,
  .sm-mega-menu--v24 .sm-v2-mega-cards--four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sm-mega-menu--v24 .sm-v2-mega-card__body { padding:12px; }
  .sm-mega-menu--v24 .sm-v2-mega-stores { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sm-mega-menu--v24 .sm-v2-mega-stores__business { grid-column:1 / -1; }
  .sm-mega-menu--v24 .sm-v2-mega-stores__business .sm-v2-mega-business__cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:1023px) {
  .sm-site-header .sm-mega-menu__overlay,
  .sm-site-header .sm-mega-menu-layer { display:none; }
}

@media (prefers-reduced-motion:reduce) {
  .sm-site-header .sm-mega-menu__overlay,
  .sm-site-header .sm-mega-menu--v24,
  .sm-mega-menu--v24 .sm-v2-mega-card,
  .sm-mega-menu--v24 .sm-v2-mega-links a span { transition-duration:1ms !important; }
}
