@charset "UTF-8";
/*!
Theme Name: scvillage
Description: 説明
Author: 豊通オフィスサービス株式会社
Version: 1.0.0

== Credits ==
Based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc., [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html)
normalize.css https://necolas.github.io/normalize.css/, (C) 2012-2018 Nicolas Gallagher and Jonathan Neal, [MIT](https://opensource.org/licenses/MIT)

*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# reset
# Base
	- タイポグラフィ
  - カラー
  - リンク
  - スタッキング
  - レイアウト
# Elements
  - 見出し
  - ボタン
# Components
  - header
  - footer
# Utilities
# Accessibility
# 404
# WordPress
  - Widgets
	- Media
	- Captions
	- Galleries

--------------------------------------------------------------*/
html {
  -webkit-text-size-adjust: none;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  line-break: strict;
  margin: 0;
}

main {
  position: relative;
  z-index: 0;
}

a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

button {
  padding: 0;
  margin: 0;
  color: inherit;
  background-color: transparent;
  border: none;
  cursor: pointer;
  font-weight: inherit;
}

fieldset {
  min-inline-size: inherit;
  border: none;
  padding: 0;
  margin: 0;
}

label,
input {
  cursor: pointer;
}

input {
  padding: 0;
  margin: 0;
}

figure,
dl,
dt {
  margin: 0;
}

img {
  max-width: 100%;
  vertical-align: bottom;
}

input::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}

ul,
ol,
dd {
  margin: 0;
  padding: 0;
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

p {
  margin: 0;
}

summary {
  display: block;
}

summary::marker {
  display: none;
}

summary::-webkit-details-marker {
  display: none;
}

:where(button, [type="button"], [type="reset"], [type="submit"]) {
  touch-action: manipulation;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* タイポグラフィ
--------------------------------------------- */
:root {
  --font-ja:
    "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体", "Yu Gothic",
    YuGothic, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", sans-serif;
}

body {
  font-size: 100%;
  font-family:
    "Roboto", "Noto Sans JP", "游ゴシック", "Yu Gothic", "游ゴシック体",
    "Yu Gothic", YuGothic, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3",
    sans-serif;
}
em {
  font-style: normal;
}

/* カラー
--------------------------------------------- */
:root {
  --rich-black: #000;
  --black: #3b4648;
  --light: #fff;
  --gray: #f1f1f1;
  --primary: #4bacc6;
  --primary-light: #93cddd;
  --secondary: #31859c;
  --secondary-deep: #215968;
  --bg-section-type01: #edf7fa;
  --bg-site: #ffffff;
  --gradation-color-1: #31859c;
  --gradation-color-2: #41b0ce;
  --notice: #eb0a1e;
  --border: #dedede;
  --border-2: #70bbd1;
}

body {
  background: var(--bg-site);
  color: var(--black);
}

/* リンク
--------------------------------------------- */

a:not([href]) {
  pointer-events: none;
}

/* スタッキング
--------------------------------------------- */

:root {
  /* ベース */
  --stack-level01: 10;
  --stack-level02: 50;
  --stack-level03: 100;

  /* 固定系・オーバーレイ */
  --stack-sticky: 1000;
  --stack-overlay: 2000;
  --stack-drawer: 3000;
  --stack-max: calc(infinity);
}

/* レイアウト
--------------------------------------------- */
:root {
  --scroll-bar: 0px;
  --full: calc(100vw - var(--scroll-bar));
  --header-height: min(100 / 1600 * 100vw, min(100 / 16 * 1rem, 110px));
  --wide: clamp(67.5rem, -63.846rem + 153.85vw, 90rem);
  --side: min(16 / 375 * 100vw, 40px);
}

html,
body {
  scroll-behavior: smooth;
  /* scroll-padding-top: var(--header-height); */
}

#page {
  display: grid;
  grid-template-areas: "header" "main" "footer";
  grid-template-columns: 100%;
  grid-template-rows: auto 1fr auto;
  min-height: 100dvh;
}
#header {
  grid-area: header;
}
#primary {
  grid-area: main;
}

#footer {
  grid-area: footer;
}

