    :root {
      --blue:       #7eb8e8;
      --blue-light: #b8d9f5;
      --blue-pale:  #daeeff;
      --lavender:   #a89fd8;
      --lav-light:  #cfc9ee;
      --pink:       #f48cb6;
      --pink-light: #f9bdd5;
      --mint:       #7dd9b0;
      --sky:        #76cef0;
      --white:      #f4f8ff;
      --dark:       #0d1628;
      --dark-mid:   #111e36;
      --card-bg:    rgba(255,255,255,0.06);
    }
    * { margin: 0; padding: 0; box-sizing: border-box; }
    html { overflow-x: hidden; }
    body {
      background: var(--dark);
      color: var(--white);
      font-family: 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
      overflow-x: hidden;
      min-height: 100vh;
    }


    .bg-mesh {
      position: fixed; inset: 0; z-index: 0;
      background:
        radial-gradient(ellipse 70% 55% at 15% 10%,  rgba(126,184,232,0.18) 0%, transparent 60%),
        radial-gradient(ellipse 55% 65% at 85% 85%,  rgba(168,159,216,0.18) 0%, transparent 60%),
        radial-gradient(ellipse 45% 40% at 50% 40%,  rgba(118,206,240,0.10) 0%, transparent 65%),
        radial-gradient(ellipse 80% 30% at 50% 100%, rgba(126,184,232,0.12) 0%, transparent 60%),
        var(--dark);
      animation: meshDrift 16s ease-in-out infinite alternate;
    }
    @keyframes meshDrift {
      0%   { filter: hue-rotate(0deg) brightness(1); }
      100% { filter: hue-rotate(15deg) brightness(1.06); }
    }
    .starfield { position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
    .star {
      position: absolute; border-radius: 50%; background: #fff;
      animation: twinkle var(--d) ease-in-out infinite alternate;
    }
    @keyframes twinkle {
      0%   { opacity: 0.08; transform: scale(0.7); }
      100% { opacity: 0.85; transform: scale(1.3); }
    }
    .bubble {
      position: fixed; pointer-events: none; z-index: 0; border-radius: 50%;
      animation: floatBubble var(--fd) ease-in-out infinite; opacity: 0;
    }
    @keyframes floatBubble {
      0%   { transform: translateY(110vh) scale(0.6); opacity: 0; }
      15%  { opacity: 0.35; }
      85%  { opacity: 0.2; }
      100% { transform: translateY(-15vh) scale(1.1); opacity: 0; }
    }

    /* Header */
    header {
      position: relative; z-index: 10; text-align: center;
      padding: 70px 20px 56px;
      display: flex; flex-direction: column; align-items: center;
      overflow: hidden;
    }
        img{
	    max-width: 100%;
    }
        .logo-jp{
	    max-width: 300px;
	    margin: auto;
	    display: block;
    }
    .header-deco-ring {
      position: absolute; top: -40px; left: 50%; transform: translateX(-50%);
      
      border: 1px solid rgba(126,184,232,0.08); pointer-events: none;
      width: min(500px, 100vw); height: min(500px, 100vw); border-radius: 50%;
    }
    .header-deco-ring::before {
      content: ''; position: absolute; inset: 30px; border-radius: 50%;
      border: 1px solid rgba(168,159,216,0.07);
    }
    .header-glow {
      position: absolute; top: 0; left: 50%; transform: translateX(-50%);
      width: min(700px, 100vw);; height: 300px;
      background: radial-gradient(ellipse, rgba(126,184,232,0.22) 0%, transparent 70%);
      pointer-events: none;
    }
    .logo-img-wrap {
      position: relative; margin-bottom: 8px;
      filter: drop-shadow(0 0 28px rgba(126,184,232,0.55));
      animation: logoPulse 3.5s ease-in-out infinite alternate;
    }
    @keyframes logoPulse {
      0%   { filter: drop-shadow(0 0 20px rgba(126,184,232,0.45)); }
      100% { filter: drop-shadow(0 0 44px rgba(168,159,216,0.75)); }
    }
    .logo-img-wrap img {
      width: clamp(260px, 50vw, 480px); height: auto; display: block;
    }
    .logo-tagline {
      font-size: clamp(0.75rem, 1.4vw, 0.95rem);
      letter-spacing: 0.25em; color: rgba(184,217,245,0.6);
      margin-top: 10px; font-weight: 400;
    }
    .deco-line {
      display: flex; align-items: center; justify-content: center;
      gap: 10px; margin: 24px auto 0;
    }
    .deco-line::before, .deco-line::after {
      content: ''; display: block; width: 90px; height: 1px;
      background: linear-gradient(90deg, transparent, var(--blue), transparent);
    }
    .deco-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sky); box-shadow: 0 0 8px var(--sky); }
    .deco-dot.pink { background: var(--pink); box-shadow: 0 0 8px var(--pink); }
    .deco-dot.mint { background: var(--mint); box-shadow: 0 0 8px var(--mint); }

    /* Section title */
    .section-title { text-align: center; margin-bottom: 44px; position: relative; z-index: 2; }
    .section-title h2 {
      font-family: 'Fredoka One', sans-serif;
      font-size: clamp(0.9rem, 2vw, 1.2rem);
      letter-spacing: 0.35em; color: var(--blue-light); text-transform: uppercase; opacity: 0.8;
    }
    .section-title p {
      font-weight: 900; font-size: clamp(1.5rem, 3.5vw, 2.2rem); letter-spacing: 0.08em;
      background: linear-gradient(90deg, var(--blue-light), var(--white), var(--lav-light));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      margin-top: 4px;
    }

    /* Store grid */
