/* =====================================================
   menu.css
   蝗ｺ螳壹・繝ｼ繧ｸ73縺ｮHTML繧・PC / SP 蜈ｱ騾壹〒菴ｿ逕ｨ
   譟斐ｉ縺九＞繧ｰ繝ｪ繝ｼ繝ｳ邉ｻ驟崎牡迚・
===================================================== */

:root{
  /* ぽかぽか広場の明るいグリーンと白を基調にした配色 */
  --brand-700:#6ac928;
  --brand-500:#8ace20;
  --brand-300:#b7e889;
  --brand-200:#E8F7DF;

  --nav-bg:#fff;
  --nav-text:#333333;
  --nav-ink:#5c8f16;
  --nav-line:rgba(106,201,40,.28);
}

/* =========================
   蜈ｱ騾・
========================= */
.global-nav{
  width:100%;
  background:var(--nav-bg);
  position:relative;
}

.global-nav ul{
  list-style:none;
  margin:0;
  padding:0;
}

.global-nav a{
  text-decoration:none;
  color:var(--nav-text);
}

.sp-info{
  margin:20px auto;
  text-align:center;
}

.sp-info-logo{
  margin:10px auto;
  text-align:center;
  max-width:90%;
}

.sp-info a{
  color:#fff;
}

.header-info-top p{
  display:inline-flex;
  align-items:center;
  width:auto;
  margin:0;
  white-space:nowrap;
}

/* =========================
   PC
========================= */
/* PC陦ｨ遉ｺ縺ｧ縺ｯ繧ｹ繝槭・逕ｨ繝翫ン縺ｨ髢矩哩繝懊ち繝ｳ繧貞ｸｸ縺ｫ髱櫁｡ｨ遉ｺ縺ｫ縺吶ｋ */
@media (min-width:1321px){
  .custom-page-menu,
  .sp-menu-toggle{
    display:none !important;
  }
}

/* 繧ｹ繝槭・繝ｻ繧ｿ繝悶Ξ繝・ヨ縺ｧ縺ｯPC逕ｨ繝翫ン繧帝撼陦ｨ遉ｺ縺ｫ縺吶ｋ */
@media (max-width:1320px){
  #page .custom-page-menu-pc{
    display:none !important;
  }
}

@media (min-width:1321px){

  .sp-menu-toggle,
  .custom-page-menu{
    display:none;
  }

  .custom-page-menu-pc{
    display:block;
    background:none;
    border-bottom:0;
    width:100%;
    max-width:100%;
  }

  .custom-page-menu-pc > ul{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:6px 12px;
  }

  .custom-page-menu-pc > ul > li{
    position:relative;
    padding:0;
    font-size:17px;
    line-height:1.35;
  }

  .custom-page-menu-pc > ul > li > a,
  .custom-page-menu-pc > ul > li > .menu-label{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:6px 18px;
    font-weight:600;
    color:#333333;
    background:#ffffff;
    border:2px solid #6ac928;
    cursor:pointer;
    border-radius:999px;
    white-space:nowrap;
    transition:background .2s ease, color .2s ease;
  }

  .custom-page-menu-pc > ul > li > a:hover,
  .custom-page-menu-pc > ul > li > a:focus,
  .custom-page-menu-pc > ul > li > .menu-label:hover{
    color:#000000;
    background:#E8F7DF;
    border-color:#6ac928;
  }

  /* 隕ｪ鬆・岼・医ユ繧ｭ繧ｹ繝医・縺ｿ・・*/
  .custom-page-menu-pc > ul > li:not(:has(> a, > .menu-label)){
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:6px 18px;
    color:#333333;
    background:#ffffff;
    border:2px solid #6ac928;
    border-radius:999px;
    white-space:nowrap;
  }

  .custom-page-menu-pc > ul > li:not(:has(> a, > .menu-label)):hover{
    color:#000000;
    background:#E8F7DF;
  }

  .custom-page-menu-pc > ul > li{
    position:relative;
    cursor:pointer;
    font-weight: bold;
  }

  /* 2髫主ｱ､ */
  .custom-page-menu-pc > ul > li > ul{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    min-width:260px;
    background:#fff;
    border:1px solid var(--nav-line);
    box-shadow:0 10px 30px rgba(0,0,0,.10);
    z-index:3000;
    padding:12px 0;
  }

  .custom-page-menu-pc > ul > li:hover > ul{
    display:block;
  }

  .custom-page-menu-pc > ul > li > ul > li{
    position:relative;
  }

  .custom-page-menu-pc > ul > li > ul > li > a{
    display:block;
    padding:13px 18px;
    font-size:16px;
    color:var(--nav-ink);
    white-space:nowrap;
  }

  .custom-page-menu-pc > ul > li > ul > li > a:hover{
    background:rgba(159,231,223,.28);
  }

  /* 3髫主ｱ､縺後≠繧句ｴ蜷・*/
  .custom-page-menu-pc > ul > li > ul > li > ul{
    display:none;
    position:absolute;
    top:0;
    left:100%;
    min-width:240px;
    background:var(--brand-700);
    box-shadow:0 10px 30px rgba(0,0,0,.12);
    padding:10px 0;
  }

  .custom-page-menu-pc > ul > li > ul > li:hover > ul{
    display:block;
  }

  .custom-page-menu-pc > ul > li > ul > li > ul > li > a{
    display:block;
    padding:10px 16px;
    color:#fff;
    font-size:14px;
    white-space:nowrap;
  }

  .custom-page-menu-pc > ul > li > ul > li > ul > li > a:hover{
    background:rgba(255,255,255,.08);
  }

  .header-info{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:4px 18px;
  }

  .header-info-top{
    display:flex;
    justify-content:center;
    gap:12px;
    width:100%;
    margin:0 0 5px;
    font-size:12px;
    line-height:1.3;
  }

  .header-info-top .header-tel{
    font-size:16px;
  }

  .header-info-top .header-address{
    font-size:12px;
  }
}