.l-container {
  display: grid;
  grid-template-columns:
    minmax(var(--side), 1fr) min(var(--wide), 100% - var(--side) * 2)
    minmax(var(--side), 1fr);
}

.l-container--content {
  grid-column: 2 / 3;
}
.l-container--full {
  grid-column: 1 / 4;
}
.l-container--breakout-right {
  grid-column: 2 / 4;
  display: flex;
}
.l-container--breakout-left {
  grid-column: 1 / 3;
  display: flex;
}
.l-container--breakout-left .left {
  padding-inline-start: max(var(--side), (100vw - var(--wide)) / 2);
}
.breakout-right .right {
  padding-inline-end: max(var(--side), (100vw - var(--wide)) / 2);
}

@media (width < 87.5rem) {
  :root {
    --header-height: clamp(3.75rem, 2.145rem + 3.34vw, 5rem);
  }
}

@media (width < 64rem) {
  .l-container--breakout-left,
  .l-container--breakout-right {
    flex-direction: column;
  }
  html,
  body {
    scroll-padding-top: var(--header-height);
  }
}

@media (width < 48rem) {
  :root {
    /* --header-height: min(60 / 16 * 1rem, 72px); */
  }
}

/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/

/* ボタン
--------------------------------------------- */

/* サイズ */
.btn {
  font-weight: bold;
  text-align: center;
  border-radius: 2.25em;
  transition: 0.3s ease-out;
  padding: calc(1em - (1lh - 1em) / 2) 2em;
  color: var(--color, var(--light));
  background: var(--bg, var(--primary));
  position: relative;
  display: flex;
  align-items: center;
}

.btn[href^="https"]:not([href*="soleadocentervillage.com"])::after {
  content: "";
  margin-inline-start: 8px;
  flex-shrink: 0;
  width: 0.6875em;
  height: auto;
  aspect-ratio: 1 / 1;
  mask-image: url(assets/img/common/icon-external.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  background: currentColor;
  translate: 0 10%;
}

@media (any-hover: hover) {
  .btn:hover {
    background: var(--hover, var(--primary-light));
    color: var(--hover-color, var(--light));
  }
}
/* もっとみる */
.view-more-btn {
  position: relative;
  width: 40px;
  height: 24px;
  display: block;
  background: var(--bg, var(--gray));
  border-radius: 1000px;
  overflow: hidden;
  font-size: 0;
}
.view-more-btn::after,
.view-more-btn::before {
  content: "";
  display: block;
  position: absolute;
  mask-image: url(assets/img/common/icon-arrow.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  width: 100%;
  height: 100%;
  mask-size: 10px;
  scale: -1 1;
  background-color: var(--color, var(--secondary-deep));
  animation-fill-mode: forwards;
  transition: translate 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.1);
}
.view-more-btn::before {
  translate: -100% 0;
}
.view-more-btn--external::after,
.view-more-btn--external::before {
  scale: unset;
  mask-image: url(./assets/img/common/icon-external.svg);
}
@media (any-hover: hover) {
  a:hover .view-more-btn::before,
  .view-more-btn:hover::before {
    translate: 0 0;
  }
  a:hover .view-more-btn::after,
  .view-more-btn:hover::after {
    translate: 100% 0;
  }
}

/* 見出し
--------------------------------------------- */
.head {
  display: flex;
  flex-direction: column;
  font-size: clamp(3.125rem, 1.442rem + 1.92vw, 3.75rem);
  line-height: 1.25;
  margin-bottom: 0.4em;
}
.head .ja {
  --circle: 16px;
  position: relative;
  padding-inline-start: calc(var(--circle) + 8px);
  vertical-align: middle;
  font-weight: normal;
  margin-inline-start: 10px;
  font-size: clamp(1.125rem, 0.115rem + 1.15vw, 1.5rem);
}
.head .ja::before {
  content: "";
  position: absolute;
  display: inline-block;
  width: var(--circle);
  height: auto;
  top: 0;
  bottom: 0;
  margin-block: auto;
  left: 0;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: var(--color, var(--primary));
}
.head .en {
  text-transform: uppercase;
  font-weight: bold;
}

@media (width < 87.5rem) {
  .head {
    font-size: clamp(2.5rem, 2.139rem + 1.54vw, 3.125rem);
  }
  .head .ja {
    font-size: clamp(0.75rem, 0.533rem + 0.92vw, 1.125rem);
  }
}

/* リスト
--------------------------------------------- */

.wide-card {
  --aspect: 480 / 184;
  aspect-ratio: var(--aspect);
  overflow: hidden;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5em;
  padding: var(--pading, 0 40px);
  margin-top: -1px;
  margin-left: -1px;
}
.wide-card .heading {
  display: flex;
  gap: 1.5em;
  align-items: center;
  transition: scale 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.1);
}
.wide-card .title {
  font-weight: 500;
}

