@charset "utf-8";
/*----------------------------------------------------------------------------------------------------

  header
  
----------------------------------------------------------------------------------------------------*/
@media print, screen and (min-width:981px) {
  :root { --hd-height: 4.5em; }
}
@media print, screen and (max-width:980px) {
  :root { --hd-height: 4em; }
}
.l-hd {
  width: 100%;
  min-width: 320px;
  height: var(--hd-height);
  display: flex;
  justify-content: space-between;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 999;
  background: #FFF;
  box-shadow: 0 -5px 25px 0 rgba(220,95,110,0.15);
}
body {
  padding-top: var(--hd-height);
}

/*--------------------------------------------------------------------------------
  site name
--------------------------------------------------------------------------------*/
.hd_sitename {
  height: 100%;
  text-align: left;
  line-height: var(--line-height-s);
  font-weight: inherit;
}
.hd_sitename a {
  padding: 0 1.5rem;
  height: 100%;
  display: grid;
  grid-template-areas:
    "areaA areaB";
}
@media print, screen and (min-width:981px) {
  .hd_sitename a {
    grid-template-columns: 160px auto;
  }
}
@media print, screen and (max-width:980px) {
  .hd_sitename a {
    grid-template-columns: clamp(110px, calc(150 / 760 * 100vw), 150px) auto;
  }
}
.hd_sitename .name {
  grid-area: areaA;
  align-self: center;
  margin-right: 1.5rem;
}
.hd_sitename .sub {
  grid-area: areaB;
  align-self: center;
  font-size: var(--fs-2s);
}
.hd_sitename .sub .official {
  display: inline-block;
  padding-top: 0.25em;
  color: var(--bpink);
  font-family: var(--ff-min);
  font-weight: 500;
}
.hd_sitename a,
.hd_sitename a:visited,
.hd_sitename a:hover {
  color: inherit;
  text-decoration: none;
}
html.is-gNav-open .hd_sitename {
  z-index: 3000;
}

/*----------------------------------------------------------------------------------------------------

  global navigation
  
----------------------------------------------------------------------------------------------------*/
html.is-gNav-open {
  overflow: hidden;
}
html.is-gNav-open,
html.is-gNav-open body {
  height: 100%;
}
.l-gNav {
  width: 100%;
  height: 100%;
}
@media print, screen and (min-width:981px) {
  .l-gNav-wrap,
  .l-gNav-scr,
  .l-gNav-container {
    display: flex;
  }
  .l-gNav-scr,
  .l-gNav-container {
    height: 100%;
  }
}
@media print, screen and (max-width:980px) {
  .l-gNav-wrap {
    opacity: 0;
    width: 100%;
    min-width: 320px;
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 1000;
    pointer-events: none;
    background-color: transparent;
    transition: background 0.4s var(--cubic-bezier);
  }
  html.is-gNav-open .l-gNav-wrap {
    background-color: #FFF;
  }
  .l-gNav-wrap:after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    background: linear-gradient(45deg, #FBD6D6, #FFEBDC);
    transform: translateY(100%);
    transition: opacity 0.2s var(--cubic-bezier), transform 0.8s var(--cubic-bezier);
  }
  html.is-gNav-open .l-gNav-wrap:after,
  html.is-gNav-close .l-gNav-wrap:after {
    transform: translateY(0%);
  }
  html.is-gNav-close .l-gNav-wrap:after {
    opacity: 0;
  }
  html.is-gNav-open .l-gNav-wrap,
  html.is-gNav-close .l-gNav-wrap {
    pointer-events: auto;
    opacity: 1;
    height: 100%;
  }
  .l-gNav {
    opacity: 0;
    transition: opacity 0.8s var(--cubic-bezier);
  }
  html.is-gNav-open .l-gNav {
    opacity: 1;
    padding-top: var(--hd-height);
  }
  html.is-gNav-close .l-gNav {
    transition: opacity 0.4s var(--cubic-bezier);
  }
  .l-gNav-scr {
    overflow-y: auto;
    width: 100%;
    height: 100%;
  }
  .l-gNav-container {
    width: 100%;
    min-height: 100%;
    padding: var(--block-space-s) calc(var(--side-space) * 1.5);
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto auto;
  }
}