/* =========================
   SP
========================= */
@media (max-width:1320px){

  .custom-page-menu-pc{
    display:none;
  }

  /* 繝上Φ繝舌・繧ｬ繝ｼ */
  .sp-menu-toggle{
    position:fixed;
    top:12px;
    right:15px;
    z-index:5000;
    width:44px;
    height:44px;
    padding:0;
    border:none;
    background:#ebebeb;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }

  .hamburger{
    width:24px;
    height:18px;
    position:relative;
  }

  .hamburger .line{
    position:absolute;
    left:0;
    width:100%;
    height:2px;
    background:rgba(9,161,149,.9);
    transition:transform .3s ease, opacity .3s ease, top .3s ease;
  }

  .hamburger .line1{ top:0; }
  .hamburger .line2{ top:8px; }
  .hamburger .line3{ top:16px; }

  body.is-sp-menu-open .hamburger .line1{
    top:8px;
    transform:rotate(45deg);
  }

  body.is-sp-menu-open .hamburger .line2{
    opacity:0;
  }

  body.is-sp-menu-open .hamburger .line3{
    top:8px;
    transform:rotate(-45deg);
  }

  /* 繝｡繝九Η繝ｼ譛ｬ菴・*/
  .custom-page-menu{
    display:block;
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    z-index:4000;
    background:#fff;
    border-left:10px solid var(--brand-700);
    transform:translateX(100%);
    transition:transform .3s ease;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }

  body.is-sp-menu-open .custom-page-menu{
    transform:translateX(0);
  }

  body.is-sp-menu-open{
    overflow:hidden;
  }

  .custom-page-menu ul{
    list-style:none;
    margin:0;
    padding:0;
  }

  .custom-page-menu a,
  .custom-page-menu button{
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }

  /* 1髫主ｱ､ */
  .custom-page-menu > ul{
    margin:0;
    padding:0;
  }

  .custom-page-menu > ul > li{
    position:relative;
    border-bottom:1px solid rgba(9,161,149,.16);
    background:#fff;
  }

  .custom-page-menu > ul > li > a{
    display:block;
    padding:16px 16px;
    color:#212121;
    font-size:16px;
    font-weight:600;
    text-decoration:none;
  }

  /* JS縺ｧ逕滓・縺吶ｋ隕ｪ繝懊ち繝ｳ */
  .custom-page-menu .menu-parent-button{
    display:block;
    width:100%;
    text-align:left;
    padding:16px 56px 16px 16px;
    color:#212121;
    font-size:16px;
    font-weight:600;
    border:none;
    background:transparent;
    cursor:pointer;
    position:relative;
    appearance:none;
    -webkit-appearance:none;
    border-radius:0;
    box-shadow:none;
  }

  .custom-page-menu .menu-parent-button::before{
    content:"";
    position:absolute;
    right:20px;
    top:50%;
    width:8px;
    height:8px;
    margin-top:-6px;
    border-right:2px solid rgba(9,161,149,.85);
    border-bottom:2px solid rgba(9,161,149,.85);
    transform:rotate(45deg);
    transition:transform .25s ease, margin-top .25s ease;
    pointer-events:none;
  }

  .custom-page-menu li.is-open > .menu-parent-button::before{
    transform:rotate(-135deg);
    margin-top:-2px;
  }

  /* 2髫主ｱ､ */
  .custom-page-menu li > ul{
    display:none;
    cursor:pointer;
    background:rgba(159,231,223,.28);
  }

  .custom-page-menu li.is-open > ul{
    display:block;
  }

  .custom-page-menu li > ul > li{
    position:relative;
    border-bottom:1px solid rgba(9,161,149,.18);
  }

  .custom-page-menu li > ul > li > a{
    display:block;
    padding:14px 16px 14px 32px;
    color:var(--nav-ink);
    font-size:18px;
    text-decoration:none;
  }

  .custom-page-menu li > ul > li > .menu-parent-button{
    padding:14px 56px 14px 32px;
    color:var(--nav-ink);
    font-size:18px;
    background:transparent;
  }

  .custom-page-menu li > ul > li > .menu-parent-button::before{
    width:6px;
    height:6px;
    right:18px;
    opacity:.7;
  }

  /* 3髫主ｱ､ */
  .custom-page-menu li > ul > li > ul{
    display:none;
    background:var(--brand-700);
  }

  .custom-page-menu li > ul > li.is-open > ul{
    display:block;
  }

  .custom-page-menu li > ul > li > ul > li > a{
    display:block;
    padding:12px 16px 12px 48px;
    color:#fff;
    font-size:16px;
    text-decoration:none;
  }

  /* 陬・｣ｾ隗｣髯､ */
  .custom-page-menu a:hover,
  .custom-page-menu a:focus,
  .custom-page-menu a:active,
  .custom-page-menu .menu-parent-button:hover,
  .custom-page-menu .menu-parent-button:focus,
  .custom-page-menu .menu-parent-button:active{
    background:transparent;
    background-image:none;
    box-shadow:none;
    outline:none;
  }

  /* CTA */
  .sp-info{
    margin:20px auto;
    padding:16px;
  }

  .sp-info-logo{
    margin:18px auto 0;
    text-align:center;
    max-width:90%;
  }

    .sp-info-logo img{
    max-width:300px;
  }


  /* 繝倥ャ繝繝ｼ陬・｣ｾ縺ｮ蟷ｲ貂蛾亟豁｢ */
  .site-header::before,
  .site-header::after,
  .header::before,
  .header::after,
  .header-logo::after{
    pointer-events:none;
  }
}

/* =====================================================
   PC逕ｨ・壼・繧悟ｭ舌Γ繝九Η繝ｼ蜀・・ menu-label 隱ｿ謨ｴ
   2髫主ｱ､蜀・・隕句・縺鈴・岼繧偵Δ繝繝ｳ縺ｫ隕九○繧・
===================================================== */
@media (min-width:1321px){

  /* 2髫主ｱ､蜀・〒 menu-label 繧呈戟縺､ li */
  .custom-page-menu-pc > ul > li > ul > li:has(.menu-label){
    position:relative;
    cursor:pointer;
  }

  /* 2髫主ｱ､縺ｮ隕句・縺励Λ繝吶Ν */
  .custom-page-menu-pc > ul > li > ul > li > .menu-label{
    display:block;
    position:relative;
    padding:14px 44px 14px 18px;
    font-size:15px;
    font-weight:700;
    line-height:1.5;
    color:var(--brand-700);
    background:linear-gradient(135deg, rgba(159,231,223,.28), rgba(9,161,149,.08));
    border-left:4px solid var(--brand-700);
    letter-spacing:.03em;
    white-space:nowrap;
    cursor:default;
  }

  /* 蜿ｳ蜷代″遏｢蜊ｰ繧剃ｻ倥￠縺ｦ縲√◎縺ｮ蜈医↓3髫主ｱ､縺後≠繧九％縺ｨ繧堤､ｺ縺・*/
  .custom-page-menu-pc > ul > li > ul > li > .menu-label::after{
    content:"";
    position:absolute;
    top:50%;
    right:18px;
    width:7px;
    height:7px;
    border-top:2px solid rgba(9,161,149,.8);
    border-right:2px solid rgba(9,161,149,.8);
    transform:translateY(-50%) rotate(45deg);
  }

  /* 繝帙ヰ繝ｼ譎ゅ↓蟆代＠豬ｮ縺九○繧・*/
  .custom-page-menu-pc > ul > li > ul > li:hover > .menu-label{
    background:linear-gradient(135deg, rgba(159,231,223,.38), rgba(9,161,149,.12));
    color:var(--nav-ink);
  }

  /* 3髫主ｱ､ */
  .custom-page-menu-pc > ul > li > ul > li > ul{
    display:none;
    position:absolute;
    top:0;
    left:100%;
    min-width:260px;
    background:linear-gradient(180deg, #6ac928 0%, #8ace20 100%);
    box-shadow:0 14px 34px rgba(0,0,0,.14);
    border-radius:0 12px 12px 12px;
    overflow:hidden;
    padding:8px 0;
  }

  .custom-page-menu-pc > ul > li > ul > li:hover > ul{
    display:block;
  }

  .custom-page-menu-pc > ul > li > ul > li > ul > li{
    border-bottom:1px solid rgba(255,255,255,.08);
  }

  .custom-page-menu-pc > ul > li > ul > li > ul > li:last-child{
    border-bottom:none;
  }

  .custom-page-menu-pc > ul > li > ul > li > ul > li > a{
    display:block;
    padding:12px 16px;
    color:#fff;
    font-size:14px;
    line-height:1.5;
    white-space:nowrap;
    transition:background .2s ease, padding-left .2s ease;
  }

  .custom-page-menu-pc > ul > li > ul > li > ul > li > a:hover{
    background:rgba(255,255,255,.10);
    padding-left:20px;
  }
}