@media (any-hover: hover) {
  .wide-card:hover .heading {
    scale: 1.1;
  }
}
/* カード
--------------------------------------------- */
.card {
  background: #fff;
  --border-width: 8px;
  padding: var(--border-width);
  display: grid;
  grid-template-rows: auto auto 1fr auto;
}
.card .thumb {
  overflow: hidden;
}
.card .thumb img {
  width: 100%;
  aspect-ratio: 432 / 243;
  transition: scale 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.1);
}
.card :is(.title, .body) {
  padding-inline: 0.94em;
}
.card .title {
  background: linear-gradient(
    to bottom,
    var(--gradation-color-1),
    var(--gradation-color-2)
  );
  color: #fff;
  font-weight: bold;
  padding-block: 0.8em;
}
.card .body {
  padding-top: 20px;
  transition: color 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.1);
  line-height: 2;
  margin-block: calc((1lh - 1em) / 2 * -1);
}
.card .link {
  margin-top: 20px;
  margin-left: auto;
}
@media (any-hover: hover) {
  a.card:hover {
    .thumb img {
      scale: 1.1;
    }
    .body {
      color: var(--secondary);
    }
  }
}
@media (width < 87.5rem) {
  .card .body {
    line-height: 1.75;
  }
}

@media (width < 30rem) {
  .card .title {
    font-size: calc(14 / 16 * 1rem);
  }
}

/* アコーディオン
--------------------------------------------- */
.details-content {
  display: none;
}
.details summary {
  cursor: pointer;
}

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* header
--------------------------------------------- */
#header {
  height: var(--header-height);
  background-color: var(--light);
}

#header .header-container {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-inline: var(--side);
  gap: 1em;
}
#header .header-container .header_logo {
  width: min(474 / 16 * 1rem, 570px);
  @media (width < 87.5rem) {
    width: max(282px, 406 / 1366 * 100vw);
  }
}
#header .header-container .gnav {
  flex-shrink: 0;
}

#header .header-sp {
  display: none;
}

@media (width >= 64rem) {
  .gnav .menu-toggle {
    display: none;
  }
}

@media (width < 64rem) {
  #header .header-pc {
    display: none;
  }
  #header .header-sp {
    display: block;
  }
  #header {
    z-index: var(--stack-sticky);
    position: sticky;
    top: 0;
    left: 0;
  }
}

@media (width < 30rem) {
  #header .logo img {
    max-width: calc(282 / 375 * 100vw);
  }
}

/* pcのグローバルメニュー */
#pcGnav {
  display: flex;
  font-weight: 500;
  gap: clamp(16px, 2vw, 32px);
  align-items: center;
  font-size: clamp(12px, 16 / 1200 * 100vw, 16px);
}
#pcGnav .sp-only {
  display: none;
}
#pcGnav > li a {
  position: relative;
  display: inline-block;
  transition: all 0.3s ease-out;
}

#pcGnav > li:not(.menu-item-page-contact) > a::after {
  content: "";
  display: inline-block;
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: -10px;
  transform: scale(0, 1);
  transition: all 0.3s ease-out;
  background-color: var(--secondary);
  transform-origin: top center;
}
#pcGnav > li:not(.menu-item-page-contact) a:hover,
body:not(.home) #pcGnav > li.current-menu-item a,
#pcGnav .menu-item-has-children a[aria-expanded="true"] {
  color: var(--secondary);
}
#pcGnav > li:not(.menu-item-page-contact) a:hover::after,
body:not(.home) #pcGnav > li.current-menu-item a::after,
#pcGnav .menu-item-has-children a[aria-expanded="true"]::after {
  transform: scale(1, 1);
}

