/* Shared footer and mobile navigation, October 2026. */
footer .campLink_footer_title {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

footer .l-footer-sns-ig__icon {
  display: block;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  object-fit: contain;
}
footer .l-footer-sns-ig__link { grid-template-columns: 44px auto; }

@media (min-width: 1024px) {
  footer .campLink_footer_title { font-size: 18px; line-height: 1.6; }
  footer .campLink_footer_title::before {
    display: block;
    padding: 0;
    margin-bottom: 6px;
    color: #bf788b;
    font-size: 28px;
    line-height: 1.2;
  }
}

@media (max-width: 1023px) {
  #header .l-globalNav_hamburger {
    left: 8px;
    top: 7px;
    width: 50px;
    height: 50px;
    padding: 7px 0 4px;
    border: 1px solid #f2d6de;
    border-radius: 16px;
    background: #fff2f5;
    color: #985363;
    transition: background .2s ease, box-shadow .2s ease;
  }
  #header .l-globalNav_hamburger_item {
    color: inherit;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .02em;
  }
  #header .l-globalNav_hamburger_item.item_menu { top: -2px; }
  #header .l-globalNav_hamburger_item .u-ico {
    width: 18px;
    height: 18px;
    margin: 0 auto 4px;
  }
  #header .l-globalNav_hamburger .u-ico path { fill: currentColor; }
  #header .l-globalNav.is-open .l-globalNav_hamburger {
    background: #f9e2e8;
    box-shadow: 0 3px 12px #bb73831a;
  }
  #header .l-globalNav_nav {
    box-sizing: border-box;
    position: fixed;
    top: 74px;
    left: 10px;
    width: min(calc(100vw - 20px), 410px);
    height: calc(100dvh - 84px);
    padding: 22px 18px calc(18px + env(safe-area-inset-bottom));
    border: 1px solid #f4e0e5;
    border-radius: 24px;
    background: linear-gradient(155deg, #fff7f8 0%, #fffcfc 50%, #f4faf8 100%);
    box-shadow: 0 12px 40px #8a59632b;
    opacity: 0;
    transform: translateX(calc(-100% - 20px));
    transition: transform .32s ease, opacity .25s ease, visibility .32s;
    scrollbar-width: thin;
    scrollbar-color: #e9bfca transparent;
    text-align: left;
  }
  #header .l-globalNav.is-open .l-globalNav_nav {
    left: 10px;
    opacity: 1;
    transform: translateX(0);
  }
  #header .l-globalNav_blackBg {
    position: fixed;
    top: 64px;
    background: #7b656b;
    transition: opacity .25s ease, visibility .25s;
  }
  #header .l-globalNav.is-open .l-globalNav_blackBg { opacity: .28; }
  #header .eac-menu-welcome {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
  }
  #header .eac-menu-welcome img {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    box-shadow: 0 5px 15px #bd73832b;
  }
  #header .eac-menu-eyebrow {
    display: block;
    margin-bottom: 6px;
    color: #a85870;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .16em;
  }
  #header .eac-menu-welcome p {
    margin: 0;
    padding: 0;
    color: #65434d;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .035em;
  }
  #header .eac-menu-consult {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 48px;
    padding: 10px 12px;
    margin-bottom: 24px;
    border-radius: 30px;
    background: linear-gradient(110deg, #b65b76, #b45f70);
    box-shadow: 0 5px 14px #b65b7629;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
    text-decoration: none;
  }
  #header .eac-menu-consult span:last-child { font-size: 20px; font-weight: 400; }
  #header .menu-mainmenu-container { margin: 0; }
  #header #eac-mobile-menu { margin: 0; padding: 0; list-style: none; }
  #header .menu > li { margin: 0; padding: 0; }
  #header .menu > li + li { margin-top: 20px; }
  #header .menu-item h4 { margin: 0 0 9px; background: transparent; }
  #header .menu-item h4 a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 2px;
    color: #65434d;
    font-size: 15px;
    line-height: 1.8;
    text-decoration: none;
  }
  #header .menu-item h4 a::before {
    content: '';
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #d898aa;
    box-shadow: 0 0 0 4px #f7e5ec;
    margin: 0 5px;
  }
  #header .menu > li:nth-child(2) h4 a::before { background: #80a79c; box-shadow: 0 0 0 4px #e4f1ec; }
  #header .menu > li:nth-child(3) h4 a::before { background: #b29aca; box-shadow: 0 0 0 4px #f0e9f7; }
  #header .sub-menu {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #header .sub-menu li { min-width: 0; margin: 0; border: 0; }
  #header .sub-menu li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  #header .sub-menu li a {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    min-height: 48px;
    height: 100%;
    padding: 11px 12px;
    border: 1px solid #f0e2e6;
    border-radius: 12px;
    background: #fff;
    color: #69565d;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.65;
    white-space: normal;
    overflow-wrap: anywhere;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease;
  }
  #header .sub-menu li a::before { content: none; }
  #header .menu > li:nth-child(3) .sub-menu li a { font-size: 12px; }
  #header .sub-menu li a::after { content: '›'; flex-shrink: 0; color: #ba7b8c; font-size: 18px; line-height: 1; }
  #header .sub-menu li a:hover { background: #fff3f6; border-color: #e1adbc; }
  #header .eac-menu-note {
    margin: 24px 0 0;
    padding: 0;
    text-align: center;
    color: #8d6c78;
    font-size: 10px;
    line-height: 1.8;
  }
  #header .l-globalNav a:focus-visible,
  #header .l-globalNav button:focus-visible {
    outline: 2px solid #9c4865;
    outline-offset: 3px;
  }
  body:has(#js-globalNav.is-open) #global { visibility: hidden; pointer-events: none; }

  /* The front-page shortcuts echo the drawer's soft, rounded treatment. */
  #global {
    left: 10px;
    right: 10px;
    margin-bottom: calc(10px + env(safe-area-inset-bottom));
    padding: 5px;
    border: 1px solid #eed9e0;
    border-radius: 20px;
    background: #fffffffa;
    box-shadow: 0 4px 24px #a46b7d29;
    transform: translateY(calc(100% + 40px));
    transition: transform .3s ease;
  }
  #global.active { transform: translateY(0); }
  #global .l-globalMenu { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); height: auto; }
  #global .l-globalMenu_item { display: block; width: auto; min-width: 0; }
  #global .l-globalMenu_item a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-height: 52px;
    padding: 5px 0;
    border-radius: 15px;
    color: #946477;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
  }
  #global .l-globalMenu_item:first-child a { background: #fff0f4; color: #a14d68; }
  #global .l-globalMenu_item a .eac-icon { position: static; width: 22px; height: 22px; margin: 0; }
  #global .l-globalMenu_item a .eac-icon path { fill: currentColor; }
  #global .l-globalMenu_item a:focus-visible { outline: 2px solid #9c4865; outline-offset: 0; }
  body.eac-has-mobile-nav { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
}

@media (max-width: 359px) {
  #header .l-globalNav_nav { padding-left: 14px; padding-right: 14px; }
  #header .sub-menu li a { padding: 10px; }
  #header .eac-menu-welcome p { font-size: 17px; }
  #header .eac-menu-consult { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  #header .l-globalNav_nav,
  #header .l-globalNav_blackBg,
  #header .l-globalNav_hamburger,
  #header .sub-menu li a,
  #global { transition: none; }
}