/*--------------------------------------------------------------------------------
  menu
--------------------------------------------------------------------------------*/
.l-gNav-list {
  list-style: none;
}
.l-gNav-list .insta img {
  width: 1.5em;
  height: 1.5em;
}
@media print, screen and (min-width:981px) {
  .l-gNav-list {
    display: flex;
    padding-right: 0.5em;
  }
  .l-gNav-list a {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 1em;
  }
}
@media print, screen and (max-width:980px) {
  .l-gNav-list {
    font-weight: 500;
    align-self: center;
    text-align: left;
    font-size: var(--fs-m);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: calc(var(--side-space) * 1.5);
    row-gap: 2em;
  }
  .l-gNav-list a {
    display: block;
  }
  .l-gNav-list .insta {
    display: none;
  }
}
.l-gNav-list a,
.l-gNav-list a:visited,
.l-gNav-list a:hover {
  color: inherit;
}
@media (hover: hover) {
  .l-gNav-list a:hover {
    color: var(--pink);
  }
}

/*--------------------------------------------------------------------------------
  links
--------------------------------------------------------------------------------*/
.l-gNav-links {
  list-style: none;
  line-height: var(--line-height-s);
}
.l-gNav-links li:not(:first-of-type) {
  padding-top: 1em;
}
@media print, screen and (min-width:981px) {
  .l-gNav-links {
    display: none;
  }
}
@media print, screen and (max-width:980px) {
  .l-gNav-links {
    font-size: var(--fs-s);
    text-align: left;
    padding-top: var(--block-space-l);
  }
  .l-gNav-links a {
    display: block;
  }
}
.l-gNav-links a,
.l-gNav-links a:visited,
.l-gNav-links a:hover {
  color: inherit;
}
@media (hover: hover) {
  .l-gNav-links a:hover {
    color: var(--pink);
  }
}

/*--------------------------------------------------------------------------------
  address
--------------------------------------------------------------------------------*/
@media print, screen and (min-width:981px) {
  .l-gNav-ad { display: none; }
}
@media print, screen and (max-width:980px) {
  .l-gNav-ad {
    text-align: left;
    padding-top: var(--block-space-m);
  }
  .l-gNav-ad address {
    padding-top: 0.25em;
    font-size: var(--fs-s);
  }
}

/*--------------------------------------------------------------------------------
  button
--------------------------------------------------------------------------------*/
@media print, screen and (min-width:641px) {
  :root {
    --gNavBtn-icon-width: 24px;
    --gNavBtn-icon-height: 28px;
  }
}
@media print, screen and (max-width:640px) {
  :root {
    --gNavBtn-icon-width: 20px;
    --gNavBtn-icon-height: 26px;
  }
}
.l-gNavBtn {
  padding: 0 var(--box-space-min);
  z-index: 3000;
  margin-left: auto;
  line-height: 1;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
}
@media print, screen and (min-width:981px) {
  .l-gNavBtn {
    display: none;
  }
}
.l-gNavBtn__icon,
.l-gNavBtn__icon span,
.l-gNavBtn__icon span:before,
.l-gNavBtn__icon span:after {
  display: inline-block;
}
.l-gNavBtn__icon {
  position: relative;
  width: var(--gNavBtn-icon-width);
  height: var(--gNavBtn-icon-height);
  transition: all 0.15s ease-out;
}
.l-gNavBtn__icon span {
  position: absolute;
  right: 0;
  height: 2px;
  transition: all 0.3s ease-out;
  background-color: var(--pink);
}
.l-gNavBtn__icon span:nth-of-type(1) {
  width: 100%;
  top: 8px;
}
.l-gNavBtn__icon span:nth-of-type(2) {
  width: 100%;
  bottom: 8px;
}
.l-gNavBtn.is-close .l-gNavBtn__icon span:nth-of-type(1) {
  width: 100%;
  top: 0;
  transform: translateY(calc((var(--gNavBtn-icon-height) / 2) - 1px)) rotate(-45deg);
}
.l-gNavBtn.is-close .l-gNavBtn__icon span:nth-of-type(2) {
  width: 100%;
  bottom: 0;
  transform: translateY(calc(-1 * (var(--gNavBtn-icon-height) / 2) + 1px)) rotate(45deg);
}