/* pcのドロップダウンメニュー */
#pcGnav .menu-item-has-children {
  position: relative;
}
#pcGnav .sub-menu {
  position: absolute;
  visibility: hidden;
  opacity: 0;
  top: 100%;
  padding-top: calc(((var(--header-height) - 100%) / 2));
  left: 50%;
  z-index: var(--stack-level01);
  width: max-content;
  max-width: 248px;
  translate: -50% 0;
  transition: all 0.3s ease;
}
#pcGnav .sub-menu > li {
  position: relative;
}
#pcGnav .sub-menu > li a {
  padding-block: 1.8em;
  background: var(--light);
  text-align: center;
  display: block;
  padding-inline: clamp(0.5em, 2vw, 1em);
}
#pcGnav .sub-menu > li::after {
  content: "";
  width: calc(100% - clamp(0.5em, 2vw, 1em) * 2);
  position: absolute;
  bottom: 1px;
  left: 0;
  right: 0;
  margin-inline: auto;
  display: block;
  border-bottom: 1px solid var(--border);
}
#pcGnav .sub-menu > li:last-of-type::after {
  content: unset;
}

#pcGnav .menu-item-has-children:has(a[aria-expanded="true"]) .sub-menu {
  visibility: visible;
  opacity: 1;
}

/* SPのグローバルメニュー */

#header .menu-drawer {
  visibility: hidden;
  overflow: auto;
  /* opacity: 0; */
  transition:
    transform 0.3s ease,
    visibility 0.3s ease,
    opacity 0.3s ease;
  bottom: 0;
  padding-block: var(--header-height) calc(var(--side) * 2);
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  width: min(100%, 600px);
  margin-inline-start: auto;
  height: 100svh;
  padding-inline: var(--side);
  background: linear-gradient(
    to bottom,
    var(--gradation-color-1),
    var(--gradation-color-2)
  );
  z-index: var(--stack-drawer);
  transform: translateX(100%);
}
#header .menu-drawer_logo {
  text-align: center;
  display: block;
  margin-block: 8px clamp(1.875rem, 1.324rem + 2.45vw, 2.5rem);
}

#header .menu-drawer_btn {
  margin-top: 4.8em;
  display: block;
  text-align: center;
  --bg: var(--secondary-deep);
  --hover: var(--secondary);
}

@media (width < 30rem) {
  #header .menu-drawer_logo {
    /* margin-block: 3.8em; */
    width: 90%;
    margin-inline: auto;
  }
}

/* SP メニュー共通 */

#spGnav {
  font-weight: 500;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2vw, 32px);
  align-content: center;
}
#spGnav > li {
  --dot: 1em;
  --gap: 0.5em;
  --padding-x: 3em;
  --start: calc(var(--padding-x) + var(--dot) + var(--gap));
}
#spGnav > li a {
  display: block;
  padding-inline: var(--start) var(--padding-x);
  position: relative;
}

#spGnav li a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin-block: auto;
  border-radius: 50%;
  width: var(--dot);
  height: auto;
  aspect-ratio: 1 / 1;
  transition: 0.3s ease-out;
}
#spGnav > li > a {
  padding-block: calc(1em - (1lh - 1em) / 2);
  padding-inline: var(--start) var(--padding-x);
  background: var(--light);
  border-radius: 2.25em;
  transition: 0.3s ease-out;
}

#spGnav > li a::before {
  left: var(--padding-x);
  background: var(--primary);
}

#spGnav .sub-menu a::before {
  background: var(--black);
}

#spGnav .btn {
  text-align: left;
  color: inherit;
  font-weight: inherit;
}

/* 階層メニュー */
#spGnav .menu-item-has-children {
  background: var(--light);
  border-radius: 2.25em;
  position: relative;
  padding-block: 2em;
  padding-bottom: 2em;
}
#spGnav .menu-item-has-children > a {
  pointer-events: none;
  padding-block: 0;
}
#spGnav .sub-menu {
  margin-top: 1em;
  padding-inline-start: var(--start);
}
#spGnav .sub-menu li {
  --dot: 0.3em;
  --padding-x: 0.3em;
  --start: calc(var(--padding-x) + var(--dot) + var(--gap));
}

