/*
	Theme Name: JMST Style
    Text Domain: jmst-theme
    Author: JMST
	Description: Custom theme
    Version: 1.0.0
*/

:root {
  --horizontal-padding: min(8%, 4rem);
  --vertical-padding: min(8%, 4rem);
  --form-field-padding: 1rem;
  --container-max-width: 1400px;

  --spacing-container: 2.3rem;
  --spacing-section: 2rem;

  --nav-height: 5rem;

  --border-radius-normal: 1rem;
  --border-radius-small: 0.5rem;

  --color-background: #faf4e8;
  --color-accent: #2a5d78;
  --color-accent-dark: #1f455a;
  --color-accent-disabled: #b6ccd4;
  --color-text: #1f455a;
  --color-text-on-accent: white;

  --fs-main-title: 2rem;
  --fs-headline: 1.3rem;
  --fs-subheadline: 1.1rem;
  --fs-normal: 1rem;

  --line-height-normal: 1.6;
}

@media screen and (min-width: 768px) {
  :root {
    --fs-main-title: 3rem;
  }
}

@media screen and (min-width: 1024px) {
  :root {
    --fs-home-title: 5rem;
  }
}

@font-face {
  font-family: "merriweather";
  src: url("assets/font/Merriweather-Light.ttf");
}

@font-face {
  font-family: "merriweather-bold";
  src: url("assets/font/Merriweather-Bold.ttf");
}

@font-face {
  font-family: "source-sans";
  src: url("assets/font/SourceSans3-VariableFont_wght.ttf");
}

* {
  margin: 0;
  padding: 0;
  font-family: source-sans;
  box-sizing: border-box;
}

html {
  scroll-padding-top: var(--nav-height);
  scroll-behavior: smooth;
}

body {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-color: var(--color-background);
  color: var(--color-text);
  display: flex;
  flex-direction: column;
}

footer {
  display: flex;
  flex-direction: column;
  background-color: var(--color-background);
  padding: 2rem 0;
}

footer > div {
  display: flex;
  flex-direction: row;
  gap: 0.5rem;
  margin: 0 auto;
}

p {
  font-size: var(--fs-normal);
  margin-bottom: 1rem;
  line-height: var(--line-height-normal);
}

b {
  font-family: merriweather-bold;
}

a {
  text-decoration: none;
  color: var(--color-accent);
}

a:hover {
  text-decoration: underline;
}

h1 {
  font-family: merriweather-bold;
  font-size: var(--fs-main-title);
  font-weight: normal;
  color: var(--color-accent);
  margin-bottom: 1rem;
}

h2 {
  font-family: merriweather-bold;
  font-size: var(--fs-headline);
  font-weight: normal;
  color: var(--color-accent);
  margin-bottom: 1rem;
}

h3 {
  font-family: merriweather-bold;
  font-size: var(--fs-subheadline);
  font-weight: normal;
  color: var(--color-accent);
  margin-bottom: 1rem;
}

h4 {
  font-size: var(--fs-normal);
  color: var(--color-accent-dark);
  margin-bottom: 0.5rem;
}

.container {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-height: 0;
  padding: 0 var(--horizontal-padding);
  width: min(100%, var(--container-max-width));
  margin: 0 auto;
  margin-top: calc(var(--nav-height) + var(--vertical-padding));
  margin-bottom: var(--vertical-padding);
  gap: var(--spacing-container);
}

.display-flex {
  display: flex;
}

.display-flex-column {
  display: flex;
  flex-direction: column;
}

.display-flex-row {
  display: flex;
  flex-direction: row;
}

.rounded-border {
  border-radius: var(--border-radius-normal);
}

.mv-sp-container {
  margin-top: var(--spacing-container);
  margin-bottom: var(--spacing-container);
}

.mt-sp-section {
  margin-top: var(--spacing-section);
}

.display-big,
.display-large {
  display: none;
}

@media screen and (min-width: 1024px) {
  .display-sm {
    display: none;
  }

  .display-big {
    display: revert;
  }
}

@media screen and (min-width: 1300px) {
  .display-large {
    display: revert;
  }
}

#info-link {
  display: grid;
  position: fixed;
  right: 0;
  bottom: var(--spacing-container);
  width: calc(var(--horizontal-padding) * 0.8);
  aspect-ratio: 1/2;
  background-color: var(--color-accent);
  color: var(--color-text-on-accent);
  container-type: size;
}

#info-link > span {
  align-self: center;
  margin: 0 auto;
  font-size: 35cqh;
}

.btn-accent {
  --height: 50px;
  height: var(--height);
  max-height: var(--height);
  background-color: var(--color-accent);
  border: 2px solid var(--color-accent);
  border-radius: var(--border-radius-small);
  color: var(--color-text-on-accent);
  font-weight: bold;
  font-size: var(--fs-normal);
}

.btn-accent:hover {
  cursor: pointer;
  filter: brightness(0.9);
}

a.btn-accent:hover {
  text-decoration: none;
}

.btn-accent:active {
  filter: brightness(0.6);
}

.btn-accent:disabled {
  background-color: var(--color-accent-disabled);
  border-color: var(--color-accent-disabled);
  filter: none;
}

.btn-accent-pill {
  background-color: var(--color-accent);
  border: 2px solid var(--color-accent);
  border-radius: 1000px;
  color: white;
  font-weight: bold;
  font-size: var(--fs-normal);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.1rem;
  padding-bottom: 0.2rem;
}

form .message-success {
  --color: rgb(143, 188, 149);
  background-color: var(--color);
  border: 2px solid var(--color);
  border-radius: var(--border-radius-normal);
  padding: var(--form-field-padding);
  color: rgb(0, 53, 7);
}

form .message-error {
  --color: rgb(253, 163, 163);
  background-color: var(--color);
  border: 2px solid var(--color);
  border-radius: var(--border-radius-normal);
  padding: var(--form-field-padding);
  color: rgb(63, 0, 0);
}

.loading-indicator {
  width: 48px;
  aspect-ratio: 1;
  border: 5px solid var(--color-text-on-accent);
  border-bottom-color: transparent;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
