@charset "UTF-8";
/*
 * Shared styles for every page built on Base.astro.
 * Phone layout (<=640px) sits next to the rules it overrides.
 */

:root {
  --color-text: #333;
  --color-accent: #d25316;
  --color-highlight: #ffd482;
  --color-line: #eee;
  --content-width: 960px;
  --font-sans: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
}

/* ---------- reset ---------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
}
ul, ol { list-style: none; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
table { border-collapse: collapse; border-spacing: 0; }

/* ---------- base ---------- */
body {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
  background: #fff;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: subpixel-antialiased;
}
a {
  color: var(--color-accent);
  text-decoration: none;
}
a:hover { text-decoration: underline; }

/* ---------- utilities ---------- */
.bd { font-weight: bold; }
.s14 { font-size: 14px; }
.s12 { font-size: 12px; }
.clr0 { color: var(--color-accent); }
.tl { text-align: left; }
.pd10 { padding: 10px; }
.pdb30 { padding-bottom: 30px; }
.anim { transition: all 0.2s ease-out; }
.alttext {
  display: block;
  text-indent: -9999px;
  overflow: hidden;
}

/* ---------- header ---------- */
#headerWrapper {
  height: 101px;
  border-bottom: 4px solid #f2f2f2;
  background: #fff;
}
#header {
  position: relative;
  width: var(--content-width);
  height: 90px;
  margin: 0 auto;
}
#header p {
  position: absolute;
  left: 192px;
  top: 30px;
  line-height: 1.4;
  color: var(--color-accent);
}
#logo {
  position: absolute;
  left: 0;
  top: 20px;
  width: 192px;
  height: 77px;
  background: url(/assets/img/common/logo.gif) center no-repeat;
}
#logo a {
  display: block;
  height: 100%;
}
/* Phone-only menu toggle. */
#subNav { display: none; }

@media (max-width: 640px) {
  body { font-size: 12px; }
  .s12 { font-size: 10px; }

  #headerWrapper {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 100;
    width: 100%;
    height: 54px;
  }
  #header {
    width: auto;
    height: 100%;
  }
  #header p { display: none; }
  #logo {
    left: 10px;
    top: 0;
    width: 90px;
    height: 50px;
    background-position: left center;
    background-size: auto 35px;
  }
  #subNav {
    display: block;
    position: absolute;
    right: 0;
    top: 0;
  }
  .sp_nav {
    width: 51px;
    height: 50px;
    border-left: 1px solid var(--color-line);
  }
  .sp_nav button {
    display: block;
    width: 100%;
    height: 100%;
    cursor: pointer;
    text-indent: -9999px;
    overflow: hidden;
    background: url(/assets/img/sp/ic03.png) center / auto 16px no-repeat;
  }
}

/* ---------- global nav ---------- */
#nav {
  width: var(--content-width);
  height: 40px;
  margin: 0 auto;
}
#nav ul { display: flex; }
#nav li { flex: 1; }
#nav a {
  display: block;
  height: 40px;
  font-size: 13px;
  line-height: 40px;
  text-align: center;
  color: var(--color-text);
  transition: background-color 0.2s ease-out;
}
#nav a:hover,
#nav a.cur {
  background: var(--color-highlight);
  text-decoration: none;
}

@media (max-width: 640px) {
  /* Full-screen drop-down, opened by common.js toggling .op */
  #nav {
    position: fixed;
    left: 0;
    top: -100%;
    z-index: 99;
    width: 100%;
    height: 100%;
    padding-top: 55px;
    background: #fff;
    opacity: 0;
    transition: all 0.2s ease-out;
  }
  #nav.op {
    top: 0;
    opacity: 1;
  }
  #nav ul { flex-direction: column; }
  #nav li {
    width: 100%;
    border-bottom: 1px solid var(--color-line);
  }
  #nav a:hover,
  #nav a.cur { background: none; }
}

/* ---------- breadcrumb ---------- */
#crumb {
  padding: 10px 0;
  border-top: 1px solid #ddd;
}
#crumb ul {
  display: flex;
  width: var(--content-width);
  margin: 0 auto;
  padding: 0 10px;
}
#crumb li {
  font-size: 12px;
  color: var(--color-text);
}
#crumb a {
  margin-right: 7px;
  padding-right: 12px;
  color: #666;
  text-decoration: underline;
  background: url(/assets/img/common/ar03.gif) right center no-repeat;
}
#crumb a:hover { text-decoration: none; }

@media (max-width: 640px) {
  #crumb { display: none; }
}

/* ---------- page frame ---------- */
#wrapper { position: relative; }
#container {
  position: relative;
  width: var(--content-width);
  margin: 0 auto;
}

@media (max-width: 640px) {
  #wrapper { padding-top: 54px; }
  #container { width: auto; }
}

/* ---------- section heading row ---------- */
.sub {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 20px 10px;
}
.sub h1,
.sub h2 {
  font-size: 18px;
  line-height: 1.2;
}
.sub h2 { font-size: 16px; }

a.more {
  display: block;
  padding-left: 20px;
  color: var(--color-text);
  background: url(/assets/img/common/ar01.gif) left center no-repeat;
}
a.more:hover {
  color: var(--color-accent);
  background-image: url(/assets/img/common/ar01_ov.gif);
}

/* ---------- text block ---------- */
.blc {
  padding: 0 10px 20px;
  border-bottom: 1px solid var(--color-line);
}

/* ---------- "made in Japan" box ---------- */
#sBox {
  margin-top: 30px;
  padding: 10px 15px 15px;
  border: 5px solid var(--color-line);
}
#sBox h2 {
  padding-bottom: 10px;
  font-size: 30px;
  line-height: 1.2;
}
#sBox p { line-height: 1.5; }

@media (max-width: 640px) {
  #sBox {
    margin: 15px 10px 0;
    padding: 7px 10px 10px;
    border-width: 3px;
  }
  #sBox h2 { font-size: 18px; }
}

/* ---------- shop banners ---------- */
#banner { padding: 30px 0; }
#banner ul {
  display: flex;
  gap: 15px;
}
#banner li { width: 310px; }
#banner a {
  display: block;
  padding: 10px 0;
  line-height: 1.4;
  text-align: center;
  border: 4px solid var(--color-line);
  border-radius: 10px;
}
#banner a:hover { opacity: 0.8; }

@media (max-width: 640px) {
  #banner { padding: 15px 10px; }
  #banner ul {
    flex-direction: column;
    gap: 0;
  }
  #banner li { width: auto; }
  #banner a {
    border-width: 1px 1px 0;
    border-radius: 0;
  }
  #banner li:first-child a { border-radius: 5px 5px 0 0; }
  #banner li:last-child a {
    border-width: 1px;
    border-radius: 0 0 5px 5px;
  }
  #banner img { height: 45px; }
}