#spGnav .sub-menu a {
  font-size: 14px;
  padding-block: 8px;
  display: inline-block;
}

@media (any-hover: hover) {
  #spGnav > li:not(.menu-item-has-children) a:hover {
    background: var(--primary);
    color: var(--light);
  }
  #spGnav > li:not(.menu-item-has-children) a:hover::before {
    background: var(--light);
  }
  #spGnav .sub-menu a:hover {
    color: var(--primary);
  }
}

#header .overlay {
  visibility: hidden;
  transition:
    visibility 0.2s ease,
    opacity 0.2s ease;
  opacity: 0;
  z-index: var(--stack-overlay);
  background: rgba(0, 0, 0, 0.4);
  width: 100%;
  height: 100%;
  position: fixed;
  left: 0;
  top: 0;
}

#header .gnav:has(.menu-toggle[aria-expanded="true"]) .overlay {
  opacity: 1;
  visibility: visible;
}

#header .gnav:has(.menu-toggle[aria-expanded="true"]) .menu-drawer {
  visibility: visible;
  /* opacity: 1; */
  transform: translateX(0);
}

@media (width < 30rem) {
  #header .menu-drawer {
    width: 100%;
  }
  #spGnav > li {
    --padding-x: 2em;
  }
  #spGnav .sub-menu li {
    --padding-x: 0.2em;
  }
}

/* メニューボタン */
.gnav .menu-toggle,
.gnav .close-btn {
  width: 32px;
  aspect-ratio: 2 / 1;
  height: auto;
  z-index: var(--stack-max);
  position: fixed;
  right: var(--side);
  top: calc((var(--header-height) - 16px) / 2);
  color: var(--rich-black);
}

.gnav .menu-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: currentColor;
  position: absolute;
  left: 0;
}

.gnav .menu-toggle span:nth-child(1) {
  top: 0;
  transition: top 0.3s;
}

.gnav .menu-toggle span:nth-child(2) {
  top: 50%;
  transition: opacity 0.3s;
}

.gnav .menu-toggle span:nth-child(3) {
  top: 100%;
  transition: top 0.3s;
}

.gnav .menu-toggle[aria-expanded="true"] {
  color: var(--light);
}

.gnav .menu-toggle[aria-expanded="true"] span:nth-child(1),
.gnav .menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transition:
    0.3s cubic-bezier(0.36, -0.42, 0.68, -0.56),
    transform 0.3s 0.3s;
  top: 50%;
}

.gnav .menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: rotate(45deg);
}
.gnav .menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.gnav .menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: rotate(-45deg);
}

/* footer
--------------------------------------------- */
.l-footer_outer {
  background: linear-gradient(
    to bottom,
    var(--gradation-color-1),
    var(--gradation-color-2)
  );
  color: #fff;
  padding-block: clamp(3rem, 1.654rem + 1.54vw, 3.5rem);
}

.l-footer_bottom {
  margin-top: 32px;
  border-top: 1px solid var(--border-2);
  padding-top: 36px;
  text-align: right;
  font-size: 14px;
}

.l-footer_logo--sp {
  display: none;
  text-align: center;
}

.l-footer_inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.l-footer_logo img {
  width: clamp(20.5rem, 3.337rem + 19.62vw, 26.875rem);
}

.l-footer_menu {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 20px var(--x-gap);
  --x-gap: clamp(3.5rem, 2.154rem + 1.54vw, 4rem);
  --menu-size: 11.25rem;
}

.l-footer_menu .menu {
  display: flex;
  flex-direction: column;
  font-weight: 500;
  row-gap: 12px;
}

.l-footer_menu .btn {
  --bg: var(--secondary-deep);
  --hover: var(--secondary);
  justify-content: center;
}

.l-footer_menu .menu .menu-item > a {
  position: relative;
  display: inline-block;
  /* font-size: clamp(0.75rem, 0.446rem + 0.63vw, 1rem); */
}

