@charset "utf-8";

/*!
* Copyright 2023 中部大学春日丘高等学校
*/

/*!
* Bootstrap  v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */



/* ============================================================
# CSS variables
============================================================ */

:root {
  --primary: #00387a;
  --accent: #e50012;
  --accent-p: hsl(355 100% 95%);
  --black: var(--body-color);
  --white: #fff;
  --body-font-family: var(--font-family-sans);
  --body-font-size: 1rem;
  --body-font-weight: 400;
  --body-line-height: 1.5;
  --body-color: #231815;
  --body-bg: #fff;
  --border-width: 1px;
  --border-style: solid;
  --border-color: var(--body-color);
  --link-color: hsl(210 55% 45%);
  --link-hover-color: hsl(210 60% 50%);
  --btn-color: var(--accent);
  --btn-hover-color: var(--accent);
  --btn-bg: var(--white);
  --btn-hover-bg: var(--accent-p);
  --btn-border: var(--accent);
  --btn-hover-border: var(--accent);
  --btn-focus-shadow: hsl(210 100% 50% / 0.25);
  --btn-active-color: var(--accent);
  --btn-active-bg: var(--accent-p);
  --btn-active-border-color: var(--accent);
  --focus-shadow: hsl(210 100% 50% / 0.25);
  --font-family-sans: 'Noto Sans JP', sans-serif;
  --font-family-serif: serif;
  --font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}


/* ============================================================
# Reset
============================================================ */

*,
::before,
::after {
  box-sizing: border-box;
}
::selection {
  background: hsl(62 85% 45% / 0.5);
  text-shadow: none;
}
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
}
body {
  background-color: var(--body-bg);
  color: var(--body-color);
  font-family: var(--body-font-family);
  font-size: var(--body-font-size);
  font-weight: var(--body-font-weight);
  line-height: var(--body-line-height);
  margin: 0;
  text-align: left;
}
hr {
  border: 0;
  border-top: 1px solid var(--border-color);
  color: inherit;
  height: 0;
  margin: 1.5rem 0;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 0.5rem;
}
h1, .h1 {
  font-size: clamp(1.625rem, 1.375rem + 1.5vw, 2.5rem);
}
h2, .h2 {
  font-size: clamp(1.4375rem, 1.325rem + 0.9vw, 2rem);
}
h3, .h3 {
  font-size: clamp(1.375rem, 1.3rem + 0.6vw, 1.75rem);
}
h4, .h4 {
  font-size: clamp(1.3125rem, 1.275rem + 0.3vw, 1.5rem);
}
h5, .h5 {
  font-size: clamp(1.125rem, 1.1rem + 0.25vw, 1.3125rem);
}
h6, .h6 {
  font-size: clamp(1rem, 0.975rem + 0.2vw, 1.125rem);
}
p {
  font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1rem);
  line-height: 1.6;
  margin-top: 0;
  margin-bottom: 1.5rem;
}
abbr[title] {
  text-decoration: underline dotted;
}
ol, ul {
  padding-left: 2rem;
}
ol, ul, dl {
  margin-top: 0;
  margin-bottom: 1.5rem;
}
ol ol, ul ul, ol ul, ul ol {
  margin-bottom: 0;
}
dt {
  font-weight: 700;
}
dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}
li, dt, dd {
  font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1rem);
}
b, strong {
  font-weight: bolder;
}
small, .small {
  font-size: 0.875em;
  font-weight: lighter;
}
mark, .mark {
  background-color: #ff0;
  color: #000;
  padding: 0.2em;
}
sub, sup {
  font-size: 0.75em;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
a {
  color: var(--link-color);
  text-decoration: underline;
}
a:hover {
  color: var(--link-hover-color);
}
a:not([href]):not([class]),
a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}
pre, code, kbd, samp {
  font-family: var(--font-monospace);
  font-size: 1em;
}
figure {
  margin: 0 0 1.5rem;
}
img, svg {
  vertical-align: middle;
}
img {
  height: auto;
  max-width: 100%;
}
table {
  border-collapse: collapse;
  border-color: inherit;
  margin-bottom: 1.5rem;
  text-indent: 0;
}
caption {
  caption-side: bottom;
  color: #666;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  text-align: left;
}
thead, tbody, tfoot, tr, td, th {
  border-color: inherit;
  border-style: solid;
  border-width: 0;
}
/* button:focus:not(:focus-visible) {
  outline: 0;
} */
input, button, select, optgroup, textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
}
button, select {
  text-transform: none;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
:-moz-focusring {
  outline: 1px dotted ButtonText;
}
:-moz-ui-invalid {
  box-shadow: none;
}
textarea {
  overflow: auto;
  resize: vertical;
}
legend {
  padding: 0;
}
progress {
  vertical-align: baseline;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
summary {
  cursor: pointer;
  display: list-item;
}


/* ============================================================
# Layout
============================================================ */

.container {
  margin-left: auto;
  margin-right: auto;
  width: min(100% - 15px * 2, 1000px);
}


/* ============================================================
# Content
============================================================ */

/* ## Site header
======================================== */

.siteHeader {
  border-top: 16px solid var(--primary);
}

/* ## Site footer
======================================== */

.siteFooter {
  background-color: var(--primary);
  color: var(--white);
}

/* ## Buttons
======================================== */

.btn {
  background-color: var(--btn-bg);
  border: 6px solid var(--btn-border);
  border-radius: 12px;
  color: var(--btn-color);
  cursor: pointer;
  display: inline-block;
  font-size: 1rem;
  font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1rem);
  font-weight: 400;
  line-height: 1.5;
  padding: 0.5em 16px;
  position: relative;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.15s, border 0.15s, color 0.15s, opacity 0.15s;
  user-select: none;
  vertical-align: middle;
}
.btn::before {
  border-color: transparent transparent transparent currentColor;
  border-width: 0.375em 0 0.375em 0.5em;
  border-style: solid;
  color: inherit;
  content: "";
  display: inline-block;
  height: 0;
  margin-right: 0.5em;
  width: 0;
}
@media (hover: hover) {
  .btn:hover {
    background-color: var(--btn-hover-bg);
    border: 6px solid var(--btn-hover-border);
    color: var(--btn-hover-color);
  }
}
.btn:focus {
  background-color: var(--btn-hover-bg);
  border: 6px solid var(--btn-hover-border);
  box-shadow: 0 0 0 0.2rem var(--btn-focus-shadow);
  color: var(--btn-hover-color);
  outline: 0;
}
.btn:active {
  background-color: var(--btn-active-bg);
  border-color: var(--btn-active-border-color);
  color: var(--btn-active-color);
}

/* ## Others
======================================== */

.mapWidth {
  max-width: 300px;
}

.fitImage {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: min(24vw, 240px);
}

@media (min-width: 768px) {
  .gridFeature {
    grid-template-columns: 4fr 2fr;
  }
}
@media (min-width: 992px) {
  .gridFeature {
    grid-template-columns: 3fr 2fr;
  }
}
