:root {
  --amour: #f9e5f1;
  --congress-blue: #00538e;
  --eerie-black: #1b2024;
  --endeavour: #0062a7;
  --hawkes-blue: #d2e9f8;
  --mystic: #e1ecfa;
  --oasis: #fdf0cb;
  --white: #ffffff;

  --font-size-l: 15px;
  --font-size-m: 14px;
  --font-size-s: 13px;
  --font-size-xl: 16px;
  --font-size-xs: 11px;

  --font-family-hiragino_sans-w3: "Hiragino Sans-W3", Helvetica;
  --font-family-hiragino_sans-w6: "Hiragino Sans-W6", Helvetica;
  --font-family-rounded_mplus_1c_bold-bold: "Rounded Mplus 1c Bold-Bold", Helvetica;
}

/* ============================================
   cupsake-sake-brewery - BEM styles
   ============================================ */

/* Root */
.cupsake-sake-brewery {
  background-color: var(--white);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 375px;
  position: relative;
}

/* Inner wrapper */
.cupsake-sake-brewery__inner {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
  position: relative;
  width: 100%;
}

/* Story wrapper */
.cupsake-sake-brewery__story {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  position: relative;
  width: 100%;
}

/* Main contents */
.cupsake-sake-brewery__contents {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  padding: 60px 15px;
  position: relative;
  width: 100%;
}

/* Heading area */
.cupsake-sake-brewery__heading {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  padding: 0px 0px 40px;
  position: relative;
  width: 342px;
}

/* Title h1 */
.cupsake-sake-brewery__title {
  align-self: stretch;
  color: var(--eerie-black);
  font-family: var(--font-family-rounded_mplus_1c_bold-bold);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 1.68px;
  line-height: 42px;
  margin-top: -1.00px;
  position: relative;
  text-align: center;
}

/* Description */
.cupsake-sake-brewery__desc {
  align-self: stretch;
  color: var(--eerie-black);
  font-family: var(--font-family-hiragino_sans-w3);
  font-size: var(--font-size-xl);
  font-weight: 400;
  letter-spacing: 0.96px;
  line-height: 27.2px;
  position: relative;
}

/* Regions container */
.cupsake-sake-brewery__regions {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 40px;
  padding: 40px 0px 0px;
  position: relative;
  width: 100%;
}

/* Individual region section */
.cupsake-sake-brewery__region {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  position: relative;
  width: 100%;
}

/* Region heading */
.cupsake-sake-brewery__region-heading {
  align-items: flex-start;
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  padding: 0px 0px 20px;
  position: relative;
}

/* Region label (bordered) */
.cupsake-sake-brewery__region-label {
  align-items: center;
  border-color: var(--endeavour);
  border-left-style: solid;
  border-left-width: 8px;
  border-radius: 0px 4px 4px 0px;
  display: inline-flex;
  flex: 0 0 auto;
  padding: 2px 12px 2px 16px;
  position: relative;
}

/* Region title text */
.cupsake-sake-brewery__region-title {
  color: var(--congress-blue);
  font-family: var(--font-family-rounded_mplus_1c_bold-bold);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 1.20px;
  line-height: 30px;
  position: relative;
  text-align: center;
  white-space: nowrap;
  width: fit-content;
}

/* Brewery list */
.cupsake-sake-brewery__list {
  align-items: flex-start;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 24rem 10rem;
  position: relative;
  width: 100%;
}

/* Individual brewery item */
.cupsake-sake-brewery__item {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  width: calc( ( 100% - 10rem ) / 2 );
}

/* Image wrapper (circle) */
.cupsake-sake-brewery__item-img-wrap {
  align-items: center;
  border: 1px solid;
  border-color: var(--mystic);
  border-radius: 100px;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 10px;
  overflow: hidden;
  position: relative;
}

/* Base image style */
.cupsake-sake-brewery__item-img {
  display: block;
  width: 100px;
  height: 100px;
  object-fit: cover;
}

/* Brewery info section */
.cupsake-sake-brewery__item-info {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}

/* Badges container */
.cupsake-sake-brewery__item-badges {
  align-items: flex-start;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 4px;
  position: relative;
}

/* Badge base */
.cupsake-sake-brewery__item-badge {
  align-items: center;
  border-radius: 4px;
  display: flex;
  height: 20px;
  justify-content: center;
  padding: 2px 8px 0;
  position: relative;
}

/* Region badges */
.cupsake-sake-brewery__item-badge--hamatoori {
  background-color: var(--hawkes-blue);
  width: 44px;
}
.cupsake-sake-brewery__item-badge--nakadoori {
  background-color: var(--oasis);
  width: 44px;
}
.cupsake-sake-brewery__item-badge--aizu {
  background-color: var(--amour);
  width: 44px;
}