.stores-section { position: relative; z-index: 2; max-width: 1000px; margin: 0 auto; padding: 0 24px 40px; }
    .store-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
    .row2-wrapper { grid-column: 1 / -1; display: flex; justify-content: center; gap: 18px; }
    .row2-wrapper .store-card { flex: 0 0 calc(25% - 14px); }
    .store-card {
      position: relative; border-radius: 22px; overflow: hidden;
      cursor: pointer; text-decoration: none; display: block;
      background: var(--card-bg); border: 1.5px solid rgba(126,184,232,0.18);
      backdrop-filter: blur(14px);
      transition: transform 0.35s cubic-bezier(.22,1,.36,1), box-shadow 0.35s ease, border-color 0.3s;
      animation: cardReveal 0.65s ease both;
    }
    .store-card:nth-child(1) { animation-delay: 0.05s; }
    .store-card:nth-child(2) { animation-delay: 0.12s; }
    .store-card:nth-child(3) { animation-delay: 0.19s; }
    .store-card:nth-child(4) { animation-delay: 0.26s; }
    .row2-wrapper .store-card:nth-child(1) { animation-delay: 0.33s; }
    .row2-wrapper .store-card:nth-child(2) { animation-delay: 0.40s; }
    .row2-wrapper .store-card:nth-child(3) { animation-delay: 0.47s; }
    @keyframes cardReveal {
      from { opacity: 0; transform: translateY(28px) scale(0.95); }
      to   { opacity: 1; transform: translateY(0) scale(1); }
    }
    .store-card:hover {
      transform: translateY(-9px) scale(1.025);
      box-shadow: 0 20px 50px rgba(126,184,232,0.25), 0 0 0 1.5px rgba(126,184,232,0.45);
      border-color: rgba(126,184,232,0.55);
    }
@media (min-width: 601px) and (max-width: 1024px) {
  .store-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .row2-wrapper {
    grid-column: 1 / -1;
    display: contents; /* ラッパーを無効化してカードを親グリッドに流す */
  }
  .row2-wrapper .store-card {
    flex: unset;
    width: auto;
  }
}   
    @media (max-width: 600px) {
      .store-grid { grid-template-columns: 1fr; }
      .row2-wrapper { flex-direction: column; gap: 18px; }
      .row2-wrapper .store-card { flex: unset; width: 100%; }
    }

    /* Card parts */
    .card-bar { height: 4px; width: 100%; }
    .card-inner {
      padding: 24px 14px 44px;
      display: flex; flex-direction: column; align-items: center; text-align: center;
    }
    .card-icon {
      display: flex; align-items: center; justify-content: center;
      font-size: 1.55rem; margin: 0 auto 14px;
    }
    .card-name-jp { font-weight: 700; font-size: 0.95rem; letter-spacing: 0.04em; color: var(--white); line-height: 1.55; margin-bottom: 5px; }
    .card-name-en { font-family: 'Fredoka One', sans-serif; font-size: 0.58rem; letter-spacing: 0.15em; color: rgba(184,217,245,0.5); text-transform: uppercase; margin-bottom: 10px; }
    .card-desc { font-size: 0.74rem; line-height: 1.75; color: rgba(220,236,255,0.5); font-weight: 400; }
    .card-location { display: inline-flex; align-items: center; gap: 4px; margin-top: 12px; font-size: 0.7rem; color: var(--blue-light); opacity: 0.75; }
    .card-location::before { content: '📍'; font-size: 0.68rem; }
    .card-location a{
	    color: var(--blue-light);
	    text-decoration: none;
    }
    .map a{
	    margin-top: 10px;
    display: block;
    color: #fff;
    font-size: .85rem;
    text-decoration: none;
    }
    
    .card-arrow {
	    display: none;
      position: absolute; bottom: 16px; right: 16px;
      width: 30px; height: 30px; border-radius: 50%;
      background: rgba(126,184,232,0.12); border: 1px solid rgba(126,184,232,0.3);
/*       display: flex;  */
      align-items: center; justify-content: center;
      font-size: 0.85rem; color: var(--blue-light);
      transition: background 0.2s, transform 0.2s;
    }
    .store-card:hover .card-arrow { background: rgba(126,184,232,0.3); transform: translateX(3px); }