/*----------------------------------------------------------------------------------------------------

  main visual
  
----------------------------------------------------------------------------------------------------*/
.mv {
  position: relative;
  overflow: hidden;
}
.mv .txt {
  height: 100%;
  display: grid;
  grid-auto-columns: 1fr;
  grid-template-rows: 1fr 1fr auto;
  text-align: left;
}
.mv .cc {
  padding-left: 0.5rem;
  display: flex;
  align-self: flex-end;
}
.mv .shigikai {
  background: rgba(255,255,255,0);
  padding: var(--box-space-m) 0;
  font-size: var(--fs-s);
  width: 100%;
}
.mv .shigikai-list {
  position: relative;
  z-index: 2;
}
.mv .shigikai-list.p-listMk[listmk="maru"] li:before {
  color: var(--orange);
}
.mv .photo {
  width: 50%;
  position: absolute;
  z-index: 1;
  text-align: left;
}
@media print, screen and (min-width:981px) {
  .mv {
    height: min(calc(820 / 1300 * 100vw), 820px);
    background: url("../image/mv_bg.jpg") no-repeat center top;
    background-size: cover;
  }
  .mv .cc,
  .mv .name,
  .mv .shigikai-list {
    width: min(calc(1200 / 1300 * 100vw), 1100px);
    margin-left: auto;
    margin-right: auto;
  }
  .mv .cc { padding-bottom: min(calc(100 / 1300 * 100vw), 100px); }
  .mv .cc img { width: min(calc(580 / 1300 * 100vw), 580px); }
  .mv .name img { width: min(calc(450 / 1300 * 100vw), 450px); }
  .mv .shigikai {
    margin-bottom: min(calc(120 / 1300 * 100vw), 120px);
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 15%, rgba(255,255,255,1) 30%, rgba(255,255,255,0) 60%, rgba(255,255,255,0) 100%);
  }
  .mv .photo {
    left: 50%;
    bottom: min(calc(110 / 1300 * 100vw), 110px);
    padding-left: min(calc(100 / 1300 * 100vw), 100px);
  }
  .mv .photo img { width: min(calc(460 / 1300 * 100vw), 460px); }
}
@media screen and (max-width:980px) {
  .mv {
    height: clamp(300px, calc(800 / 980 * 100vw), 700px);
    background: url("../image/mv-sp_bg.jpg") no-repeat center top;
    background-size: cover;
  }
  .mv .cc,
  .mv .name,
  .mv .shigikai {
    padding-left: clamp(20px, calc(60 / 980 * 100vw), 60px);
  }
  .mv .cc { padding-bottom: clamp(30px, calc(60 / 760 * 100vw), 60px); }
  .mv .cc img { width: clamp(180px, calc(500 / 980 * 100vw), 420px); }
  .mv .name img { width: clamp(155px, calc(420 / 980 * 100vw), 350px); }
  .mv .shigikai {
    padding-top: var(--box-space-s);
    padding-bottom: var(--box-space-s);
    margin-bottom: clamp(40px, calc(120 / 980 * 100vw), 120px);
    background: linear-gradient(to right, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 30%, rgba(255,255,255,0) 60%, rgba(255,255,255,0) 100%);
  }
  .mv .shigikai-list {
    font-size: clamp(0.6em, 2vw, 1em);
  }
  .mv .photo {
    right: -4%;
    bottom: clamp(40px, calc(110 / 1200 * 100vw), 110px);
  }
  .mv .photo img { width: clamp(340px, calc(460 / 980 * 100vw), 400px); }
}
@media screen and (max-width:640px) {
  .mv .shigikai {
    padding-top: var(--box-space-2s);
    padding-bottom: var(--box-space-2s);
  }
}