/* City badge */
.cupsake-sake-brewery__item-badge--city {
  background-color: var(--white);
  border: 1px solid;
  border-color: var(--mystic);
  display: inline-flex;
  flex: 0 0 auto;
}

/* Badge text */
.cupsake-sake-brewery__item-badge-text {
  color: var(--eerie-black);
  font-family: var(--font-family-hiragino_sans-w6);
  font-size: var(--font-size-xs);
  font-weight: 400;
  letter-spacing: 0.66px;
  line-height: 11px;
  position: relative;
  white-space: nowrap;
  width: fit-content;
}
.cupsake-sake-brewery__item-badge--hamatoori .cupsake-sake-brewery__item-badge-text,
.cupsake-sake-brewery__item-badge--nakadoori .cupsake-sake-brewery__item-badge-text,
.cupsake-sake-brewery__item-badge--aizu .cupsake-sake-brewery__item-badge-text {
  margin-left: -3.50px;
  margin-right: -3.50px;
}

/* Brewery name */
.cupsake-sake-brewery__item-name {
  color: var(--eerie-black);
  font-family: var(--font-family-hiragino_sans-w6);
  font-size: var(--font-size-l);
  font-weight: 400;
  letter-spacing: 0.90px;
  line-height: 18.8px;
  text-align: center;
  text-decoration: underline;
}

.cupsake-sake-brewery__item-name--no-link {
  text-decoration: none;
}

/* Person info */
.cupsake-sake-brewery__item-person {
  align-items: center;
  align-self: stretch;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  position: relative;
  width: 100%;
}

/* Person name container */
.cupsake-sake-brewery__item-person-name {
  align-items: flex-end;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 2px;
  position: relative;
}

/* Person name label */
.cupsake-sake-brewery__item-person-label {
  color: var(--eerie-black);
  font-family: var(--font-family-hiragino_sans-w6);
  font-size: var(--font-size-m);
  font-weight: 400;
  letter-spacing: 0.84px;
  line-height: 23.8px;
  margin-top: -1.00px;
  position: relative;
  white-space: nowrap;
  width: fit-content;
}

/* "さん" suffix */
.cupsake-sake-brewery__item-person-suffix {
  color: var(--eerie-black);
  font-family: var(--font-family-hiragino_sans-w6);
  font-size: var(--font-size-m);
  font-weight: 400;
  letter-spacing: 0.84px;
  line-height: 24px;
  margin-top: -1.00px;
  position: relative;
  white-space: nowrap;
  width: fit-content;
}

/* Comment */
.cupsake-sake-brewery__item-comment {
  align-self: stretch;
  color: var(--eerie-black);
  font-family: var(--font-family-hiragino_sans-w3);
  font-size: var(--font-size-s);
  font-weight: 400;
  letter-spacing: 0.78px;
  line-height: 19.5px;
  position: relative;
}


/* ============================================
   PC styles
   ============================================ */
@media screen and (min-width: 768px) {
  .cupsake-sake-brewery {
    width: 100%;
  }
  .cupsake-sake-brewery__story {
    width: 100%;
  }
  .cupsake-sake-brewery__contents {
    padding: 100px 15px;
    max-width: 1230px;
    align-self: center;
  }
  .cupsake-sake-brewery__heading {
    width: 100%;
    padding: 0px 0px 72px;
  }
  .cupsake-sake-brewery__title {
    font-size: 36px;
    letter-spacing: 2.16px;
    line-height: 54px;
    align-self: auto;
    white-space: nowrap;
    width: fit-content;
  }
  .cupsake-sake-brewery__desc {
    font-size: 18px;
    letter-spacing: 1.08px;
    line-height: 30.6px;
    text-align: center;
  }
  .cupsake-sake-brewery__regions {
    gap: 80px;
    padding: 60px 0px 0px;
  }
  .cupsake-sake-brewery__list {
    gap: 28px 36px;
  }
  .cupsake-sake-brewery__item {
    width: calc( ( 100% - 36px * 3 ) / 4 );
    gap: 12px;
  }
  .cupsake-sake-brewery__item-img {
    height: 120px;
    width: 120px;
  }
  .cupsake-sake-brewery__item-name {
    font-size: 18px;
    letter-spacing: 1.08px;
    line-height: 22.5px;
  }
  .cupsake-sake-brewery__item-person-label {
    font-size: 16px;
    letter-spacing: 0.96px;
    line-height: 27.2px;
  }
  .cupsake-sake-brewery__item-person-suffix {
    font-size: 14px;
    letter-spacing: 0.84px;
    line-height: 28px;
  }
  .cupsake-sake-brewery__item-comment {
    font-size: 14px;
    letter-spacing: 0.84px;
    line-height: 21px;
  }
}