.l-footer_menu .menu > .menu-item:not(.menu-item-page-contact) a::after {
  content: "";
  display: inline-block;
  width: 100%;
  height: 2px;
  position: absolute;
  left: 0;
  bottom: -6px;
  transform: scale(0, 1);
  transition: all 0.3s ease-out;
  background-color: var(--light);
  transform-origin: top center;
}

.l-footer_menu .menu > .menu-item:not(.menu-item-page-contact) a:hover::after {
  transform: scale(1, 1);
}

.l-footer_menu .menu-01 .menu-item {
  padding-inline-start: 0.666em;
  font-weight: normal;
  font-size: 0.875em;
}
.l-footer_menu .menu-01 .menu-item a {
  padding-block: 0.125em;
}
.l-footer_menu .menu-01 .menu-item a::before {
  content: "・";
  position: absolute;
  display: inline-block;
  left: -1em;
  top: 0.125em;
}

.l-footer_logo--sp {
  margin-inline: auto;
}

@media (width < 64rem) {
  .l-footer_logo {
    display: none;
  }
  .l-footer_logo--sp {
    display: block;
  }
  .l-footer_outer {
    padding-block: 40px;
  }
  .l-footer_inner {
    flex-direction: column;
    gap: 20px;
  }
  .l-footer_logo img {
    width: clamp(17.625rem, 14.207rem + 7.12vw, 20.438rem);
  }
  .l-footer_menu {
    flex-wrap: wrap;
    max-width: min(480 / 16 * 1rem, 480 * 1.2px);
    justify-content: space-between;
    margin-inline: auto;
    --x-gap: 20px;
  }
  .l-footer_menu .btn {
    width: 100%;
  }
  .l-footer_bottom {
    margin-top: 10px;
    padding-top: 0;
    border-top: 0;
    text-align: center;
    font-size: calc(12 / 16 * 1rem);
    font-family: var(--font-ja);
  }
}

@media (width < 30rem) {
  .l-footer_logo--sp img {
    max-width: 282px;
    width: 100%;
  }
  .l-footer_menu {
    font-size: clamp(0.875rem, -2.125rem + 13.33vw, 1rem);
  }
}

/* Utilities
--------------------------------------------- */
.u-flex {
  display: flex;
  flex-wrap: wrap;
}
.u-justify-between {
  justify-content: space-between;
}
.u-justify-center {
  justify-content: center;
}

.u-justify-end {
  justify-content: flex-end;
}
.u-justify-around {
  justify-content: space-around;
}
.u-align-center {
  align-items: center;
}
.u-gap-01 {
  gap: 48px;
}
.u-gap-02 {
  gap: 80px;
}

@media (width < 75rem) {
  .u-gap-01 {
    gap: 20px;
  }
  .u-gap-02 {
    gap: clamp(1.25rem, -0.972rem + 4.63vw, 2.5rem);
  }
}

/* Accessibility
--------------------------------------------- */
.alternative {
  position: fixed !important;
  inset: 0 !important;
  display: block !important;
  inline-size: 4px !important;
  block-size: 4px !important;
  contain: strict !important;
  pointer-events: none !important;
  opacity: 0 !important;
}

/* Text meant only for screen readers. */
.screen-reader-text,
#sr-announce {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus,
#sr-announce:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  -webkit-clip-path: none;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}

#first-archive[tabindex="-1"]:focus {
  outline: 0;
}

/* 404
--------------------------------------------- */
.error-404 .section.section-01 {
  margin-block: var(--margin);
}
.error-404 .section-01 .section-desc {
  line-height: 2;
}

.section-01 .link {
  margin-top: 0.3em;
  padding-inline: 2em;
  padding-block: 0.8em;
  display: inline-flex;
  margin-top: 1.8em;
}

@media (width < 87.5rem) {
  .section-01 .section-desc {
    line-height: 1.75;
  }
}

/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}

.widget select {
  max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

.wp-caption-text {
  text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}
.gallery-item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
  display: block;
}

/* お問い合わせボタン、全体写真を一旦非表示にする
--------------------------------------------- */
.menu-item-page-contact {
  display: none;
}
#header .menu-drawer_btn {
  display: none;
}
#header .is-hidden {
  display: none;
}
#footer .is-hidden {
  display: none;
}
#footer .l-footer_top .btn {
  display: none;
}