/*----------------------------------------------------------------------------------------------------

  blog
  
----------------------------------------------------------------------------------------------------*/
.sec-blog {
  padding: var(--block-space-2l) var(--side-space);
  position: relative;
  background: linear-gradient(45deg, #FDE5C7, #FBD6D6);
}
.sec-blog:before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  background: url("../image/pattern/crosshatch14_white.svg") repeat center top;
  background-size: 14px;
  opacity: 0.3;
}
@media screen and (max-width:980px) {
  .sec-blog:before {
    background-size: 12px;
  }
}
.sec-blog .container {
  max-width: var(--base-maxwidth);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  position: relative;
  z-index: 1;
}
.blog {
  display: grid;
  column-gap: var(--box-space-s);
  row-gap: var(--block-space-s);
  padding-top: var(--block-space-m);
}
@media print, screen and (min-width:981px) {
  .blog {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media screen and (max-width:980px) {
  .blog {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: repeat(2, 1fr);
  }
}
.blog-hdline:before {
  content: "";
  display: block;
  width: 100%;
  height: 2.5em;
  background: url("../image/blog_ribbon.svg") no-repeat center top;
  background-size: contain;
  margin-bottom: 1.5em;
}
.blog-col {
  line-height: var(--line-height-m);
}
.blog-col .photo {
  margin-bottom: 0.5em;
  border-radius: 1rem;
  overflow: hidden;
}
.blog-col img {
  min-width: 100%;
  object-fit: cover;
}
.blog-col .date {
  color: var(--bpink);
  font-size: var(--fs-s);
  display: inline-block;
}
@media print, screen and (min-width:981px) {
  .blog-col img {
    height: clamp(100px, calc(210 / 1300 * 100vw), 240px);
  }
}
@media screen and (max-width:980px) {
  .blog-col img {
    height: clamp(100px, calc(250 / 760 * 100vw), 280px);
  }
}
.blog a,
.blog a:visited,
.blog a:hover {
  color: inherit;
}
@media (hover: hover) {
  .blog a:hover,
  .blog .js_linkBox:hover a {
    color: var(--pink);
  }
}
.blog-more {
  text-align: right;
  padding-top: var(--block-space-m);
}
.blog-more a,
.blog-more a:visited,
.blog-more a:hover {
  color: inherit;
}

/*----------------------------------------------------------------------------------------------------

  議会発言集
  
----------------------------------------------------------------------------------------------------*/
.sec-gikai {
  padding: var(--block-space-2l) var(--side-space);
}
.sec-gikai .container {
  max-width: var(--base-maxwidth);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.gikai {
  display: grid;
  column-gap: var(--box-space-min);
  row-gap: var(--box-space-min);
  padding-top: var(--block-space-m);
}
@media print, screen and (min-width:981px) {
  .gikai {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width:980px) {
  .gikai {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: 1fr;
  }
}
.gikai-col {
  line-height: var(--line-height-m);
  background-color: #FFF;
  box-shadow: 0 0 20px rgba(220,95,110,0.1);
  padding: var(--box-space-min);
  display: grid;
  grid-template-columns: auto 1fr;
  border-radius: 1rem;
  overflow: hidden;
}
@media print, screen and (min-width:981px) {
  .gikai-col .photo {
    width: clamp(80px, calc(180 / 1200 * 100vw), 180px);
  }
}
@media screen and (max-width:980px) {
  .gikai-col .photo {
    width: clamp(80px, calc(180 / 760 * 100vw), 180px);
  }
}
.gikai-col .photo img {
  border-radius: 0.5rem;
  min-height: 100%;
  object-fit: cover;
}
.gikai-col .txt {
  padding-left: var(--box-space-min);
  display: grid;
  grid-template-rows: 1fr auto;
  row-gap: 1em;
}
.gikai-col .ttl {
  font-weight: 500;
}
.gikai-col ul {
  list-style: none;
  display: inline-flex;
}
.gikai-col .cate {
  padding: 0.15rem 0.75rem;
  background-color: var(--orange);
  color: #FFF;
  font-size: var(--fs-3s);
  margin-right: 1.5rem;
}
.gikai-col .date {
  color: var(--bpink);
  font-size: var(--fs-s);
}
.gikai a,
.gikai a:visited,
.gikai a:hover {
  color: inherit;
}
@media (hover: hover) {
  .gikai a:hover,
  .gikai .js_linkBox:hover a {
    color: var(--pink);
  }
}
.gikai-more {
  text-align: right;
  padding-top: var(--block-space-m);
}
.gikai-more a,
.gikai-more a:visited,
.gikai-more a:hover {
  color: inherit;
}

/*----------------------------------------------------------------------------------------------------

  政策
  
----------------------------------------------------------------------------------------------------*/
.sec-seisaku {
  padding: var(--block-space-2l) var(--side-space);
  background: url("../image/pattern/dot12.svg") repeat center bottom;
  background-size: 12px;
  position: relative;
  overflow-x: hidden;
}
.sec-seisaku:before {
  content: "";
  width: 100%;
  height: 1px;
  background-color: #F9B6B5;
  position: absolute;
  left: 0;
  top: 6px;
}
.sec-seisaku:after {
  content: "";
  width: 100%;
  height: 6px;
  background-color: #FFFAF8;
  border-top: 3px solid #F9B6B5;
  position: absolute;
  left: 0;
  top: 0;
}
@media screen and (max-width:980px) {
  .sec-seisaku {
    background-size: 10px;
    padding: var(--block-space-2l) 0 0 0;
  }
}


/*----------------------------------------------------------------------------------------------------

  sns
  
----------------------------------------------------------------------------------------------------*/
.sns-bnr {
  padding:0 var(--side-space) var(--block-space-2l) var(--side-space);
  list-style: none;
  text-align: center;
}
.sns-bnr li {
  max-width: 540px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 0.5rem;
}
.sns-bnr li.insta a {
  display: block;
  background: url("../image/insta_bg.png") no-repeat center top;
  background-size: cover;
}

/*--------------------------------------------------------------------------------
  message
--------------------------------------------------------------------------------*/
.message {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  display: grid;
  grid-template-columns: clamp(200px, calc(400 / 1300 * 100vw), 400px) auto;
  grid-template-areas:
    "areaA areaB";
  column-gap: var(--block-space-s);
  padding-top: var(--block-space-l);
  padding-bottom: var(--block-space-m);
  margin-top: var(--block-space-m);
  position: relative;
  z-index: 1;
}
.message:before {
  content: "";
  width: 100vw;
  height: calc(100% + var(--block-space-max));
  background: linear-gradient(45deg, #FDE5C7, #FBD6D6);
  border-radius: 5rem 0 0 5rem;
  position: absolute;
  left: 15%;
  top: 0;
  z-index: -1;
}
@media screen and (max-width:980px) {
  .message {
    grid-template-columns: 1fr;
    grid-template-areas:
      "areaA"
      "areaB";
    padding-left: calc(var(--side-space) * 1.5);
    padding-right: calc(var(--side-space) * 1.5);
    margin-left: var(--side-space);
    margin-right: var(--side-space);
  }
  .message:before {
    width: 100%;
    height: 100%;
    left: 0;
    border-radius: 3rem;
  }
}
.message .photo {
  grid-area: areaA;
}
.message .txt {
  grid-area: areaB;
  align-self: center;
}
.message .txt p:not(:first-of-type) {
  padding-top: 1.5em;
}
.message .photo img {
  border-radius: 1.5rem;
}
.message .ttl {
  text-align: left;
  padding-bottom: var(--block-space-3s);
}
.message .ttl img {
  width: inherit;
  max-width: inherit;
  height: calc(var(--fs-5l) * 3);
}
@media screen and (max-width:980px) {
  .message .photo {
    text-align: center;
  }
  .message .photo img {
    width: 70%;
    max-width: 360px;
  }
  .message .txt {
    padding-top: var(--block-space-s);
  }
}

/*--------------------------------------------------------------------------------
  政策
--------------------------------------------------------------------------------*/
.seisaku {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  position: relative;
  z-index: 3;
  background-color: #FFF;
  box-shadow: 0 0 20px rgba(220,95,110,0.1);
  border-radius: 1.5rem;
  padding: var(--box-space-max) var(--box-space-max) 0 var(--box-space-max);
}
@media screen and (max-width:980px) {
  .seisaku {
    margin-top: var(--block-space-l);
    border-radius: 0;
  }
}
.seisaku .ttl {
  border-radius: 0.5rem;
  background: linear-gradient(-45deg, #FABE73, #EB7882);
  color: #FFF;
  line-height: var(--line-height-m);
  padding: 1rem 1.75rem 1.25rem 1.75rem;
  font-size: var(--fs-2l);
  font-weight: 500;
}
.seisaku .container {
  padding-top: var(--box-space-l);
  padding-bottom: var(--box-space-max);
  display: grid;
  grid-template-columns: auto clamp(250px, calc(400 / 1200 * 100vw), 400px);
  grid-template-areas:
    "areaB areaA";
}
@media screen and (max-width:640px) {
  .seisaku .container {
    grid-template-columns: 1fr;
    grid-template-areas:
      "areaA"
      "areaB";
  }
}
.seisaku .container .photo {
  grid-area: areaA;
}
.seisaku .container .txt {
  grid-area: areaB;
  padding-right: var(--box-space-l);
  padding-bottom: 1em;
}
.seisaku .container .txt .p-listMk[listmk="maru"] li:before {
  color: var(--orange);
}
@media screen and (max-width:640px) {
  .seisaku .container .photo {
    text-align: center;
  }
  .seisaku .container .photo img {
    width: 60%;
  }
  .seisaku .container .txt {
    padding-top: var(--box-space-s);
  }
}

/*----------------------------------------------------------------------------------------------------

  活動報告
  
----------------------------------------------------------------------------------------------------*/
.sec-katsudou {
  padding: var(--block-space-2l) var(--side-space);
}
.sec-katsudou .container {
  max-width: var(--base-maxwidth);
  margin-left: auto;
  margin-right: auto;
}
.katsudou {
  padding-top: var(--block-space-m);
  padding-bottom: var(--block-space-m);
}
.katsudou .data {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--box-space-min);
}
@media screen and (max-width:1200px) {
  .katsudou .data {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: 1fr;
  }
}
.katsudou-btn {
  width: 100%;
  max-width: 400px;
}

/*----------------------------------------------------------------------------------------------------

  プロフィール
  
----------------------------------------------------------------------------------------------------*/
.sec-profile {
  padding: var(--block-space-2l) var(--side-space);
  background-color: #FDE9E8;
  position: relative;
}
.sec-profile:before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  background: url("../image/pattern/crosshatch10.svg") repeat center top;
  background-size: 10px;
}
@media screen and (max-width:980px) {
  .sec-profile:before {
    background-size: 8px;
  }
}
.sec-profile .container {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  position: relative;
  z-index: 1;
}

/*--------------------------------------------------------------------------------
  profile
--------------------------------------------------------------------------------*/
.profile {
  padding-top: var(--block-space-l);
  padding-bottom: var(--block-space-l);
  display: grid;
  grid-template-columns: auto clamp(200px, calc(400 / 1300 * 100vw), 400px);
  grid-template-rows: auto auto;
  column-gap: var(--block-space-s);
  grid-template-areas:
    "areaB areaA"
    "areaC areaA";
  text-align: left;
}
@media screen and (max-width:980px) {
  .profile {
    grid-template-areas:
      "areaB areaA"
      "areaC areaC";
  }
}
@media screen and (max-width:640px) {
  .profile {
    grid-template-columns: 1fr;
    grid-template-areas:
      "areaA"
      "areaB"
      "areaC";
  }
}
.profile .photo {
  grid-area: areaA;
}
.profile .data1 {
  grid-area: areaB;
}
.profile .data2 {
  grid-area: areaC;
  padding-top: var(--block-space-3s);
}
@media screen and (max-width:980px) {
  .profile .data2 {
    padding-top: var(--block-space-2s);
  }
}
@media screen and (max-width:640px) {
  .profile .data1 {
    padding-top: var(--block-space-2s);
  }
}
.profile .photo img {
  border-radius: 1.5rem;
}
@media screen and (max-width:640px) {
  .profile .photo {
    text-align: center;
  }
  .profile .photo img {
    width: 60%;
    max-width: 280px;
  }
}
.profile .name img {
  width: auto;
  height: var(--fs-5l);
  margin-right: 3rem;
  vertical-align: baseline;
  margin-bottom: -0.25rem;
}
.profile .name .en {
  display: inline-block;
  font-size: var(--fs-l);
  font-weight: 400;
  color: var(--bpink);
  font-family: var(--ff-min);
}
@media screen and (max-width:980px) {
  .profile .name img {
    margin-right: 0;
  }
  .profile .name .en {
    display: block;
    width: 100%;
  }
}
@media screen and (max-width:640px) {
  .profile .name {
    text-align: center;
  }
}
.profile .data1 dl {
  display: grid;
  grid-template-columns: 8em auto;
  row-gap: 0.75em;
  line-height: var(--line-height-s);
  padding-top: var(--block-space-3s);
}
.profile .data1 dt {
  background-color: var(--bpink);
  color: #FFF;
  text-align: center;
  border-radius: 2rem;
  padding: 0.5rem;
  font-size: var(--fs-2s);
}
.profile .data1 dd {
  padding-left: 1em;
  align-self: center;
}
.profile .data2 dl {
  display: grid;
  grid-template-columns: 12em auto;
  line-height: var(--line-height-s);
  border-top: 1px solid rgba(246,153,153,0.6);
}
.profile .data2 dt,
.profile .data2 dd {
  padding: 1.5em 1em;
  border-bottom: 1px solid rgba(246,153,153,0.6);
}
.profile .data2 dt {
  background-color: #FBD6D6;
  text-align: center;
  font-weight: 500;
  color: var(--dpink);
}
@media screen and (max-width:640px) {
  .profile .data2 dl {
    grid-template-columns: 8em auto;
  }
}

/*--------------------------------------------------------------------------------
  history
--------------------------------------------------------------------------------*/
.history {
  line-height: var(--line-height-m);
  background-color: #FFF;
  box-shadow: 0 0 20px rgba(220,95,110,0.1);
  border-radius: 1.5rem;
  padding: var(--block-space-s);
}
.history-hdline {
  text-align: center;
  color: var(--bpink);
  font-size: var(--fs-4l);
  font-weight: 400;
  font-family: var(--ff-min);
}
.timeline {
  padding-top: var(--block-space-min);
  padding-left: var(--block-space-s);
  padding-right: var(--block-space-s);
}
@media screen and (max-width:980px) {
  .timeline {
    padding-left: var(--block-space-min);
    padding-right: var(--block-space-min);
  }
}
@media screen and (max-width:760px) {
  .timeline {
    padding-left: 0;
    padding-right: 0;
  }
}
.timeline-data {
  display: grid;
  grid-template-columns: 6em auto;
  row-gap: 1.5em;
  line-height: var(--line-height-m);
  position: relative;
  padding-top: 1em;
  padding-bottom: 1em;
}
.timeline-data:before {
  content: "";
  width: 1px;
  height: 100%;
  background-color: rgba(246,153,153,0.4);
  position: absolute;
  left: calc(6em - 0.5px);
  top: 0;
}
.timeline-data dt {
  position: relative;
}
.timeline-data dt:after {
  content: "";
  width: 0.5em;
  height: 0.5em;
  background-color: var(--dpink);
  border-radius: 100%;
  position: absolute;
  right: -0.25em;
  top: 0.6em;
}
.timeline-data .y {
  color: var(--dpink);
}
.timeline-data dd {
  padding-left: 2.5em;
}

/*--------------------------------------------------------------------------------
  gallery
--------------------------------------------------------------------------------*/
.gallery {
  position: relative;
  z-index: 1;
  padding-top: var(--block-space-2l);
  display: grid;
  max-width: 2000px;
  margin-left: auto;
  margin-right: auto;
}
.gallery .item {
  opacity: 0;
  text-align: left;
  background-color: #FDE9E8;
}
.gallery .item.is-hidden {
  display: none;
  opacity: 0;
}
.gallery .item.is-show {
  animation: galleryShow 0.6s forwards;
}
.gallery .item img {
  min-width: 100%;
  object-fit: cover;
}
.gallery .item img[data-psX="0"] { object-position: left top; }
.gallery .item img[data-ps="0"] { object-position: center top; }
.gallery .item img[data-ps="15"] { object-position: center 15%; }
.gallery .item img[data-ps="25"] { object-position: center 25%; }
.gallery-more {
  position: relative;
  z-index: 1;
  padding-top: var(--block-space-s);
}
.gallery-more.is-hidden {
  display: none;
}
.gallery-moreBtn {
  width: 100%;
  max-width: 400px;
}
@keyframes galleryShow {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@media print, screen and (min-width:1301px) {
  .gallery {
    grid-template-columns: repeat(6, 1fr);
  }
  .gallery .item img {
    height: clamp(90px, calc(150 / 1000 * 100vw), 270px);
  }
}
@media screen and (max-width:1300px) {
  .gallery {
    grid-template-columns: repeat(5, 1fr);
  }
  .gallery .item img {
    height: clamp(90px, calc(180 / 1000 * 100vw), 240px);
  }
}
@media screen and (max-width:980px) {
  .gallery {
    grid-template-columns: repeat(4, 1fr);
  }
  .gallery .item img {
    height: clamp(90px, calc(220 / 980 * 100vw), 220px);
  }
}
@media screen and (max-width:640px) {
  .gallery {
    grid-template-columns: repeat(3, 1fr);
  }
  .gallery .item img {
    height: clamp(90px, calc(190 / 640 * 100vw), 190px);
  }
}

/*----------------------------------------------------------------------------------------------------

  お問い合わせ
  
----------------------------------------------------------------------------------------------------*/
.sec-contact {
  padding: var(--block-space-2l) var(--side-space);
}
.sec-contact .container {
  max-width: var(--base-maxwidth);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.sec-contact .gmap {
  width: 100%;
  padding-top: var(--block-space-s);
}
.sec-contact .gmap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  vertical-align: bottom;
}
@media print, screen and (min-width:981px) {
  .sec-contact .gmap {
    height: 600px;
  }
}
@media screen and (max-width:980px) {
  .sec-contact .gmap {
    height: clamp(300px, calc(500 / 640 * 100vw), 500px);
  }
}
.contact {
  padding-top: 2em;
}
.contact .name {
  font-weight: 600;
  font-family: var(--ff-min);
  font-size: var(--fs-2l);
  color: var(--dpink);
}

/*----------------------------------------------------------------------------------------------------

  banner
  
----------------------------------------------------------------------------------------------------*/
.l-links {
  padding: var(--block-space-2s) var(--side-space);
  background-color: #FFF;
  box-shadow: 0 0 25px 0 rgba(220,95,110,0.15);
}
.links-bnr {
  max-width: var(--base-maxwidth);
  margin-left: auto;
  margin-right: auto;
  list-style: none;
  display: inline-flex;
  gap: var(--box-space-min);
}
.links-bnr li {
  max-width: 280px;
  border: 1px solid rgba(50,50,50,0.15);
  position: relative;
  line-height: 1;
}
.links-bnr li a {
  display: block;
  position: relative;
}
.links-bnr .p-gLink[target="_blank"]:after {
  width: clamp(4px, calc(14 / 980 * 100vw), 14px);
  height: clamp(4px, calc(14 / 980 * 100vw), 14px);
  background-position :right top;
  position: absolute;
  right: clamp(2px, calc(6 / 1000 * 100vw), 6px);
  top: clamp(6px, calc(14 / 1000 * 100vw), 14px);
}

/*----------------------------------------------------------------------------------------------------

  copyright
  
----------------------------------------------------------------------------------------------------*/
.l-copy {
  background-color: var(--dpink);
  font-size: var(--fs-2s);
  font-family: var(--ff-min);
  color: #FFF;
  padding: 1em;
  line-height: var(--line-height-s);
}