a.card-icon,
a.card-name-jp {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
a.card-icon:hover,
a.card-name-jp:hover {
  opacity: 0.75;
}

    /* Card themes */
    .theme-a .card-bar  { background: linear-gradient(90deg, #76cef0, #b8d9f5); }
    .theme-a .card-icon { background: rgba(118,206,240,0.15); }
    .theme-b .card-bar  { background: linear-gradient(90deg, #a89fd8, #cfc9ee); }
    .theme-b .card-icon { background: rgba(168,159,216,0.15); }
    .theme-c .card-bar  { background: linear-gradient(90deg, #f48cb6, #f9bdd5); }
    .theme-c .card-icon { background: rgba(244,140,182,0.15); }
    .theme-d .card-bar  { background: linear-gradient(90deg, #7dd9b0, #b2f0d5); }
    .theme-d .card-icon { background: rgba(125,217,176,0.15); }
    .theme-e .card-bar  { background: linear-gradient(90deg, #7eb8e8, #a89fd8); }
    .theme-e .card-icon { background: rgba(126,184,232,0.15); }
    .theme-f .card-bar  { background: linear-gradient(90deg, #f9bdd5, #cfc9ee); }
    .theme-f .card-icon { background: rgba(249,189,213,0.15); }
    .theme-g .card-bar  { background: linear-gradient(90deg, #b8d9f5, #76cef0); }
    .theme-g .card-icon { background: rgba(184,217,245,0.15); }

    /* Footer */
 footer { position: relative; z-index: 2; text-align: center; padding: 28px 20px 32px; border-top: 1px solid rgba(126,184,232,0.1); }
     .footer-logo-img { width: clamp(120px, 22vw, 180px); height: auto; opacity: 0.5; margin: 0 auto 12px; display: block; }
    .footer-copy { font-size: 0.7rem; color: rgba(184,217,245,0.3); letter-spacing: 0.1em; }
.footer-sns {
	margin-top: 15px;
      display: flex; justify-content: center; gap: 12px;
      margin-bottom: 14px;
    }
    .footer-sns a {
      display: flex; align-items: center; justify-content: center;
      width: 38px; height: 38px; border-radius: 50%;
      background: rgba(126,184,232,0.1);
      border: 1px solid rgba(126,184,232,0.25);
      color: var(--blue-light);
      text-decoration: none;
      transition: background 0.2s, border-color 0.2s, transform 0.2s;
    }
    .footer-sns a:hover {
      background: rgba(126,184,232,0.25);
      border-color: rgba(126,184,232,0.6);
      transform: translateY(-3px);
    }
    .footer-sns svg { width: 16px; height: 16px; fill: currentColor; }
    .footer-copy { font-size: 0.7rem; color: rgba(184,217,245,0.3); letter-spacing: 0.1em; }
    /* Scroll reveal */
    @media (prefers-reduced-motion: no-preference) {
      .reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.55s ease, transform 0.55s ease; }
      .reveal.visible { opacity: 1; transform: translateY(0); }
    }
    
    /* X button in header */
    .header-x-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 20px;
      padding: 10px 22px;
      border-radius: 999px;
      background: rgba(126,184,232,0.1);
      border: 1.5px solid rgba(126,184,232,0.35);
      color: var(--blue-light);
      text-decoration: none;
      font-family: 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
      font-size: 0.85rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      backdrop-filter: blur(8px);
      transition: background 0.25s, border-color 0.25s, transform 0.25s, box-shadow 0.25s;
    }
    .header-x-btn:hover {
      background: rgba(126,184,232,0.22);
      border-color: rgba(126,184,232,0.7);
      transform: translateY(-3px);
      box-shadow: 0 8px 24px rgba(126,184,232,0.2);
    }
    .header-x-btn svg {
      width: 15px; height: 15px; fill: currentColor; flex-shrink: 0;
    }
    