@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body,
div,
span,
h1, h2, h3, h4, h5, h6,
p,
a,
img,
ul, ol, li,
table, caption, tbody, tfoot, thead, tr, th, td,
form, fieldset, legend, label, input, textarea, select, button {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
  display: block;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote::before, blockquote::after,
q::before, q::after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

:root {
  font-size: 16px;
}

html {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Noto Sans JP", sans-serif;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  background-color: #ffffff;
  background-repeat: no-repeat;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 1rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1.25;
}

p {
  margin-top: 0;
  margin-bottom: 1.5rem;
}

a {
  color: #111;
  text-decoration: underline;
  background-color: transparent;
}
a:hover {
  color: #222;
  text-decoration: underline;
}

img {
  vertical-align: middle;
  border-style: none;
  max-width: 100%;
  height: auto;
}

button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

:focus {
  outline: 0;
}

::-moz-selection {
  color: #ffffff;
  background-color: #111;
  text-shadow: none;
}

::selection {
  color: #ffffff;
  background-color: #111;
  text-shadow: none;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body,
div,
span,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
img,
ul,
ol,
li,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
form,
fieldset,
legend,
label,
input,
textarea,
select,
button {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
  display: block;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

:root {
  font-size: 16px;
}

html {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  color: #212529;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: 700;
  line-height: 1.5;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

a {
  color: #007cba;
  text-decoration: underline;
  background-color: rgba(0, 0, 0, 0);
}

a:hover {
  color: #005a87;
  text-decoration: underline;
}

img {
  vertical-align: middle;
  border-style: none;
  max-width: 100%;
  height: auto;
}

button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

:focus {
  outline: 0;
}

::-moz-selection {
  color: #fff;
  background-color: #007cba;
  text-shadow: none;
}

::selection {
  color: #fff;
  background-color: #007cba;
  text-shadow: none;
}

.grid {
  display: grid;
  gap: 1.5rem;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.grid-cols-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

.grid-cols-10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.grid-cols-11 {
  grid-template-columns: repeat(11, minmax(0, 1fr));
}

.grid-cols-12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

@media (min-width: 576px) {
  .sm\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .sm\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .sm\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .sm\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .sm\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .sm\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .sm\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .sm\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .sm\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {
  .md\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .md\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .md\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .md\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .md\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .md\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .md\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .md\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .md\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 992px) {
  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .lg\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .lg\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .lg\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .lg\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .lg\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .lg\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .lg\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .xl\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .xl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xl\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .xl\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .xl\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .xl\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .xl\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .xl\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 1400px) {
  .xxl\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .xxl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xxl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xxl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xxl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xxl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xxl\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .xxl\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .xxl\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .xxl\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .xxl\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .xxl\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}
@media (min-width: 1400px) {
  .container {
    max-width: 1320px;
  }
}
.container-fluid {
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
}

.p-archive__title,
.p-page__title {
  margin-bottom: 1rem;
}

.site-header {
  position: relative;
  width: 100%;
  background-color: #ffffff;
  border-bottom: 1px solid #dee2e6;
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 0;
}
.site-header__logo {
  flex-shrink: 0;
}
.site-header__nav {
  display: flex;
  align-items: center;
  gap: 3rem;
}

.site-footer {
  width: 100%;
  background-color: #212529;
  color: #ffffff;
}
.site-footer__top {
  padding: 4rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.site-footer__bottom {
  padding: 3rem 0;
  text-align: center;
  font-size: 0.875rem;
}
@media (min-width: 768px) {
  .site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
  }
}

.sidebar {
  width: 100%;
}
@media (min-width: 992px) {
  .sidebar {
    width: 300px;
    flex-shrink: 0;
  }
}
.sidebar--left {
  order: -1;
}
.sidebar--right {
  order: 1;
}
.sidebar__widget {
  margin-bottom: 2.5rem;
}
.sidebar__widget:last-child {
  margin-bottom: 0;
}

.site-main {
  flex: 1;
  width: 100%;
  min-height: 50vh;
}

.content-area {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  padding: 3rem 0;
}
@media (min-width: 992px) {
  .content-area {
    flex-wrap: nowrap;
    padding: 4rem 0;
  }
}
.content-area--no-sidebar .site-main {
  max-width: 800px;
  margin: 0 auto;
}

.section {
  padding: 3rem 0;
}
@media (min-width: 768px) {
  .section {
    padding: 4rem 0;
  }
}
.section--small {
  padding: 2rem 0;
}
.section--large {
  padding: 5rem 0;
}
.section--no-padding {
  padding: 0;
}
.section--gray {
  background-color: #f8f9fa;
}

.c-button {
  display: inline-block;
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  padding: 0.5rem 1.5rem;
  font-size: 1rem;
  border-radius: 4px;
}
.c-button:hover {
  text-decoration: none;
}
.c-button:focus {
  outline: 0;
}
.c-button:disabled, .c-button.disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.c-button--primary {
  background-color: #111;
  border-color: #111;
  color: #111;
}
.c-button--primary:hover:not(:disabled) {
  background-color: black;
  border-color: black;
}
.c-button--primary:active:not(:disabled) {
  background-color: black;
  border-color: black;
}
.c-button--primary:focus {
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.3);
}
.c-button--primary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.c-button--secondary {
  background-color: #222;
  border-color: #222;
  color: #222;
}
.c-button--secondary:hover:not(:disabled) {
  background-color: #090909;
  border-color: #090909;
}
.c-button--secondary:active:not(:disabled) {
  background-color: black;
  border-color: black;
}
.c-button--secondary:focus {
  box-shadow: 0 0 0 3px rgba(34, 34, 34, 0.3);
}
.c-button--secondary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.c-button--success {
  background-color: #28a745;
  border-color: #28a745;
  color: #28a745;
}
.c-button--success:hover:not(:disabled) {
  background-color: #1e7e34;
  border-color: #1e7e34;
}
.c-button--success:active:not(:disabled) {
  background-color: #19692c;
  border-color: #19692c;
}
.c-button--success:focus {
  box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.3);
}
.c-button--success:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.c-button--danger {
  background-color: #dc3545;
  border-color: #dc3545;
  color: #dc3545;
}
.c-button--danger:hover:not(:disabled) {
  background-color: #bd2130;
  border-color: #bd2130;
}
.c-button--danger:active:not(:disabled) {
  background-color: #a71d2a;
  border-color: #a71d2a;
}
.c-button--danger:focus {
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.3);
}
.c-button--danger:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.c-button--outline-primary {
  background-color: transparent;
  border-color: #111;
  color: #111;
}
.c-button--outline-primary:hover:not(:disabled) {
  background-color: #111;
  border-color: #111;
  color: #ffffff;
}
.c-button--outline-primary:active:not(:disabled) {
  background-color: black;
  border-color: black;
}
.c-button--outline-primary:focus {
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.3);
}
.c-button--small {
  padding: 0.25rem 1rem;
  font-size: 0.875rem;
  border-radius: 3px;
}
.c-button--large {
  padding: 1rem 2rem;
  font-size: 1.125rem;
  border-radius: 6px;
}
.c-button--block {
  display: block;
  width: 100%;
}

.c-form-group {
  margin-bottom: 1.5rem;
}
.c-form-group label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #212529;
}
.c-form-group label.required::after {
  content: " *";
  color: #dc3545;
}
.c-form-group .field-help {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: #495057;
}

.c-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.c-radio-group--vertical {
  flex-direction: column;
  gap: 0.5rem;
}
.c-radio-group--inline {
  gap: 1.5rem;
}

.c-radio-label {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: calc(20px + 0.25rem);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1.5;
  color: #212529;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: color 0.2s ease;
}
.c-radio-label input[type=radio] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
.c-radio-label input[type=radio]:focus ~ .c-radio-mark {
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.2);
}
.c-radio-label input[type=radio]:checked ~ .c-radio-mark {
  border-color: #111;
}
.c-radio-label input[type=radio]:checked ~ .c-radio-mark::after {
  opacity: 1;
  transform: scale(1);
}
.c-radio-label input[type=radio]:disabled ~ .c-radio-mark {
  background-color: #f1f3f5;
  border-color: #dee2e6;
  cursor: not-allowed;
}
.c-radio-label input[type=radio]:disabled ~ .c-radio-label__text {
  color: #adb5bd;
  cursor: not-allowed;
}
.c-radio-label:hover input[type=radio]:not(:disabled) ~ .c-radio-mark {
  border-color: #111;
}

.c-radio-mark {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background-color: #ffffff;
  border: 2px solid #ced4da;
  border-radius: 50%;
  transition: all 0.2s ease;
}
.c-radio-mark::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  width: 8px;
  height: 8px;
  background-color: #111;
  border-radius: 50%;
  opacity: 0;
  transition: all 0.2s ease;
}

.c-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.c-checkbox-group--inline {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
}

.c-checkbox-label {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: calc(20px + 0.25rem);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1.5;
  color: #212529;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: color 0.2s ease;
}
.c-checkbox-label input[type=checkbox] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
.c-checkbox-label input[type=checkbox]:focus ~ .checkmark {
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.2);
}
.c-checkbox-label input[type=checkbox]:checked ~ .checkmark {
  background-color: #111;
  border-color: #111;
}
.c-checkbox-label input[type=checkbox]:checked ~ .checkmark::after {
  opacity: 1;
  transform: rotate(45deg) scale(1);
}
.c-checkbox-label input[type=checkbox]:disabled ~ .checkmark {
  background-color: #f1f3f5;
  border-color: #dee2e6;
  cursor: not-allowed;
}
.c-checkbox-label input[type=checkbox]:disabled ~ span {
  color: #adb5bd;
  cursor: not-allowed;
}
.c-checkbox-label:hover input[type=checkbox]:not(:disabled) ~ .checkmark {
  border-color: #111;
}

.checkmark {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background-color: #ffffff;
  border: 2px solid #ced4da;
  border-radius: 4px;
  transition: all 0.2s ease;
}
.checkmark::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 10px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  opacity: 0;
  transition: all 0.2s ease;
}

.c-form-control {
  display: block;
  width: 100%;
  padding: 0.5rem 1rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  background-color: #ffffff;
  background-clip: padding-box;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.c-form-control::-moz-placeholder {
  color: #adb5bd;
  opacity: 1;
}
.c-form-control::placeholder {
  color: #adb5bd;
  opacity: 1;
}
.c-form-control:focus {
  color: #212529;
  background-color: #ffffff;
  border-color: #111;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.1);
}
.c-form-control:disabled {
  background-color: #f1f3f5;
  opacity: 1;
  cursor: not-allowed;
}
.c-form-control[readonly] {
  background-color: #f8f9fa;
  opacity: 1;
}
.c-form-control.is-invalid {
  border-color: #dc3545;
}
.c-form-control.is-invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1);
}
.c-form-control.is-valid {
  border-color: #28a745;
}
.c-form-control.is-valid:focus {
  border-color: #28a745;
  box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.1);
}

textarea.c-form-control {
  min-height: 120px;
  resize: vertical;
}

select.c-form-control {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 16px 12px;
  padding-right: calc(1rem * 2 + 16px);
}
select.c-form-control:focus {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%230066cc' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}

.size-input-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
}
.size-input-group .size-field label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #495057;
}
.size-input-group .size-field input {
  width: 100%;
}
@media (min-width: 576px) {
  .size-input-group {
    grid-template-columns: repeat(3, 1fr);
  }
}

.char-counter {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: #adb5bd;
  text-align: right;
}
.char-counter .current-count {
  font-weight: 500;
  color: #495057;
}
.char-counter .current-count.warning {
  color: #ffc107;
}
.char-counter .current-count.error {
  color: #dc3545;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 768px) {
  .form-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.form-grid .full-width {
  grid-column: 1/-1;
}

.form-actions {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e9ecef;
}
.form-actions--right {
  justify-content: flex-end;
}
.form-actions--center {
  justify-content: center;
}
.form-actions--between {
  justify-content: space-between;
}
@media (max-width: calc(576px - 1px)) {
  .form-actions {
    flex-direction: column;
  }
  .form-actions button,
  .form-actions .btn {
    width: 100%;
  }
}

.c-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  overflow: hidden;
}
.c-card__header {
  padding: 1.5rem;
  background-color: #f1f3f5;
  border-bottom: 1px solid #dee2e6;
}
.c-card__body {
  flex: 1;
  padding: 1.5rem;
}
.c-card__footer {
  padding: 1.5rem;
  background-color: #f1f3f5;
  border-top: 1px solid #dee2e6;
}

.c-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 3px;
}
.c-badge--primary {
  color: #ffffff;
  background-color: #111;
}
.c-badge--secondary {
  color: #ffffff;
  background-color: #222;
}
.c-badge--success {
  color: #ffffff;
  background-color: #28a745;
}

.c-message {
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  border: 1px solid transparent;
  border-radius: 4px;
}
.c-message__title {
  margin-bottom: 0.5rem;
  font-weight: 700;
}
.c-message__text {
  margin: 0;
}
.c-message--info {
  color: #062a30;
  background-color: #a7e9f4;
  border-color: #7adeee;
}
.c-message--success {
  color: #0a2c12;
  background-color: #afecbd;
  border-color: #86e29b;
}

.c-alert {
  position: relative;
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  border: 1px solid transparent;
  border-radius: 4px;
}
.c-alert--dismissible {
  padding-right: 4rem;
}
.c-alert__close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 1rem 1.5rem;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
  opacity: 0.5;
}
.c-alert__close:hover {
  opacity: 0.75;
}

.c-table {
  width: 100%;
  margin-bottom: 1.5rem;
  background-color: transparent;
  border-collapse: collapse;
}
.c-table th,
.c-table td {
  padding: 1rem;
  vertical-align: top;
  border-top: 1px solid #dee2e6;
}
.c-table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid #dee2e6;
  font-weight: 700;
  text-align: left;
}
.c-table tbody + tbody {
  border-top: 2px solid #dee2e6;
}
.c-table--striped tbody tr:nth-of-type(odd) {
  background-color: rgba(241, 243, 245, 0.5);
}

.c-social-links {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #666;
  background-color: #f1f3f5;
  border-radius: 50%;
  transition: all 0.2s ease;
}
.c-social-link:hover {
  color: #ffffff;
  background-color: #111;
  transform: translateY(-2px);
}

.c-dropdown {
  position: relative;
  display: inline-block;
}
.c-dropdown__toggle {
  cursor: pointer;
}
.c-dropdown__menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  min-width: 200px;
  padding: 0.5rem 0;
  margin: 0.25rem 0 0;
  background-color: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.c-dropdown__menu--show {
  display: block;
}
.c-dropdown__item {
  display: block;
  width: 100%;
  padding: 0.5rem 1.5rem;
  color: #212529;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.c-dropdown__item:hover {
  color: #212529;
  background-color: #f1f3f5;
}

.c-modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.c-modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: 0;
}
.c-modal--show {
  display: block;
}
.c-modal__dialog {
  position: relative;
  width: auto;
  max-width: 500px;
  margin: 2.5rem auto;
  pointer-events: none;
}
.c-modal__content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #ffffff;
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}
.c-modal__header, .c-modal__body, .c-modal__footer {
  padding: 1.5rem;
}
.c-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #dee2e6;
}
.c-modal__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid #dee2e6;
}

.c-pagination {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-pagination__item--disabled .c-pagination__link {
  color: #999;
  pointer-events: none;
  background-color: #f1f3f5;
}
.c-pagination__item--active .c-pagination__link {
  color: #ffffff;
  background-color: #111;
  border-color: #111;
}
.c-pagination__link {
  display: block;
  padding: 0.5rem 1rem;
  color: #111;
  text-decoration: none;
  background-color: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 3px;
  transition: all 0.15s ease;
}
.c-pagination__link:hover {
  color: #222;
  background-color: #f1f3f5;
  border-color: #ced4da;
}

.c-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
}
.c-breadcrumb__item + .c-breadcrumb__item {
  padding-left: 0.5rem;
}
.c-breadcrumb__item + .c-breadcrumb__item::before {
  display: inline-block;
  padding-right: 0.5rem;
  color: #999;
  content: "/";
}
.c-breadcrumb__item--active {
  color: #999;
}
.c-breadcrumb__link {
  color: #111;
  text-decoration: none;
}
.c-breadcrumb__link:hover {
  color: #222;
  text-decoration: underline;
}

.c-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 0 -1px;
  padding: 0;
  border-bottom: 1px solid #dee2e6;
}
.c-tabs__item {
  margin-bottom: -1px;
}
.c-tabs__link {
  display: block;
  padding: 1rem 1.5rem;
  color: #666;
  text-decoration: none;
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: 4px 4px 0 0;
  transition: all 0.15s ease;
}
.c-tabs__link:hover {
  color: #212529;
  border-color: #dee2e6 #dee2e6 #ffffff;
}
.c-tabs__link--active {
  color: #212529;
  background-color: #ffffff;
  border-color: #dee2e6 #dee2e6 #ffffff;
}
.c-tabs__content {
  padding: 1.5rem;
}
.c-tabs__pane {
  display: none;
}
.c-tabs__pane--active {
  display: block;
}

/**
 * Ultimate Member アカウントページ要素の非表示
 * 
 * プラグインのデフォルト要素を強制的に非表示にする
 */
.um-account-meta {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  left: -9999px !important;
}

.um-account-meta-img,
.um-account-meta-img-b,
.um-account-meta .um-account-name,
.um-account-profile-link {
  display: none !important;
}

.uimob800-hide .um-account-meta,
.uimob800-show.um-account-meta-img-b {
  display: none !important;
}

.um-account-nav-link[data-tab=privacy],
a[href*="tab=privacy"],
.um-account-tab-content#privacy,
.um-account-nav-item:has(a[data-tab=privacy]) {
  display: none !important;
}

/**
 * ACF隠しフィールドコンポーネント
 * 
 * エントリーフォーム編集時にACFフィールドを非表示状態で配置するためのスタイル
 * JavaScriptからのアクセスは可能にしつつ、ユーザーには見えないようにする
 */
.acf-hidden-fields {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
}
.acf-hidden-fields .acf-field,
.acf-hidden-fields .acf-input,
.acf-hidden-fields .acf-label,
.acf-hidden-fields .show-if-value,
.acf-hidden-fields .hide-if-value,
.acf-hidden-fields input,
.acf-hidden-fields img {
  position: static !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  overflow: hidden !important;
}
.acf-hidden-fields input[type=hidden] {
  position: static !important;
  width: 0 !important;
  height: 0 !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

.acf-debug-mode .acf-hidden-fields {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
  border: 2px dashed #ff0000 !important;
  background: #fff3cd !important;
  padding: 10px !important;
  margin: 10px 0 !important;
}
.acf-debug-mode .acf-hidden-fields::before {
  content: "DEBUG: ACF Hidden Fields";
  display: block;
  font-weight: bold;
  color: #721c24;
  margin-bottom: 5px;
}
.acf-debug-mode .acf-hidden-fields .acf-field,
.acf-debug-mode .acf-hidden-fields .acf-input,
.acf-debug-mode .acf-hidden-fields .acf-label,
.acf-debug-mode .acf-hidden-fields .show-if-value,
.acf-debug-mode .acf-hidden-fields .hide-if-value,
.acf-debug-mode .acf-hidden-fields input,
.acf-debug-mode .acf-hidden-fields img {
  position: static !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
  margin: auto !important;
  padding: auto !important;
  border: auto !important;
  overflow: visible !important;
}

.c-button {
  display: inline-block;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  border: 1px solid rgba(0, 0, 0, 0);
  transition: all 0.15s ease-in-out;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  border-radius: 4px;
}
.c-button:hover {
  text-decoration: none;
}
.c-button:focus {
  outline: none;
  box-shadow: 0 0 0 0.2rem rgba(0, 124, 186, 0.25);
}
.c-button:disabled, .c-button.disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.c-button--primary {
  color: #fff;
  background-color: #007cba;
  border-color: #007cba;
}
.c-button--primary:hover {
  color: #fff;
  background-color: #00699e;
  border-color: #005a87;
}
.c-button--primary:focus, .c-button--primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 124, 186, 0.5);
}
.c-button--primary:disabled, .c-button--primary.disabled {
  color: #fff;
  background-color: #007cba;
  border-color: #007cba;
}
.c-button--secondary {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}
.c-button--secondary:hover {
  color: #fff;
  background-color: #818a92;
  border-color: #79838b;
}
.c-button--secondary:focus, .c-button--secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}
.c-button--secondary:disabled, .c-button--secondary.disabled {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}
.c-button--success {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}
.c-button--success:hover {
  color: #fff;
  background-color: #2ebf4f;
  border-color: #2bb34a;
}
.c-button--success:focus, .c-button--success.focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}
.c-button--success:disabled, .c-button--success.disabled {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}
.c-button--danger {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}
.c-button--danger:hover {
  color: #fff;
  background-color: #d12435;
  border-color: #c62232;
}
.c-button--danger:focus, .c-button--danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}
.c-button--danger:disabled, .c-button--danger.disabled {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}
.c-button--outline-primary {
  color: #007cba;
  background-color: rgba(0, 0, 0, 0);
  border-color: #007cba;
}
.c-button--outline-primary:hover {
  color: #fff;
  background-color: #007cba;
  border-color: #007cba;
}
.c-button--outline-primary:focus, .c-button--outline-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 124, 186, 0.5);
}
.c-button--outline-primary:disabled, .c-button--outline-primary.disabled {
  color: #007cba;
  background-color: rgba(0, 0, 0, 0);
}
.c-button--small {
  padding: 0.25rem 0.75rem;
  font-size: 0.875rem;
  border-radius: 3px;
}
.c-button--large {
  padding: 0.75rem 1.25rem;
  font-size: 1.125rem;
  border-radius: 6px;
}
.c-button--block {
  display: block;
  width: 100%;
}

.c-form-group {
  margin-bottom: 1rem;
}

.c-form-label {
  display: inline-block;
  margin-bottom: 0.5rem;
  font-weight: 500;
  color: #212529;
}

.c-form-control {
  display: block;
  width: 100%;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  color: #212529;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #dee2e6;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  padding: 0.5rem 0.75rem;
  font-size: 1rem;
  border-radius: 4px;
}
.c-form-control::-moz-placeholder {
  color: #adb5bd;
  opacity: 1;
}
.c-form-control::placeholder {
  color: #adb5bd;
  opacity: 1;
}
.c-form-control:disabled, .c-form-control[readonly] {
  background-color: #f8f9fa;
  opacity: 1;
}
.c-form-control:focus {
  color: #212529;
  background-color: #fff;
  border-color: #007cba;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 124, 186, 0.25);
}
.c-form-control--small {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  border-radius: 3px;
}
.c-form-control--large {
  padding: 0.75rem 1rem;
  font-size: 1.125rem;
  border-radius: 6px;
}
.c-form-control--valid {
  border-color: #28a745;
}
.c-form-control--valid:focus {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}
.c-form-control--invalid {
  border-color: #dc3545;
}
.c-form-control--invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.c-form-text {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #adb5bd;
}

.c-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  overflow: hidden;
}
.c-card__header {
  padding: 1rem;
  background-color: #f8f9fa;
  border-bottom: 1px solid #dee2e6;
}
.c-card__body {
  flex: 1;
  padding: 1rem;
}
.c-card__footer {
  padding: 1rem;
  background-color: #f8f9fa;
  border-top: 1px solid #dee2e6;
}

.c-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 3px;
}
.c-badge--primary {
  color: #fff;
  background-color: #007cba;
}
.c-badge--secondary {
  color: #fff;
  background-color: #6c757d;
}
.c-badge--success {
  color: #fff;
  background-color: #28a745;
}

.c-message {
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  border: 1px solid rgba(0, 0, 0, 0);
  border-radius: 4px;
}
.c-message__title {
  margin-bottom: 0.5rem;
  font-weight: 700;
}
.c-message__text {
  margin: 0;
}
.c-message--info {
  color: #073137;
  background-color: #d7f5fa;
  border-color: #aeebf5;
}
.c-message--success {
  color: #10431c;
  background-color: #daf6e1;
  border-color: #9de8ae;
}

.c-alert {
  position: relative;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  border: 1px solid rgba(0, 0, 0, 0);
  border-radius: 4px;
}
.c-alert--dismissible {
  padding-right: 2.5rem;
}
.c-alert__close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.75rem 1rem;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
  opacity: 0.5;
}
.c-alert__close:hover {
  opacity: 0.75;
}

.c-table {
  width: 100%;
  margin-bottom: 1rem;
  background-color: rgba(0, 0, 0, 0);
  border-collapse: collapse;
}
.c-table th,
.c-table td {
  padding: 0.75rem;
  vertical-align: top;
  border-top: 1px solid #dee2e6;
}
.c-table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid #dee2e6;
  font-weight: 700;
  text-align: left;
}
.c-table tbody + tbody {
  border-top: 2px solid #dee2e6;
}
.c-table--striped tbody tr:nth-of-type(odd) {
  background-color: rgba(248, 249, 250, 0.5);
}

.c-social-links {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #6c757d;
  background-color: #f8f9fa;
  border-radius: 50%;
  transition: all 0.2s ease;
}
.c-social-link:hover {
  color: #fff;
  background-color: #007cba;
  transform: translateY(-2px);
}

.c-dropdown {
  position: relative;
  display: inline-block;
}
.c-dropdown__toggle {
  cursor: pointer;
}
.c-dropdown__menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 200;
  display: none;
  min-width: 200px;
  padding: 0.5rem 0;
  margin: 0.25rem 0 0;
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.c-dropdown__menu--show {
  display: block;
}
.c-dropdown__item {
  display: block;
  width: 100%;
  padding: 0.5rem 1rem;
  color: #212529;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.c-dropdown__item:hover {
  color: #212529;
  background-color: #f8f9fa;
}

.c-modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.c-modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1010;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: 0;
}
.c-modal--show {
  display: block;
}
.c-modal__dialog {
  position: relative;
  width: auto;
  max-width: 500px;
  margin: 2rem auto;
  pointer-events: none;
}
.c-modal__content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}
.c-modal__header, .c-modal__body, .c-modal__footer {
  padding: 1rem;
}
.c-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #dee2e6;
}
.c-modal__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid #dee2e6;
}

.c-pagination {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-pagination__item--disabled .c-pagination__link {
  color: #adb5bd;
  pointer-events: none;
  background-color: #f8f9fa;
}
.c-pagination__item--active .c-pagination__link {
  color: #fff;
  background-color: #007cba;
  border-color: #007cba;
}
.c-pagination__link {
  display: block;
  padding: 0.5rem 0.75rem;
  color: #007cba;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: 3px;
  transition: all 0.15s ease;
}
.c-pagination__link:hover {
  color: #005a87;
  background-color: #f8f9fa;
  border-color: #ced4da;
}

.c-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
}
.c-breadcrumb__item + .c-breadcrumb__item {
  padding-left: 0.5rem;
}
.c-breadcrumb__item + .c-breadcrumb__item::before {
  display: inline-block;
  padding-right: 0.5rem;
  color: #adb5bd;
  content: "/";
}
.c-breadcrumb__item--active {
  color: #adb5bd;
}
.c-breadcrumb__link {
  color: #007cba;
  text-decoration: none;
}
.c-breadcrumb__link:hover {
  color: #005a87;
  text-decoration: underline;
}

.c-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0 0 -1px;
  padding: 0;
  border-bottom: 1px solid #dee2e6;
}
.c-tabs__item {
  margin-bottom: -1px;
}
.c-tabs__link {
  display: block;
  padding: 0.75rem 1rem;
  color: #6c757d;
  text-decoration: none;
  background-color: rgba(0, 0, 0, 0);
  border: 1px solid rgba(0, 0, 0, 0);
  border-radius: 4px 4px 0 0;
  transition: all 0.15s ease;
}
.c-tabs__link:hover {
  color: #212529;
  border-color: #dee2e6 #dee2e6 #fff;
}
.c-tabs__link--active {
  color: #212529;
  background-color: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.c-tabs__content {
  padding: 1rem;
}
.c-tabs__pane {
  display: none;
}
.c-tabs__pane--active {
  display: block;
}

.l-header {
  background-color: #000;
  height: 70px;
  border-bottom: 1px solid hsla(0, 0%, 100%, 0.1);
  position: sticky;
  top: 0;
  z-index: 100;
}
.l-header__center {
  display: none;
}
.l-header__body {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  max-width: 1200px;
  margin: 0 auto;
}
.l-header__left, .l-header__right {
  display: flex;
  align-items: center;
}
.l-header__left {
  flex-shrink: 0;
}
.l-header__right {
  gap: 24px;
}

.wc-header-logo {
  display: flex;
  align-items: center;
}
.wc-header-logo a {
  display: block;
  text-decoration: none;
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  transition: opacity 0.2s ease;
}
.wc-header-logo a:hover {
  opacity: 0.8;
}
.wc-header-logo img {
  height: 40px;
  width: auto;
}
@media (max-width: 768px) {
  .wc-header-logo a {
    font-size: 18px;
  }
  .wc-header-logo img {
    height: 32px;
  }
}

.wc-header-nav {
  display: flex;
  align-items: center;
  gap: 24px;
}
.wc-header-nav__item a {
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: 4px;
  transition: all 0.2s ease;
  display: block;
}
@media (max-width: 768px) {
  .wc-header-nav {
    gap: 16px;
  }
  .wc-header-nav .wc-header-nav__item a {
    font-size: 14px;
    padding: 8px;
  }
}

.p-wc-layout {
  min-height: 100vh;
  background-color: #000;
  background-image: url("../img/wc-bg-pattern.jpg");
  background-attachment: fixed;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.p-wc-layout::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: -1;
}
.p-wc-layout__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 24px;
  position: relative;
  z-index: 1;
}
.p-wc-layout__content-wrapper {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 48px;
  align-items: start;
}
@media (max-width: 992px) {
  .p-wc-layout__content-wrapper {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.p-wc-layout__main-content {
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  position: relative;
}
.p-wc-layout__main-content h1,
.p-wc-layout__main-content h2,
.p-wc-layout__main-content h3,
.p-wc-layout__main-content h4,
.p-wc-layout__main-content h5,
.p-wc-layout__main-content h6 {
  color: #333;
  line-height: 1.4;
  margin-bottom: 24px;
}
.p-wc-layout__main-content h1:not(:first-child),
.p-wc-layout__main-content h2:not(:first-child),
.p-wc-layout__main-content h3:not(:first-child),
.p-wc-layout__main-content h4:not(:first-child),
.p-wc-layout__main-content h5:not(:first-child),
.p-wc-layout__main-content h6:not(:first-child) {
  margin-top: 32px;
}
.p-wc-layout__main-content h1 {
  font-size: 32px;
  font-weight: bold;
  border-bottom: 2px solid #ff6b35;
  padding-bottom: 16px;
}
.p-wc-layout__main-content h2 {
  font-size: 24px;
  font-weight: bold;
  position: relative;
  padding-left: 24px;
}
.p-wc-layout__main-content h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 1.2em;
  background-color: #ff6b35;
  border-radius: 2px;
}
.p-wc-layout__main-content h3 {
  font-size: 20px;
  font-weight: 600;
}
.p-wc-layout__main-content p {
  line-height: 1.6;
  margin-bottom: 24px;
  color: #333;
}
.p-wc-layout__main-content a {
  color: #ff6b35;
  text-decoration: none;
  transition: color 0.2s ease;
}
.p-wc-layout__main-content a:hover {
  color: #ff5416;
  text-decoration: underline;
}
.p-wc-layout__main-content ul,
.p-wc-layout__main-content ol {
  margin-bottom: 24px;
  padding-left: 32px;
}
.p-wc-layout__main-content ul li,
.p-wc-layout__main-content ol li {
  line-height: 1.6;
  margin-bottom: 8px;
}
.p-wc-layout__main-content img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.p-wc-layout__main-content blockquote {
  background-color: #f5f5f5;
  border-left: 4px solid #ff6b35;
  padding: 24px;
  margin: 32px 0;
  border-radius: 0 4px 4px 0;
  font-style: italic;
}
.p-wc-layout__main-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 32px;
}
.p-wc-layout__main-content table th,
.p-wc-layout__main-content table td {
  padding: 16px;
  border: 1px solid #e0e0e0;
  text-align: left;
}
.p-wc-layout__main-content table th {
  background-color: #f5f5f5;
  font-weight: 600;
}
.p-wc-layout__content-inner {
  padding: 48px;
}
@media (max-width: 768px) {
  .p-wc-layout__content-inner {
    padding: 32px;
  }
}
.p-wc-layout__sidebar {
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  padding: 32px;
  position: sticky;
  top: 102px;
  max-height: calc(100vh - 70px - 48px);
  overflow-y: auto;
}
@media (max-width: 992px) {
  .p-wc-layout__sidebar {
    position: static;
    max-height: none;
    overflow-y: visible;
  }
}

.p-wc-sidebar__section {
  margin-bottom: 32px;
}
.p-wc-sidebar__section:last-child {
  margin-bottom: 0;
}
.p-wc-sidebar__section-title {
  font-size: 18px;
  font-weight: bold;
  color: #333;
  margin-bottom: 24px;
  padding-bottom: 8px;
  border-bottom: 2px solid #ff6b35;
  position: relative;
}
.p-wc-sidebar__section-title::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 30%;
  height: 2px;
  background-color: #ffa686;
}
.p-wc-sidebar__entry-info {
  background: linear-gradient(135deg, #ff6b35, #ff4907);
  border-radius: 4px;
  padding: 32px;
  text-align: center;
  color: #fff;
  margin-bottom: 32px;
}
.p-wc-sidebar__entry-info-title {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 16px;
}
.p-wc-sidebar__entry-info-date {
  font-size: 14px;
  opacity: 0.9;
  margin-bottom: 24px;
}
.p-wc-sidebar__entry-info-button {
  display: inline-block;
  background-color: #fff;
  color: #ff6b35;
  font-weight: bold;
  padding: 16px 32px;
  border-radius: 4px;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.p-wc-sidebar__entry-info-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
  color: #ff4907;
}
.p-wc-sidebar__news-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-wc-sidebar__news-item {
  border-bottom: 1px solid #e0e0e0;
  padding: 16px 0;
}
.p-wc-sidebar__news-item:last-child {
  border-bottom: none;
}
.p-wc-sidebar__news-item-date {
  font-size: 14px;
  color: #666;
  margin-bottom: 8px;
}
.p-wc-sidebar__news-item-title {
  font-size: 14px;
  line-height: 1.4;
}
.p-wc-sidebar__news-item-title a {
  color: #333;
  text-decoration: none;
  transition: color 0.2s ease;
}
.p-wc-sidebar__news-item-title a:hover {
  color: #ff6b35;
}
.p-wc-sidebar__sponsor-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.p-wc-sidebar__sponsor-item {
  background-color: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  padding: 16px;
  text-align: center;
  transition: all 0.2s ease;
}
.p-wc-sidebar__sponsor-item:hover {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}
.p-wc-sidebar__sponsor-item:hover img {
  filter: grayscale(0%);
}
.p-wc-sidebar__sponsor-item img {
  max-width: 100%;
  height: 40px;
  -o-object-fit: contain;
     object-fit: contain;
  filter: grayscale(100%);
  transition: filter 0.2s ease;
}
.p-wc-sidebar__contact-info {
  background-color: #f5f5f5;
  border-radius: 4px;
  padding: 24px;
  text-align: center;
}
.p-wc-sidebar__contact-info-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 16px;
  color: #333;
}
.p-wc-sidebar__contact-info-detail {
  font-size: 14px;
  line-height: 1.6;
  color: hsl(0, 0%, 30%);
  margin-bottom: 8px;
}
.p-wc-sidebar__contact-info-detail:last-child {
  margin-bottom: 0;
}
@media (max-width: 992px) {
  .p-wc-sidebar__section {
    margin-bottom: 24px;
  }
  .p-wc-sidebar__sponsor-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .p-wc-sidebar__entry-info {
    padding: 24px;
  }
  .p-wc-sidebar__entry-info-title {
    font-size: 18px;
  }
  .p-wc-sidebar__sponsor-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
  }
  .p-wc-sidebar__sponsor-item {
    padding: 8px;
  }
  .p-wc-sidebar__sponsor-item img {
    height: 30px;
  }
}

.grid {
  display: grid;
  gap: 1rem;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.grid-cols-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

.grid-cols-10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.grid-cols-11 {
  grid-template-columns: repeat(11, minmax(0, 1fr));
}

.grid-cols-12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

@media (min-width: 576px) {
  .sm\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .sm\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .sm\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .sm\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .sm\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .sm\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .sm\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .sm\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .sm\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {
  .md\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .md\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .md\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .md\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .md\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .md\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .md\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .md\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .md\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .lg\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .lg\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .lg\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .lg\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .lg\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .lg\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .lg\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 1280px) {
  .xl\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .xl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xl\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .xl\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .xl\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .xl\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .xl\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .xl\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
@media (min-width: 1536px) {
  .xxl\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .xxl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xxl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xxl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xxl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xxl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xxl\:grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .xxl\:grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .xxl\:grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .xxl\:grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .xxl\:grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .xxl\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}
@media (min-width: 1024px) {
  .container {
    max-width: 960px;
  }
}
@media (min-width: 1280px) {
  .container {
    max-width: 1140px;
  }
}
@media (min-width: 1536px) {
  .container {
    max-width: 1320px;
  }
}

.container-fluid {
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
}

.site-header {
  position: relative;
  width: 100%;
  background-color: #fff;
  border-bottom: 1px solid #dee2e6;
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
}
.site-header__logo {
  flex-shrink: 0;
}
.site-header__nav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.site-footer {
  width: 100%;
  background-color: #212529;
  color: #fff;
}
.site-footer__top {
  padding: 4rem 0;
  border-bottom: 1px solid hsla(0, 0%, 100%, 0.1);
}
.site-footer__bottom {
  padding: 1.5rem 0;
  text-align: center;
  font-size: 0.875rem;
}
@media (min-width: 768px) {
  .site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
  }
}

.sidebar {
  width: 100%;
}
@media (min-width: 1024px) {
  .sidebar {
    width: 300px;
    flex-shrink: 0;
  }
}
.sidebar--left {
  order: -1;
}
.sidebar--right {
  order: 1;
}
.sidebar__widget {
  margin-bottom: 2rem;
}
.sidebar__widget:last-child {
  margin-bottom: 0;
}

.site-main {
  flex: 1;
  width: 100%;
  min-height: 50vh;
}

.content-area {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  padding: 3rem 0;
}
@media (min-width: 1024px) {
  .content-area {
    flex-wrap: nowrap;
    padding: 4rem 0;
  }
}
.content-area--no-sidebar .site-main {
  max-width: 800px;
  margin: 0 auto;
}

.section {
  padding: 3rem 0;
}
@media (min-width: 768px) {
  .section {
    padding: 4rem 0;
  }
}
.section--small {
  padding: 2rem 0;
}
.section--large {
  padding: 5rem 0;
}
.section--no-padding {
  padding: 0;
}
.section--gray {
  background-color: #f8f9fa;
}

.l-header {
  background-color: #111111;
  height: 70px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  position: sticky;
  top: 0;
  z-index: 100;
}
.l-header__center {
  display: none;
}
.l-header__body {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  max-width: 1200px;
  margin: 0 auto;
}
.l-header__left, .l-header__right {
  display: flex;
  align-items: center;
}
.l-header__left {
  flex-shrink: 0;
}
.l-header__right {
  gap: 0.5rem;
}

.wc-header-logo {
  display: flex;
  align-items: center;
}
.wc-header-logo a {
  display: block;
  text-decoration: none;
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: bold;
  transition: opacity all 0.15s ease;
}
.wc-header-logo a:hover {
  opacity: 0.8;
}
.wc-header-logo img {
  height: 60px;
  display: block;
  width: auto;
}
@media (max-width: 768px) {
  .wc-header-logo a {
    font-size: 1rem;
  }
  .wc-header-logo img {
    height: 32px;
  }
}

.wc-header-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  height: 100%;
}
.wc-header-nav .wc-header-nav__item.wc-header-nav__item--entry {
  height: 100%;
}
.wc-header-nav .wc-header-nav__item.wc-header-nav__item--entry a {
  border-radius: 0px;
}
.wc-header-nav__item a {
  color: #ffffff;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
  border-radius: 8px;
  transition: all all 0.15s ease;
  display: block;
}
.wc-header-nav__item a:hover {
  color: #fff;
  text-decoration: underline;
}
.wc-header-nav__item--entry a {
  background-color: #ff0000;
  color: #ffffff;
  font-weight: bold;
  border-radius: 0px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wc-header-nav__item--entry a:hover {
  color: #ffffff;
}
.wc-header-nav__item--register a {
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #ffffff;
  font-weight: 500;
}
.wc-header-nav__item--register a:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.5);
  color: #ffffff;
}
@media (max-width: 768px) {
  .wc-header-nav {
    gap: 0.5rem;
  }
  [data-has-drawer=sp] .wc-header-nav {
    display: none;
  }
  .wc-header-nav__item a {
    font-size: 0.875rem;
    padding: 0.25rem 0.5rem;
  }
}
@media (min-width: 769px) {
  .wc-header-nav {
    display: flex;
  }
}

.p-drawer {
  --ark-drawerW: 320px;
}
@media (max-width: 768px) {
  .p-drawer.-right {
    right: 0;
    left: auto;
  }
  .p-drawer.-right .p-drawer__inner {
    right: 0;
    left: auto;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
  }
  .p-drawer.-right .p-drawer__inner.is-open, .p-drawer.-right .p-drawer__inner.-open {
    transform: translateX(0);
    box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);
  }
  .p-drawer.-right .p-drawer__close {
    left: auto;
    right: 0;
  }
}

@media (max-width: 768px) {
  .l-header__body {
    display: flex;
    align-items: center;
  }
  .l-header__body .l-header__left {
    order: 1;
    flex: 1;
  }
  .l-header__body .l-header__center {
    display: none;
  }
  .l-header__body .l-header__right {
    display: none;
  }
  .l-header__body .l-header__searchBtn {
    order: 2;
    margin-right: 0.25rem;
  }
  .l-header__body .l-header__drawerBtn {
    order: 3;
    margin-left: 0;
    margin-right: 0;
  }
}
.wc-drawer-nav-items .c-drawerNav {
  --ark-list-padding: 0;
  list-style: none;
  border-top: none;
  border-bottom: none;
}
.wc-drawer-nav-items .c-drawerNav .menu-item {
  border-bottom: var(--ark-menulist_border, 1px solid rgba(255, 255, 255, 0.1));
  line-height: 1.5;
  margin: 0;
  position: relative;
}
.wc-drawer-nav-items .c-drawerNav__a {
  color: inherit;
  display: block;
  font-size: var(--ark-nav_fz, 1em);
  padding: var(--ark-nav-padding--Y, 0.75rem) var(--ark-nav-padding--R, 0.5rem) var(--ark-nav-padding--Y, 0.75rem) var(--ark-nav-padding--L, 0.5rem);
  position: relative;
  text-decoration: none;
}
.wc-drawer-nav-items .c-drawerNav__a:hover {
  background-color: var(--ark-color--gray--hover, rgba(150, 150, 150, 0.05));
}
.wc-drawer-nav-items .c-drawerNav__a .__mainText {
  color: inherit;
  display: block;
  line-height: 1;
  font-size: inherit;
}
.wc-drawer-nav-items .c-drawerNav__a[style*="background-color: #ff0000"]:hover {
  background-color: #cc0000 !important;
}

.p-wc-layout {
  min-height: 100vh;
  background-color: #ffffff;
  background-image: url("../img/wc-bg-pattern.jpg");
  background-attachment: fixed;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.p-wc-layout::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: -1;
}
.p-wc-layout__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1.5rem 1rem;
  position: relative;
  z-index: 1;
}
.p-wc-layout__content-wrapper {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 2rem;
  align-items: start;
}
@media (max-width: 992px) {
  .p-wc-layout__content-wrapper {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
.p-wc-layout__main-content {
  background-color: #ffffff;
  border-radius: 16px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  position: relative;
}
.p-wc-layout__content-inner {
  padding: 2rem;
}
@media (max-width: 768px) {
  .p-wc-layout__content-inner {
    padding: 1.5rem;
  }
}
.p-wc-layout__sidebar {
  background-color: #ffffff;
  border-radius: 16px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  padding: 1.5rem;
  position: sticky;
  top: calc(70px + 1.5rem);
  max-height: calc(100vh - 70px - 2rem);
  overflow-y: auto;
}
@media (max-width: 992px) {
  .p-wc-layout__sidebar {
    position: static;
    max-height: none;
    overflow-y: visible;
  }
}
.p-wc-layout__main-content h1, .p-wc-layout__main-content h2, .p-wc-layout__main-content h3, .p-wc-layout__main-content h4, .p-wc-layout__main-content h5, .p-wc-layout__main-content h6 {
  color: #495057;
  line-height: 1.25;
  margin-bottom: 1rem;
}
.p-wc-layout__main-content h1:not(:first-child), .p-wc-layout__main-content h2:not(:first-child), .p-wc-layout__main-content h3:not(:first-child), .p-wc-layout__main-content h4:not(:first-child), .p-wc-layout__main-content h5:not(:first-child), .p-wc-layout__main-content h6:not(:first-child) {
  margin-top: 1.5rem;
}
.p-wc-layout__main-content h1 {
  font-size: 1.875rem;
  font-weight: bold;
  border-bottom: 2px solid #111;
  padding-bottom: 0.5rem;
}
.p-wc-layout__main-content h2 {
  font-size: 1.5rem;
  font-weight: bold;
  position: relative;
  padding-left: 1rem;
}
.p-wc-layout__main-content h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 1.2em;
  background-color: #111;
  border-radius: 2px;
}
.p-wc-layout__main-content h3 {
  font-size: 1.25rem;
  font-weight: 600;
}
.p-wc-layout__main-content p {
  line-height: 1.5;
  margin-bottom: 1rem;
  color: #495057;
}
.p-wc-layout__main-content a {
  color: #111;
  text-decoration: none;
  transition: color all 0.15s ease;
}
.p-wc-layout__main-content a:hover {
  color: black;
  text-decoration: underline;
}
.p-wc-layout__main-content ul, .p-wc-layout__main-content ol {
  margin-bottom: 1rem;
  padding-left: 1.5rem;
}
.p-wc-layout__main-content ul li, .p-wc-layout__main-content ol li {
  line-height: 1.5;
  margin-bottom: 0.25rem;
}
.p-wc-layout__main-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.p-wc-layout__main-content blockquote {
  background-color: #f8f9fa;
  border-left: 4px solid #111;
  padding: 1rem;
  margin: 1.5rem 0;
  border-radius: 0 8px 8px 0;
  font-style: italic;
}
.p-wc-layout__main-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}
.p-wc-layout__main-content table th, .p-wc-layout__main-content table td {
  padding: 0.5rem;
  border: 1px solid #e1e5e9;
  text-align: left;
}
.p-wc-layout__main-content table th {
  background-color: #f8f9fa;
  font-weight: 600;
}

.p-wc-sidebar__section {
  margin-bottom: 1.5rem;
}
.p-wc-sidebar__section:last-child {
  margin-bottom: 0;
}
.p-wc-sidebar__section-title {
  font-size: 1.125rem;
  font-weight: bold;
  color: #495057;
  margin-bottom: 1rem;
  padding-bottom: 0.25rem;
  border-bottom: 2px solid #111;
  position: relative;
}
.p-wc-sidebar__section-title::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 30%;
  height: 2px;
  background-color: #444444;
}
.p-wc-sidebar__entry-info {
  background: linear-gradient(135deg, #111, black);
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
  color: #ffffff;
  margin-bottom: 1.5rem;
}
.p-wc-sidebar__entry-info-title {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
}
.p-wc-sidebar__entry-info-date {
  font-size: 0.875rem;
  opacity: 0.9;
  margin-bottom: 1rem;
}
.p-wc-sidebar__entry-info-button {
  display: inline-block;
  background-color: #ffffff;
  color: #111;
  font-weight: bold;
  padding: 0.5rem 1.5rem;
  border-radius: 8px;
  text-decoration: none;
  transition: all all 0.15s ease;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.p-wc-sidebar__entry-info-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  color: black;
}
.p-wc-sidebar__news-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-wc-sidebar__news-item {
  border-bottom: 1px solid #e1e5e9;
  padding: 0.5rem 0;
}
.p-wc-sidebar__news-item:last-child {
  border-bottom: none;
}
.p-wc-sidebar__news-item-date {
  font-size: 0.875rem;
  color: #78838e;
  margin-bottom: 0.25rem;
}
.p-wc-sidebar__news-item-title {
  font-size: 0.875rem;
  line-height: 1.25;
}
.p-wc-sidebar__news-item-title a {
  color: #495057;
  text-decoration: none;
  transition: color all 0.15s ease;
}
.p-wc-sidebar__news-item-title a:hover {
  color: #111;
}
.p-wc-sidebar__sponsor-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
.p-wc-sidebar__sponsor-item {
  background-color: #ffffff;
  border: 1px solid #e1e5e9;
  border-radius: 8px;
  padding: 0.5rem;
  text-align: center;
  transition: all all 0.15s ease;
}
.p-wc-sidebar__sponsor-item:hover {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  transform: translateY(-2px);
}
.p-wc-sidebar__sponsor-item img {
  max-width: 100%;
  height: 40px;
  -o-object-fit: contain;
     object-fit: contain;
  filter: grayscale(100%);
  transition: filter all 0.15s ease;
}
.p-wc-sidebar__sponsor-item:hover img {
  filter: grayscale(0%);
}
.p-wc-sidebar__contact-info {
  background-color: #f8f9fa;
  border-radius: 8px;
  padding: 1rem;
  text-align: center;
}
.p-wc-sidebar__contact-info-title {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: #495057;
}
.p-wc-sidebar__contact-info-detail {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #606a73;
  margin-bottom: 0.25rem;
}
.p-wc-sidebar__contact-info-detail:last-child {
  margin-bottom: 0;
}
@media (max-width: 992px) {
  .p-wc-sidebar__section {
    margin-bottom: 1rem;
  }
  .p-wc-sidebar__sponsor-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .p-wc-sidebar__entry-info {
    padding: 1rem;
  }
  .p-wc-sidebar__entry-info-title {
    font-size: 1.125rem;
  }
  .p-wc-sidebar__sponsor-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0.25rem;
  }
  .p-wc-sidebar__sponsor-item {
    padding: 0.25rem;
  }
  .p-wc-sidebar__sponsor-item img {
    height: 30px;
  }
}

.um-account-wrapper.wc-um-account {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem;
}
.um-account-wrapper.wc-um-account .um-account-container {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.um-account-wrapper.wc-um-account .um-account-header {
  background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
  color: white;
  padding: 2rem;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-avatar img {
  border-radius: 50%;
  border: 4px solid rgba(255, 255, 255, 0.2);
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-details {
  flex: 1;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-details .um-account-name {
  margin: 0 0 0.5rem 0;
  font-size: 1.8rem;
  font-weight: 600;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-details .um-account-email {
  margin: 0 0 1rem 0;
  opacity: 0.8;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-details .um-account-stats {
  display: flex;
  gap: 1.5rem;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-details .um-account-stats .um-account-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-details .um-account-stats .um-account-stat strong {
  font-size: 1.2rem;
  font-weight: 700;
}
.um-account-wrapper.wc-um-account .um-account-header .um-account-user-info .um-account-details .um-account-stats .um-account-stat span {
  font-size: 0.9rem;
  opacity: 0.9;
}
.um-account-wrapper.wc-um-account .um-account-nav {
  background: #f8f9fa;
  border-bottom: 1px solid #e9ecef;
}
.um-account-wrapper.wc-um-account .um-account-nav .um-account-nav-tabs {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}
.um-account-wrapper.wc-um-account .um-account-nav .um-account-nav-tabs .um-account-nav-tab .um-account-nav-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  text-decoration: none;
  color: #6c757d;
  border-bottom: 3px solid transparent;
  transition: all 0.3s ease;
}
.um-account-wrapper.wc-um-account .um-account-nav .um-account-nav-tabs .um-account-nav-tab .um-account-nav-link i {
  font-size: 1.1rem;
}
.um-account-wrapper.wc-um-account .um-account-nav .um-account-nav-tabs .um-account-nav-tab .um-account-nav-link:hover {
  color: #3498db;
  background: rgba(52, 152, 219, 0.1);
}
.um-account-wrapper.wc-um-account .um-account-nav .um-account-nav-tabs .um-account-nav-tab.active .um-account-nav-link {
  color: #3498db;
  border-bottom-color: #3498db;
  background: rgba(52, 152, 219, 0.1);
}
.um-account-wrapper.wc-um-account .um-account-nav .um-account-nav-tabs .um-account-nav-tab .um-account-nav-badge {
  background: #dc3545;
  color: white;
  border-radius: 12px;
  padding: 0.2rem 0.6rem;
  font-size: 0.75rem;
  font-weight: 600;
}
.um-account-wrapper.wc-um-account .um-account-content {
  padding: 2rem;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-tab-content {
  display: none !important;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-tab-content.active {
  display: block !important;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-tab-content:target {
  display: block !important;
}
.um-account-wrapper.wc-um-account .um-account-content .no-js .um-account-tab-content {
  display: block !important;
}
.um-account-wrapper.wc-um-account .um-account-content .no-js .um-account-tab-content:not(:target) {
  display: none !important;
}
.um-account-wrapper.wc-um-account .um-account-content .no-js .um-account-tab-content#general {
  display: block !important;
}
.um-account-wrapper.wc-um-account .um-account-content .no-js .um-account-nav-link {
  cursor: pointer;
}
.um-account-wrapper.wc-um-account .um-account-content .no-js .um-account-nav-link[href]:hover {
  text-decoration: underline;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-section {
  margin-bottom: 2rem;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-section .um-account-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-section .um-account-section-header .um-account-section-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  color: #2c3e50;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-section .um-account-section-header .um-account-section-button {
  background: #3498db;
  color: white;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 500;
  transition: background 0.3s ease;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-section .um-account-section-header .um-account-section-button:hover {
  background: #2980b9;
}
.um-account-wrapper.wc-um-account .um-account-content .um-account-section .um-account-section-header .um-account-section-button i {
  margin-right: 0.5rem;
}
.um-account-wrapper.wc-um-account .um-account-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.um-account-wrapper.wc-um-account .um-account-stats-grid .um-account-stat-card {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.um-account-wrapper.wc-um-account .um-account-stats-grid .um-account-stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.um-account-wrapper.wc-um-account .um-account-stats-grid .um-account-stat-card .um-account-stat-icon {
  font-size: 2rem;
  margin-bottom: 1rem;
}
.um-account-wrapper.wc-um-account .um-account-stats-grid .um-account-stat-card .um-account-stat-content .um-account-stat-number {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  color: #3498db;
  margin-bottom: 0.5rem;
}
.um-account-wrapper.wc-um-account .um-account-stats-grid .um-account-stat-card .um-account-stat-content .um-account-stat-label {
  font-size: 0.9rem;
  color: #6c757d;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.um-account-wrapper.wc-um-account .um-account-entries-table {
  overflow-x: auto;
}
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table .um-account-table-header,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table thead tr {
  background: #f8f9fa;
}
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table .um-account-table-header .um-account-table-cell,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table .um-account-table-header th,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table thead tr .um-account-table-cell,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table thead tr th {
  padding: 1rem;
  text-align: left;
  font-weight: 600;
  color: #495057;
  border-bottom: 1px solid #e9ecef;
}
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table .um-account-table-row,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table tbody tr {
  transition: background 0.3s ease;
}
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table .um-account-table-row:hover,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table tbody tr:hover {
  background: #f8f9fa;
}
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table .um-account-table-row .um-account-table-cell,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table .um-account-table-row td,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table tbody tr .um-account-table-cell,
.um-account-wrapper.wc-um-account .um-account-entries-table .um-account-table tbody tr td {
  padding: 1rem;
  border-bottom: 1px solid #e9ecef;
  vertical-align: middle;
}
.um-account-wrapper.wc-um-account .um-account-status-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.um-account-wrapper.wc-um-account .um-account-status-badge.status-draft {
  background: #6c757d;
  color: white;
}
.um-account-wrapper.wc-um-account .um-account-status-badge.status-submitted {
  background: #007bff;
  color: white;
}
.um-account-wrapper.wc-um-account .um-account-status-badge.status-reviewing {
  background: #ffc107;
  color: #212529;
}
.um-account-wrapper.wc-um-account .um-account-status-badge.status-selected {
  background: #28a745;
  color: white;
}
.um-account-wrapper.wc-um-account .um-account-status-badge.status-finalist {
  background: #dc3545;
  color: white;
}
.um-account-wrapper.wc-um-account .um-account-status-badge.status-rejected {
  background: #6c757d;
  color: white;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions {
  display: flex;
  gap: 0.5rem;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions .um-account-action-link {
  padding: 0.5rem 1rem;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  transition: all 0.3s ease;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions .um-account-action-link.um-account-action-edit {
  background: #17a2b8;
  color: white;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions .um-account-action-link.um-account-action-edit:hover {
  background: #138496;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions .um-account-action-link.um-account-action-view {
  background: #6c757d;
  color: white;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions .um-account-action-link.um-account-action-view:hover {
  background: #5a6268;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions .um-account-action-link.um-account-action-delete {
  background: #dc3545;
  color: white;
  border: none;
  cursor: pointer;
}
.um-account-wrapper.wc-um-account .um-account-entry-actions .um-account-action-link.um-account-action-delete:hover {
  background: #c82333;
}
.um-account-wrapper.wc-um-account .um-account-empty-state {
  text-align: center;
  padding: 3rem;
}
.um-account-wrapper.wc-um-account .um-account-empty-state .um-account-empty-icon {
  font-size: 4rem;
  margin-bottom: 1rem;
  opacity: 0.6;
}
.um-account-wrapper.wc-um-account .um-account-empty-state .um-account-empty-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: #495057;
  margin-bottom: 1rem;
}
.um-account-wrapper.wc-um-account .um-account-empty-state .um-account-empty-description {
  color: #6c757d;
  margin-bottom: 2rem;
}
.um-account-wrapper.wc-um-account .um-account-empty-state .um-account-empty-button {
  background: #3498db;
  color: white;
  border: none;
  padding: 1rem 2rem;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 500;
  transition: background 0.3s ease;
}
.um-account-wrapper.wc-um-account .um-account-empty-state .um-account-empty-button:hover {
  background: #2980b9;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-account-notifications-form {
  background: #f8f9fa;
  padding: 2rem;
  border-radius: 8px;
  margin-bottom: 2rem;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-account-notifications-form .um-field {
  margin-bottom: 1rem;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-account-notifications-form .um-field label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-account-notifications-form .um-field label input[type=checkbox] {
  transform: scale(1.2);
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-account-notifications-form .um-button {
  background: #3498db;
  color: white;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 4px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.3s ease;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-account-notifications-form .um-button:hover {
  background: #2980b9;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-notifications-list .um-notification-item {
  background: white;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1rem;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-notifications-list .um-notification-item .um-notification-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-notifications-list .um-notification-item .um-notification-meta .um-notification-date {
  font-size: 0.9rem;
  color: #6c757d;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-notifications-list .um-notification-item .um-notification-meta .um-notification-type {
  background: #3498db;
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 500;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-notifications-list .um-notification-item .um-notification-content h5 {
  margin: 0 0 0.5rem 0;
  font-size: 1.1rem;
  color: #2c3e50;
}
.um-account-wrapper.wc-um-account .um-account-notifications-content .um-notifications-list .um-notification-item .um-notification-content p {
  margin: 0;
  color: #6c757d;
  line-height: 1.5;
}

.um-account-entries-wrapper {
  padding: 0;
}

.um-account-form-wrapper {
  max-width: 800px;
  margin: 0 auto;
}
.um-account-form-wrapper .um-form {
  background: #fff;
  padding: 16px;
  border-radius: 8px;
}
.um-account-form-wrapper .um-field {
  margin-bottom: 25px;
}
.um-account-form-wrapper .um-field .um-field-label {
  margin-bottom: 8px;
}
.um-account-form-wrapper .um-field .um-field-label label {
  font-weight: 600;
  color: #333;
  font-size: 14px;
  display: block;
}
.um-account-form-wrapper .um-field .um-field-area input[type=text],
.um-account-form-wrapper .um-field .um-field-area input[type=email],
.um-account-form-wrapper .um-field .um-field-area input[type=date],
.um-account-form-wrapper .um-field .um-field-area textarea {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e1e5e9;
  border-radius: 6px;
  font-size: 14px;
  transition: border-color 0.3s ease;
}
.um-account-form-wrapper .um-field .um-field-area input[type=text]:focus,
.um-account-form-wrapper .um-field .um-field-area input[type=email]:focus,
.um-account-form-wrapper .um-field .um-field-area input[type=date]:focus,
.um-account-form-wrapper .um-field .um-field-area textarea:focus {
  outline: none;
  border-color: #007cba;
  box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.1);
}
.um-account-form-wrapper .um-field .um-field-area input[type=text][readonly],
.um-account-form-wrapper .um-field .um-field-area input[type=email][readonly],
.um-account-form-wrapper .um-field .um-field-area input[type=date][readonly],
.um-account-form-wrapper .um-field .um-field-area textarea[readonly] {
  background-color: #f8f9fa;
  color: #6c757d;
}
.um-account-form-wrapper .um-field .um-field-area textarea {
  resize: vertical;
  min-height: 100px;
}
.um-account-form-wrapper .um-field-last_name_kana .um-field-area input,
.um-account-form-wrapper .um-field-first_name_kana .um-field-area input {
  font-family: "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
}
.um-account-form-wrapper .um-field-user_birthdate .um-field-area input {
  max-width: 200px;
}
.um-account-form-wrapper .um-field-user_zipcode .um-field-area input {
  max-width: 150px;
}
.um-account-form-wrapper .um-col-alt {
  text-align: center;
  margin-top: 30px;
}
.um-account-form-wrapper .um-col-alt .um-button {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  padding: 15px 40px;
  border: none;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  min-width: 200px;
}
.um-account-form-wrapper .um-col-alt .um-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
}
.um-account-form-wrapper .um-col-alt .um-button:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.3);
}

.um-account-update-success {
  animation: slideDown 0.5s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.wc-login-logged-in {
  max-width: 480px;
  margin: 3rem auto;
}
.wc-login-logged-in .um-form {
  background: #ffffff;
  border-radius: 16px;
  padding: 2.5rem;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.wc-logged-in-container {
  text-align: center;
}

.wc-logged-in-header {
  margin-bottom: 2.5rem;
}
.wc-logged-in-header .wc-user-welcome .wc-welcome-title {
  color: #1a1a1a;
  font-size: 1.125rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  position: relative;
  display: inline-block;
}
.wc-logged-in-header .wc-user-welcome .wc-welcome-title:after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, #3b82f6, #8b5cf6);
}
.wc-logged-in-header .wc-user-welcome .wc-welcome-user {
  color: #4b5563;
  font-size: 1.125rem;
  line-height: 1.5;
  margin: 1.25rem 0 0.5rem;
}
.wc-logged-in-header .wc-user-welcome .wc-welcome-user strong {
  color: #1f2937;
  font-weight: 600;
  font-size: 1.25rem;
}
.wc-logged-in-header .wc-user-welcome .wc-welcome-desc {
  color: #6b7280;
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 0;
}

.wc-logged-in-actions .wc-action-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  align-items: stretch;
}
@media (max-width: 480px) {
  .wc-logged-in-actions .wc-action-buttons {
    flex-direction: column;
    gap: 0.875rem;
  }
}

.wc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: 0.875rem 1.75rem;
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: none;
  border-radius: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  min-width: 150px;
  position: relative;
  overflow: hidden;
}
.wc-btn__icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  transition: transform 0.25s ease;
}
.wc-btn__text {
  font-weight: 500;
  letter-spacing: 0.01em;
}
.wc-btn:hover {
  text-decoration: none;
  transform: translateY(-2px);
}
.wc-btn:hover .wc-btn__icon {
  transform: scale(1.1);
}
.wc-btn:active {
  transform: translateY(0);
}
.wc-btn:focus-visible {
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}

.wc-btn--primary {
  background: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
  color: #ffffff;
  border: none;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.25);
}
.wc-btn--primary::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.wc-btn--primary:hover {
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.35);
  color: #ffffff;
}
.wc-btn--primary:hover::before {
  opacity: 1;
}
.wc-btn--primary .wc-btn__icon,
.wc-btn--primary .wc-btn__text {
  position: relative;
  z-index: 1;
}

.wc-btn--secondary {
  background: #ffffff;
  color: #4b5563;
  border: 1.5px solid #e5e7eb;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.wc-btn--secondary:hover {
  background: #f9fafb;
  color: #1f2937;
  border-color: #d1d5db;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.wc-btn--secondary:active {
  background: #f3f4f6;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.wc-btn--secondary .wc-btn__icon {
  color: #6b7280;
}
.wc-btn--secondary:hover .wc-btn__icon {
  color: #374151;
}

@media (max-width: 768px) {
  .wc-login-logged-in {
    margin: 1rem;
    max-width: none;
  }
  .wc-login-logged-in .um-form {
    padding: 1.5rem;
  }
  .wc-logged-in-welcome {
    margin-bottom: 1.5rem;
  }
  .wc-logged-in-welcome .wc-welcome-message h3 {
    font-size: 1.25rem;
  }
  .wc-logged-in-welcome .wc-welcome-message p {
    font-size: 0.9rem;
  }
  .wc-btn {
    padding: 0.75rem 1.25rem;
    font-size: 0.9rem;
    min-width: 120px;
  }
}
@media (max-width: 768px) {
  .um-account-wrapper.wc-um-account,
  .um-profile-wrapper.wc-um-profile {
    padding: 1rem;
  }
  .um-account-wrapper.wc-um-account .um-account-header,
  .um-account-wrapper.wc-um-account .um-profile-header,
  .um-profile-wrapper.wc-um-profile .um-account-header,
  .um-profile-wrapper.wc-um-profile .um-profile-header {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
  .um-account-wrapper.wc-um-account .um-account-header .um-account-user-info,
  .um-account-wrapper.wc-um-account .um-account-header .um-profile-info,
  .um-account-wrapper.wc-um-account .um-profile-header .um-account-user-info,
  .um-account-wrapper.wc-um-account .um-profile-header .um-profile-info,
  .um-profile-wrapper.wc-um-profile .um-account-header .um-account-user-info,
  .um-profile-wrapper.wc-um-profile .um-account-header .um-profile-info,
  .um-profile-wrapper.wc-um-profile .um-profile-header .um-account-user-info,
  .um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info {
    flex-direction: column;
    text-align: center;
  }
  .um-account-wrapper.wc-um-account .um-account-header .um-account-stats,
  .um-account-wrapper.wc-um-account .um-account-header .um-profile-achievements,
  .um-account-wrapper.wc-um-account .um-profile-header .um-account-stats,
  .um-account-wrapper.wc-um-account .um-profile-header .um-profile-achievements,
  .um-profile-wrapper.wc-um-profile .um-account-header .um-account-stats,
  .um-profile-wrapper.wc-um-profile .um-account-header .um-profile-achievements,
  .um-profile-wrapper.wc-um-profile .um-profile-header .um-account-stats,
  .um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-achievements {
    justify-content: center;
  }
  .um-account-wrapper.wc-um-account .um-account-nav-tabs,
  .um-account-wrapper.wc-um-account .um-profile-tab-nav,
  .um-profile-wrapper.wc-um-profile .um-account-nav-tabs,
  .um-profile-wrapper.wc-um-profile .um-profile-tab-nav {
    flex-wrap: wrap;
  }
  .um-account-wrapper.wc-um-account .um-account-nav-tabs .um-account-nav-tab,
  .um-account-wrapper.wc-um-account .um-account-nav-tabs .um-profile-tab-item,
  .um-account-wrapper.wc-um-account .um-profile-tab-nav .um-account-nav-tab,
  .um-account-wrapper.wc-um-account .um-profile-tab-nav .um-profile-tab-item,
  .um-profile-wrapper.wc-um-profile .um-account-nav-tabs .um-account-nav-tab,
  .um-profile-wrapper.wc-um-profile .um-account-nav-tabs .um-profile-tab-item,
  .um-profile-wrapper.wc-um-profile .um-profile-tab-nav .um-account-nav-tab,
  .um-profile-wrapper.wc-um-profile .um-profile-tab-nav .um-profile-tab-item {
    flex: 1;
    min-width: 0;
  }
  .um-account-wrapper.wc-um-account .um-account-nav-tabs .um-account-nav-tab .um-account-nav-link,
  .um-account-wrapper.wc-um-account .um-account-nav-tabs .um-account-nav-tab .um-profile-tab-link,
  .um-account-wrapper.wc-um-account .um-account-nav-tabs .um-profile-tab-item .um-account-nav-link,
  .um-account-wrapper.wc-um-account .um-account-nav-tabs .um-profile-tab-item .um-profile-tab-link,
  .um-account-wrapper.wc-um-account .um-profile-tab-nav .um-account-nav-tab .um-account-nav-link,
  .um-account-wrapper.wc-um-account .um-profile-tab-nav .um-account-nav-tab .um-profile-tab-link,
  .um-account-wrapper.wc-um-account .um-profile-tab-nav .um-profile-tab-item .um-account-nav-link,
  .um-account-wrapper.wc-um-account .um-profile-tab-nav .um-profile-tab-item .um-profile-tab-link,
  .um-profile-wrapper.wc-um-profile .um-account-nav-tabs .um-account-nav-tab .um-account-nav-link,
  .um-profile-wrapper.wc-um-profile .um-account-nav-tabs .um-account-nav-tab .um-profile-tab-link,
  .um-profile-wrapper.wc-um-profile .um-account-nav-tabs .um-profile-tab-item .um-account-nav-link,
  .um-profile-wrapper.wc-um-profile .um-account-nav-tabs .um-profile-tab-item .um-profile-tab-link,
  .um-profile-wrapper.wc-um-profile .um-profile-tab-nav .um-account-nav-tab .um-account-nav-link,
  .um-profile-wrapper.wc-um-profile .um-profile-tab-nav .um-account-nav-tab .um-profile-tab-link,
  .um-profile-wrapper.wc-um-profile .um-profile-tab-nav .um-profile-tab-item .um-account-nav-link,
  .um-profile-wrapper.wc-um-profile .um-profile-tab-nav .um-profile-tab-item .um-profile-tab-link {
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
  }
  .um-account-wrapper.wc-um-account .um-account-content,
  .um-account-wrapper.wc-um-account .um-profile-content,
  .um-profile-wrapper.wc-um-profile .um-account-content,
  .um-profile-wrapper.wc-um-profile .um-profile-content {
    padding: 1rem;
  }
  .um-account-wrapper.wc-um-account .um-account-stats-grid,
  .um-profile-wrapper.wc-um-profile .um-account-stats-grid {
    grid-template-columns: 1fr;
  }
  .um-account-wrapper.wc-um-account .um-profile-entries-grid,
  .um-profile-wrapper.wc-um-profile .um-profile-entries-grid {
    grid-template-columns: 1fr;
  }
  .um-account-wrapper.wc-um-account .um-profile-skills-grid,
  .um-profile-wrapper.wc-um-profile .um-profile-skills-grid {
    grid-template-columns: 1fr;
  }
  .um-account-wrapper.wc-um-account .um-profile-skills-grid .um-profile-skill-item.um-profile-skill-item-full,
  .um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item.um-profile-skill-item-full {
    grid-column: 1;
  }
  .um-account-wrapper.wc-um-account .um-profile-contest-stats,
  .um-profile-wrapper.wc-um-profile .um-profile-contest-stats {
    flex-direction: column;
    align-items: center;
  }
}
.um-account-form-wrapper .um-field-radio .um-field-radio-options {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.um-account-form-wrapper .um-field-radio .um-field-radio-options .um-field-radio-option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  cursor: pointer;
  padding: 0.5rem 1rem;
  border: 2px solid #e9ecef;
  border-radius: 6px;
  transition: all 0.3s ease;
}
.um-account-form-wrapper .um-field-radio .um-field-radio-options .um-field-radio-option:hover {
  border-color: #3498db;
  background: rgba(52, 152, 219, 0.1);
}
.um-account-form-wrapper .um-field-radio .um-field-radio-options .um-field-radio-option input[type=radio] {
  margin: 0;
  accent-color: #3498db;
}
.um-account-form-wrapper .um-field-radio .um-field-radio-options .um-field-radio-option input[type=radio]:checked + span {
  color: #3498db;
  font-weight: 600;
}
.um-account-form-wrapper .um-field-radio .um-field-radio-options .um-field-radio-option span {
  color: #495057;
  font-size: 14px;
  transition: color 0.3s ease;
}
.um-account-form-wrapper .um-field-radio .um-field-radio-options .um-field-radio-option:has(input:checked) {
  border-color: #3498db;
  background: rgba(52, 152, 219, 0.1);
}
.um-account-form-wrapper .um-field-select select {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #e9ecef;
  border-radius: 6px;
  font-size: 14px;
  color: #495057;
  background: #fff;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 12px center;
  background-repeat: no-repeat;
  background-size: 16px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: all 0.3s ease;
}
.um-account-form-wrapper .um-field-select select:focus {
  outline: none;
  border-color: #3498db;
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);
}
.um-account-form-wrapper .um-field-select select:hover {
  border-color: #adb5bd;
}
.um-account-form-wrapper .um-field-select select option {
  padding: 8px;
  color: #495057;
}
.um-account-form-wrapper .um-field input[type=tel] {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21L6.8 10.9a11.952 11.952 0 005.3 5.3l1.513-3.424a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z'/%3e%3c/svg%3e");
  background-position: right 12px center;
  background-repeat: no-repeat;
  background-size: 18px;
  padding-right: 45px;
}
@media (max-width: 768px) {
  .um-account-form-wrapper .um-field-radio .um-field-radio-options {
    flex-direction: column;
    gap: 0.75rem;
  }
  .um-account-form-wrapper .um-field-radio .um-field-radio-options .um-field-radio-option {
    justify-content: flex-start;
  }
}

.um-profile-wrapper.wc-um-profile {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-container {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.um-profile-wrapper.wc-um-profile .um-profile-header {
  background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
  color: white;
  padding: 2rem;
  display: flex;
  align-items: center;
  gap: 2rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-avatar img {
  border-radius: 50%;
  border: 4px solid rgba(255, 255, 255, 0.2);
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info {
  flex: 1;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-name {
  margin: 0 0 0.5rem 0;
  font-size: 2rem;
  font-weight: 600;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-company,
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-location {
  margin: 0.5rem 0;
  opacity: 0.9;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-company i,
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-location i {
  margin-right: 0.5rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-achievements {
  display: flex;
  gap: 2rem;
  margin-top: 1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-achievements .um-profile-achievement {
  text-align: center;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-achievements .um-profile-achievement .um-profile-achievement-number {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-info .um-profile-achievements .um-profile-achievement .um-profile-achievement-label {
  font-size: 0.9rem;
  opacity: 0.9;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-actions .um-profile-action-button {
  background: rgba(255, 255, 255, 0.2);
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 0.75rem 1.5rem;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.3s ease;
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-actions .um-profile-action-button:hover {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.5);
}
.um-profile-wrapper.wc-um-profile .um-profile-header .um-profile-actions .um-profile-action-button i {
  margin-right: 0.5rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-tabs .um-profile-tab-nav {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  background: #f8f9fa;
  border-bottom: 1px solid #e9ecef;
}
.um-profile-wrapper.wc-um-profile .um-profile-tabs .um-profile-tab-nav .um-profile-tab-item .um-profile-tab-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  text-decoration: none;
  color: #6c757d;
  border-bottom: 3px solid transparent;
  transition: all 0.3s ease;
}
.um-profile-wrapper.wc-um-profile .um-profile-tabs .um-profile-tab-nav .um-profile-tab-item .um-profile-tab-link i {
  font-size: 1.1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-tabs .um-profile-tab-nav .um-profile-tab-item .um-profile-tab-link:hover {
  color: #3498db;
  background: rgba(52, 152, 219, 0.1);
}
.um-profile-wrapper.wc-um-profile .um-profile-tabs .um-profile-tab-nav .um-profile-tab-item.active .um-profile-tab-link {
  color: #3498db;
  border-bottom-color: #3498db;
  background: rgba(52, 152, 219, 0.1);
}
.um-profile-wrapper.wc-um-profile .um-profile-tabs .um-profile-tab-nav .um-profile-tab-item .um-profile-tab-count {
  background: #dc3545;
  color: white;
  border-radius: 12px;
  padding: 0.2rem 0.6rem;
  font-size: 0.75rem;
  font-weight: 600;
}
.um-profile-wrapper.wc-um-profile .um-profile-content {
  padding: 2rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-content .um-profile-tab-panel {
  display: none;
}
.um-profile-wrapper.wc-um-profile .um-profile-content .um-profile-tab-panel.active {
  display: block;
}
.um-profile-wrapper.wc-um-profile .um-profile-content .um-profile-section {
  margin-bottom: 2rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-content .um-profile-section .um-profile-section-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: #2c3e50;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #e9ecef;
}
.um-profile-wrapper.wc-um-profile .um-profile-content .um-profile-section .um-profile-subsection-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: #495057;
  margin-bottom: 1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-basic-info .um-profile-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-basic-info .um-profile-info-grid .um-profile-info-item {
  background: #f8f9fa;
  padding: 1rem;
  border-radius: 8px;
  border-left: 4px solid #3498db;
}
.um-profile-wrapper.wc-um-profile .um-profile-basic-info .um-profile-info-grid .um-profile-info-item .um-profile-info-label {
  display: block;
  font-weight: 600;
  color: #495057;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-basic-info .um-profile-info-grid .um-profile-info-item .um-profile-info-value {
  color: #2c3e50;
  font-size: 1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-basic-info .um-profile-info-grid .um-profile-info-item .um-profile-info-value a {
  color: #3498db;
  text-decoration: none;
}
.um-profile-wrapper.wc-um-profile .um-profile-basic-info .um-profile-info-grid .um-profile-info-item .um-profile-info-value a:hover {
  text-decoration: underline;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card {
  background: white;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-image {
  aspect-ratio: 16/9;
  overflow: hidden;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.3s ease;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card:hover .um-profile-entry-image img {
  transform: scale(1.05);
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content {
  padding: 1.5rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-title {
  margin: 0 0 1rem 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: #2c3e50;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-meta .um-profile-entry-date {
  font-size: 0.9rem;
  color: #6c757d;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-actions {
  display: flex;
  gap: 0.5rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-actions .um-profile-entry-action {
  padding: 0.5rem 1rem;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  transition: all 0.3s ease;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-actions .um-profile-entry-action:not(.um-profile-entry-action-edit) {
  background: #6c757d;
  color: white;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-actions .um-profile-entry-action:not(.um-profile-entry-action-edit):hover {
  background: #5a6268;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-actions .um-profile-entry-action.um-profile-entry-action-edit {
  background: #17a2b8;
  color: white;
}
.um-profile-wrapper.wc-um-profile .um-profile-entries-grid .um-profile-entry-card .um-profile-entry-content .um-profile-entry-actions .um-profile-entry-action.um-profile-entry-action-edit:hover {
  background: #138496;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item {
  background: white;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 1.5rem;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item.um-profile-skill-item-full {
  grid-column: 1/-1;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item .um-profile-skill-icon {
  font-size: 2rem;
  color: #3498db;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item .um-profile-skill-content {
  flex: 1;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item .um-profile-skill-content .um-profile-skill-title {
  margin: 0 0 0.5rem 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: #2c3e50;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item .um-profile-skill-content .um-profile-skill-value {
  color: #495057;
  margin: 0;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item .um-profile-skill-content .um-profile-skill-certifications {
  color: #495057;
  line-height: 1.6;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item .um-profile-skill-content .um-profile-skill-certifications p {
  margin: 0 0 0.5rem 0;
}
.um-profile-wrapper.wc-um-profile .um-profile-skills-grid .um-profile-skill-item .um-profile-skill-content .um-profile-skill-certifications p:last-child {
  margin-bottom: 0;
}
.um-profile-wrapper.wc-um-profile .um-profile-contest-stats {
  display: flex;
  gap: 2rem;
  justify-content: center;
}
.um-profile-wrapper.wc-um-profile .um-profile-contest-stats .um-profile-contest-stat {
  text-align: center;
  background: #f8f9fa;
  padding: 1.5rem;
  border-radius: 8px;
  min-width: 120px;
}
.um-profile-wrapper.wc-um-profile .um-profile-contest-stats .um-profile-contest-stat .um-profile-contest-stat-icon {
  font-size: 2rem;
  margin-bottom: 1rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-contest-stats .um-profile-contest-stat .um-profile-contest-stat-content .um-profile-contest-stat-number {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: #3498db;
  margin-bottom: 0.5rem;
}
.um-profile-wrapper.wc-um-profile .um-profile-contest-stats .um-profile-contest-stat .um-profile-contest-stat-content .um-profile-contest-stat-label {
  font-size: 0.9rem;
  color: #6c757d;
}

.um-account-progress-section {
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  padding: 2rem;
  margin-bottom: 2rem;
  border-left: 4px solid var(--color-primary, #3498db);
}
.um-account-progress-section .um-progress-wrapper {
  display: flex;
  align-items: center;
  gap: 2rem;
}
@media (max-width: 767px) {
  .um-account-progress-section .um-progress-wrapper {
    flex-direction: column;
    text-align: center;
    gap: 1.5rem;
  }
}
.um-account-progress-section .um-progress-circle-container {
  flex-shrink: 0;
}
.um-account-progress-section .um-progress-circle-container .um-progress-circle {
  position: relative;
  display: inline-block;
}
.um-account-progress-section .um-progress-circle-container .um-progress-circle .um-progress-circle-svg {
  transform: rotate(-90deg);
}
.um-account-progress-section .um-progress-circle-container .um-progress-circle .um-progress-circle-svg .um-progress-circle-bg {
  fill: none;
  stroke: #e9ecef;
  stroke-width: 8;
}
.um-account-progress-section .um-progress-circle-container .um-progress-circle .um-progress-circle-svg .um-progress-circle-fill {
  fill: none;
  stroke: var(--color-success, #28a745);
  stroke-width: 8;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.5s ease-in-out;
}
.um-account-progress-section .um-progress-circle-container .um-progress-circle .um-progress-circle-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.um-account-progress-section .um-progress-circle-container .um-progress-circle .um-progress-circle-text .um-progress-percentage {
  display: block;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--color-text-primary, #2c3e50);
  line-height: 1;
}
.um-account-progress-section .um-progress-circle-container .um-progress-circle .um-progress-circle-text .um-progress-label {
  display: block;
  font-size: 0.875rem;
  color: var(--color-text-secondary, #6c757d);
  margin-top: 0.25rem;
}
.um-account-progress-section .um-progress-details {
  flex: 1;
}
.um-account-progress-section .um-progress-details .um-progress-title {
  margin: 0 0 1rem 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-text-primary, #2c3e50);
}
.um-account-progress-section .um-progress-details .um-progress-field-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
@media (min-width: 576px) {
  .um-account-progress-section .um-progress-details .um-progress-field-group {
    flex-direction: row;
    gap: 1.5rem;
  }
}
.um-account-progress-section .um-progress-details .um-progress-field-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
}
.um-account-progress-section .um-progress-details .um-progress-field-status .um-progress-field-icon {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  font-size: 0;
}
.um-account-progress-section .um-progress-details .um-progress-field-status .um-progress-field-icon.required {
  background-color: var(--color-danger, #dc3545);
}
.um-account-progress-section .um-progress-details .um-progress-field-status .um-progress-field-icon.recommended {
  background-color: var(--color-warning, #ffc107);
}
.um-account-progress-section .um-progress-details .um-progress-field-status .um-progress-field-icon.optional {
  background-color: var(--color-info, #17a2b8);
}
.um-account-progress-section .um-progress-details .um-progress-next-action {
  margin: 0;
  padding: 0.75rem 1rem;
  background-color: #f8f9fa;
  border-radius: 6px;
  font-size: 0.875rem;
  color: var(--color-text-secondary, #6c757d);
  border-left: 3px solid var(--color-primary, #3498db);
}

.um-account-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 768px) {
  .um-account-form-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}
@media (min-width: 1200px) {
  .um-account-form-grid {
    gap: 2.5rem;
  }
}
.um-account-form-grid .um-form-section {
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: 1px solid #e9ecef;
  overflow: hidden;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.um-account-form-grid .um-form-section:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}
.um-account-form-grid .um-form-section .um-form-section-header {
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  padding: 1rem 1.5rem;
  border-bottom: 1px solid #dee2e6;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.um-account-form-grid .um-form-section .um-form-section-header .um-form-section-title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-text-primary, #2c3e50);
}
.um-account-form-grid .um-form-section .um-form-section-header .um-form-section-badge {
  padding: 0.25rem 0.75rem;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.um-account-form-grid .um-form-section .um-form-section-header .um-form-section-badge.required {
  background-color: #fee2e2;
  color: #dc2626;
}
.um-account-form-grid .um-form-section .um-form-section-header .um-form-section-badge.mixed {
  background-color: #fef3c7;
  color: #d97706;
}
.um-account-form-grid .um-form-section .um-form-section-header .um-form-section-badge.optional {
  background-color: #dbeafe;
  color: #2563eb;
}
.um-account-form-grid .um-form-section .um-form-section-content {
  padding: 1.5rem;
}
.um-account-form-grid .um-form-section[data-section=basic] {
  border-left: 4px solid var(--color-danger, #dc3545);
}
.um-account-form-grid .um-form-section[data-section=personal] {
  border-left: 4px solid var(--color-warning, #ffc107);
}
.um-account-form-grid .um-form-section[data-section=contact] {
  border-left: 4px solid var(--color-danger, #dc3545);
}
.um-account-form-grid .um-form-section[data-section=professional] {
  border-left: 4px solid var(--color-info, #17a2b8);
}
.um-account-form-grid .um-form-submit-section {
  grid-column: 1/-1;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: 1px solid #e9ecef;
  padding: 1.5rem;
  text-align: center;
}
.um-account-form-grid .um-form-submit-section .um-col-alt {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.um-account-form-grid .um-form-submit-section .um-col-alt .um-button {
  padding: 0.75rem 2rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.9rem;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.um-account-form-grid .um-form-submit-section .um-col-alt .um-button.um-button-primary {
  background: linear-gradient(135deg, var(--color-primary, #3498db) 0%, #2980b9 100%);
  color: #ffffff;
}
.um-account-form-grid .um-form-submit-section .um-col-alt .um-button.um-button-primary:hover {
  background: linear-gradient(135deg, #2980b9 0%, #1f5f8b 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(52, 152, 219, 0.3);
}
.um-account-form-grid .um-form-submit-section .um-col-alt .um-button.um-button-secondary {
  background: #6c757d;
  color: #ffffff;
}
.um-account-form-grid .um-form-submit-section .um-col-alt .um-button.um-button-secondary:hover {
  background: #5a6268;
  transform: translateY(-1px);
}

.um-field-enhanced {
  margin-bottom: 1.5rem;
}
.um-field-enhanced:last-child {
  margin-bottom: 0;
}
.um-field-enhanced .um-field-label {
  margin-bottom: 0.5rem;
}
.um-field-enhanced .um-field-label label {
  font-weight: 600;
  color: var(--color-text-primary, #2c3e50);
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.um-field-enhanced .um-field-label label .um-field-required {
  color: var(--color-danger, #dc3545);
  font-weight: 700;
}
.um-field-enhanced .um-field-label label .um-field-recommended {
  color: var(--color-warning, #ffc107);
  font-size: 0.75rem;
  padding: 0.125rem 0.5rem;
  background-color: #fff3cd;
  border-radius: 10px;
  font-weight: 500;
}
.um-field-enhanced .um-field-label label .um-field-optional {
  color: var(--color-info, #17a2b8);
  font-size: 0.75rem;
  padding: 0.125rem 0.5rem;
  background-color: #d1ecf1;
  border-radius: 10px;
  font-weight: 500;
}
.um-field-enhanced .um-field-area {
  position: relative;
}
.um-field-enhanced .um-field-area input[type=text],
.um-field-enhanced .um-field-area input[type=email],
.um-field-enhanced .um-field-area input[type=tel],
.um-field-enhanced .um-field-area input[type=date],
.um-field-enhanced .um-field-area textarea,
.um-field-enhanced .um-field-area select {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid #e9ecef;
  border-radius: 8px;
  font-size: 0.9rem;
  transition: all 0.2s ease;
  background-color: #ffffff;
}
.um-field-enhanced .um-field-area input[type=text]:focus,
.um-field-enhanced .um-field-area input[type=email]:focus,
.um-field-enhanced .um-field-area input[type=tel]:focus,
.um-field-enhanced .um-field-area input[type=date]:focus,
.um-field-enhanced .um-field-area textarea:focus,
.um-field-enhanced .um-field-area select:focus {
  outline: none;
  border-color: var(--color-primary, #3498db);
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);
}
.um-field-enhanced .um-field-area input[type=text]:invalid:not(:focus),
.um-field-enhanced .um-field-area input[type=email]:invalid:not(:focus),
.um-field-enhanced .um-field-area input[type=tel]:invalid:not(:focus),
.um-field-enhanced .um-field-area input[type=date]:invalid:not(:focus),
.um-field-enhanced .um-field-area textarea:invalid:not(:focus),
.um-field-enhanced .um-field-area select:invalid:not(:focus) {
  border-color: var(--color-danger, #dc3545);
}
.um-field-enhanced .um-field-area input[type=text][readonly],
.um-field-enhanced .um-field-area input[type=email][readonly],
.um-field-enhanced .um-field-area input[type=tel][readonly],
.um-field-enhanced .um-field-area input[type=date][readonly],
.um-field-enhanced .um-field-area textarea[readonly],
.um-field-enhanced .um-field-area select[readonly] {
  background-color: #f8f9fa;
  color: #6c757d;
  cursor: not-allowed;
}
.um-field-enhanced .um-field-area .um-address-lookup-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--color-primary, #3498db);
  color: #ffffff;
  border: none;
  padding: 0.375rem 0.75rem;
  border-radius: 4px;
  font-size: 0.75rem;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.um-field-enhanced .um-field-area .um-address-lookup-btn:hover {
  background: #2980b9;
}
.um-field-enhanced .um-field-area .um-field-radio-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
@media (max-width: 576px) {
  .um-field-enhanced .um-field-area .um-field-radio-options {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}
.um-field-enhanced .um-field-area .um-field-radio-options .um-field-radio-option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border: 2px solid #e9ecef;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  background-color: #ffffff;
}
.um-field-enhanced .um-field-area .um-field-radio-options .um-field-radio-option:hover {
  border-color: var(--color-primary, #3498db);
  background-color: #f8f9fa;
}
.um-field-enhanced .um-field-area .um-field-radio-options .um-field-radio-option input[type=radio] {
  margin: 0;
  width: 16px;
  height: 16px;
  accent-color: var(--color-primary, #3498db);
}
.um-field-enhanced .um-field-area .um-field-radio-options .um-field-radio-option input[type=radio]:checked + span {
  font-weight: 600;
  color: var(--color-primary, #3498db);
}
.um-field-enhanced .um-field-area .um-field-radio-options .um-field-radio-option:has(input[type=radio]:checked) {
  border-color: var(--color-primary, #3498db);
  background-color: #f0f8ff;
}
.um-field-enhanced .um-field-area .um-field-radio-options .um-field-radio-option span {
  font-size: 0.9rem;
  color: var(--color-text-primary, #2c3e50);
}
.um-field-enhanced .um-validation-message {
  margin-top: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 500;
  min-height: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  opacity: 0;
  transform: translateY(-10px);
  transition: all 0.2s ease;
}
.um-field-enhanced .um-validation-message.show {
  opacity: 1;
  transform: translateY(0);
}
.um-field-enhanced .um-validation-message.success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}
.um-field-enhanced .um-validation-message.success::before {
  content: "✓";
  color: #28a745;
  font-weight: 700;
}
.um-field-enhanced .um-validation-message.error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}
.um-field-enhanced .um-validation-message.error::before {
  content: "⚠";
  color: #dc3545;
  font-weight: 700;
}
.um-field-enhanced .um-validation-message.warning {
  background-color: #fff3cd;
  color: #856404;
  border: 1px solid #ffeaa7;
}
.um-field-enhanced .um-validation-message.warning::before {
  content: "⚠";
  color: #ffc107;
  font-weight: 700;
}

/**
 * Ultimate Member Account - 統合スタイル
 * 
 * アカウント管理画面とマイページの統合スタイル
 * 
 * @package Arkhe_Child
 * @subpackage Ultimate_Member_Account
 */
.um-account-main {
  flex: 1;
  padding: 2rem;
  background: #fff;
}
.um-account-main .um-account-section {
  margin-bottom: 3rem;
}
.um-account-main .um-account-section .um-account-section-header {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #e9ecef;
}
.um-account-main .um-account-section .um-account-section-header h2 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  color: #2c3e50;
}
.um-account-main .um-account-section .um-account-section-header p {
  margin: 0.5rem 0 0;
  color: #6c757d;
}
.um-account-main .um-account-section .um-field-group {
  margin-bottom: 1.5rem;
}
.um-account-main .um-account-section .um-field-group .um-field-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: #495057;
  font-size: 0.95rem;
}
.um-account-main .um-account-section .um-field-group .um-field-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #ced4da;
  border-radius: 4px;
  font-size: 1rem;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.um-account-main .um-account-section .um-field-group .um-field-input:focus {
  outline: none;
  border-color: #3498db;
  box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.25);
}
.um-account-main .um-account-section .um-field-group .um-field-input[readonly] {
  background-color: #e9ecef;
  cursor: not-allowed;
}
.um-account-main .um-account-section .um-field-group .um-field-input.is-invalid {
  border-color: #dc3545;
}
.um-account-main .um-account-section .um-field-group .um-field-textarea {
  min-height: 120px;
  resize: vertical;
}
.um-account-main .um-account-section .um-field-group .um-field-help {
  margin-top: 0.25rem;
  font-size: 0.85rem;
  color: #6c757d;
}
.um-account-main .um-account-section .um-field-group .um-field-error {
  margin-top: 0.25rem;
  font-size: 0.85rem;
  color: #dc3545;
}
.um-account-main .um-account-section .um-account-actions {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
}
.um-account-main .um-account-section .um-account-actions .um-button {
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
}
.um-account-main .um-account-section .um-account-actions .um-button.um-button-primary {
  background: #3498db;
  color: white;
}
.um-account-main .um-account-section .um-account-actions .um-button.um-button-primary:hover {
  background: #2980b9;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(52, 152, 219, 0.3);
}
.um-account-main .um-account-section .um-account-actions .um-button.um-button-secondary {
  background: #6c757d;
  color: white;
}
.um-account-main .um-account-section .um-account-actions .um-button.um-button-secondary:hover {
  background: #5a6268;
}
.um-account-main .um-account-section .um-account-actions .um-button.um-button-danger {
  background: #dc3545;
  color: white;
}
.um-account-main .um-account-section .um-account-actions .um-button.um-button-danger:hover {
  background: #c82333;
}
.um-account-main .um-account-profile .um-account-avatar-upload {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin-bottom: 2rem;
}
.um-account-main .um-account-profile .um-account-avatar-upload .um-account-avatar-preview {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid #e9ecef;
}
.um-account-main .um-account-profile .um-account-avatar-upload .um-account-avatar-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.um-account-main .um-account-profile .um-account-avatar-upload .um-account-avatar-actions {
  flex: 1;
}
.um-account-main .um-account-profile .um-account-avatar-upload .um-account-avatar-actions .um-upload-button {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: #28a745;
  color: white;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.3s ease;
}
.um-account-main .um-account-profile .um-account-avatar-upload .um-account-avatar-actions .um-upload-button:hover {
  background: #218838;
}
.um-account-main .um-account-profile .um-account-avatar-upload .um-account-avatar-actions .um-remove-button {
  display: inline-block;
  margin-left: 1rem;
  padding: 0.5rem 1rem;
  background: #dc3545;
  color: white;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.3s ease;
}
.um-account-main .um-account-profile .um-account-avatar-upload .um-account-avatar-actions .um-remove-button:hover {
  background: #c82333;
}

.um-account-sidebar {
  width: 280px;
  background: #f8f9fa;
  border-right: 1px solid #e9ecef;
}
.um-account-sidebar .um-account-sidebar-nav {
  padding: 1.5rem 0;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item .um-account-sidebar-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.5rem;
  text-decoration: none;
  color: #495057;
  transition: all 0.3s ease;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item .um-account-sidebar-link .um-icon {
  width: 20px;
  height: 20px;
  opacity: 0.6;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item .um-account-sidebar-link:hover {
  background: #e9ecef;
  color: #2c3e50;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item .um-account-sidebar-link:hover .um-icon {
  opacity: 1;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item .um-account-sidebar-link.active {
  background: #3498db;
  color: white;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item .um-account-sidebar-link.active .um-icon {
  opacity: 1;
}
.um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item.um-account-sidebar-separator {
  margin: 1rem 1.5rem;
  padding: 1rem 0 0;
  border-top: 1px solid #dee2e6;
}
.um-account-sidebar .um-account-sidebar-profile {
  padding: 1.5rem;
  border-bottom: 1px solid #e9ecef;
  text-align: center;
}
.um-account-sidebar .um-account-sidebar-profile .um-account-sidebar-avatar {
  width: 80px;
  height: 80px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  overflow: hidden;
}
.um-account-sidebar .um-account-sidebar-profile .um-account-sidebar-avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.um-account-sidebar .um-account-sidebar-profile .um-account-sidebar-name {
  margin: 0 0 0.25rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: #2c3e50;
}
.um-account-sidebar .um-account-sidebar-profile .um-account-sidebar-role {
  margin: 0;
  font-size: 0.9rem;
  color: #6c757d;
}

@media (max-width: 768px) {
  .um-account-main {
    padding: 1.5rem;
  }
  .um-account-main .um-account-section .um-account-actions {
    flex-direction: column;
  }
  .um-account-main .um-account-section .um-account-actions .um-button {
    width: 100%;
  }
  .um-account-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #e9ecef;
  }
  .um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu {
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
    padding: 0 1rem;
  }
  .um-account-sidebar .um-account-sidebar-nav .um-account-sidebar-menu .um-account-sidebar-item {
    flex-shrink: 0;
  }
}
.um-account-entries-wrapper {
  padding: 1.5rem 0;
}

.um-account-entries-header {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e9ecef;
}
.um-account-entries-header h3 {
  margin: 0 0 10px 0;
  font-size: 1.25rem;
  color: #212529;
}

.um-account-entries-stats {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}
@media (max-width: calc(768px - 1px)) {
  .um-account-entries-stats {
    flex-direction: column;
    gap: 0.5rem;
  }
}
.um-account-entries-stats .stat-item {
  color: #495057;
}
.um-account-entries-stats .stat-pre-entry .pre-entry-indicator {
  display: inline-flex;
  align-items: center;
  padding: 2px 0.5rem;
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
  color: #065f46;
  border-radius: 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  border: 1px solid #10b981;
}

.um-account-pre-entry-section {
  margin: 1.5rem 0;
}

.pre-entry-info-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid #e9ecef;
  border-radius: 0.75rem;
  padding: 1.5rem;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  margin-bottom: 1.5rem;
}
@media (max-width: calc(768px - 1px)) {
  .pre-entry-info-card {
    padding: 1rem;
    margin: 1rem 0;
  }
}

.pre-entry-header {
  border-bottom: 1px solid #e9ecef;
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}
.pre-entry-header h4 {
  margin: 0;
  color: #212529;
  font-size: 1.125rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pre-entry-header h4 i {
  color: #f59e0b;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.status-badge--completed {
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
  color: #065f46;
  border: 1px solid #10b981;
}
.status-badge--not-completed {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
  border: 1px solid #f59e0b;
}
.status-badge--expired {
  background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  color: #64748b;
  border: 1px solid #cbd5e1;
}
.status-badge.status-completed {
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
  color: #065f46;
  border: 1px solid #10b981;
}
.status-badge.status-not-completed {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
  border: 1px solid #f59e0b;
}
.status-badge.status-expired {
  background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  color: #64748b;
  border: 1px solid #cbd5e1;
}

.pre-entry-completed {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.pre-entry-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}
@media (max-width: calc(768px - 1px)) {
  .pre-entry-status {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
}
.pre-entry-status .entry-date {
  color: #495057;
  font-size: 0.875rem;
}

.pre-entry-not-completed {
  text-align: center;
  padding: 1.5rem;
}
@media (max-width: calc(768px - 1px)) {
  .pre-entry-not-completed {
    padding: 1rem;
  }
}

.pre-entry-message {
  margin: 1rem 0;
}
.pre-entry-message p {
  margin: 0;
  color: #495057;
  line-height: 1.75;
}

.pre-entry-actions {
  margin-top: 1.5rem;
}

.pre-entry-btn {
  display: inline-block;
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #ffffff !important;
  border: none;
  padding: 0.5rem 1.5rem;
  border-radius: 0.5rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.2s ease;
}
.pre-entry-btn:hover {
  text-decoration: none;
}
.pre-entry-btn:focus {
  outline: 0;
}
.pre-entry-btn:disabled, .pre-entry-btn.disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.pre-entry-btn:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.pre-entry-benefits {
  background: linear-gradient(135deg, #fef7cd 0%, #fef3c7 100%);
  border: 1px solid #f59e0b;
  border-radius: 0.5rem;
  padding: 1rem;
}
.pre-entry-benefits .benefits-header h5 {
  margin: 0 0 0.5rem 0;
  color: #92400e;
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  gap: 6px;
}

.benefit-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(245, 158, 11, 0.2);
}
.benefit-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
@media (max-width: calc(768px - 1px)) {
  .benefit-item {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }
}
.benefit-item .benefit-icon {
  font-size: 1.5rem;
  width: 32px;
  text-align: center;
}
.benefit-item .benefit-details {
  flex: 1;
}
.benefit-item .benefit-details strong {
  display: block;
  color: #92400e;
  margin-bottom: 4px;
}
.benefit-item .benefit-details p {
  margin: 0;
  color: #78350f;
  font-size: 0.75rem;
}
.benefit-item .benefit-status {
  text-align: right;
}
@media (max-width: calc(768px - 1px)) {
  .benefit-item .benefit-status {
    align-self: flex-end;
    text-align: right;
  }
}

.benefit-earned,
.benefit-pending {
  font-size: 0.75rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
}

.benefit-earned {
  color: #065f46;
}

.benefit-pending {
  color: #92400e;
}

.benefits-message {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(245, 158, 11, 0.2);
}
.benefits-message p {
  margin: 0;
  color: #78350f;
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
@media (max-width: calc(768px - 1px)) {
  .benefits-message p {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}

.related-entry-info {
  background: #f8f9fa;
  border: 1px solid #cbd5e1;
  border-radius: 0.25rem;
  padding: 0.5rem;
}
.related-entry-info p {
  margin: 0;
  color: #495057;
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
@media (max-width: calc(768px - 1px)) {
  .related-entry-info p {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}
.related-entry-info a {
  color: #1e40af;
  text-decoration: none;
  font-weight: 500;
}
.related-entry-info a:hover {
  text-decoration: underline;
}

.pre-entry-error {
  background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
  border: 1px solid #ef4444;
  border-radius: 0.25rem;
  padding: 0.5rem;
  text-align: center;
}
.pre-entry-error p {
  margin: 0;
  color: #991b1b;
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.um-account-entries-list {
  margin: 1.5rem 0;
}

@media (max-width: calc(768px - 1px)) {
  .um-account-entries-desktop {
    display: none;
  }
}

.um-account-table {
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  margin: 1.5rem 0;
}
.um-account-table th,
.um-account-table td {
  padding: 1rem 0.5rem;
  text-align: left;
  border-bottom: 1px solid #e9ecef;
  transition: background-color 0.2s ease;
}
@media (max-width: calc(768px - 1px)) {
  .um-account-table th,
  .um-account-table td {
    padding: 0.5rem 8px;
    font-size: 0.875rem;
  }
}
.um-account-table th {
  background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
  font-weight: 600;
  color: #212529;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 2px solid #cbd5e1;
}
.um-account-table tbody tr:hover {
  background-color: #f8f9fa;
}
.um-account-table tbody tr:last-child td {
  border-bottom: none;
}
@media (max-width: calc(768px - 1px)) {
  .um-account-table th:nth-child(1),
  .um-account-table td:nth-child(1) {
    min-width: 120px;
  }
  .um-account-table th:nth-child(2),
  .um-account-table td:nth-child(2) {
    min-width: 140px;
  }
  .um-account-table th:nth-child(3),
  .um-account-table td:nth-child(3) {
    min-width: 100px;
  }
  .um-account-table th:nth-child(4),
  .um-account-table td:nth-child(4) {
    min-width: 120px;
  }
}

.um-account-entries-mobile {
  display: none;
}
@media (max-width: calc(768px - 1px)) {
  .um-account-entries-mobile {
    display: block;
  }
}

.entry-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid #e9ecef;
  border-radius: 0.75rem;
  margin-bottom: 1rem;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  transition: all 0.2s ease;
}
.entry-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-1px);
}
.entry-card:last-child {
  margin-bottom: 0;
}

.entry-card__header {
  padding: 1rem 1rem 0.5rem;
  border-bottom: 1px solid #e9ecef;
}

.entry-card__title {
  margin: 0 0 0.5rem 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: #212529;
  line-height: 1.5;
  word-break: break-word;
}

.entry-card__contest {
  color: #495057;
  font-size: 0.875rem;
  font-weight: 400;
}

.entry-card__content {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.entry-card__status {
  display: flex;
  justify-content: flex-start;
}

.entry-card__actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.entry-card__action {
  display: inline-block;
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-height: 44px;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  color: #495057;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  transition: all 0.2s ease;
  cursor: pointer;
}
.entry-card__action:hover {
  text-decoration: none;
}
.entry-card__action:focus {
  outline: 0;
}
.entry-card__action:disabled, .entry-card__action.disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.entry-card__action i {
  font-size: 1rem;
}
.entry-card__action span {
  font-size: inherit;
}
.entry-card__action:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);
  text-decoration: none;
}
.entry-card__action:focus {
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}
.entry-card__action--edit {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  color: #1e40af;
  border-color: #3b82f6;
}
.entry-card__action--edit:hover {
  background: linear-gradient(135deg, #bfdbfe 0%, #93c5fd 100%);
  color: #1d4ed8;
  border-color: #2563eb;
}
.entry-card__action--view {
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
  color: #065f46;
  border-color: #10b981;
}
.entry-card__action--view:hover {
  background: linear-gradient(135deg, #a7f3d0 0%, #6ee7b7 100%);
  color: #047857;
  border-color: #059669;
}
.entry-card__action--delete {
  background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
  color: #991b1b;
  border-color: #ef4444;
}
.entry-card__action--delete:hover {
  background: linear-gradient(135deg, #fecaca 0%, #fca5a5 100%);
  color: #7f1d1d;
  border-color: #dc2626;
}

@media (hover: none) and (pointer: coarse) {
  .entry-card__action {
    min-height: 48px;
    padding: 1rem 1.5rem;
  }
  .um-account-table th,
  .um-account-table td {
    padding: 1rem;
  }
}
.entry-status {
  display: inline-flex;
  align-items: center;
  padding: 6px 0.5rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  text-align: center;
  min-width: 70px;
  justify-content: center;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.entry-status.status-draft {
  background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  color: #64748b;
  border: 1px solid #cbd5e1;
}
.entry-status.status-pending {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
  border: 1px solid #f59e0b;
}
.entry-status.status-reviewing {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  color: #1e40af;
  border: 1px solid #3b82f6;
}
.entry-status.status-approved {
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
  color: #065f46;
  border: 1px solid #10b981;
}
.entry-status.status-rejected {
  background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
  color: #991b1b;
  border: 1px solid #ef4444;
}

.um-account-entry-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
}
@media (max-width: calc(768px - 1px)) {
  .um-account-entry-actions {
    flex-wrap: wrap;
    gap: 4px;
  }
}
.um-account-entry-actions .um-link-btn {
  display: inline-block;
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  color: #495057;
  text-decoration: none;
  transition: all 0.2s ease;
  font-size: 0.875rem;
}
.um-account-entry-actions .um-link-btn:hover {
  text-decoration: none;
}
.um-account-entry-actions .um-link-btn:focus {
  outline: 0;
}
.um-account-entry-actions .um-link-btn:disabled, .um-account-entry-actions .um-link-btn.disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
@media (max-width: calc(768px - 1px)) {
  .um-account-entry-actions .um-link-btn {
    width: 32px;
    height: 32px;
    font-size: 0.75rem;
  }
}
.um-account-entry-actions .um-link-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.um-account-entry-actions .um-link-btn[title=編集]:hover {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  color: #1e40af;
  border-color: #3b82f6;
}
.um-account-entry-actions .um-link-btn[title=詳細表示]:hover {
  background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
  color: #065f46;
  border-color: #10b981;
}
.um-account-entry-actions .um-link-btn[title=削除]:hover {
  background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
  color: #991b1b;
  border-color: #ef4444;
}

.um-account-empty-state {
  text-align: center;
  padding: 40px 1.5rem;
  background: #f8f9fa;
  border-radius: 0.375rem;
}
.um-account-empty-state i {
  font-size: 3rem;
  color: #ced4da;
  margin-bottom: 1rem;
  display: block;
}
.um-account-empty-state p {
  margin: 10px 0;
  color: #495057;
  line-height: 1.75;
}
.um-account-empty-state .um-button {
  background-color: #1e40af;
  border-color: #1e40af;
  color: #ffffff;
  margin-top: 1rem;
}
.um-account-empty-state .um-button:hover:not(:disabled) {
  background-color: #173083;
  border-color: #173083;
}
.um-account-empty-state .um-button:active:not(:disabled) {
  background-color: #13286e;
  border-color: #13286e;
}
.um-account-empty-state .um-button:focus {
  box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.3);
}
.um-account-empty-state .um-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.um-account-entries-actions {
  margin-bottom: 1.5rem;
}

/**
 * エントリー管理画面用スタイル
 */
/* エントリー一覧画面のステータス表示 */
.entry-status {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 3px;
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.entry-status.status-draft {
  background-color: #f0f0f0;
  color: #666;
}

.entry-status.status-pending {
  background-color: #fff3cd;
  color: #856404;
}

.entry-status.status-reviewing {
  background-color: #d1ecf1;
  color: #0c5460;
}

.entry-status.status-approved {
  background-color: #d4edda;
  color: #155724;
}

.entry-status.status-rejected {
  background-color: #f8d7da;
  color: #721c24;
}

/* カスタムカラムのスタイル */
.column-entry_number {
  width: 100px;
}

.column-applicant {
  width: 180px;
}

.column-category {
  width: 150px;
}

.column-status {
  width: 100px;
}

.column-average_score {
  width: 80px;
  text-align: center;
}

.column-judges {
  width: 100px;
  text-align: center;
}

.column-submission_date {
  width: 130px;
}

.column-featured {
  width: 50px;
  text-align: center;
}

/* レスポンシブ対応 */
@media screen and (max-width: 782px) {
  .column-entry_number,
  .column-applicant,
  .column-category,
  .column-status,
  .column-average_score,
  .column-judges,
  .column-submission_date,
  .column-featured {
    width: auto;
  }
}
/**
 * 審査システム用スタイル
 */
/* 審査画面用の追加スタイル（既存のインラインスタイルを上書きする場合） */
.wc-judging-container {
  max-width: 1200px;
}

.wc-entry-card {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
}

.wc-entry-card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .entry-content {
    grid-template-columns: 1fr;
  }
  .entry-image {
    max-width: 100%;
    margin-bottom: 20px;
  }
  .score-selector {
    flex-wrap: wrap;
  }
  .progress-overview {
    grid-template-columns: 1fr;
  }
}
/* アニメーション */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.save-status {
  animation: fadeIn 0.3s ease;
}

/* スコアボタンのアクセシビリティ向上 */
.score-btn:focus {
  outline: 2px solid #0073aa;
  outline-offset: 2px;
}

/* 印刷用スタイル */
@media print {
  .wc-entry-card {
    page-break-inside: avoid;
  }
  .form-actions,
  .tablenav {
    display: none;
  }
}
/**
 * エントリー一覧・詳細ページ - Project Component
 * 
 * 溶接人杯エントリー表示のスタイル定義
 * FLOCSSパターン: p-entriesプレフィックス使用
 */
.p-entries {
  min-height: 100vh;
  background-color: #f8f9fa;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.p-entries__container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem;
}
@media (max-width: 768px) {
  .p-entries__container {
    padding: 1rem;
  }
}

.p-entries__header {
  margin-bottom: 2rem;
}

.p-entries__hero {
  text-align: center;
  padding: 3rem 0;
  background: linear-gradient(135deg, rgba(17, 17, 17, 0.05) 0%, rgba(231, 76, 60, 0.05) 100%);
  border-radius: 8px;
  margin-bottom: 2rem;
}

.p-entries__title {
  font-size: 2.5rem;
  font-weight: 700;
  color: #2c3e50;
  margin: 0 0 1rem 0;
}
@media (max-width: 768px) {
  .p-entries__title {
    font-size: 2rem;
  }
}

.p-entries__subtitle {
  font-size: 1.125rem;
  color: #adb5bd;
  margin: 0;
}

.p-entries__filters {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  margin-bottom: 2rem;
}

.p-entries__filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.p-entries__filter-group {
  display: flex;
  flex-direction: column;
}

.p-entries__filter-label {
  font-weight: 600;
  color: #2c3e50;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
}

.p-entries__filter-select {
  padding: 0.75rem;
  border: 1px solid #e1e5e9;
  border-radius: 4px;
  font-size: 0.875rem;
  background: #ffffff;
  transition: all 0.3s ease;
}
.p-entries__filter-select:focus {
  outline: none;
  border-color: #111;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.1);
}

.p-entries__filter-actions {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
}
@media (max-width: 768px) {
  .p-entries__filter-actions {
    justify-content: stretch;
  }
}

.p-entries__filter-button {
  background: #111;
  color: white;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}
.p-entries__filter-button:hover {
  background: black;
}
@media (max-width: 768px) {
  .p-entries__filter-button {
    flex: 1;
  }
}

.p-entries__filter-reset {
  color: #adb5bd;
  text-decoration: none;
  padding: 0.75rem 1rem;
  border-radius: 4px;
  transition: all 0.3s ease;
}
.p-entries__filter-reset:hover {
  background: rgba(173, 181, 189, 0.1);
}
@media (max-width: 768px) {
  .p-entries__filter-reset {
    flex: 1;
    text-align: center;
  }
}

.p-entries__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
  color: #adb5bd;
}

.p-entries__total {
  font-weight: 600;
  color: #111;
}

.p-entries__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.p-entries__card {
  background: #ffffff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}
.p-entries__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.p-entries__card-image {
  position: relative;
  height: 200px;
  overflow: hidden;
}
.p-entries__card-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: all 0.3s ease;
}
.p-entries__card-image:hover img {
  transform: scale(1.05);
}

.p-entries__card-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: #f8f9fa;
  color: #adb5bd;
}

.p-entries__card-placeholder-icon {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.p-entries__card-badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}
.p-entries__card-badge--selected {
  background: #27ae60;
  color: white;
}
.p-entries__card-badge--finalist {
  background: #f39c12;
  color: white;
}

.p-entries__card-content {
  padding: 1.5rem;
}

.p-entries__card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1rem;
}

.p-entries__card-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  flex: 1;
}
.p-entries__card-title a {
  color: #2c3e50;
  text-decoration: none;
}
.p-entries__card-title a:hover {
  color: #111;
}

.p-entries__card-number {
  font-size: 0.75rem;
  color: #adb5bd;
  background: rgba(173, 181, 189, 0.1);
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  margin-left: 1rem;
}

.p-entries__card-meta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #adb5bd;
  margin-bottom: 1rem;
}

.p-entries__card-applicant,
.p-entries__card-category,
.p-entries__card-date {
  display: flex;
  align-items: center;
}

.p-entries__card-meta-icon {
  margin-right: 0.5rem;
}

.p-entries__card-description {
  font-size: 0.875rem;
  color: #adb5bd;
  line-height: 1.5;
  margin-bottom: 1rem;
}

.p-entries__card-actions {
  display: flex;
  justify-content: flex-end;
}

.p-entries__card-link {
  background: #111;
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
  transition: all 0.3s ease;
}
.p-entries__card-link:hover {
  background: black;
}

.p-entries__empty {
  text-align: center;
  padding: 4rem 2rem;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.p-entries__empty-icon {
  font-size: 4rem;
  margin-bottom: 1rem;
  opacity: 0.5;
}

.p-entries__empty-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 1rem 0;
}

.p-entries__empty-description {
  color: #adb5bd;
  margin: 0 0 2rem 0;
  line-height: 1.6;
}

.p-entries__empty-actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
}
@media (max-width: 768px) {
  .p-entries__empty-actions {
    flex-direction: column;
  }
}

.p-entries__empty-button {
  padding: 0.75rem 1.5rem;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
}
.p-entries__empty-button--primary {
  background: #111;
  color: white;
}
.p-entries__empty-button--primary:hover {
  background: black;
}
.p-entries__empty-button:not(.p-entries__empty-button--primary) {
  background: transparent;
  color: #adb5bd;
  border: 1px solid #e1e5e9;
}
.p-entries__empty-button:not(.p-entries__empty-button--primary):hover {
  background: #f8f9fa;
}

.p-entries__pagination {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}
.p-entries__pagination .page-numbers {
  display: inline-block;
  padding: 0.5rem 0.75rem;
  margin: 0 0.25rem;
  border-radius: 4px;
  text-decoration: none;
  color: #2c3e50;
  transition: all 0.3s ease;
}
.p-entries__pagination .page-numbers:hover {
  background: rgba(17, 17, 17, 0.1);
  color: #111;
}
.p-entries__pagination .page-numbers.current {
  background: #111;
  color: white;
}
.p-entries__pagination .page-numbers.prev, .p-entries__pagination .page-numbers.next {
  font-weight: 600;
}

.p-entries__sidebar {
  margin-top: 2rem;
}

.p-entries__stats {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  margin-bottom: 1.5rem;
}

.p-entries__stats-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 1rem 0;
}

.p-entries__stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1rem;
}

.p-entries__stat-item {
  text-align: center;
}

.p-entries__stat-number {
  font-size: 1.5rem;
  font-weight: 700;
  color: #111;
  line-height: 1;
}

.p-entries__stat-label {
  font-size: 0.75rem;
  color: #adb5bd;
  margin-top: 0.25rem;
}

.p-entries__recent {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.p-entries__recent-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 1rem 0;
}

.p-entries__recent-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.p-entries__recent-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  border-bottom: 1px solid #e1e5e9;
}
.p-entries__recent-item:last-child {
  border-bottom: none;
}

.p-entries__recent-link {
  flex: 1;
  color: #2c3e50;
  text-decoration: none;
  font-size: 0.875rem;
}
.p-entries__recent-link:hover {
  color: #111;
}

.p-entries__recent-date {
  font-size: 0.75rem;
  color: #adb5bd;
}

.p-entry-detail {
  min-height: 100vh;
  background-color: #f8f9fa;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.p-entry-detail__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem;
}
@media (max-width: 768px) {
  .p-entry-detail__container {
    padding: 1rem;
  }
}

.p-breadcrumb {
  list-style: none;
  display: flex;
  align-items: center;
  margin: 0 0 2rem 0;
  padding: 0;
  font-size: 0.875rem;
}
.p-breadcrumb__item {
  color: #adb5bd;
}
.p-breadcrumb__item:not(:last-child)::after {
  content: ">";
  margin: 0 0.5rem;
  color: #e1e5e9;
}
.p-breadcrumb__item a {
  color: #adb5bd;
  text-decoration: none;
}
.p-breadcrumb__item a:hover {
  color: #111;
}
.p-breadcrumb__item--current {
  color: #2c3e50;
  font-weight: 600;
}

.p-entry-detail__header {
  background: #ffffff;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  margin-bottom: 2rem;
}

.p-entry-detail__meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.p-entry-detail__number {
  font-size: 0.875rem;
  color: #adb5bd;
  background: rgba(173, 181, 189, 0.1);
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-weight: 600;
}

.p-entry-detail__badge {
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.875rem;
  font-weight: 600;
}
.p-entry-detail__badge--selected {
  background: #27ae60;
  color: white;
}
.p-entry-detail__badge--finalist {
  background: #f39c12;
  color: white;
}

.p-entry-detail__category {
  font-size: 0.875rem;
  color: #111;
  background: rgba(17, 17, 17, 0.1);
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-weight: 600;
}

.p-entry-detail__title {
  font-size: 2rem;
  font-weight: 700;
  color: #2c3e50;
  margin: 0 0 1rem 0;
  line-height: 1.2;
}
@media (max-width: 768px) {
  .p-entry-detail__title {
    font-size: 1.5rem;
  }
}

.p-entry-detail__author {
  font-size: 1.125rem;
  color: #2c3e50;
  margin-bottom: 0.5rem;
}

.p-entry-detail__author-company {
  color: #adb5bd;
}

.p-entry-detail__date {
  font-size: 0.875rem;
  color: #adb5bd;
}

.p-entry-detail__hero-image {
  margin-bottom: 2rem;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.p-entry-detail__main-image {
  width: 100%;
  height: auto;
  max-height: 500px;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-entry-detail__content {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 2rem;
}
@media (max-width: 1024px) {
  .p-entry-detail__content {
    grid-template-columns: 1fr;
  }
}

.p-entry-detail__main {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

.p-entry-detail__section {
  padding: 2rem;
  border-bottom: 1px solid #e1e5e9;
}
.p-entry-detail__section:last-child {
  border-bottom: none;
}

.p-entry-detail__section-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 1rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #111;
}

.p-entry-detail__description,
.p-entry-detail__technical {
  line-height: 1.7;
  color: #2c3e50;
}

.p-entry-detail__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
}

.p-entry-detail__gallery-item {
  cursor: pointer;
  border-radius: 4px;
  overflow: hidden;
}

.p-entry-detail__gallery-image {
  width: 100%;
  height: 150px;
  -o-object-fit: cover;
     object-fit: cover;
  transition: all 0.3s ease;
}
.p-entry-detail__gallery-image:hover {
  transform: scale(1.05);
}

.p-entry-detail__process {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
}

.p-entry-detail__process-item {
  cursor: pointer;
  border-radius: 4px;
  overflow: hidden;
}

.p-entry-detail__process-image {
  width: 100%;
  height: 120px;
  -o-object-fit: cover;
     object-fit: cover;
  transition: all 0.3s ease;
}
.p-entry-detail__process-image:hover {
  transform: scale(1.05);
}

.p-entry-detail__video iframe {
  width: 100%;
  height: 300px;
  border-radius: 4px;
}

.p-entry-detail__document-link {
  display: flex;
  align-items: center;
  padding: 1rem;
  background: #f8f9fa;
  border-radius: 4px;
  text-decoration: none;
  color: #2c3e50;
  transition: all 0.3s ease;
}
.p-entry-detail__document-link:hover {
  background: rgba(17, 17, 17, 0.1);
}

.p-entry-detail__document-icon {
  font-size: 1.5rem;
  margin-right: 1rem;
}

.p-entry-detail__document-name {
  flex: 1;
  font-weight: 600;
}

.p-entry-detail__document-size {
  font-size: 0.875rem;
  color: #adb5bd;
}

.p-entry-detail__sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.p-entry-detail__info-card {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.p-entry-detail__info-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 1rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #e1e5e9;
}

.p-entry-detail__info-list {
  margin: 0;
}

.p-entry-detail__info-term {
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 0.25rem 0;
  font-size: 0.875rem;
}

.p-entry-detail__info-description {
  color: #adb5bd;
  margin: 0 0 1rem 0;
  line-height: 1.5;
}
.p-entry-detail__info-description:last-child {
  margin-bottom: 0;
}

.p-entry-detail__share {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.p-entry-detail__share-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 1rem 0;
}

.p-entry-detail__share-buttons {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.p-entry-detail__share-button {
  padding: 0.75rem;
  border-radius: 4px;
  text-decoration: none;
  text-align: center;
  font-weight: 600;
  font-size: 0.875rem;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
}
.p-entry-detail__share-button--twitter {
  background: #1da1f2;
  color: white;
}
.p-entry-detail__share-button--twitter:hover {
  background: #0c85d0;
}
.p-entry-detail__share-button--facebook {
  background: #4267b2;
  color: white;
}
.p-entry-detail__share-button--facebook:hover {
  background: #34518d;
}
.p-entry-detail__share-button--copy {
  background: #f8f9fa;
  color: #2c3e50;
}
.p-entry-detail__share-button--copy:hover {
  background: rgba(17, 17, 17, 0.1);
}

.p-entry-detail__related {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.p-entry-detail__related-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: #2c3e50;
  margin: 0 0 1rem 0;
}

.p-entry-detail__related-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.p-entry-detail__related-item {
  margin-bottom: 1rem;
}
.p-entry-detail__related-item:last-child {
  margin-bottom: 0;
}

.p-entry-detail__related-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: #2c3e50;
  transition: all 0.3s ease;
}
.p-entry-detail__related-link:hover {
  color: #111;
}

.p-entry-detail__related-image {
  width: 60px;
  height: 60px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 4px;
  margin-right: 1rem;
}

.p-entry-detail__related-content {
  flex: 1;
}

.p-entry-detail__related-title {
  font-size: 0.875rem;
  font-weight: 600;
  margin: 0 0 0.25rem 0;
}

.p-entry-detail__related-author {
  font-size: 0.75rem;
  color: #adb5bd;
}

.p-entry-detail__navigation {
  margin-top: 2rem;
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.p-entry-detail__nav-links {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1rem;
  align-items: center;
}
@media (max-width: 768px) {
  .p-entry-detail__nav-links {
    grid-template-columns: 1fr;
    text-align: center;
  }
}

.p-entry-detail__nav-link {
  text-decoration: none;
  color: #2c3e50;
  transition: all 0.3s ease;
}
.p-entry-detail__nav-link:hover {
  color: #111;
}
.p-entry-detail__nav-link--prev {
  text-align: left;
}
.p-entry-detail__nav-link--next {
  text-align: right;
}
.p-entry-detail__nav-link--index {
  background: #111;
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 4px;
  font-weight: 600;
}
.p-entry-detail__nav-link--index:hover {
  background: black;
  color: white;
}

.p-entry-detail__nav-label {
  display: block;
  font-size: 0.75rem;
  color: #adb5bd;
  margin-bottom: 0.25rem;
}

.p-entry-detail__nav-title {
  display: block;
  font-weight: 600;
}

.p-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-lightbox__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
}
.p-lightbox__content {
  position: relative;
  max-width: 90%;
  max-height: 90%;
  z-index: 1;
}
.p-lightbox__image {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 4px;
}
.p-lightbox__close {
  position: absolute;
  top: -40px;
  right: 0;
  background: none;
  border: none;
  color: white;
  font-size: 2rem;
  cursor: pointer;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-lightbox__close:hover {
  opacity: 0.8;
}

/**
 * マイページシステム - Project Component
 * 
 * 溶接人杯マイページシステムのスタイル定義
 * FLOCSSパターン: p-mypageプレフィックス使用
 */
.p-mypage {
  min-height: 100vh;
  background-color: #f8f9fa;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.p-mypage__container {
  display: grid;
  grid-template-columns: 280px 1fr;
  min-height: 100vh;
  max-width: 1400px;
  margin: 0 auto;
}
@media (max-width: 1024px) {
  .p-mypage__container {
    grid-template-columns: 1fr;
  }
}

.p-mypage__sidebar {
  background: #ffffff;
  border-right: 1px solid #e1e5e9;
  padding: 2rem 1.5rem;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}
@media (max-width: 1024px) {
  .p-mypage__sidebar {
    position: static;
    height: auto;
    border-right: none;
    border-bottom: 1px solid #e1e5e9;
    padding: 1rem;
  }
}

.p-mypage__user-info {
  display: flex;
  align-items: center;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #e1e5e9;
}
@media (max-width: 1024px) {
  .p-mypage__user-info {
    flex-direction: column;
    text-align: center;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
  }
}

.p-mypage__avatar {
  margin-right: 1rem;
}
.p-mypage__avatar img {
  border-radius: 50%;
  width: 60px;
  height: 60px;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 1024px) {
  .p-mypage__avatar {
    margin-right: 0;
    margin-bottom: 0.5rem;
  }
}

.p-mypage__user-details {
  flex: 1;
  min-width: 0;
}

.p-mypage__username {
  margin: 0 0 0.25rem 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: #2c3e50;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.p-mypage__user-email {
  margin: 0;
  font-size: 0.875rem;
  color: #adb5bd;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.p-mypage__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-mypage__nav-item {
  margin-bottom: 0.5rem;
}
.p-mypage__nav-item.is-active .p-mypage__nav-link {
  background-color: rgba(17, 17, 17, 0.1);
  color: #111;
  border-left: 3px solid #111;
}
.p-mypage__nav-link {
  display: flex;
  align-items: center;
  padding: 0.75rem 1rem;
  color: #2c3e50;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.3s ease;
  border-left: 3px solid transparent;
}
.p-mypage__nav-link:hover {
  background-color: rgba(17, 17, 17, 0.05);
  color: #111;
}
.p-mypage__nav-icon {
  margin-right: 0.75rem;
  font-size: 1.25rem;
}
.p-mypage__nav-badge {
  margin-left: auto;
  background-color: #e74c3c;
  color: white;
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-radius: 12px;
  min-width: 20px;
  text-align: center;
}

.p-mypage__main {
  padding: 2rem;
  overflow-x: auto;
}
@media (max-width: 768px) {
  .p-mypage__main {
    padding: 1rem;
  }
}

.p-mypage__section {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  padding: 2rem;
}
@media (max-width: 768px) {
  .p-mypage__section {
    padding: 1rem;
    border-radius: 0;
    box-shadow: none;
    border-top: 1px solid #e1e5e9;
  }
}

.p-mypage__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e1e5e9;
}
@media (max-width: 768px) {
  .p-mypage__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
}

.p-mypage__title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: #2c3e50;
}

.p-mypage__subtitle {
  margin: 0.5rem 0 0 0;
  color: #adb5bd;
  font-size: 1rem;
}

.p-mypage__header-button {
  background: #111;
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
}
.p-mypage__header-button:hover {
  background: black;
  transform: translateY(-1px);
}

.p-mypage__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.p-mypage__stat-card {
  display: flex;
  align-items: center;
  background: linear-gradient(135deg, #ffffff 0%, rgba(17, 17, 17, 0.05) 100%);
  padding: 1.5rem;
  border-radius: 8px;
  border: 1px solid #e1e5e9;
  transition: all 0.3s ease;
}
.p-mypage__stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.p-mypage__stat-icon {
  font-size: 2rem;
  margin-right: 1rem;
  opacity: 0.8;
}

.p-mypage__stat-content {
  flex: 1;
}

.p-mypage__stat-number {
  font-size: 2rem;
  font-weight: 700;
  color: #111;
  line-height: 1;
  margin-bottom: 0.25rem;
}

.p-mypage__stat-label {
  font-size: 0.875rem;
  color: #adb5bd;
  font-weight: 500;
}

.p-mypage__entry-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.p-mypage__entry-item {
  padding: 1.5rem;
  border: 1px solid #e1e5e9;
  border-radius: 8px;
  transition: all 0.3s ease;
}
.p-mypage__entry-item:hover {
  border-color: #111;
  box-shadow: 0 2px 8px rgba(17, 17, 17, 0.1);
}

.p-mypage__entry-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 0.75rem;
}
@media (max-width: 768px) {
  .p-mypage__entry-header {
    flex-direction: column;
    gap: 0.5rem;
  }
}

.p-mypage__entry-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
}
.p-mypage__entry-title a {
  color: #2c3e50;
  text-decoration: none;
}
.p-mypage__entry-title a:hover {
  color: #111;
}

.p-mypage__entry-meta {
  display: flex;
  gap: 1rem;
  font-size: 0.875rem;
  color: #adb5bd;
}
@media (max-width: 768px) {
  .p-mypage__entry-meta {
    flex-direction: column;
    gap: 0.25rem;
  }
}

.p-mypage__entry-number {
  font-weight: 600;
  color: #111;
}

.p-mypage__entry-status,
.p-mypage__status-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.p-mypage__entry-status.status-draft,
.p-mypage__status-badge.status-draft {
  background-color: rgba(173, 181, 189, 0.1);
  color: #adb5bd;
}
.p-mypage__entry-status.status-submitted,
.p-mypage__status-badge.status-submitted {
  background-color: rgba(52, 152, 219, 0.1);
  color: #3498db;
}
.p-mypage__entry-status.status-reviewing,
.p-mypage__status-badge.status-reviewing {
  background-color: rgba(243, 156, 18, 0.1);
  color: #f39c12;
}
.p-mypage__entry-status.status-selected,
.p-mypage__status-badge.status-selected {
  background-color: rgba(39, 174, 96, 0.1);
  color: #27ae60;
}
.p-mypage__entry-status.status-finalist,
.p-mypage__status-badge.status-finalist {
  background-color: rgba(231, 76, 60, 0.1);
  color: #e74c3c;
}
.p-mypage__entry-status.status-rejected,
.p-mypage__status-badge.status-rejected {
  background-color: rgba(231, 76, 60, 0.1);
  color: #e74c3c;
}

.p-mypage__entry-table {
  border: 1px solid #e1e5e9;
  border-radius: 8px;
  overflow: hidden;
}

.p-mypage__table-header {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  background-color: #f8f9fa;
  font-weight: 600;
  font-size: 0.875rem;
  color: #2c3e50;
}
@media (max-width: 1024px) {
  .p-mypage__table-header {
    display: none;
  }
}

.p-mypage__table-row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  border-top: 1px solid #e1e5e9;
  transition: all 0.3s ease;
}
.p-mypage__table-row:hover {
  background-color: rgba(17, 17, 17, 0.02);
}
@media (max-width: 1024px) {
  .p-mypage__table-row {
    display: block;
    padding: 1rem;
  }
  .p-mypage__table-row:not(:last-child) {
    border-bottom: 1px solid #e1e5e9;
  }
}

.p-mypage__table-cell {
  padding: 1rem;
  display: flex;
  align-items: center;
  font-size: 0.875rem;
}
@media (max-width: 1024px) {
  .p-mypage__table-cell {
    padding: 0.25rem 0;
    border: none;
  }
  .p-mypage__table-cell:before {
    content: attr(data-label);
    font-weight: 600;
    margin-right: 0.5rem;
    min-width: 100px;
  }
}

.p-mypage__entry-actions {
  display: flex;
  gap: 0.5rem;
}

.p-mypage__action-link {
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.75rem;
  font-weight: 600;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
}
.p-mypage__action-link--edit {
  background-color: rgba(17, 17, 17, 0.1);
  color: #111;
}
.p-mypage__action-link--edit:hover {
  background-color: #111;
  color: white;
}
.p-mypage__action-link--view {
  background-color: rgba(173, 181, 189, 0.1);
  color: #adb5bd;
}
.p-mypage__action-link--view:hover {
  background-color: #adb5bd;
  color: white;
}
.p-mypage__action-link--delete {
  background-color: rgba(231, 76, 60, 0.1);
  color: #e74c3c;
}
.p-mypage__action-link--delete:hover {
  background-color: #e74c3c;
  color: white;
}
.p-mypage__action-link--delete:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.p-mypage__quick-actions {
  margin-top: 2rem;
}

.p-mypage__section-title {
  margin: 0 0 1.5rem 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: #2c3e50;
}

.p-mypage__action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
}

.p-mypage__action-card {
  display: flex;
  align-items: center;
  padding: 1.5rem;
  background: linear-gradient(135deg, #ffffff 0%, rgba(17, 17, 17, 0.02) 100%);
  border: 1px solid #e1e5e9;
  border-radius: 8px;
  text-decoration: none;
  color: #2c3e50;
  transition: all 0.3s ease;
}
.p-mypage__action-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  border-color: #111;
}

.p-mypage__action-icon {
  font-size: 2rem;
  margin-right: 1rem;
  opacity: 0.8;
}

.p-mypage__action-content {
  flex: 1;
}

.p-mypage__action-title {
  margin: 0 0 0.25rem 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: #2c3e50;
}

.p-mypage__action-description {
  margin: 0;
  font-size: 0.875rem;
  color: #adb5bd;
}

.p-mypage__empty-state {
  text-align: center;
  padding: 3rem 1rem;
  color: #adb5bd;
}

.p-mypage__empty-icon {
  font-size: 4rem;
  margin-bottom: 1rem;
  opacity: 0.5;
}

.p-mypage__empty-title {
  margin: 0 0 0.5rem 0;
  font-size: 1.5rem;
  color: #2c3e50;
}

.p-mypage__empty-description {
  margin: 0 0 2rem 0;
  font-size: 1rem;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}

.p-mypage__cta-button {
  display: inline-block;
  background: #111;
  color: white;
  padding: 1rem 2rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
}
.p-mypage__cta-button:hover {
  background: black;
  transform: translateY(-1px);
}

.p-mypage__view-all {
  text-align: center;
  margin-top: 1.5rem;
}

.p-mypage__view-all-link {
  color: #111;
  text-decoration: none;
  font-weight: 600;
}
.p-mypage__view-all-link:hover {
  text-decoration: underline;
}

.p-mypage__profile-form {
  max-width: 600px;
}

.p-mypage__form-section {
  margin-bottom: 2rem;
}
.p-mypage__form-section:not(:last-child) {
  padding-bottom: 2rem;
  border-bottom: 1px solid #e1e5e9;
}

.p-mypage__form-section-title {
  margin: 0 0 1.5rem 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: #2c3e50;
}

.p-mypage__form-row {
  margin-bottom: 1rem;
}

.p-mypage__form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: #2c3e50;
}

.p-mypage__form-input,
.p-mypage__form-textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #e1e5e9;
  border-radius: 8px;
  font-size: 1rem;
  transition: all 0.3s ease;
}
.p-mypage__form-input:focus,
.p-mypage__form-textarea:focus {
  outline: none;
  border-color: #111;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.1);
}

.p-mypage__form-textarea {
  resize: vertical;
  min-height: 100px;
}

.p-mypage__form-actions {
  margin-top: 2rem;
}

.p-mypage__form-submit {
  background: #111;
  color: white;
  border: none;
  padding: 1rem 2rem;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}
.p-mypage__form-submit:hover:not(:disabled) {
  background: black;
  transform: translateY(-1px);
}
.p-mypage__form-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* プライバシータブを確実に削除するための強力なCSS */
.um-account-nav-link[data-tab=privacy],
a[href*="tab=privacy"],
.um-account-tab-content#privacy,
.um-account-nav-item:has([data-tab=privacy]),
li:has(.um-account-nav-link[data-tab=privacy]),
.um-account-nav .um-account-nav-link[data-tab=privacy],
.um-account-tab[data-tab=privacy],
.um-account-tab-privacy,
[id*=privacy].um-account-tab,
[class*=privacy].um-account,
.um-form .um-field[data-key*=privacy],
.um-settings-section[data-section=privacy],
.um-admin-tab[data-tab=privacy],
.um-tabs .um-tab-link[href*=privacy] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  height: 0 !important;
  width: 0 !important;
  max-height: 0 !important;
  max-width: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  z-index: -999999 !important;
  pointer-events: none !important;
}

/* プライバシーという文字を含むナビゲーションを削除 */
.um-account-nav-link:has-text("プライバシー"),
.um-account-nav-link:has-text("Privacy"),
.um-account-tab:has-text("プライバシー"),
.um-account-tab:has-text("Privacy") {
  display: none !important;
  visibility: hidden !important;
}

/* Ultimate Member管理画面でのプライバシータブも削除 */
.um-admin-settings .um-admin-tab[data-tab=privacy],
.um-admin-metabox .um-field[data-key*=privacy],
tr:has([name*=privacy]) {
  display: none !important;
  visibility: hidden !important;
}

.p-mypage__tooltip {
  position: absolute;
  background: #2c3e50;
  color: white;
  padding: 0.5rem 0.75rem;
  border-radius: 4px;
  font-size: 0.75rem;
  white-space: nowrap;
  z-index: 1001;
  pointer-events: none;
}
.p-mypage__tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: #2c3e50;
}

/**
 * エントリーフォーム - Project Component
 * 
 * モバイルファーストのレスポンシブデザイン
 * プログレスバー、多段階フォーム、ファイルアップロード対応
 * FLOCSSパターン: p-entryFormプレフィックス使用
 */
.p-entryForm-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 1.5rem;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  border-radius: 0.75rem;
}
@media (max-width: 768px) {
  .p-entryForm-container {
    margin: 10px;
    padding: 1rem;
  }
}

.p-entryForm-header {
  text-align: center;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 2px solid #f0f0f0;
}

.p-entryForm-title {
  font-size: 1.8em;
  color: #212529;
  margin-bottom: 10px;
  font-weight: 600;
}
@media (max-width: 480px) {
  .p-entryForm-title {
    font-size: 1.5em;
  }
}

.p-entryForm-meta {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
.p-entryForm-meta span {
  background: #f8f9fa;
  padding: 0.25rem 12px;
  border-radius: 20px;
  font-size: 0.9em;
  color: #666;
}
@media (max-width: 480px) {
  .p-entryForm-meta {
    flex-direction: column;
    gap: 10px;
  }
}

.p-entryForm-progress {
  margin-bottom: 40px;
}

.progress-steps {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
  position: relative;
}
.progress-steps::before {
  content: "";
  position: absolute;
  top: 20px;
  left: 0;
  right: 0;
  height: 2px;
  background: #e0e0e0;
  z-index: 1;
}
@media (max-width: 600px) {
  .progress-steps .step-label {
    font-size: 0.75em;
  }
  .progress-steps .step-number {
    width: 35px;
    height: 35px;
    line-height: 35px;
  }
}
@media (max-width: 480px) {
  .progress-steps {
    flex-wrap: wrap;
  }
  .progress-steps::before {
    display: none;
  }
  .progress-steps .step {
    flex-basis: 50%;
    margin-bottom: 1rem;
  }
}

.step {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 2;
  cursor: pointer;
  transition: all 0.3s ease;
}
.step.active .step-number {
  background: #111;
  color: white;
}
.step.active .step-label {
  color: #212529;
  font-weight: 600;
}
.step.completed .step-number {
  background: #46b450;
  color: white;
}
.step.completed .step-number::after {
  content: "✓";
  font-size: 0.8em;
}
.step.completed .step-label {
  color: #212529;
  font-weight: 600;
}

.step-number {
  display: inline-block;
  width: 40px;
  height: 40px;
  line-height: 40px;
  border-radius: 50%;
  background: #e0e0e0;
  color: #999;
  font-weight: 600;
  margin-bottom: 0.5rem;
  transition: all 0.3s ease;
}

.step-label {
  display: block;
  font-size: 0.85em;
  color: #666;
  font-weight: 500;
}

.progress-bar {
  position: relative;
  width: 100%;
  height: 10px;
  background: #e9ecef;
  border-radius: 5px;
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar[aria-valuenow]::before {
  content: attr(aria-valuenow) "%";
  position: absolute;
  top: -24px;
  right: 0;
  font-size: 12px;
  font-weight: 600;
  color: #495057;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #0d6efd 0%, #0056b3 100%);
  border-radius: 5px;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.progress-fill::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  animation: shimmer 2s infinite;
}

@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
.char-counter {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  font-size: 13px;
  color: #6c757d;
  transition: all 0.3s ease;
}
.char-counter .current-count {
  font-weight: 600;
  color: #495057;
  transition: color 0.3s ease;
}
.char-counter .char-counter-status {
  margin-left: 8px;
  font-size: 12px;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.char-counter.active {
  color: #0d6efd;
}
.char-counter.active .current-count {
  color: #0d6efd;
}
.char-counter.success .current-count {
  color: #28a745;
}
.char-counter.warning {
  color: #ffc107;
}
.char-counter.warning .current-count {
  color: #fd7e14;
  font-weight: 700;
}
.char-counter.warning .char-counter-status {
  color: #fd7e14;
  opacity: 1;
}
.char-counter.error {
  color: #dc3545;
}
.char-counter.error .current-count {
  color: #dc3545;
  font-weight: 700;
}
.char-counter.error .char-counter-status {
  color: #dc3545;
  opacity: 1;
  font-weight: 600;
}
.char-counter.shake {
  animation: shake 0.5s;
}

@keyframes shake {
  0%, 100% {
    transform: translateX(0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translateX(-2px);
  }
  20%, 40%, 60%, 80% {
    transform: translateX(2px);
  }
}
@keyframes fadeInFromRight {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.form-group textarea:focus ~ .char-counter {
  color: #0d6efd;
}
.form-group textarea:focus ~ .char-counter .current-count {
  color: #0d6efd;
}
.form-group textarea.error ~ .char-counter {
  color: #dc3545;
}
.form-group textarea.error ~ .char-counter .current-count {
  color: #dc3545;
}

@media (max-width: sm) {
  .char-counter {
    font-size: 12px;
  }
  .char-counter .char-counter-status {
    font-size: 11px;
  }
}
.p-entryForm {
  position: relative;
}

.form-step {
  display: none;
  opacity: 0;
  transform: translateX(0);
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
  animation: fadeIn 0.3s ease-in-out;
}
.form-step:first-of-type, .form-step[style*=block], .form-step.active {
  display: block;
  opacity: 1;
}
.form-step.step-transition-out, .form-step.step-transition-in {
  display: block !important;
}
.form-step.step-transition-out {
  opacity: 0;
  transform: translateX(-20px);
}
.form-step.step-transition-in {
  opacity: 0;
  transform: translateX(20px);
  animation: fadeInFromRight 0.3s ease-in-out forwards;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.step-header {
  margin-bottom: 2rem;
  text-align: center;
}
.step-header h2 {
  font-size: 1.5em;
  color: #212529;
  margin-bottom: 10px;
}
.step-header p {
  color: #666;
  font-size: 0.95em;
  line-height: 1.5;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .form-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.form-group {
  margin-bottom: 1.5rem;
  position: relative;
}
.form-group.full-width {
  grid-column: 1/-1;
}
.form-group:focus-within .form-group-inner {
  border-color: #111;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.1);
}
.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: #212529;
  font-size: 0.95em;
  line-height: 1.4;
  font-family: "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
}
.form-group label.required {
  display: flex;
  align-items: center;
  gap: 4px;
}
.form-group label.required::after {
  content: "必須";
  background: #d63638;
  color: white;
  font-size: 0.75em;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 3px;
  line-height: 1;
  white-space: nowrap;
}
.form-group label.optional::after {
  content: "任意";
  background: #6c757d;
  color: white;
  font-size: 0.75em;
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 3px;
  line-height: 1;
  white-space: nowrap;
  margin-left: 4px;
}
.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #ddd;
  border-radius: 6px;
  font-size: 1em;
  font-family: inherit;
  transition: all 0.3s ease;
  background: #fff;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  outline: none;
  border-color: #111;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.1);
}
.form-group input.error,
.form-group textarea.error,
.form-group select.error {
  border-color: #d63638;
  box-shadow: 0 0 0 3px rgba(214, 54, 56, 0.1);
}
.form-group input:valid:not(:-moz-placeholder-shown), .form-group textarea:valid:not(:-moz-placeholder-shown), .form-group select:valid:not(:-moz-placeholder-shown) {
  border-color: #46b450;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='%23198754' d='M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425a.247.247 0 0 1 .02-.022Z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 16px;
  padding-right: 40px;
}
.form-group input:valid:not(:placeholder-shown),
.form-group textarea:valid:not(:placeholder-shown),
.form-group select:valid:not(:placeholder-shown) {
  border-color: #46b450;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='%23198754' d='M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425a.247.247 0 0 1 .02-.022Z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 16px;
  padding-right: 40px;
}
.form-group input::-moz-placeholder, .form-group textarea::-moz-placeholder, .form-group select::-moz-placeholder {
  color: #9ca3af;
  font-style: italic;
  opacity: 0.8;
}
.form-group input::placeholder,
.form-group textarea::placeholder,
.form-group select::placeholder {
  color: #9ca3af;
  font-style: italic;
  opacity: 0.8;
}
.form-group textarea {
  resize: vertical;
  min-height: 100px;
  font-family: inherit;
  line-height: 1.5;
}
.form-group textarea[maxlength] {
  background-image: linear-gradient(to right, transparent 0%, transparent 90%, rgba(255, 193, 7, 0.1) 90%, rgba(255, 193, 7, 0.2) 95%, rgba(220, 53, 69, 0.1) 95%, rgba(220, 53, 69, 0.2) 100%);
}
.form-group .input-group {
  display: flex;
  align-items: stretch;
}
.form-group .input-group .input-group-text {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  background: #f8f9fa;
  border: 2px solid #ddd;
  border-right: none;
  border-radius: 6px 0 0 6px;
  font-size: 0.9em;
  color: #666;
  white-space: nowrap;
}
.form-group .input-group input {
  border-radius: 0 6px 6px 0;
  border-left: none;
}
.form-group .input-group input:focus {
  z-index: 2;
  border-left: 2px solid #111;
}

.field-help {
  font-size: 0.85em;
  color: #666;
  margin-top: 0.25rem;
  line-height: 1.4;
}

.field-error {
  color: #d63638;
  font-size: 0.85em;
  margin-top: 0.25rem;
  display: block;
}

.char-counter {
  text-align: right;
  font-size: 0.8em;
  color: #666;
  margin-top: 0.25rem;
}
.char-counter .current-count {
  font-weight: 600;
}

.checkbox-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 10px;
}
@media (max-width: 600px) {
  .checkbox-group {
    grid-template-columns: 1fr;
  }
}

.checkbox-label {
  display: flex;
  align-items: center;
  cursor: pointer;
  padding: 0.5rem 12px;
  border: 2px solid #ddd;
  border-radius: 6px;
  transition: all 0.3s ease;
  font-weight: normal;
  margin-bottom: 0;
}
.checkbox-label:hover {
  border-color: #111;
  background: #f8f9fa;
}
.checkbox-label input[type=checkbox] {
  width: auto;
  margin-right: 10px;
  margin-bottom: 0;
}
.checkbox-label input[type=checkbox]:checked + .checkmark {
  background: #111;
}

.checkmark {
  position: relative;
  margin-right: 10px;
}

.radio-group {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}
@media (max-width: 480px) {
  .radio-group {
    gap: 8px;
  }
}

.radio-button-label {
  display: inline-block;
  position: relative;
  cursor: pointer;
}
.radio-button-label input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.radio-button-label input[type=radio]:checked + .radio-button {
  background: #111;
  color: white;
  border-color: #111;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(17, 17, 17, 0.3);
}
.radio-button-label input[type=radio]:focus + .radio-button {
  outline: 2px solid #111;
  outline-offset: 2px;
}

.radio-button {
  display: block;
  padding: 12px 24px;
  border: 2px solid #ddd;
  border-radius: 6px;
  background: white;
  color: #212529;
  font-size: 1em;
  text-align: center;
  transition: all 0.3s ease;
  min-width: 100px;
}
.radio-button:hover {
  border-color: #111;
  background: #f8f9fa;
}
@media (max-width: 480px) {
  .radio-button {
    padding: 10px 16px;
    min-width: 80px;
    font-size: 0.9em;
  }
}

.file-upload-area {
  margin-bottom: 1.5rem;
}
.file-upload-area .upload-help {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 16px;
  font-size: 0.9em;
  color: #666;
}
.file-upload-area .upload-help ul {
  margin: 8px 0 0 0;
  padding-left: 20px;
}
.file-upload-area .upload-help ul li {
  margin-bottom: 4px;
  line-height: 1.4;
}
.file-upload-area .upload-help .help-icon {
  color: #111;
  margin-right: 6px;
}

.upload-zone {
  border: 3px dashed #ddd;
  border-radius: 0.75rem;
  padding: 40px 1.5rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  background: #fafafa;
  position: relative;
  overflow: hidden;
}
.upload-zone:hover {
  border-color: #111;
  background: #f0f8ff;
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(17, 17, 17, 0.15);
}
.upload-zone.drag-over {
  border-color: #111;
  background: linear-gradient(135deg, #e6f3ff 0%, #f0f8ff 100%);
  transform: scale(1.02);
  box-shadow: 0 8px 32px rgba(17, 17, 17, 0.25);
}
.upload-zone.drag-over::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at center, rgba(17, 17, 17, 0.1) 0%, transparent 70%);
  pointer-events: none;
}
.upload-zone.drag-over .upload-icon {
  transform: scale(1.1);
  color: #111;
}
.upload-zone.drag-over .upload-text p {
  color: #111;
  font-weight: 700;
}
.upload-zone.uploading {
  border-color: #46b450;
  background: linear-gradient(135deg, #f0f8f0 0%, #f8fff8 100%);
}
.upload-zone.uploading .upload-icon {
  animation: pulse 1s infinite;
  color: #46b450;
}
.upload-zone.uploading .upload-text p {
  color: #46b450;
}
.upload-zone.upload-error {
  border-color: #d63638;
  background: linear-gradient(135deg, #fff8f8 0%, #fff0f0 100%);
}
.upload-zone.upload-error .upload-icon {
  color: #d63638;
}
.upload-zone.upload-error .upload-text p {
  color: #d63638;
}
@media (max-width: 600px) {
  .upload-zone {
    padding: 2rem 1rem;
  }
}
@media (max-width: 480px) {
  .upload-zone {
    padding: 1.5rem 1rem;
  }
  .upload-zone .upload-icon {
    font-size: 1.8em;
  }
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.7;
  }
}
.upload-icon {
  font-size: 2.5em;
  margin-bottom: 1rem;
  opacity: 0.7;
}
@media (max-width: 600px) {
  .upload-icon {
    font-size: 2em;
  }
}

.upload-text p {
  margin: 0 0 0.5rem 0;
  font-weight: 600;
  color: #212529;
}
.upload-text small {
  color: #666;
  font-size: 0.85em;
}

.upload-preview {
  margin-top: 1.5rem;
}
.upload-preview.multiple-images {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 1rem;
}
@media (max-width: 480px) {
  .upload-preview.multiple-images {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  }
}
.upload-preview.multiple-images .file-item {
  flex-direction: column;
  padding: 0.5rem;
}
.upload-preview.multiple-images .file-item .file-preview {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  margin-bottom: 0.25rem;
}
.upload-preview.multiple-images .file-item .file-info {
  text-align: center;
  width: 100%;
}
.upload-preview.multiple-images .file-item .file-name {
  font-size: 0.85em;
}

.file-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #ddd;
  border-radius: 6px;
  margin-bottom: 10px;
  background: #fff;
  transition: all 0.3s ease;
}
.file-item:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.file-item.upload-complete {
  border-color: #46b450;
  background: #f8fff8;
}
.file-item.upload-error {
  border-color: #d63638;
  background: #fff8f8;
}
@media (max-width: 600px) {
  .file-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .file-item .file-preview {
    align-self: center;
  }
  .file-item .file-info {
    width: 100%;
  }
  .file-item .file-remove-btn {
    align-self: center;
  }
}

.file-preview {
  flex-shrink: 0;
  width: 100%;
  border-radius: 0.25rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
@media (max-width: 480px) {
  .file-preview {
    width: 100px;
    height: 100px;
  }
}

.preview-item {
  background: #f0f0f0;
  width: calc(50% - 0.5rem);
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  padding: 0.5rem;
}

.file-thumbnail {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.file-icon {
  font-size: 1.5em;
  opacity: 0.7;
}

.file-info {
  flex: 1;
  min-width: 0;
}

.file-name {
  font-weight: 600;
  color: #212529;
  margin-bottom: 0.25rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.file-size {
  color: #666;
  font-size: 0.85em;
  margin-bottom: 0.5rem;
}

.file-progress {
  display: flex;
  align-items: center;
  gap: 10px;
}
.file-progress .progress-bar {
  flex: 1;
  height: 6px;
  background: #e0e0e0;
  border-radius: 3px;
  overflow: hidden;
}
.file-progress .progress-bar .progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #111 0%, #0073aa 100%);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.file-progress .progress-text {
  font-size: 0.8em;
  color: #666;
  min-width: 40px;
  text-align: right;
}

.file-remove-btn {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border: none;
  background: #d63638;
  color: white;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}
.file-remove-btn:hover {
  background: #b32d2e;
  transform: scale(1.1);
}
.file-remove-btn .remove-icon {
  font-size: 0.9em;
}

.form-confirmation {
  background: #f8f9fa;
  border-radius: 0.75rem;
  padding: 2rem;
  margin-bottom: 2rem;
}

.confirmation-section {
  margin-bottom: 2rem;
}
.confirmation-section:last-child {
  margin-bottom: 0;
}
.confirmation-section h3 {
  color: #212529;
  border-bottom: 2px solid #111;
  padding-bottom: 10px;
  margin-bottom: 1.5rem;
  font-size: 1.2em;
}

.confirmation-list {
  display: grid;
  gap: 10px;
}
@media (min-width: 600px) {
  .confirmation-list {
    grid-template-columns: 200px 1fr;
  }
}
.confirmation-list dt {
  font-weight: 600;
  color: #212529;
  grid-column: 1;
}
.confirmation-list dd {
  color: #666;
  margin: 0;
  grid-column: 2;
  word-break: break-word;
}

.file-section {
  margin-bottom: 1.5rem;
}
.file-section h4 {
  color: #212529;
  margin-bottom: 10px;
  font-size: 1em;
}
.file-section ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
.file-section li {
  padding: 0.25rem 0;
  color: #666;
  border-bottom: 1px solid #eee;
}
.file-section li:last-child {
  border-bottom: none;
}

.form-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 40px;
  padding-top: 1.5rem;
  border-top: 1px solid #eee;
}
@media (max-width: 600px) {
  .form-actions {
    flex-direction: column;
    gap: 1rem;
  }
  .form-actions .btn {
    width: 100%;
    min-width: auto;
  }
}

.submit-buttons-group {
  display: flex;
  gap: 1rem;
  align-items: center;
}
@media (max-width: 600px) {
  .submit-buttons-group {
    flex-direction: column;
    width: 100%;
    gap: 0.5rem;
  }
}

.submit-help-text {
  margin-top: 0.5rem;
  text-align: center;
}
.submit-help-text small {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #999;
  font-size: 1em;
  color: #111;
}
.submit-help-text small i {
  opacity: 0.7;
}
@media (max-width: 600px) {
  .submit-help-text {
    margin-top: 0.25rem;
  }
}

.btn {
  padding: 12px 24px;
  border: none;
  border-radius: 6px;
  font-size: 1em;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  position: relative;
  overflow: hidden;
  font-family: "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
}
.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.btn.loading {
  color: transparent;
  pointer-events: none;
}
.btn.loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  border: 2px solid transparent;
  border-top: 2px solid white;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
.btn .btn-icon {
  margin-right: 8px;
  font-size: 0.9em;
}
.btn.btn-icon-right .btn-icon {
  margin-right: 0;
  margin-left: 8px;
}
.btn-primary {
  background: #111;
  color: white;
}
.btn-primary:hover:not(:disabled) {
  background: #005a87;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(17, 17, 17, 0.3);
}
.btn-primary.btn-featured {
  background: linear-gradient(135deg, #111 0%);
  box-shadow: 0 4px 15px rgba(17, 17, 17, 0.3);
}
.btn-primary.btn-featured:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(17, 17, 17, 0.4);
}
.btn-secondary {
  background: #6c757d;
  color: white;
}
.btn-secondary:hover:not(:disabled) {
  background: #5a6268;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(108, 117, 125, 0.3);
}
.btn-secondary.btn-outline {
  background: transparent;
  color: #6c757d;
  border: 2px solid #6c757d;
}
.btn-secondary.btn-outline:hover:not(:disabled) {
  background: #6c757d;
  color: white;
}
.btn-success {
  background: #46b450;
  color: white;
}
.btn-success:hover:not(:disabled) {
  background: #3a9b43;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(70, 180, 80, 0.3);
}
.btn-sm {
  padding: 8px 16px;
  font-size: 0.875em;
  min-width: 80px;
}
.btn-lg {
  padding: 16px 32px;
  font-size: 1.125em;
  min-width: 160px;
}
.btn-block {
  width: 100%;
  justify-content: center;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.btn-group {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
}
@media (max-width: 480px) {
  .btn-group {
    flex-direction: column;
    width: 100%;
  }
  .btn-group .btn {
    width: 100%;
  }
}
.btn-group.btn-group-priority .btn-primary {
  order: 1;
}
.btn-group.btn-group-priority .btn-secondary {
  order: 2;
}

.form-message,
.file-upload-error {
  padding: 1rem 1.5rem;
  border-radius: 6px;
  margin-bottom: 1.5rem;
  font-weight: 500;
  border-left: 4px solid;
}
.form-message.success,
.file-upload-error.success {
  background: #f0f8f0;
  border-color: #46b450;
  color: #2d5e2d;
}
.form-message.error,
.file-upload-error.error {
  background: #fff8f8;
  border-color: #d63638;
  color: #8b2635;
}
.form-message.info,
.file-upload-error.info {
  background: #f0f8ff;
  border-color: #111;
  color: #1e4a5d;
}

.file-upload-error {
  background: #fff8f8;
  border-color: #d63638;
  color: #8b2635;
}

.autosave-indicator {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  background: #46b450;
  color: white;
  padding: 10px 1rem;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  z-index: 1000;
  animation: slideInFromRight 0.3s ease;
}
.autosave-indicator .autosave-text {
  font-size: 0.9em;
  font-weight: 500;
}

@keyframes slideInFromRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.loading {
  position: relative;
  overflow: hidden;
}
.loading::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  animation: loading-shimmer 1.5s infinite;
}

@keyframes loading-shimmer {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
.btn:focus,
input:focus,
textarea:focus,
select:focus {
  outline: 2px solid #111;
  outline-offset: 2px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.confirmation-files-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px;
  margin: 16px 0;
}
@media (max-width: sm) {
  .confirmation-files-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 20px;
  }
}

.confirmation-file-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  background: #fafafa;
  transition: all 0.2s ease;
}
.confirmation-file-item:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transform: translateY(-1px);
}

.confirmation-file-thumbnail {
  width: 100%;
  max-width: 140px;
  margin-bottom: 8px;
  border-radius: 6px;
  overflow: hidden;
  background: white;
  border: 1px solid #ddd;
}
@media (max-width: sm) {
  .confirmation-file-thumbnail {
    max-width: 160px;
  }
}

.confirmation-thumbnail-img {
  width: 100%;
  height: 100px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: sm) {
  .confirmation-thumbnail-img {
    height: 120px;
  }
}

.confirmation-file-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 140px;
  height: 100px;
  margin-bottom: 8px;
  border-radius: 6px;
  background: #f5f5f5;
  border: 1px solid #ddd;
  font-size: 2.5rem;
}
@media (max-width: sm) {
  .confirmation-file-icon {
    max-width: 160px;
    height: 120px;
    font-size: 3rem;
  }
}

.confirmation-file-name {
  font-size: 0.85rem;
  font-weight: 500;
  color: #333;
  text-align: center;
  word-break: break-word;
  line-height: 1.3;
  max-width: 100%;
}
@media (max-width: sm) {
  .confirmation-file-name {
    font-size: 0.9rem;
  }
}

.file-section h4 {
  margin: 0 0 12px 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: #2c3e50;
  border-bottom: 2px solid #111;
  padding-bottom: 4px;
  display: inline-block;
}

@media print {
  .p-entryForm-container {
    box-shadow: none;
    max-width: none;
  }
  .form-actions,
  .file-remove-btn,
  .progress-bar {
    display: none;
  }
  .form-step {
    display: block !important;
    page-break-before: always;
  }
  .form-step:first-of-type {
    page-break-before: auto;
  }
  .confirmation-files-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .confirmation-file-item {
    -moz-column-break-inside: avoid;
         break-inside: avoid;
    box-shadow: none;
    transform: none !important;
  }
}
.form-confirmation {
  padding: 20px 0;
}
.form-confirmation .confirmation-sections {
  background: white;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.form-confirmation .confirmation-section {
  padding: 24px;
  border-bottom: 1px solid #ddd;
}
.form-confirmation .confirmation-section:last-child {
  border-bottom: none;
}
.form-confirmation .confirmation-section h3 {
  margin: 0 0 20px 0;
  padding: 0 0 12px 0;
  border-bottom: 2px solid #111;
  color: #212529;
  font-size: 1.2em;
  font-weight: 600;
}
.form-confirmation .confirmation-list {
  margin: 0;
}
.form-confirmation .confirmation-list dt {
  float: left;
  clear: left;
  width: 100%;
  padding: 8px 0;
  color: #999;
  font-weight: 500;
  font-size: 0.95em;
}
@media (max-width: mobile) {
  .form-confirmation .confirmation-list dt {
    width: 100%;
    float: none;
    padding-bottom: 4px;
    border-bottom: none;
  }
}
.form-confirmation .confirmation-list dd {
  margin-left: 10%;
  padding: 8px 0 8px 16px;
  color: #212529;
  min-height: 32px;
  word-break: break-word;
}
@media (max-width: mobile) {
  .form-confirmation .confirmation-list dd {
    margin-left: 0;
    padding-left: 0;
    padding-bottom: 16px;
    border-bottom: 1px solid #ddd;
    margin-bottom: 16px;
  }
  .form-confirmation .confirmation-list dd:last-child {
    border-bottom: none;
    margin-bottom: 0;
  }
}
.form-confirmation .confirmation-list::after {
  content: "";
  display: table;
  clear: both;
}
.form-confirmation .confirmation-notice {
  margin-top: 24px;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 6px;
  border-left: 4px solid #111;
}
.form-confirmation .confirmation-notice p {
  margin: 0 0 8px 0;
  color: #212529;
  line-height: 1.6;
}
.form-confirmation .confirmation-notice p:last-child {
  margin-bottom: 0;
}

.preview-item,
.file-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  background: white;
  border: 2px solid #e8e8e8;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.preview-item:hover,
.file-item:hover {
  border-color: #111;
}
.preview-item:focus-within,
.file-item:focus-within {
  border-color: #111;
  outline: 2px solid rgba(17, 17, 17, 0.2);
  outline-offset: 2px;
}
.preview-item.upload-success,
.file-item.upload-success {
  border-color: #46b450;
  background: linear-gradient(135deg, #f8fff8 0%, #ffffff 100%);
}
.preview-item.upload-success::before,
.file-item.upload-success::before {
  content: "✓";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background: #46b450;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: bold;
}
.preview-item.upload-error,
.file-item.upload-error {
  border-color: #d63638;
  background: linear-gradient(135deg, #fff8f8 0%, #ffffff 100%);
}
.preview-item.upload-error::before,
.file-item.upload-error::before {
  content: "⚠";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background: #d63638;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: bold;
}
.preview-item img,
.file-item img {
  width: 100%;
  max-width: 200px;
  height: 150px;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 8px;
  margin-bottom: 12px;
  border: 1px solid #e0e0e0;
  transition: all 0.3s ease;
}
.preview-item img:hover,
.file-item img:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.preview-item .preview-info,
.file-item .preview-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.preview-item .preview-info .filename,
.file-item .preview-info .filename {
  font-weight: 600;
  color: #2c3e50;
  font-size: 0.9em;
  line-height: 1.4;
  word-break: break-word;
  flex: 1;
  font-family: "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
}
.preview-item .preview-info .remove-file,
.file-item .preview-info .remove-file {
  width: 32px;
  height: 32px;
  border: 2px solid #dc3545;
  background: white;
  color: #dc3545;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.preview-item .preview-info .remove-file:hover,
.file-item .preview-info .remove-file:hover {
  background: #dc3545;
  color: white;
  transform: scale(1.1);
  box-shadow: 0 2px 8px rgba(220, 53, 69, 0.3);
}
.preview-item .preview-info .remove-file:focus,
.file-item .preview-info .remove-file:focus {
  outline: 2px solid #dc3545;
  outline-offset: 2px;
}
.preview-item .preview-info .remove-file .icon,
.file-item .preview-info .remove-file .icon {
  font-size: 16px;
  font-weight: bold;
  line-height: 1;
}
@media (max-width: 480px) {
  .preview-item,
  .file-item {
    padding: 12px;
  }
  .preview-item img,
  .file-item img {
    max-width: 100%;
    height: 120px;
  }
  .preview-item .preview-info,
  .file-item .preview-info {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .preview-item .preview-info .filename,
  .file-item .preview-info .filename {
    font-size: 0.85em;
  }
  .preview-item .preview-info .remove-file,
  .file-item .preview-info .remove-file {
    align-self: flex-end;
    width: 28px;
    height: 28px;
  }
  .preview-item .preview-info .remove-file .icon,
  .file-item .preview-info .remove-file .icon {
    font-size: 14px;
  }
}

.confirmation-image-preview {
  display: block;
  max-width: 300px;
  margin-top: 0.5rem;
}
.confirmation-image-preview img {
  width: 100%;
  height: auto;
  border: 1px solid #ddd;
  border-radius: 4px;
  display: block;
}

.confirmation-image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
  margin-top: 0.5rem;
  max-width: 600px;
}

.confirmation-image-item img {
  width: 100%;
  height: 150px;
  -o-object-fit: contain;
     object-fit: contain;
  border: 1px solid #ddd;
  border-radius: 4px;
  display: block;
  cursor: pointer;
  transition: transform 0.2s;
}
.confirmation-image-item img:hover {
  transform: scale(1.05);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.no-image {
  color: #999;
  font-size: 0.9em;
  display: inline-block;
  padding: 0.25rem 0;
}

/**
 * エントリーフォーム強化機能
 * Phase 1: プログレスバー、自動保存、プロフィール読み込み
 */
.progress-bar-enhanced {
  margin: 2rem 0;
  padding: 1.5rem;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.progress-bar-enhanced .progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}
.progress-bar-enhanced .progress-header h3 {
  margin: 0;
  font-size: 1.125rem;
  color: #333;
}
.progress-bar-enhanced .progress-header .progress-percentage {
  font-size: 1.5rem;
  font-weight: bold;
  color: #0073aa;
}
.progress-bar-enhanced .progress-header .progress-percentage .percentage-value {
  font-size: 1.75rem;
}
.progress-bar-enhanced .progress-steps-container {
  position: relative;
  margin-bottom: 1rem;
}
.progress-bar-enhanced .progress-steps-container .progress-line {
  position: absolute;
  top: 24px;
  left: 40px;
  right: 40px;
  height: 4px;
  background: #e0e0e0;
  border-radius: 2px;
}
.progress-bar-enhanced .progress-steps-container .progress-line .progress-line-fill {
  height: 100%;
  background: linear-gradient(90deg, #0073aa, #005177);
  border-radius: 2px;
  transition: width 0.5s ease-in-out;
}
.progress-bar-enhanced .progress-steps-container .progress-steps {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
.progress-bar-enhanced .progress-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: default;
  transition: all 0.3s ease;
}
.progress-bar-enhanced .progress-step.clickable {
  cursor: pointer;
}
.progress-bar-enhanced .progress-step.clickable:hover .step-indicator {
  transform: scale(1.1);
  box-shadow: 0 0 0 8px rgba(0, 115, 170, 0.1);
}
.progress-bar-enhanced .progress-step .step-indicator {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #ffffff;
  border: 3px solid #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  position: relative;
}
.progress-bar-enhanced .progress-step .step-indicator .step-number {
  font-size: 1.125rem;
  color: #999;
  font-weight: 600;
}
.progress-bar-enhanced .progress-step .step-indicator .check-icon {
  width: 24px;
  height: 24px;
  fill: #ffffff;
}
.progress-bar-enhanced .progress-step .step-label {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  color: #666;
  text-align: center;
  max-width: 100px;
}
.progress-bar-enhanced .progress-step .step-tooltip {
  position: absolute;
  top: -30px;
  background: #333;
  color: #fff;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.75rem;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.progress-bar-enhanced .progress-step:hover .step-tooltip {
  opacity: 1;
}
.progress-bar-enhanced .progress-step.completed .step-indicator {
  background: #28a745;
  border-color: #28a745;
}
.progress-bar-enhanced .progress-step.completed .step-label {
  color: #333;
  font-weight: 500;
}
.progress-bar-enhanced .progress-step.current .step-indicator {
  background: #0073aa;
  border-color: #0073aa;
  box-shadow: 0 0 0 4px rgba(0, 115, 170, 0.2);
  animation: pulse 2s infinite;
}
.progress-bar-enhanced .progress-step.current .step-indicator .step-number {
  color: #ffffff;
}
.progress-bar-enhanced .progress-step.current .step-label {
  color: #0073aa;
  font-weight: 600;
}
.progress-bar-enhanced .progress-step.error .step-indicator {
  background: #dc3545;
  border-color: #dc3545;
}
.progress-bar-enhanced .progress-step.error .error-message {
  color: #dc3545;
  opacity: 1 !important;
}
.progress-bar-enhanced .progress-info {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid #e0e0e0;
}
.progress-bar-enhanced .progress-info p {
  margin: 0.5rem 0;
  font-size: 0.875rem;
  color: #666;
}
.progress-bar-enhanced .progress-info p strong {
  color: #333;
}
.progress-bar-enhanced .progress-info .completion-hint {
  font-style: italic;
  color: #999;
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 115, 170, 0.4);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(0, 115, 170, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(0, 115, 170, 0);
  }
}
.autosave-indicator {
  position: fixed;
  top: 80px;
  right: 20px;
  background: #ffffff;
  padding: 12px 20px;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 1000;
  transition: all 0.3s ease;
  opacity: 0;
  transform: translateY(-10px);
}
.autosave-indicator.visible {
  opacity: 1;
  transform: translateY(0);
}
.autosave-indicator .autosave-icon {
  width: 20px;
  height: 20px;
  animation: spin 1s linear infinite;
}
.autosave-indicator .autosave-icon.success {
  animation: none;
  fill: #28a745;
}
.autosave-indicator .autosave-icon.error {
  animation: none;
  fill: #dc3545;
}
.autosave-indicator .autosave-text {
  font-size: 0.875rem;
  color: #333;
}
.autosave-indicator .autosave-text.saving {
  color: #0073aa;
}
.autosave-indicator .autosave-text.success {
  color: #28a745;
}
.autosave-indicator .autosave-text.error {
  color: #dc3545;
}
.autosave-indicator .autosave-time {
  font-size: 0.75rem;
  color: #999;
  margin-left: 5px;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.toast-container {
  position: fixed;
  top: 100px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.toast-container .toast {
  min-width: 300px;
  max-width: 400px;
  padding: 16px 20px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: flex-start;
  gap: 12px;
  animation: slideIn 0.3s ease;
  position: relative;
}
.toast-container .toast.success {
  border-left: 4px solid #28a745;
}
.toast-container .toast.success .toast-icon {
  color: #28a745;
}
.toast-container .toast.error {
  border-left: 4px solid #dc3545;
}
.toast-container .toast.error .toast-icon {
  color: #dc3545;
}
.toast-container .toast.warning {
  border-left: 4px solid #ffc107;
}
.toast-container .toast.warning .toast-icon {
  color: #ffc107;
}
.toast-container .toast.info {
  border-left: 4px solid #17a2b8;
}
.toast-container .toast.info .toast-icon {
  color: #17a2b8;
}
.toast-container .toast .toast-icon {
  font-size: 1.25rem;
  flex-shrink: 0;
}
.toast-container .toast .toast-body {
  flex: 1;
}
.toast-container .toast .toast-body .toast-title {
  font-weight: 600;
  margin-bottom: 4px;
  color: #333;
}
.toast-container .toast .toast-body .toast-message {
  font-size: 0.875rem;
  color: #666;
  line-height: 1.4;
}
.toast-container .toast .toast-close {
  position: absolute;
  top: 8px;
  right: 8px;
  background: none;
  border: none;
  font-size: 1.25rem;
  color: #999;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}
.toast-container .toast .toast-close:hover {
  color: #333;
}
.toast-container .toast.fade-out {
  animation: slideOut 0.3s ease;
  opacity: 0;
}

@keyframes slideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes slideOut {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}
.profile-loader-section {
  margin: 2rem 0;
  padding: 1.5rem;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-radius: 12px;
  color: #ffffff;
}
.profile-loader-section .profile-loader-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.profile-loader-section .profile-loader-header h4 {
  margin: 0;
  font-size: 1.125rem;
  display: flex;
  align-items: center;
  gap: 8px;
}
.profile-loader-section .profile-loader-header h4 .icon {
  width: 24px;
  height: 24px;
}
.profile-loader-section .profile-loader-header .profile-status {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  padding: 4px 12px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 20px;
}
.profile-loader-section .profile-loader-header .profile-status.connected {
  background: rgba(40, 167, 69, 0.3);
}
.profile-loader-section .profile-loader-content p {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  opacity: 0.95;
}
.profile-loader-section .profile-loader-content .profile-loader-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.profile-loader-section .profile-loader-content .profile-loader-actions .btn-load-profile {
  padding: 10px 24px;
  background: #ffffff;
  color: #764ba2;
  border: none;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  gap: 8px;
}
.profile-loader-section .profile-loader-content .profile-loader-actions .btn-load-profile:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.profile-loader-section .profile-loader-content .profile-loader-actions .btn-load-profile:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.profile-loader-section .profile-loader-content .profile-loader-actions .btn-load-profile .spinner {
  width: 16px;
  height: 16px;
  border: 2px solid #764ba2;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
}
.profile-loader-section .profile-loader-content .profile-loader-actions .btn-clear {
  padding: 10px 24px;
  background: transparent;
  color: #ffffff;
  border: 2px solid rgba(255, 255, 255, 0.5);
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}
.profile-loader-section .profile-loader-content .profile-loader-actions .btn-clear:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #ffffff;
}
.profile-loader-section .profile-loader-content .profile-fields-preview {
  margin-top: 1rem;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  font-size: 0.875rem;
}
.profile-loader-section .profile-loader-content .profile-fields-preview .field-item {
  display: flex;
  align-items: center;
  margin: 6px 0;
}
.profile-loader-section .profile-loader-content .profile-fields-preview .field-item .check-icon {
  width: 16px;
  height: 16px;
  margin-right: 8px;
  fill: #40d872;
}

.field-typing-animation {
  position: relative;
}
.field-typing-animation::after {
  content: "";
  position: absolute;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
  width: 2px;
  height: 20px;
  background: #0073aa;
  animation: blink 1s infinite;
}

@keyframes blink {
  0%, 50% {
    opacity: 1;
  }
  51%, 100% {
    opacity: 0;
  }
}
@media (max-width: 768px) {
  .progress-bar-enhanced {
    padding: 1rem;
  }
  .progress-bar-enhanced .progress-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .progress-bar-enhanced .progress-step .step-label {
    font-size: 0.75rem;
    max-width: 60px;
  }
  .progress-bar-enhanced .progress-step .step-indicator {
    width: 40px;
    height: 40px;
  }
  .autosave-indicator {
    right: 10px;
    padding: 10px 16px;
    font-size: 0.8125rem;
  }
  .toast-container {
    right: 10px;
    left: 10px;
  }
  .toast-container .toast {
    min-width: auto;
    max-width: 100%;
  }
  .profile-loader-section {
    padding: 1rem;
  }
  .profile-loader-section .profile-loader-actions {
    flex-direction: column;
  }
  .profile-loader-section .profile-loader-actions .btn-load-profile,
  .profile-loader-section .profile-loader-actions .btn-clear {
    width: 100%;
    justify-content: center;
  }
}
.progress-step.transitioning.forward {
  animation: moveForward 0.5s ease;
}
.progress-step.transitioning.backward {
  animation: moveBackward 0.5s ease;
}

@keyframes moveForward {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(10px);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes moveBackward {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-10px);
  }
  100% {
    transform: translateX(0);
  }
}
.p-emptyDraftCard {
  background: #ffffff;
  border: 2px solid #e1e8ed;
  border-radius: 12px;
  padding: 2rem;
  margin: 2rem 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  position: relative;
}
.p-emptyDraftCard:focus-within {
  border-color: #1da1f2;
  box-shadow: 0 0 0 3px rgba(29, 161, 242, 0.1);
}
.p-emptyDraftCard--warning {
  border-color: #ff9500;
  background: linear-gradient(135deg, #fff9f0 0%, #ffffff 100%);
}
.p-emptyDraftCard--warning .p-emptyDraftCard__icon {
  color: #ff9500;
}
.p-emptyDraftCard--error {
  border-color: #ff3b30;
  background: linear-gradient(135deg, #fff5f5 0%, #ffffff 100%);
}
.p-emptyDraftCard--error .p-emptyDraftCard__icon {
  color: #ff3b30;
}
.p-emptyDraftCard--success {
  border-color: #30d158;
  background: linear-gradient(135deg, #f0fff4 0%, #ffffff 100%);
}
.p-emptyDraftCard--success .p-emptyDraftCard__icon {
  color: #30d158;
}
.p-emptyDraftCard--loading {
  opacity: 0.7;
  pointer-events: none;
}
.p-emptyDraftCard--loading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  border: 2px solid #e1e8ed;
  border-top-color: #1da1f2;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
.p-emptyDraftCard__header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.p-emptyDraftCard__icon {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(29, 161, 242, 0.1);
  border-radius: 50%;
  font-size: 1.5rem;
  color: #1da1f2;
}
.p-emptyDraftCard__icon svg {
  transition: transform 0.3s ease;
}
.p-emptyDraftCard__icon:hover svg {
  transform: scale(1.1);
}
.p-emptyDraftCard__title {
  flex: 1;
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #14171a;
  line-height: 1.3;
}
@media (max-width: 768px) {
  .p-emptyDraftCard__title {
    font-size: 1.25rem;
  }
}
.p-emptyDraftCard__subtitle {
  margin: 0.5rem 0 0 0;
  font-size: 0.95rem;
  color: #657786;
  line-height: 1.4;
}
.p-emptyDraftCard__content {
  margin-bottom: 2rem;
}
.p-emptyDraftCard__content p {
  margin: 0 0 1rem 0;
  color: #14171a;
  line-height: 1.6;
}
.p-emptyDraftCard__content p:last-child {
  margin-bottom: 0;
}
.p-emptyDraftCard__progress {
  margin: 1.5rem 0;
  padding: 1rem;
  background: #f7f9fa;
  border-radius: 8px;
  border: 1px solid #e1e8ed;
}
.p-emptyDraftCard__progressLabel {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  color: #657786;
}
.p-emptyDraftCard__progressBar {
  width: 100%;
  height: 8px;
  background: #e1e8ed;
  border-radius: 4px;
  overflow: hidden;
}
.p-emptyDraftCard__progressBar-fill {
  height: 100%;
  background: linear-gradient(90deg, #1da1f2, #1991db);
  border-radius: 4px;
  transition: width 0.8s ease;
  position: relative;
}
.p-emptyDraftCard__progressBar-fill::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  animation: shimmer 2s infinite;
}
.p-emptyDraftCard__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media (max-width: 480px) {
  .p-emptyDraftCard__actions {
    flex-direction: column;
  }
  .p-emptyDraftCard__actions .p-emptyDraftCard__button {
    width: 100%;
    justify-content: center;
  }
}
.p-emptyDraftCard__button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border: 2px solid transparent;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
  white-space: nowrap;
}
.p-emptyDraftCard__button:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(29, 161, 242, 0.2);
}
.p-emptyDraftCard__button--primary {
  background: #1da1f2;
  color: #ffffff;
}
.p-emptyDraftCard__button--primary:hover {
  background: #1991db;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(29, 161, 242, 0.2);
}
.p-emptyDraftCard__button--primary:active {
  transform: translateY(0);
}
.p-emptyDraftCard__button--secondary {
  background: #ffffff;
  color: #1da1f2;
  border-color: #1da1f2;
}
.p-emptyDraftCard__button--secondary:hover {
  background: #f7f9fa;
  transform: translateY(-1px);
}
.p-emptyDraftCard__button--danger {
  background: #ffffff;
  color: #ff3b30;
  border-color: #ff3b30;
}
.p-emptyDraftCard__button--danger:hover {
  background: #fff5f5;
  transform: translateY(-1px);
}
.p-emptyDraftCard__button:disabled, .p-emptyDraftCard__button--disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none !important;
}
.p-emptyDraftCard__button:disabled:hover, .p-emptyDraftCard__button--disabled:hover {
  transform: none;
  box-shadow: none;
}
.p-emptyDraftCard__button--loading {
  pointer-events: none;
  position: relative;
  color: transparent;
}
.p-emptyDraftCard__button--loading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border: 2px solid;
  border-color: currentColor transparent transparent transparent;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
.p-emptyDraftCard__details {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e1e8ed;
}
.p-emptyDraftCard__details--collapsed {
  display: none;
}
.p-emptyDraftCard__detailsToggle {
  background: none;
  border: none;
  color: #1da1f2;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0.5rem 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.p-emptyDraftCard__detailsToggle:hover {
  text-decoration: underline;
}
.p-emptyDraftCard__detailsToggle::after {
  content: "▼";
  transition: transform 0.3s ease;
}
.p-emptyDraftCard__detailsToggle.is-expanded::after {
  transform: rotate(180deg);
}
.p-emptyDraftCard__fieldList {
  margin: 1rem 0;
}
.p-emptyDraftCard__fieldList dt {
  font-weight: 600;
  color: #14171a;
  margin: 0.5rem 0 0.25rem 0;
}
.p-emptyDraftCard__fieldList dd {
  margin: 0 0 0.5rem 1rem;
  color: #657786;
  font-size: 0.875rem;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes shimmer {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.p-emptyDraftCard {
  animation: fadeInUp 0.5s ease;
}

@media (prefers-contrast: high) {
  .p-emptyDraftCard {
    border-width: 3px;
  }
  .p-emptyDraftCard__button {
    border-width: 3px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-emptyDraftCard,
  .p-emptyDraftCard__button,
  .p-emptyDraftCard__icon svg,
  .p-emptyDraftCard__progressBar-fill {
    transition: none;
    animation: none;
  }
  .p-emptyDraftCard__progressBar-fill::after {
    display: none;
  }
}
@media (prefers-color-scheme: dark) {
  .p-emptyDraftCard {
    background: #1e1e1e;
    border-color: #333333;
    color: #ffffff;
  }
  .p-emptyDraftCard__title {
    color: #ffffff;
  }
  .p-emptyDraftCard__subtitle, .p-emptyDraftCard__content p {
    color: #cccccc;
  }
  .p-emptyDraftCard__progress {
    background: #2a2a2a;
    border-color: #333333;
  }
  .p-emptyDraftCard__progressBar {
    background: #333333;
  }
  .p-emptyDraftCard__button--secondary {
    background: #2a2a2a;
    border-color: #1da1f2;
  }
  .p-emptyDraftCard__button--secondary:hover {
    background: #333333;
  }
}
/**
 * ステップ保存状態スタイル
 * Phase 4: プログレスバーの保存状態表示
 */
.entry-form-progress .step {
  position: relative;
}
.entry-form-progress .step .step-save-status {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.5rem;
  font-size: 0.75rem;
  transition: all 0.3s ease;
  opacity: 0.8;
}
.entry-form-progress .step .step-save-status .save-icon {
  width: 14px;
  height: 14px;
  margin-right: 4px;
  transition: all 0.3s ease;
}
.entry-form-progress .step .step-save-status .save-text {
  font-weight: 500;
  transition: color 0.3s ease;
}
.entry-form-progress .step .step-save-status[data-status=none], .entry-form-progress .step .step-save-status[data-status=unsaved] {
  color: #999;
}
.entry-form-progress .step .step-save-status[data-status=none] .save-icon::before, .entry-form-progress .step .step-save-status[data-status=unsaved] .save-icon::before {
  content: "○";
  color: #ccc;
  font-weight: normal;
}
.entry-form-progress .step .step-save-status[data-status=saving] {
  color: #0073aa;
  animation: pulse-save 1.5s infinite;
}
.entry-form-progress .step .step-save-status[data-status=saving] .save-icon::before {
  content: "↻";
  color: #0073aa;
  animation: spin 1s linear infinite;
}
.entry-form-progress .step .step-save-status[data-status=saving] .save-text {
  color: #0073aa;
}
.entry-form-progress .step .step-save-status[data-status=saved] {
  color: #28a745;
}
.entry-form-progress .step .step-save-status[data-status=saved] .save-icon::before {
  content: "✓";
  color: #28a745;
  font-weight: bold;
}
.entry-form-progress .step .step-save-status[data-status=saved] .save-text {
  color: #28a745;
}
.entry-form-progress .step .step-save-status[data-status=error] {
  color: #dc3545;
}
.entry-form-progress .step .step-save-status[data-status=error] .save-icon::before {
  content: "✕";
  color: #dc3545;
  font-weight: bold;
}
.entry-form-progress .step .step-save-status[data-status=error] .save-text {
  color: #dc3545;
}
.entry-form-progress .step.step--saved .step-number {
  background: rgb(40, 167, 69);
  border-color: #28a745;
  color: #fff;
}
.entry-form-progress .step.step--saved .step-label {
  color: #333;
  font-weight: 600;
}
.entry-form-progress .step.step--saving .step-number {
  background: rgba(0, 115, 170, 0.1);
  border-color: #0073aa;
  color: #0073aa;
  animation: pulse-step 1.5s infinite;
}
.entry-form-progress .step.step--error .step-number {
  background: rgba(220, 53, 69, 0.1);
  border-color: #dc3545;
  color: #dc3545;
}

.save-success-message {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 0.5rem;
  padding: 0.5rem 1rem;
  background: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
  border-radius: 6px;
  font-size: 0.875rem;
  white-space: nowrap;
  z-index: 1000;
  opacity: 0;
  animation: fadeInUp 0.3s ease forwards, fadeOut 0.3s ease 2.7s forwards;
}
.save-success-message::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid #c3e6cb;
}
.save-success-message::after {
  content: "";
  position: absolute;
  top: -7px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 7px solid #d4edda;
}

@keyframes pulse-save {
  0%, 100% {
    opacity: 0.8;
  }
  50% {
    opacity: 1;
  }
}
@keyframes pulse-step {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(0, 115, 170, 0.4);
  }
  50% {
    box-shadow: 0 0 0 4px rgba(0, 115, 170, 0.2);
  }
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@media (max-width: 768px) {
  .entry-form-progress .step .step-save-status {
    font-size: 0.6875rem;
    margin-top: 0.25rem;
  }
  .entry-form-progress .step .step-save-status .save-icon {
    width: 12px;
    height: 12px;
    margin-right: 2px;
  }
  .save-success-message {
    font-size: 0.8125rem;
    padding: 0.375rem 0.75rem;
    max-width: 90vw;
    white-space: normal;
    text-align: center;
  }
}
@media (prefers-color-scheme: dark) {
  .entry-form-progress .step .step-save-status[data-status=none], .entry-form-progress .step .step-save-status[data-status=unsaved] {
    color: #aaa;
  }
  .entry-form-progress .step .step-save-status[data-status=none] .save-icon::before, .entry-form-progress .step .step-save-status[data-status=unsaved] .save-icon::before {
    color: #666;
  }
  .save-success-message {
    background: #1e3a2e;
    color: #a3d9b1;
    border-color: #2d5a41;
  }
  .save-success-message::before {
    border-bottom-color: #2d5a41;
  }
  .save-success-message::after {
    border-bottom-color: #1e3a2e;
  }
}
#wc-message-container,
.message-container {
  margin-top: 20px;
  margin-bottom: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 100%;
}
@media (max-width: calc(576px - 1px)) {
  #wc-message-container,
  .message-container {
    margin-top: 15px;
    margin-bottom: 15px;
  }
}

.message {
  display: flex;
  align-items: flex-start;
  padding: 14px 16px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.05);
  pointer-events: auto;
  animation: slideInRight 0.3s ease-out;
  transition: all 0.3s ease;
  border-left: 4px solid transparent;
}
.message:hover {
  transform: translateX(-5px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.08);
}
.message.message-closing {
  animation: slideOutRight 0.3s ease-out;
  opacity: 0;
}

.message-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-right: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.message-icon svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.message-content {
  flex: 1;
  font-size: 14px;
  line-height: 1.5;
  color: #333333;
  word-break: break-word;
  padding-right: 8px;
}

.message-close {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-left: 8px;
  padding: 0;
  background: transparent;
  border: none;
  color: #999999;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}
.message-close:hover {
  background: rgba(0, 0, 0, 0.05);
  color: #666666;
  transform: scale(1.1);
}
.message-close:focus {
  outline: 2px solid rgba(0, 123, 255, 0.25);
  outline-offset: 2px;
}

.message-success {
  border-left-color: #22c55e;
  background: linear-gradient(135deg, #f0fdf4 0%, #ffffff 100%);
}
.message-success .message-icon {
  color: #22c55e;
  background: rgba(34, 197, 94, 0.1);
  border-radius: 50%;
  padding: 2px;
}
.message-success .message-content {
  color: #166534;
}
.message-error {
  border-left-color: #ef4444;
  background: linear-gradient(135deg, #fef2f2 0%, #ffffff 100%);
}
.message-error .message-icon {
  color: #ef4444;
  background: rgba(239, 68, 68, 0.1);
  border-radius: 50%;
  padding: 2px;
}
.message-error .message-content {
  color: #991b1b;
}
.message-warning {
  border-left-color: #f59e0b;
  background: linear-gradient(135deg, #fffbeb 0%, #ffffff 100%);
}
.message-warning .message-icon {
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.1);
  border-radius: 50%;
  padding: 2px;
}
.message-warning .message-content {
  color: #92400e;
}
.message-info {
  border-left-color: #3b82f6;
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
}
.message-info .message-icon {
  color: #3b82f6;
  background: rgba(59, 130, 246, 0.1);
  border-radius: 50%;
  padding: 2px;
}
.message-info .message-content {
  color: #1e40af;
}
.message-loading {
  border-left-color: #8b5cf6;
  background: linear-gradient(135deg, #f3f4f6 0%, #ffffff 100%);
}
.message-loading .message-icon {
  color: #8b5cf6;
  animation: spin 1s linear infinite;
}
.message-loading .message-icon svg {
  animation: pulse 1.5s ease-in-out infinite;
}
.message-loading .message-content {
  color: #4c1d95;
}

@keyframes slideInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes slideOutRight {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
@media (prefers-reduced-motion: reduce) {
  .message {
    animation: none;
    transition: none;
  }
  .message-closing {
    animation: none;
  }
  .message .message-icon {
    animation: none;
  }
  .message .message-icon svg {
    animation: none;
  }
}
/**
 * 過去大会アーカイブページ
 * 大会一覧の表示とフィルタリング機能
 */
.past-contest-archive__header {
  text-align: center;
  margin-bottom: 3rem;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  .past-contest-archive__header {
    margin-bottom: 48px;
    padding: 48px 24px;
  }
}
.past-contest-archive__title {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 24px;
  letter-spacing: -0.02em;
  color: #111;
}
@media (max-width: 768px) {
  .past-contest-archive__title {
    font-size: 24px;
  }
}

/**
 * 過去大会フィルタリング
 * 検索・絞り込み機能のUI - Enhanced Design
 */
.past-contest-filters {
  background: #ffffff;
  border-radius: 20px;
  padding: 64px;
  margin-bottom: 64px;
  box-shadow: 0 4px 24px rgba(0, 124, 186, 0.08), 0 1px 3px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 107, 53, 0.1);
  position: relative;
}
.past-contest-filters::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 4px;
  background: linear-gradient(90deg, #007cba 0%, #ff6b35 100%);
  border-radius: 0 0 10px 10px;
}
@media (max-width: 768px) {
  .past-contest-filters {
    padding: 48px;
    margin-bottom: 48px;
    border-radius: 16px;
  }
}
.past-contest-filters__form {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.past-contest-filters__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 48px;
  align-items: end;
}
@media (max-width: 768px) {
  .past-contest-filters__row {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.past-contest-filters__item {
  display: flex;
  flex-direction: column;
  position: relative;
}
.past-contest-filters__item label {
  font-weight: 700;
  color: #212529;
  margin-bottom: 16px;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  position: relative;
}
.past-contest-filters__item label::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 20px;
  height: 2px;
  background: #ff6b35;
  border-radius: 1px;
}
.past-contest-filters__item select,
.past-contest-filters__item input[type=text] {
  padding: 24px 32px;
  border: 2px solid #dee2e6;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 500;
  background: #ffffff;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.past-contest-filters__item select::-moz-placeholder, .past-contest-filters__item input[type=text]::-moz-placeholder {
  color: #adb5bd;
  font-weight: 400;
}
.past-contest-filters__item select::placeholder,
.past-contest-filters__item input[type=text]::placeholder {
  color: #adb5bd;
  font-weight: 400;
}
.past-contest-filters__item select:focus,
.past-contest-filters__item input[type=text]:focus {
  outline: none;
  border-color: #007cba;
  box-shadow: 0 0 0 4px rgba(0, 124, 186, 0.1), 0 4px 12px rgba(0, 124, 186, 0.15);
  transform: translateY(-1px);
}
.past-contest-filters__item select:hover:not(:focus),
.past-contest-filters__item input[type=text]:hover:not(:focus) {
  border-color: rgba(0, 124, 186, 0.5);
}
.past-contest-filters__item select {
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #6c757d 50%), linear-gradient(135deg, #6c757d 50%, transparent 50%);
  background-position: right 20px center, right 16px center;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
  padding-right: 64px;
}
.past-contest-filters__item select:focus {
  background-image: linear-gradient(45deg, transparent 50%, #007cba 50%), linear-gradient(135deg, #007cba 50%, transparent 50%);
}
.past-contest-filters__button {
  background: linear-gradient(135deg, #007cba 0%, rgba(255, 107, 53, 0.9) 100%);
  color: #ffffff;
  border: none;
  padding: 16px 16px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 12px rgba(0, 124, 186, 0.3);
  position: relative;
  overflow: hidden;
}
.past-contest-filters__button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}
.past-contest-filters__button:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 124, 186, 0.4);
}
.past-contest-filters__button:hover::before {
  left: 100%;
}
.past-contest-filters__button:active {
  transform: translateY(-1px);
}
.past-contest-filters__button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
  box-shadow: 0 2px 8px rgba(0, 124, 186, 0.2);
}
.past-contest-filters__reset {
  color: #6c757d;
  text-decoration: none;
  font-weight: 500;
  padding: 16px 16px;
  border-radius: 12px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 2px solid #e9ecef;
  text-align: center;
  position: relative;
}
.past-contest-filters__reset:hover {
  background: #f8f9fa;
  border-color: #6c757d;
  text-decoration: none;
  transform: translateY(-1px);
}
.past-contest-filters__reset::before {
  content: "↻";
  margin-right: 8px;
  font-size: 1.1em;
}

/**
 * 過去大会リスト
 * 大会のグリッド表示
 */
.past-contest-list__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 2rem;
  margin-bottom: 3rem;
}
@media (max-width: 768px) {
  .past-contest-list__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/**
 * 2列タイルレイアウトグリッド
 */
.past-contest-tiles {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px;
  margin-top: 64px;
}
@media (max-width: 768px) {
  .past-contest-tiles {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
@media (min-width: 1400px) {
  .past-contest-tiles {
    gap: 64px;
  }
}

/**
 * 過去大会カード - Premium Design
 * 個別大会の表示カード
 */
.past-contest-card {
  background: #ffffff;
  box-shadow: 0 8px 32px rgba(0, 124, 186, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid rgba(255, 107, 53, 0.08);
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.past-contest-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(0, 124, 186, 0.02) 0%, rgba(255, 107, 53, 0.02) 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
}
.past-contest-card__header {
  padding: 16px;
  background: #111;
  color: #ffffff;
  position: relative;
  overflow: hidden;
}
.past-contest-card__header::after {
  content: "";
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
  transition: transform 0.6s ease;
}
.past-contest-card__title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 0;
  position: relative;
  z-index: 2;
}
.past-contest-card__title a {
  color: #ffffff;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
}
.past-contest-card__title a::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: rgba(255, 255, 255, 0.8);
  transition: width 0.3s ease;
}
.past-contest-card__title a:hover {
  text-decoration: none;
}
.past-contest-card__title a:hover::after {
  width: 100%;
}
.past-contest-card__theme {
  font-size: 16px;
  opacity: 0.9;
  font-weight: 500;
  position: relative;
  z-index: 2;
  font-style: italic;
}
.past-contest-card__content {
  padding: 48px;
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.past-contest-card__featured-image {
  margin-bottom: 32px;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  background: linear-gradient(135deg, rgba(0, 124, 186, 0.05) 0%, rgba(255, 107, 53, 0.05) 100%);
}
.past-contest-card__featured-image img {
  width: 100%;
  height: 400px;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (min-width: 768px) {
  .past-contest-card__featured-image img {
    height: 300px;
  }
}
.past-contest-card__featured-image:hover img {
  transform: scale(1.05);
}
.past-contest-card__image-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, transparent 100%);
  color: #ffffff;
  padding: 16px 24px;
  font-size: 14px;
  font-weight: 500;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.past-contest-card__overview {
  color: #6c757d;
  line-height: 1.8;
  margin-bottom: 32px;
  font-weight: 400;
}
.past-contest-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  margin-bottom: 48px;
}
.past-contest-card__meta span {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: #6c757d;
  font-weight: 500;
  padding: 6px 12px;
  background: rgba(0, 124, 186, 0.05);
  border-radius: 20px;
  border: 1px solid rgba(0, 124, 186, 0.1);
}
.past-contest-card__meta span::before {
  content: "●";
  margin-right: 8px;
  color: #ff6b35;
  font-size: 0.6em;
}
.past-contest-card__year {
  font-weight: 700;
  color: #007cba;
}
.past-contest-card__awards {
  margin-bottom: 16px;
  position: relative;
}
.past-contest-card__awards h3 {
  font-size: 14px;
  font-weight: 700;
  color: #111;
  margin-bottom: 24px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  position: relative;
}
.past-contest-card__awards h3::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 30px;
  height: 2px;
  background: #ff6b35;
  border-radius: 1px;
}
.past-contest-card .past-contest-awards__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.past-contest-card .past-contest-awards__list .past-contest-awards__item {
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 107, 53, 0.1);
  position: relative;
}
@media (min-width: 768px) {
  .past-contest-card .past-contest-awards__list .past-contest-awards__item {
    padding: 16px 0;
  }
}
.past-contest-card .past-contest-awards__list .past-contest-awards__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.past-contest-card .past-contest-awards__list .past-contest-awards__item strong {
  color: #111;
  font-weight: 700;
  background: rgba(17, 17, 17, 0.05);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 1.2rem;
}
.past-contest-card__thumbnails {
  display: flex;
  gap: 16px;
  margin-bottom: 32px;
}
.past-contest-card__thumbnails img {
  width: 64px;
  height: 64px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
  border: 2px solid rgba(0, 124, 186, 0.2);
  transition: all 0.3s ease;
}
.past-contest-card__thumbnails img:hover {
  border-color: #ff6b35;
  transform: scale(1.05);
}
.past-contest-card__footer {
  padding: 0 16px 16px;
  position: relative;
  z-index: 2;
}
.past-contest-card__link {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, #111 0%, #222 100%);
  color: #ffffff;
  padding: 16px 16px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 12px rgba(0, 124, 186, 0.3);
  position: relative;
  overflow: hidden;
}
.past-contest-card__link:hover {
  transform: translateY(-2px);
  text-decoration: none;
  color: #fff;
}
.past-contest-card__link:hover::before {
  left: 100%;
}
.past-contest-card__link::after {
  content: "→";
  margin-left: 16px;
  transition: transform 0.3s ease;
}
.past-contest-card__link:hover::after {
  transform: translateX(4px);
}

/**
 * 過去大会詳細ページ
 * 単一大会の詳細表示
 */
.past-contest-single {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

/**
 * パンくずリスト
 * ナビゲーション用
 */
.past-contest-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 2rem;
  font-size: 0.9rem;
}
.past-contest-breadcrumb a {
  color: var(--color-primary, #2563eb);
  text-decoration: none;
}
.past-contest-breadcrumb a:hover {
  text-decoration: underline;
}
.past-contest-breadcrumb .separator {
  color: var(--color-text-secondary, #6b7280);
  margin: 0 0.25rem;
}
.past-contest-breadcrumb .current {
  color: var(--color-text-secondary, #6b7280);
}

/**
 * 過去大会ヘッダー - Premium Hero Design
 * 大会の基本情報表示
 */
.past-contest-header {
  text-align: center;
  padding: 48px 0;
  background: linear-gradient(120deg, rgba(0, 0, 0, 0.92) 0%, rgba(0, 124, 186, 0.85) 35%, rgba(255, 107, 53, 0.8) 70%, rgba(255, 255, 255, 0.07) 100%), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="welding" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse"><circle cx="10" cy="10" r="1" fill="white" opacity="0.07"/></pattern></defs><rect width="100" height="100" fill="url(%23welding)"/></svg>');
  color: #ffffff;
  margin-bottom: 48px;
  position: relative;
  overflow: hidden;
}
.past-contest-header::after {
  content: "";
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.04) 0%, transparent 70%);
  animation: rotate 20s linear infinite;
}
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 768px) {
  .past-contest-header {
    padding: 48px 32px;
    border-radius: 20px;
  }
}
.past-contest-header__title {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 900;
  margin-bottom: 0;
  position: relative;
  z-index: 2;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
  letter-spacing: -0.02em;
}
@media (max-width: 768px) {
  .past-contest-header__title {
    margin-bottom: 24px;
  }
}
.past-contest-header__theme {
  font-size: 20px;
  opacity: 0.95;
  margin-bottom: 48px;
  font-style: italic;
  font-weight: 500;
  position: relative;
  z-index: 2;
  background: rgba(255, 255, 255, 0.1);
  padding: 24px 48px;
  border-radius: 30px;
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.past-contest-header__meta {
  display: flex;
  justify-content: center;
  gap: 64px;
  margin-bottom: 48px;
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  .past-contest-header__meta {
    flex-direction: column;
    gap: 16px;
  }
}
.past-contest-header__meta span {
  font-size: 16px;
  opacity: 0.9;
  font-weight: 500;
  padding: 16px 32px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}
.past-contest-header__meta span::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  background: #ff6b35;
  border-radius: 50%;
  margin-right: 16px;
}
.past-contest-header__terms {
  display: flex;
  justify-content: center;
  gap: 32px;
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  .past-contest-header__terms {
    flex-direction: column;
    align-items: center;
  }
}

/**
 * セクション共通
 * 各セクションの基本レイアウト
 */
.past-contest-section__title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-text-primary, #1f2937);
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 3px solid var(--color-primary, #2563eb);
}

/**
 * 大会概要
 * 大会の詳細説明
 */
.past-contest-overview {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 3rem;
}
.past-contest-overview__content {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--color-text-secondary, #374151);
}

/**
 * 受賞作品セクション
 * 受賞作品の表示
 */
.past-contest-winners__list {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

/**
 * Past Awards List - Clean Reference Layout
 * Matching the reference HTML structure with clean, organized design
 */
.p-past-awards_list {
  background: #ffffff;
  box-shadow: 0 8px 32px rgba(0, 124, 186, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  margin-bottom: 64px;
  border: 1px solid rgba(255, 107, 53, 0.1);
}
.p-past-awards_list > h2 {
  background: linear-gradient(45deg, #acacac 0%, #9e9e9e 16.31%, #e8e8e8 37.24%, #9e9e9e 68.2%, #757575 100%);
  color: #000000;
  font-size: 32px;
  font-weight: 700;
  margin: 0 0 32px 0;
  padding: 16px 16px;
  text-align: center;
  position: relative;
}
.p-past-awards_list > picture {
  display: block;
  margin-bottom: 48px;
}
.p-past-awards_list > picture img {
  width: 100%;
  height: auto;
  max-height: 500px;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
}
.p-past-awards_list .gallery-main {
  margin-bottom: 32px;
}
.p-past-awards_list .gallery-main picture {
  display: block;
}
.p-past-awards_list .gallery-main picture img {
  width: 100%;
  height: auto;
  max-height: 500px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.p-past-awards_list .gallery-thumbnails {
  display: flex;
  gap: 16px;
  padding: 0 48px 32px;
  flex-wrap: wrap;
  justify-content: center;
}
.p-past-awards_list .gallery-thumbnail {
  background: none;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s ease;
}
.p-past-awards_list .gallery-thumbnail:hover {
  border-color: rgba(0, 124, 186, 0.5);
  transform: translateY(-2px);
}
.p-past-awards_list .gallery-thumbnail.active {
  border-color: #007cba;
  box-shadow: 0 4px 12px rgba(0, 124, 186, 0.3);
}
.p-past-awards_list .gallery-thumbnail .thumbnail__image {
  width: 60px;
  height: 60px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .p-past-awards_list .gallery-thumbnail .thumbnail__image {
    width: 50px;
    height: 50px;
  }
}

.p-past-awards_title {
  font-size: 24px;
  font-weight: 700;
  color: #ffffff;
  text-align: center;
  margin: 0 16px 16px;
  background: #111;
  padding: 16px 16px;
  position: relative;
  -webkit-clip-path: polygon(30px 0%, 100% 0%, 100% 100%, 0% 100%, 0 30px);
          clip-path: polygon(30px 0%, 100% 0%, 100% 100%, 0% 100%, 0 30px);
}
@media (max-width: 768px) {
  .p-past-awards_title {
    font-size: 20px;
    margin: 0 48px 24px;
  }
}

.p-past-awards_list-content {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 16px;
  padding: 0 16px 16px;
}
@media (max-width: 768px) {
  .p-past-awards_list-content {
    grid-template-columns: 1fr;
    gap: 48px;
    padding: 0 48px 48px;
  }
}

.p-past-awards_img {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.p-past-awards_img picture {
  display: block;
  margin-bottom: 24px;
}
.p-past-awards_img picture img {
  width: 200px;
  height: 200px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
  border: 3px solid rgba(255, 107, 53, 0.3);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}
@media (max-width: 768px) {
  .p-past-awards_img picture img {
    width: 150px;
    height: 150px;
  }
}

.p-past-awards_author {
  font-size: 18px;
  font-weight: 700;
  color: #212529;
  margin: 0;
  padding: 16px 32px;
  background: rgba(255, 107, 53, 0.05);
  border-radius: 20px;
  border: 1px solid rgba(255, 107, 53, 0.2);
  display: inline-block;
}

.p-past-awards_grandprix {
  padding: 16px;
  position: relative;
}
.p-past-awards_grandprix::before {
  content: '"';
  position: absolute;
  top: 24px;
  left: 24px;
  font-size: 3rem;
  color: rgba(0, 124, 186, 0.15);
  font-family: serif;
  line-height: 1;
}

.p-grandprix_title {
  font-size: 18px;
  font-weight: 700;
  color: #007cba;
  margin: 0 0 32px 0;
  position: relative;
  z-index: 2;
}
.p-grandprix_title::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 40px;
  height: 3px;
  background: #ff6b35;
  border-radius: 2px;
}

.p-past-awards_description {
  font-size: 16px;
  line-height: 1.8;
  color: #212529;
  margin: 0;
  position: relative;
  z-index: 2;
  padding-left: 32px;
}
@media (max-width: 768px) {
  .p-past-awards_description {
    padding-left: 0;
  }
}

.u-mb16 {
  margin-bottom: 16px;
}

.u-mt8 {
  margin-top: 8px;
}

.u-mb8 {
  margin-bottom: 8px;
}

/**
 * 特記事項
 * 追加情報の表示
 */
.past-contest-notes {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 3rem;
}
.past-contest-notes__content {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--color-text-secondary, #374151);
}

/**
 * ナビゲーション
 * 前後の大会への移動
 */
.past-contest-navigation {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 3rem;
}
.past-contest-navigation__links {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
@media (max-width: 768px) {
  .past-contest-navigation__links {
    flex-direction: column;
    gap: 1rem;
  }
}
.past-contest-navigation__prev, .past-contest-navigation__next {
  display: flex;
  flex-direction: column;
  padding: 1rem;
  border-radius: 8px;
  text-decoration: none;
  transition: background-color 0.2s;
  max-width: 45%;
}
@media (max-width: 768px) {
  .past-contest-navigation__prev, .past-contest-navigation__next {
    max-width: 100%;
  }
}
.past-contest-navigation__prev:hover, .past-contest-navigation__next:hover {
  background: var(--color-bg-secondary, #f8fafc);
}
.past-contest-navigation__prev .label, .past-contest-navigation__next .label {
  font-size: 0.9rem;
  color: var(--color-text-secondary, #6b7280);
  margin-bottom: 0.25rem;
}
.past-contest-navigation__prev .title, .past-contest-navigation__next .title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-text-primary, #1f2937);
}
.past-contest-navigation__prev {
  text-align: left;
}
.past-contest-navigation__next {
  text-align: right;
}
.past-contest-navigation__back {
  text-align: center;
}

.back-to-archive {
  display: inline-flex;
  align-items: center;
  background: #111;
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  transition: background-color 0.2s, transform 0.1s;
}
.back-to-archive:hover {
  background: var(--color-primary-dark, #111);
  color: #fff;
  transform: translateY(-1px);
}
.back-to-archive::before {
  content: "←";
  margin-right: 0.5rem;
}

/**
 * ページネーション
 * 大会一覧のページ送り
 */
.past-contest-pagination {
  display: flex;
  justify-content: center;
  margin-top: 3rem;
}
.past-contest-pagination .page-numbers {
  display: flex;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.past-contest-pagination .page-numbers li a,
.past-contest-pagination .page-numbers li span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  transition: background-color 0.2s, color 0.2s;
}
.past-contest-pagination .page-numbers li a {
  background: white;
  color: var(--color-text-primary, #1f2937);
  border: 1px solid var(--color-border, #d1d5db);
}
.past-contest-pagination .page-numbers li a:hover {
  background: var(--color-primary, #2563eb);
  color: white;
}
.past-contest-pagination .page-numbers li span.current {
  background: var(--color-primary, #2563eb);
  color: white;
}

/**
 * 検索結果なし
 * 結果が見つからない場合の表示
 */
.past-contest-no-results {
  text-align: center;
  padding: 3rem;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.past-contest-no-results h3 {
  font-size: 1.5rem;
  color: var(--color-text-primary, #1f2937);
  margin-bottom: 1rem;
}
.past-contest-no-results p {
  color: var(--color-text-secondary, #6b7280);
  font-size: 1.1rem;
}

/**
 * 項目タグ
 * タクソノミーの表示
 */
.term-tag {
  display: inline-block;
  background: rgba(255, 255, 255, 0.2);
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 500;
}

/**
 * レスポンシブ対応
 * モバイル・タブレット用の調整
 */
@media (max-width: 768px) {
  .past-contest-archive__title {
    font-size: 2rem;
  }
  .past-contest-filters {
    padding: 1rem;
  }
  .past-contest-card__header {
    padding: 1rem;
  }
  .past-contest-card__content {
    padding: 1rem;
  }
  .past-contest-card__featured-image {
    margin-bottom: 1rem;
  }
  .past-contest-card__featured-image img {
    height: 250px;
  }
  .past-contest-card__image-caption {
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
  }
  .past-contest-card__footer {
    padding: 0 1rem 1rem;
  }
  .p-past-awards_list > h2 {
    font-size: 18px;
    padding: 32px 48px;
  }
  .p-past-awards_title {
    font-size: 18px;
  }
  .p-past-awards_list-content {
    padding: 0 32px 32px;
  }
  .p-past-awards_grandprix {
    padding: 32px;
  }
}
/**
 * プリント用スタイル
 * 印刷時の調整
 */
@media print {
  .past-contest-filters,
  .past-contest-navigation,
  .past-contest-pagination {
    display: none;
  }
  .past-contest-single {
    box-shadow: none;
  }
  .winner-item {
    box-shadow: none;
    border: 1px solid #ccc;
    page-break-inside: avoid;
  }
}
/**
 * 事前エントリーページスタイル
 */
#pre-entry-page {
  padding: 60px 0;
  min-height: 80vh;
}

.pre-entry-container {
  max-width: 800px;
  margin: 0 auto;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  padding: 40px;
}
@media (max-width: 768px) {
  .pre-entry-container {
    padding: 20px;
  }
}

.pre-entry-title {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 40px;
  color: #333;
}
@media (max-width: 768px) {
  .pre-entry-title {
    font-size: 1.5rem;
    margin-bottom: 30px;
  }
}

.pre-entry-expired {
  text-align: center;
  padding: 40px 20px;
}
.pre-entry-expired .expired-icon {
  font-size: 4rem;
  margin-bottom: 20px;
}
.pre-entry-expired h2 {
  font-size: 1.5rem;
  color: #666;
  margin-bottom: 20px;
}
.pre-entry-expired p {
  color: #666;
  line-height: 1.8;
  margin-bottom: 10px;
}

.pre-entry-completed {
  text-align: center;
}
.pre-entry-completed .completed-icon {
  font-size: 4rem;
  color: #4CAF50;
  margin-bottom: 20px;
}
.pre-entry-completed h2 {
  font-size: 1.8rem;
  color: #333;
  margin-bottom: 30px;
}
.pre-entry-completed .entry-info {
  background: #f5f5f5;
  padding: 25px;
  border-radius: 8px;
  margin-bottom: 30px;
  text-align: left;
}
.pre-entry-completed .entry-info p {
  margin-bottom: 10px;
  font-size: 1rem;
}
.pre-entry-completed .entry-info p strong {
  display: inline-block;
  min-width: 150px;
  color: #333;
}
.pre-entry-completed .benefit-info {
  background: #FFF3E0;
  border: 2px solid #FF9800;
  border-radius: 8px;
  padding: 25px;
  margin-bottom: 30px;
}
.pre-entry-completed .benefit-info h3 {
  font-size: 1.3rem;
  color: #FF6F00;
  margin-bottom: 15px;
}
.pre-entry-completed .benefit-info p {
  font-size: 1.1rem;
  line-height: 1.8;
}
.pre-entry-completed .benefit-info p strong {
  color: #FF6F00;
  font-size: 1.2rem;
}
.pre-entry-completed .actual-entry-status {
  margin-top: 30px;
  padding: 20px;
  border-radius: 8px;
}
.pre-entry-completed .actual-entry-status .status-complete {
  color: #4CAF50;
  font-size: 1.2rem;
  font-weight: bold;
}
.pre-entry-completed .actual-entry-status .status-pending {
  color: #666;
  font-size: 1.1rem;
  margin-bottom: 20px;
}
.pre-entry-completed .actual-entry-status .btn-entry {
  display: inline-block;
  background: #2196F3;
  color: #fff;
  padding: 12px 30px;
  border-radius: 4px;
  text-decoration: none;
  font-weight: bold;
  transition: background 0.3s;
}
.pre-entry-completed .actual-entry-status .btn-entry:hover {
  background: #1976D2;
}

.pre-entry-form-container .deadline-warning {
  background: #FFF3E0;
  border: 2px solid #FF9800;
  border-radius: 8px;
  padding: 15px;
  text-align: center;
  margin-bottom: 30px;
  font-size: 1.1rem;
}
.pre-entry-form-container .deadline-warning strong {
  color: #FF6F00;
}
.pre-entry-form-container .deadline-warning.today {
  background: #FFEBEE;
  border-color: #F44336;
}
.pre-entry-form-container .deadline-warning.today strong {
  color: #D32F2F;
}
.pre-entry-form-container .pre-entry-description {
  margin-bottom: 40px;
}
.pre-entry-form-container .pre-entry-description h2 {
  font-size: 1.5rem;
  margin-bottom: 20px;
  color: #333;
}
.pre-entry-form-container .pre-entry-description p {
  font-size: 1.1rem;
  line-height: 1.8;
  margin-bottom: 20px;
  color: #666;
}
.pre-entry-form-container .pre-entry-description .benefit-box {
  background: linear-gradient(135deg, #FFF3E0 0%, #FFE0B2 100%);
  border-radius: 8px;
  padding: 25px;
  margin-top: 20px;
}
.pre-entry-form-container .pre-entry-description .benefit-box h3 {
  font-size: 1.3rem;
  color: #FF6F00;
  margin-bottom: 15px;
}
.pre-entry-form-container .pre-entry-description .benefit-box p {
  font-size: 1.1rem;
  color: #333;
}
.pre-entry-form-container .pre-entry-description .benefit-box p .highlight {
  color: #FF6F00;
  font-size: 1.3rem;
  font-weight: bold;
}
.pre-entry-form-container .user-info-display {
  margin-bottom: 30px;
}
.pre-entry-form-container .user-info-display h3 {
  font-size: 1.2rem;
  margin-bottom: 15px;
  color: #333;
}
.pre-entry-form-container .user-info-display .info-box {
  background: #f5f5f5;
  padding: 20px;
  border-radius: 8px;
}
.pre-entry-form-container .user-info-display .info-box p {
  margin-bottom: 10px;
  font-size: 1rem;
}
.pre-entry-form-container .user-info-display .info-box p strong {
  display: inline-block;
  min-width: 120px;
}
.pre-entry-form-container .form-notice {
  background: #FFEBEE;
  border: 1px solid #FFCDD2;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 30px;
}
.pre-entry-form-container .form-notice .warning-text {
  color: #D32F2F;
  font-size: 1.1rem;
  text-align: center;
  margin: 0;
}
.pre-entry-form-container .form-actions {
  text-align: center;
}
.pre-entry-form-container .form-actions .btn-pre-entry {
  background: linear-gradient(135deg, #FF6F00 0%, #FF9800 100%);
  color: #fff;
  border: none;
  padding: 15px 40px;
  font-size: 1.2rem;
  font-weight: bold;
  border-radius: 50px;
  cursor: pointer;
  transition: transform 0.3s, box-shadow 0.3s;
}
.pre-entry-form-container .form-actions .btn-pre-entry:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 20px rgba(255, 111, 0, 0.3);
}
.pre-entry-form-container .form-actions .btn-pre-entry:disabled {
  background: #ccc;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.modal .modal-content {
  background: #fff;
  border-radius: 8px;
  padding: 30px;
  max-width: 500px;
  width: 90%;
  max-height: 80vh;
  overflow-y: auto;
  position: relative;
}
.modal .modal-content h3 {
  font-size: 1.5rem;
  margin-bottom: 20px;
  color: #333;
}
.modal .modal-content p {
  margin-bottom: 15px;
  line-height: 1.6;
}
.modal .modal-content .confirm-info {
  background: #f5f5f5;
  padding: 15px;
  border-radius: 4px;
  margin: 20px 0;
}
.modal .modal-content .confirm-info p {
  margin-bottom: 8px;
}
.modal .modal-content .confirm-info p strong {
  display: inline-block;
  min-width: 120px;
}
.modal .modal-content .modal-warning {
  background: #FFEBEE;
  border: 1px solid #FFCDD2;
  border-radius: 4px;
  padding: 15px;
  margin: 20px 0;
  color: #D32F2F;
  text-align: center;
}
.modal .modal-content .modal-actions {
  display: flex;
  gap: 15px;
  justify-content: center;
  margin-top: 25px;
}
.modal .modal-content .modal-actions button {
  padding: 10px 25px;
  font-size: 1rem;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.3s;
}
.modal .modal-content .modal-actions button.btn-cancel {
  background: #e0e0e0;
  color: #333;
}
.modal .modal-content .modal-actions button.btn-cancel:hover {
  background: #d0d0d0;
}
.modal .modal-content .modal-actions button.btn-submit {
  background: #FF6F00;
  color: #fff;
  font-weight: bold;
}
.modal .modal-content .modal-actions button.btn-submit:hover {
  background: #F57C00;
}
.modal .modal-content .modal-actions button.btn-submit:disabled {
  background: #ccc;
  cursor: not-allowed;
}

.ajax-message {
  padding: 15px;
  border-radius: 4px;
  margin-top: 20px;
  text-align: center;
  font-weight: bold;
}
.ajax-message.success {
  background: #E8F5E9;
  color: #2E7D32;
  border: 1px solid #A5D6A7;
}
.ajax-message.error {
  background: #FFEBEE;
  color: #C62828;
  border: 1px solid #EF9A9A;
}

.pre-entry-success-banner {
  background: linear-gradient(135deg, #4CAF50 0%, #66BB6A 100%);
  color: #fff;
  padding: 20px;
  text-align: center;
  font-size: 1.2rem;
  font-weight: bold;
  border-radius: 8px;
  margin-bottom: 30px;
  box-shadow: 0 3px 10px rgba(76, 175, 80, 0.3);
}

/**
 * 第12回溶接人杯ランディングページ
 * 11th大会デザインを踏襲したレスポンシブLP
 * 
 * ファイル: assets/scss/object/project/_12th-contest-lp.scss
 * コンパイル後: assets/css/main.css (統合版) または assets/css/12th-contest-lp.css (個別版)
 * 
 * デバッグ用: ChromeデベロッパーツールでCSSの行を右クリック →「ソースの表示」で元SCSSファイルを確認可能
 */
.p-12th-contest-lp,
.contest-template-12th-contest {
  font-family: var(--font-family-base, "Noto Sans JP", sans-serif);
  line-height: 1.6;
  color: var(--color-text-primary, #1f2937);
  background-color: #111;
}

.page-template-page-12th-contest #breadcrumb,
.contest-template-12th-contest #breadcrumb {
  display: none;
}
.page-template-page-12th-contest .l-content__body,
.contest-template-12th-contest .l-content__body {
  margin: auto;
  max-width: 100%;
  padding: 0;
}

/* ==========================================================================
   ヒーローセクション - 開始 (行: ~35-150)
   ファイル: assets/scss/object/project/_12th-contest-lp.scss
   セクション: ヒーローセクション
   ========================================================================== */
/**
 * ヒーローセクション
 * フルスクリーンのメインビジュアル
 */
.p-hero__sec {
  min-height: 50vh;
  background: linear-gradient(90deg, rgba(11, 11, 11, 0) 40%, rgba(11, 11, 11, 0.8), rgba(33, 33, 33, 0.8), rgba(11, 11, 11, 0) 60%), url("../img/contest/12th/bg-2.jpg") no-repeat center center;
  background-size: cover;
  background-position: right bottom;
  display: flex;
  justify-content: space-around;
  position: relative;
  overflow: hidden;
}
@media (min-width: 480px) {
  .p-hero__sec {
    min-height: 45vh;
  }
}
@media (min-width: 600px) {
  .p-hero__sec {
    min-height: 50vh;
  }
}
@media (min-width: 1024px) {
  .p-hero__sec {
    background: linear-gradient(90deg, rgba(11, 11, 11, 0) 40%, rgba(11, 11, 11, 0.8), rgba(33, 33, 33, 0.8), rgba(11, 11, 11, 0) 60%), url("../img/contest/12th/bg-2.jpg") no-repeat center center;
    background-size: cover;
    background-position: right bottom;
    justify-content: center;
    min-height: 55vh;
  }
}
@media (min-width: 1200px) {
  .p-hero__sec {
    min-height: 80vh;
  }
}
.p-hero__content {
  text-align: center;
  color: white;
  z-index: 2;
  max-width: 1000px;
  position: relative;
}
@media (min-width: 768px) {
  .p-hero__content {
    padding: 0 2rem;
  }
}
@media (min-width: 1200px) {
  .p-hero__content {
    padding: 0 3rem;
  }
}
.p-hero__subtitle {
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 1rem;
  font-size: clamp(0.875rem, calc(0.2916666667rem + 1.9444444444vw), 1.75rem);
}
@media (min-width: 600px) {
  .p-hero__subtitle {
    letter-spacing: 1px;
  }
}
@media (min-width: 768px) {
  .p-hero__subtitle {
    margin-bottom: 1.5rem;
  }
}
.p-hero__logo {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 4px 4px rgba(255, 255, 255, 0.4));
  max-width: 350px;
  margin: 1rem 0;
}
@media (min-width: 600px) {
  .p-hero__logo {
    max-width: 400px;
    margin: 1.5rem 0;
  }
}
@media (min-width: 768px) {
  .p-hero__logo {
    max-width: 500px;
    margin: 2rem 0;
  }
}
@media (min-width: 1200px) {
  .p-hero__logo {
    max-width: 600px;
    margin: 2.5rem 0;
  }
}
.p-hero__description {
  line-height: 1.7;
  opacity: 1;
  max-width: 600px;
  font-weight: 700;
  margin: 0 auto;
  font-size: clamp(0.875rem, calc(0.7083333333rem + 0.5555555556vw), 1.125rem);
}
@media (min-width: 768px) {
  .p-hero__description {
    line-height: 1.8;
    max-width: 700px;
  }
}
@media (min-width: 1200px) {
  .p-hero__description {
    line-height: 1.9;
    max-width: 800px;
  }
}
.p-hero__cta {
  margin-top: 1.5rem;
}
@media (min-width: 768px) {
  .p-hero__cta {
    margin-top: 2rem;
  }
}
@media (min-width: 1200px) {
  .p-hero__cta {
    margin-top: 2.5rem;
  }
}
.p-hero__cta .p-hero__button {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, rgb(139, 0, 0), rgb(220, 20, 60));
  color: #fff;
  width: 100%;
  max-width: 280px;
  border-radius: 50px;
  justify-content: center;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
  box-shadow: 0 0px 15px rgba(255, 255, 255, 0.4);
  min-height: 44px;
  min-width: 44px;
  padding: 12px 20px;
  font-size: clamp(0.875rem, calc(0.7083333333rem + 0.5555555556vw), 1.125rem);
}
@media (hover: none) and (pointer: coarse) {
  .p-hero__cta .p-hero__button:hover {
    transform: none;
  }
}
.p-hero__cta .p-hero__button:active {
  transform: scale(0.98);
  transition: transform 0.1s ease;
}
@media (min-width: 768px) {
  .p-hero__cta .p-hero__button {
    max-width: 320px;
    padding: 1rem 2.5rem;
  }
}
@media (min-width: 1200px) {
  .p-hero__cta .p-hero__button {
    max-width: 350px;
    padding: 1.2rem 3rem;
  }
}
.p-hero__cta .p-hero__button:hover {
  background: white;
  color: rgba(139, 0, 0, 0.9);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}
.p-hero__cta .p-hero__button::after {
  content: "→";
  margin-left: 0.5rem;
  transition: transform 0.3s ease;
}
.p-hero__cta .p-hero__button:hover::after {
  transform: translateX(3px);
}
@media (hover: none) and (pointer: coarse) {
  .p-hero__cta .p-hero__button:hover {
    transform: none;
    background: linear-gradient(135deg, rgba(139, 0, 0, 0.8), rgba(220, 20, 60, 0.8));
    color: #fff;
  }
}

/* ==========================================================================
   詳細セクション - 開始 (行: ~155-490)
   ========================================================================== */
/**
 * 詳細セクション
 * 大会概要・応募要項・特典の表示
 */
.p-details__sec {
  padding-top: 2rem;
}
@media (min-width: 768px) {
  .p-details__sec {
    padding-top: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-details__sec {
    padding-top: 4rem;
  }
}
.p-details__sec {
  padding-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-details__sec {
    padding-bottom: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-details__sec {
    padding-bottom: 4rem;
  }
}
@media (max-width: calc(768px - 1px)) {
  .p-details__sec {
    background-attachment: scroll !important;
  }
  .p-details__sec:hover {
    will-change: auto;
  }
}
@supports (transform: translateZ(0)) {
  .p-details__sec {
    transform: translateZ(0);
    backface-visibility: hidden;
  }
}
.p-details__sec {
  background: linear-gradient(135deg, rgba(11, 11, 11, 0.5), rgba(33, 33, 33, 0.5)), url("../img/bg/bg-2.jpg") no-repeat center center;
  background-size: contain;
  background-position: center top;
  background-attachment: fixed;
  color: #fff;
}
@media (min-width: 768px) {
  .p-details__sec {
    padding: 4rem 0;
  }
}
@media (min-width: 1200px) {
  .p-details__sec {
    padding: 5rem 0;
  }
}
.p-details__container {
  max-width: 1200px;
  margin: 0 auto;
}
.p-details__container {
  padding-left: 1rem;
}
@media (min-width: 768px) {
  .p-details__container {
    padding-left: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-details__container {
    padding-left: 2rem;
  }
}
.p-details__container {
  padding-right: 1rem;
}
@media (min-width: 768px) {
  .p-details__container {
    padding-right: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-details__container {
    padding-right: 2rem;
  }
}
@media (min-width: 768px) {
  .p-details__container {
    padding: 0 2rem;
  }
}
@media (min-width: 1200px) {
  .p-details__container {
    max-width: 1400px;
    padding: 0 3rem;
  }
}
.p-details__txt {
  line-height: 1.25;
  opacity: 1;
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
  font-weight: 700;
  font-size: clamp(0.875rem, calc(0.625rem + 0.8333333333vw), 1.25rem);
}
@media (min-width: 768px) {
  .p-details__txt {
    line-height: 1.8;
  }
}
@media (min-width: 1200px) {
  .p-details__txt {
    line-height: 1.9;
    max-width: 1100px;
  }
}
.p-details__content {
  padding: 1.5rem 0;
}
@media (min-width: 600px) {
  .p-details__content {
    padding: 2rem 1rem;
  }
}
@media (min-width: 768px) {
  .p-details__content {
    padding: 2.5rem 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-details__content {
    padding: 3rem 2rem;
  }
}
.p-details__header {
  text-align: center;
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-details__header {
    margin-bottom: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-details__header {
    margin-bottom: 4rem;
  }
}
.p-details__header h2 {
  margin: 0 auto;
  max-width: 400px;
}
@media (min-width: 600px) {
  .p-details__header h2 {
    max-width: 500px;
  }
}
@media (min-width: 768px) {
  .p-details__header h2 {
    max-width: 600px;
  }
}
@media (min-width: 1200px) {
  .p-details__header h2 {
    max-width: 700px;
  }
}
.p-details__header h2 img {
  width: 100%;
  height: auto;
}
.p-details__header p {
  color: var(--color-text-secondary, #6b7280);
  max-width: 600px;
  margin: 0 auto;
  font-size: clamp(0.875rem, calc(0.7083333333rem + 0.5555555556vw), 1.125rem);
}
@media (min-width: 1200px) {
  .p-details__header p {
    max-width: 700px;
  }
}
.p-details__requirements {
  background: rgba(255, 255, 255, 0.8);
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  text-align: center;
  padding: 1.5rem;
}
@media (min-width: 600px) {
  .p-details__requirements {
    padding: 2rem;
  }
}
@media (min-width: 768px) {
  .p-details__requirements {
    padding: 2.5rem;
  }
}
@media (min-width: 1200px) {
  .p-details__requirements {
    padding: 3rem;
  }
}
.p-details__requirements:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.p-details__requirements h2 {
  font-weight: 700;
  color: #fff;
  margin-bottom: 1rem;
  background: #1a3245;
  position: relative;
  font-size: clamp(1.125rem, calc(0.7083333333rem + 1.3888888889vw), 1.75rem);
}
.p-details__requirements h2 {
  padding: 0.75rem;
}
@media (min-width: 768px) {
  .p-details__requirements h2 {
    padding: 1rem;
  }
}
@media (min-width: 1200px) {
  .p-details__requirements h2 {
    padding: 1.25rem;
  }
}
.p-details__requirements h2::before {
  content: "";
  position: absolute;
  top: 20%;
  left: -10px;
  width: 30px;
  height: 30px;
  -webkit-clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  background: rgb(227, 50, 50);
  transform: rotate(10deg) translateY(-50%);
}
@media (min-width: 768px) {
  .p-details__requirements h2::before {
    top: 50%;
    left: 0px;
    width: 75px;
    height: 75px;
  }
}
.p-details__requirements p {
  color: #1a3245;
  font-size: clamp(0.875rem, calc(0.625rem + 0.8333333333vw), 1.25rem);
}
.p-details__requirements dl {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}
.p-details__requirements dl dt {
  font-weight: 700;
  background: #333;
  color: #fff;
  width: 100%;
  max-width: 280px;
  padding: 0.5rem;
}
@media (min-width: 768px) {
  .p-details__requirements dl dt {
    max-width: 320px;
    padding: 0.75rem;
  }
}
@media (min-width: 1200px) {
  .p-details__requirements dl dt {
    max-width: 350px;
    padding: 1rem;
  }
}
.p-details__requirements dl dd {
  font-weight: 400;
  color: #333;
  font-size: clamp(0.875rem, calc(0.625rem + 0.8333333333vw), 1.25rem);
}
.p-details__course h2 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #1a3245;
  margin-bottom: 1rem;
  text-align: center;
}
.p-details__course .p-detail__txt {
  color: #1a3245;
  font-size: 1.1rem;
  text-align: center;
  margin-bottom: 2rem;
}
.p-details__course-list {
  display: flex;
  gap: 2rem;
  flex-direction: column;
}
@media (min-width: 768px) {
  .p-details__course-list {
    flex-direction: row;
  }
}
.p-details__course-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255, 255, 255, 0.9);
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}
.p-details__course-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
@media (max-width: calc(768px - 1px)) {
  .p-details__course-item {
    padding: 1rem;
    flex-direction: column;
    text-align: center;
    gap: 0.5rem;
  }
}
.p-details__course-item-image {
  flex-shrink: 0;
  width: 100%;
  height: auto;
  max-width: 250px;
  margin-bottom: 0.5rem;
}
.p-details__course-item-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  border-radius: 8px;
}
.p-details__course-item-content {
  flex: 1;
  text-align: center;
}
.p-details__course-item-content p {
  color: #374151;
  font-size: 1rem;
  line-height: 1.25;
  font-weight: 700;
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .p-details__course-item-content p {
    line-height: 1.6;
    font-size: 1.2rem;
    margin-bottom: 2rem;
  }
}

.p-course-item__nav-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #fff;
  color: #e60012;
  border: 2px solid #e60012;
  border-radius: 8px;
  padding: 0.75rem 1.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s ease;
  min-height: 44px;
  min-height: 44px;
  min-width: 44px;
  padding: 12px 20px;
  font-size: clamp(0.875rem, calc(0.7916666667rem + 0.2777777778vw), 1rem);
}
@media (hover: none) and (pointer: coarse) {
  .p-course-item__nav-button:hover {
    transform: none;
  }
}
.p-course-item__nav-button:active {
  transform: scale(0.98);
  transition: transform 0.1s ease;
}
@media (min-width: 768px) {
  .p-course-item__nav-button {
    padding: 1rem 2rem;
    font-size: 1rem;
  }
}
@media (min-width: 1200px) {
  .p-course-item__nav-button {
    padding: 1.1rem 2.5rem;
    font-size: 1.1rem;
  }
}
.p-course-item__nav-button .p-course-item__nav-icon {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .p-course-item__nav-button .p-course-item__nav-icon {
    width: 18px;
    height: 18px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-course-item__nav-button:hover {
    background: #e60012;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(230, 0, 18, 0.3);
  }
  .p-course-item__nav-button:hover .p-course-item__nav-icon {
    transform: translateY(2px);
  }
}
.p-course-item__nav-button:active {
  transform: translateY(1px) scale(0.98);
  box-shadow: 0 2px 6px rgba(230, 0, 18, 0.2);
}
.p-course-item__nav-button:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(230, 0, 18, 0.3);
}
.p-course-item__nav-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.p-course-item__nav-button:disabled:hover {
  background: #fff;
  color: #e60012;
  transform: none;
  box-shadow: none;
}
.p-course-item__nav-button[aria-expanded=true] {
  background: #e60012;
  color: #fff;
}
.p-course-item__nav-button[aria-expanded=true] .p-course-item__nav-icon {
  transform: rotate(180deg);
}

.p-course-examples {
  background: rgba(255, 255, 255, 0.95);
  margin-top: 1.5rem;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), inset 0 1px 3px rgba(0, 0, 0, 0.04);
}
@media (min-width: 768px) {
  .p-course-examples {
    padding: 2rem;
    margin-top: 2rem;
  }
}
@media (min-width: 1200px) {
  .p-course-examples {
    padding: 2.5rem;
    margin-top: 2.5rem;
  }
}
.p-course-examples__header {
  text-align: center;
  margin-bottom: 1.5rem;
}
.p-course-examples__header h4 {
  font-size: 1.2rem;
  font-weight: 600;
  color: #1a3245;
  margin: 0;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #e60012;
  display: inline-block;
}
@media (min-width: 768px) {
  .p-course-examples__header h4 {
    font-size: 1.4rem;
  }
}
.p-course-examples__carousel {
  position: relative;
  max-width: 500px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .p-course-examples__carousel {
    max-width: 600px;
  }
}
@media (min-width: 1200px) {
  .p-course-examples__carousel {
    max-width: 700px;
  }
}
.p-course-examples__viewport {
  overflow: hidden;
  border-radius: 12px;
  position: relative;
  background: rgba(0, 0, 0, 0.02);
  width: 100%;
  height: 0;
  padding-top: 75%;
}
@media (min-width: 768px) {
  .p-course-examples__viewport {
    padding-top: 66.67%;
  }
}
@media (min-width: 1200px) {
  .p-course-examples__viewport {
    padding-top: 56.25%;
  }
}
.p-course-examples__track {
  position: absolute;
  top: 0;
  left: 0;
  width: 500%;
  height: 100%;
  display: flex;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  touch-action: pan-y pinch-zoom;
}
.p-course-examples__track[data-slider-track=artstyle] {
  width: 500%;
}
.p-course-examples__track[data-slider-track=lifestyle] {
  width: 600%;
}
.p-course-examples__item {
  flex: 0 0 20%;
  width: 20%;
  height: 100%;
  position: relative;
}
[data-slider-track=artstyle] .p-course-examples__item {
  flex: 0 0 20%;
  width: 20%;
}
[data-slider-track=lifestyle] .p-course-examples__item {
  flex: 0 0 16.666%;
  width: 16.666%;
}
.p-course-examples__item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
  display: block;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.1));
}
.p-course-examples__item img[loading] {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: loading-shimmer 2s infinite ease-in-out;
}
.p-course-examples__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid #e60012;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 15;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  min-height: 44px;
  min-width: 44px;
  padding: 12px 20px;
}
@media (hover: none) and (pointer: coarse) {
  .p-course-examples__arrow:hover {
    transform: none;
  }
}
.p-course-examples__arrow:active {
  transform: scale(0.98);
  transition: transform 0.1s ease;
}
@media (min-width: 768px) {
  .p-course-examples__arrow {
    width: 52px;
    height: 52px;
  }
}
.p-course-examples__arrow svg {
  width: 20px;
  height: 20px;
  color: #e60012;
  transition: color 0.3s ease;
}
@media (min-width: 768px) {
  .p-course-examples__arrow svg {
    width: 22px;
    height: 22px;
  }
}
.p-course-examples__arrow--prev {
  left: 12px;
}
@media (min-width: 768px) {
  .p-course-examples__arrow--prev {
    left: 16px;
  }
}
.p-course-examples__arrow--next {
  right: 12px;
}
@media (min-width: 768px) {
  .p-course-examples__arrow--next {
    right: 16px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-course-examples__arrow:hover {
    background: #e60012;
    transform: translateY(-50%) scale(1.08);
    box-shadow: 0 6px 20px rgba(230, 0, 18, 0.4);
  }
  .p-course-examples__arrow:hover svg {
    color: white;
    transform: scale(1.1);
  }
}
.p-course-examples__arrow:active {
  background: #e60012;
  transform: translateY(-50%) scale(0.96);
  box-shadow: 0 2px 8px rgba(230, 0, 18, 0.3);
}
.p-course-examples__arrow:active svg {
  color: white;
}
.p-course-examples__arrow:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(230, 0, 18, 0.3), 0 2px 8px rgba(0, 0, 0, 0.15);
}
.p-course-examples__arrow:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  background: rgba(255, 255, 255, 0.6);
}
.p-course-examples__arrow:disabled:hover {
  background: rgba(255, 255, 255, 0.6);
  transform: translateY(-50%);
  box-shadow: none;
}
.p-course-examples__arrow:disabled:hover svg {
  color: #e60012;
}
.p-course-examples__indicators {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 1.5rem;
}
@media (min-width: 768px) {
  .p-course-examples__indicators {
    gap: 10px;
    margin-top: 2rem;
  }
}
.p-course-examples__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(230, 0, 18, 0.3);
  border: none;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.p-course-examples__dot::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 32px;
  height: 32px;
  border-radius: 50%;
}
@media (min-width: 768px) {
  .p-course-examples__dot {
    width: 12px;
    height: 12px;
  }
}
.p-course-examples__dot--active {
  background: #e60012;
  transform: scale(1.2);
  box-shadow: 0 3px 12px rgba(230, 0, 18, 0.5);
  position: relative;
}
.p-course-examples__dot--active::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  background: rgba(230, 0, 18, 0.3);
  border-radius: 50%;
  animation: pulse-ring 2s ease-out infinite;
}
@media (hover: hover) and (pointer: fine) {
  .p-course-examples__dot:hover:not(.p-course-examples__dot--active) {
    background: rgba(230, 0, 18, 0.6);
    transform: scale(1.1);
  }
}
.p-course-examples__dot:focus {
  outline: 2px solid #e60012;
  outline-offset: 2px;
}
.p-course-examples__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@keyframes loading-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
@keyframes pulse-ring {
  0% {
    opacity: 0.6;
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    opacity: 0.3;
    transform: translate(-50%, -50%) scale(1.4);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.8);
  }
}
.p-course-examples__counter {
  display: none;
  text-align: center;
  color: #666;
  font-size: 0.9rem;
  margin-top: 1rem;
}
.p-course-examples__counter--visible {
  display: block;
}
@media (min-width: 768px) {
  .p-course-examples__counter {
    font-size: 1rem;
  }
}

.p-details__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 1040px;
  margin: 0 auto;
}
@media (max-width: calc(768px - 1px)) {
  .p-details__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}
.p-details__item {
  background: linear-gradient(180deg, rgb(255, 255, 255), rgba(255, 255, 255, 0.85));
  padding: 1rem;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  border: 1px solid var(--color-border, #e5e7eb);
}
.p-details__item:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
}
@media (max-width: calc(768px - 1px)) {
  .p-details__item {
    padding: 0.5rem;
  }
}
.p-details__item:nth-child(3) {
  grid-column: 1/-1;
  margin: 0 auto;
  width: 100%;
}
.p-details__item:nth-child(3) .p-details__item-image {
  max-width: 400px;
  margin: 0 auto;
}
.p-details__item:nth-child(3) .p-details__item-content > p {
  margin-top: 1rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: #1a3245;
  text-align: center;
}
@media (min-width: 768px) {
  .p-details__item:nth-child(3) .p-details__item-content > p {
    font-size: 1.1rem;
  }
}
.p-details__item:nth-child(3) .p-products__flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  flex-direction: column;
}
@media (min-width: 768px) {
  .p-details__item:nth-child(3) .p-products__flex {
    flex-direction: row;
    font-size: 1.2rem;
  }
}
.p-details__item:nth-child(3) .p-products__flex .p-products--list {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  text-align: center;
}
@media (min-width: 768px) {
  .p-details__item:nth-child(3) .p-products__flex .p-products--list {
    max-width: calc(50% - 0.5rem);
  }
}
.p-details__item:nth-child(3) .p-products__flex .p-products--list > div {
  width: 100%;
}
.p-details__item:nth-child(3) .p-products__flex .p-products--list img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}
.p-details__item:nth-child(3) .p-products__flex .p-products--list span {
  font-size: 0.8rem;
  font-weight: 700;
  display: block;
}
.p-details__item:nth-child(3) .p-products__flex .p-products--list h4 {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
}
@media (max-width: calc(768px - 1px)) {
  .p-details__item:nth-child(3) {
    grid-column: 1;
    max-width: none;
    margin: 0;
  }
}
.p-details__item-icon {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--color-primary, #2563eb), var(--color-primary-dark, #1d4ed8));
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}
.p-details__item-icon svg {
  width: 24px;
  height: 24px;
  fill: white;
}
.p-details__item-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-text-primary, #1f2937);
  margin-bottom: 1rem;
}
.p-details__item-content {
  color: var(--color-text-secondary, #374151);
  line-height: 1.7;
}
.p-details__item-content ul {
  margin: 1rem 0;
  padding-left: 1.5rem;
}
.p-details__item-content ul li {
  margin-bottom: 0.5rem;
}
.p-details__item-content ul li::marker {
  color: var(--color-primary, #2563eb);
}

.p-participation__wrap {
  transition: all 0.3s ease;
  text-align: center;
  max-width: 1040px;
  margin: 0 auto;
  color: #1a3245;
}
.p-participation__wrap .p-participation__inner {
  background: linear-gradient(180deg, rgb(255, 255, 255), rgba(255, 255, 255, 0.7));
  padding: 2rem;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  margin: 0 auto 2rem;
}
.p-participation__wrap h3 {
  margin: 0 auto 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: rgb(220, 20, 60);
  text-align: center;
  max-width: 300px;
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
}
.p-participation__wrap h3 img {
  width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .p-participation__wrap h3 {
    max-width: 500px;
    font-size: 2rem;
  }
}
.p-participation__wrap .p-participation__content p {
  font-size: 0.8rem;
  font-weight: 700;
  color: #1a3245;
  text-align: center;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .p-participation__wrap .p-participation__content p {
    font-size: 1rem;
  }
}
.p-participation__wrap .p-participation__content .p-img__wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-direction: column;
}
@media (min-width: 768px) {
  .p-participation__wrap .p-participation__content .p-img__wrap {
    flex-direction: row;
  }
}
.p-participation__wrap .p-participation__content .p-img__wrap .p-img__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  border: 1px solid #1a3245;
  padding: 1rem;
  border-radius: 16px;
  background: #fff;
  flex: 1;
  max-width: 300px;
  margin-bottom: 16px;
}
.p-participation__wrap .p-participation__content .p-img__wrap .p-img__content img {
  width: 150px;
  height: 150px;
  -o-object-fit: contain;
  object-fit: contain;
}

/* ==========================================================================
   スケジュールセクション - 開始 (行: ~550-680)
   ========================================================================== */
/**
 * スケジュールセクション
 * タイムライン形式の重要日程表示
 */
.p-schedule__sec {
  padding-top: 2rem;
}
@media (min-width: 768px) {
  .p-schedule__sec {
    padding-top: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-schedule__sec {
    padding-top: 4rem;
  }
}
.p-schedule__sec {
  padding-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-schedule__sec {
    padding-bottom: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-schedule__sec {
    padding-bottom: 4rem;
  }
}
@media (max-width: calc(768px - 1px)) {
  .p-schedule__sec {
    background-attachment: scroll !important;
  }
  .p-schedule__sec:hover {
    will-change: auto;
  }
}
@supports (transform: translateZ(0)) {
  .p-schedule__sec {
    transform: translateZ(0);
    backface-visibility: hidden;
  }
}
.p-schedule__sec {
  background: linear-gradient(135deg, rgba(11, 11, 11, 0.5), rgba(33, 33, 33, 0.5)), url("../img/bg/bg.jpg");
  background-size: 300px;
  background-repeat: repeat;
  background-position: center center;
  background-attachment: fixed;
}
@media (min-width: 480px) {
  .p-schedule__sec {
    background-size: 250px;
  }
}
@media (min-width: 768px) {
  .p-schedule__sec {
    background-size: 275px;
  }
}
@media (min-width: 1200px) {
  .p-schedule__sec {
    background-size: 300px;
  }
}
.p-schedule__container {
  max-width: 900px;
  margin: 0 auto;
}
.p-schedule__container {
  padding-left: 1rem;
}
@media (min-width: 768px) {
  .p-schedule__container {
    padding-left: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-schedule__container {
    padding-left: 2rem;
  }
}
.p-schedule__container {
  padding-right: 1rem;
}
@media (min-width: 768px) {
  .p-schedule__container {
    padding-right: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-schedule__container {
    padding-right: 2rem;
  }
}
.p-schedule__header {
  text-align: center;
}
.p-schedule__header {
  margin-bottom: 2.5rem;
}
@media (min-width: 768px) {
  .p-schedule__header {
    margin-bottom: 3.5rem;
  }
}
@media (min-width: 1200px) {
  .p-schedule__header {
    margin-bottom: 4rem;
  }
}
.p-schedule__header h2 {
  max-width: 600px;
  margin: 0 auto;
  font-size: clamp(1.75rem, calc(1.25rem + 1.6666666667vw), 2.5rem);
}
.p-schedule__header h2 img {
  width: 100%;
  height: auto;
}
.p-schedule__timeline {
  position: relative;
}
.p-schedule__timeline::before {
  content: "";
  position: absolute;
  left: 30px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #fff;
}
@media (max-width: calc(768px - 1px)) {
  .p-schedule__timeline::before {
    left: 20px;
  }
}
.p-schedule__item {
  position: relative;
}
.p-schedule__item {
  padding-left: 60px;
}
@media (min-width: 768px) {
  .p-schedule__item {
    padding-left: 70px;
  }
}
@media (min-width: 1200px) {
  .p-schedule__item {
    padding-left: 80px;
  }
}
.p-schedule__item {
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-schedule__item {
    margin-bottom: 2.25rem;
  }
}
@media (min-width: 1200px) {
  .p-schedule__item {
    margin-bottom: 2.5rem;
  }
}
.p-schedule__item::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 8px;
  width: 20px;
  height: 20px;
  background: var(--color-primary, #f59e0b);
  border-radius: 50%;
  border: 4px solid #fff;
}
@media (max-width: calc(768px - 1px)) {
  .p-schedule__item::before {
    left: 13px;
    width: 16px;
    height: 16px;
  }
}
.p-schedule__item-content {
  background: white;
}
.p-schedule__item-content {
  padding: 1.25rem;
}
@media (min-width: 768px) {
  .p-schedule__item-content {
    padding: 1.75rem;
  }
}
@media (min-width: 1200px) {
  .p-schedule__item-content {
    padding: 2rem;
  }
}
.p-schedule__item-content {
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--color-border, #e5e7eb);
  transition: all 0.3s ease;
  min-height: 44px;
}
@media (min-width: 768px) {
  .p-schedule__item-content:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  }
}
@media (hover: none) and (pointer: coarse) {
  .p-schedule__item-content:active {
    transform: scale(0.99);
  }
}
.p-schedule__date {
  display: inline-block;
  background: #ff0000;
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  font-size: clamp(1rem, calc(0.8333333333rem + 0.5555555556vw), 1.25rem);
}
.p-schedule__date {
  font-weight: 600;
  margin-bottom: 1rem;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
}
.p-schedule__title {
  font-size: clamp(1.25rem, calc(0.9166666667rem + 1.1111111111vw), 1.75rem);
}
.p-schedule__title {
  font-weight: 700;
  color: var(--color-text-primary, #1f2937);
  margin-bottom: 0.5rem;
  border-bottom: 2px solid #1a3245;
  padding-bottom: 0.5rem;
}
.p-schedule__description {
  color: var(--color-text-secondary, #374151);
  line-height: 1.6;
  font-size: 0.8rem;
}
@media (min-width: 768px) {
  .p-schedule__description {
    font-size: 1rem;
  }
}
.p-schedule__link {
  min-height: 44px;
  min-width: 44px;
  padding: 12px 20px;
  font-size: clamp(1rem, calc(0.8333333333rem + 0.5555555556vw), 1.25rem);
}
@media (hover: none) and (pointer: coarse) {
  .p-schedule__link:hover {
    transform: none;
  }
}
.p-schedule__link:active {
  transform: scale(0.98);
  transition: transform 0.1s ease;
}
.p-schedule__link {
  display: inline-block;
  background: #ff0000;
  color: white;
  text-decoration: none;
  padding: 12px 20px;
  border-radius: 6px;
}
.p-schedule__link {
  font-weight: 600;
  margin-bottom: 1rem;
  transition: all 0.3s ease;
}
.p-schedule__link:hover {
  color: #ffffff;
  text-decoration: none;
  opacity: 0.8;
}
.p-schedule__link--pre-entry {
  background: #f59e0b;
}

/* ==========================================================================
   特典セクション - 開始 (行: ~685-785)
   ========================================================================== */
/**
 * 特典セクション
 * 賞品・参加特典の表示
 */
.p-privileges__sec {
  padding-top: 2rem;
}
@media (min-width: 768px) {
  .p-privileges__sec {
    padding-top: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-privileges__sec {
    padding-top: 4rem;
  }
}
.p-privileges__sec {
  padding-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-privileges__sec {
    padding-bottom: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-privileges__sec {
    padding-bottom: 4rem;
  }
}
.p-privileges__sec {
  background: var(--color-bg-primary, #ffffff);
}
.p-privileges__container {
  max-width: 1200px;
  margin: 0 auto;
}
.p-privileges__container {
  padding-left: 1rem;
}
@media (min-width: 768px) {
  .p-privileges__container {
    padding-left: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-privileges__container {
    padding-left: 2rem;
  }
}
.p-privileges__container {
  padding-right: 1rem;
}
@media (min-width: 768px) {
  .p-privileges__container {
    padding-right: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-privileges__container {
    padding-right: 2rem;
  }
}
.p-privileges__header {
  text-align: center;
  margin-bottom: 4rem;
}
.p-privileges__header h2 {
  font-size: clamp(1.75rem, calc(1.25rem + 1.6666666667vw), 2.5rem);
  font-weight: 700;
  color: var(--color-text-primary, #1f2937);
  margin-bottom: 1rem;
}
.p-privileges__grid {
  display: grid;
  grid-template-columns: 1fr;
}
.p-privileges__grid {
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .p-privileges__grid {
    gap: 2rem;
  }
}
@media (min-width: 1200px) {
  .p-privileges__grid {
    gap: 2.5rem;
  }
}
@media (min-width: 600px) {
  .p-privileges__grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}
@media (min-width: 768px) {
  .p-privileges__grid {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  }
}
.p-privileges__item {
  text-align: center;
  padding: 2rem;
  background: white;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--color-border, #e5e7eb);
  transition: all 0.3s ease;
}
.p-privileges__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.p-privileges__item--featured {
  border: 2px solid var(--color-primary, #2563eb);
  background: linear-gradient(135deg, #ffffff, #f8fafc);
}
.p-privileges__item--featured .p-privileges__item-title {
  color: var(--color-primary, #2563eb);
}
.p-privileges__item-image {
  width: 100px;
  height: 100px;
  margin: 0 auto 1.5rem;
  border-radius: 12px;
  overflow: hidden;
}
.p-privileges__item-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.p-privileges__item-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--color-text-primary, #1f2937);
  margin-bottom: 1rem;
}
.p-privileges__item-description {
  color: var(--color-text-secondary, #374151);
  line-height: 1.6;
}

/* ==========================================================================
   過去受賞者セクション - 開始 (行: ~790-900)
   ========================================================================== */
/**
 * 過去受賞者セクション
 * 前回受賞作品の紹介
 */
.p-past-winners__sec {
  padding-top: 2rem;
}
@media (min-width: 768px) {
  .p-past-winners__sec {
    padding-top: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-past-winners__sec {
    padding-top: 4rem;
  }
}
.p-past-winners__sec {
  padding-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-past-winners__sec {
    padding-bottom: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-past-winners__sec {
    padding-bottom: 4rem;
  }
}
@media (max-width: calc(768px - 1px)) {
  .p-past-winners__sec {
    background-attachment: scroll !important;
  }
  .p-past-winners__sec:hover {
    will-change: auto;
  }
}
@supports (transform: translateZ(0)) {
  .p-past-winners__sec {
    transform: translateZ(0);
    backface-visibility: hidden;
  }
}
.p-past-winners__sec {
  background: #333;
}
.p-past-winners__container {
  max-width: 1200px;
  margin: 0 auto;
}
.p-past-winners__container {
  padding-left: 1rem;
}
@media (min-width: 768px) {
  .p-past-winners__container {
    padding-left: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-past-winners__container {
    padding-left: 2rem;
  }
}
.p-past-winners__container {
  padding-right: 1rem;
}
@media (min-width: 768px) {
  .p-past-winners__container {
    padding-right: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-past-winners__container {
    padding-right: 2rem;
  }
}
.p-past-winners__header {
  text-align: center;
}
.p-past-winners__header {
  margin-bottom: 2.5rem;
}
@media (min-width: 768px) {
  .p-past-winners__header {
    margin-bottom: 3.5rem;
  }
}
@media (min-width: 1200px) {
  .p-past-winners__header {
    margin-bottom: 4rem;
  }
}
.p-past-winners__header h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .p-past-winners__header h2 {
    font-size: 2rem;
  }
}
.p-past-winners__grid {
  display: grid;
}
.p-past-winners__grid {
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .p-past-winners__grid {
    gap: 2rem;
  }
}
@media (min-width: 1200px) {
  .p-past-winners__grid {
    gap: 2.5rem;
  }
}
.p-past-winners__grid {
  max-width: 800px;
  margin: 0 auto;
  grid-template-columns: 1fr;
}
.p-past-winners__item {
  background: white;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(255, 255, 255, 0.08);
  transition: all 0.3s ease;
  border-radius: 16px;
  min-height: 200px;
}
@media (min-width: 768px) {
  .p-past-winners__item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  }
}
@media (hover: none) and (pointer: coarse) {
  .p-past-winners__item:active {
    transform: scale(0.99);
    transition: transform 0.1s ease;
  }
}
.p-past-winners__item-image {
  margin: 0 auto;
}
.p-past-winners__item-image img {
  width: 101%;
  height: auto;
  font-size: 0;
}
.p-past-winners__item-content {
  padding: 1.25rem;
}
@media (min-width: 768px) {
  .p-past-winners__item-content {
    padding: 1.75rem;
  }
}
@media (min-width: 1200px) {
  .p-past-winners__item-content {
    padding: 2rem;
  }
}
.p-past-winners__item-content .p-past-winners__item-image {
  max-width: 300px;
  margin: 0 auto;
}
.p-past-winners__item-content .p-past-winners__item-content-text {
  text-align: center;
  margin-top: 1rem;
}
.p-past-winners__item-content .p-past-winners__item-content-text h3 {
  font-size: clamp(1rem, calc(0.8333333333rem + 0.5555555556vw), 1.25rem);
  font-weight: 700;
  color: #fff;
  margin-bottom: 0.5rem;
  background-color: #111;
  padding: 0.5rem;
}
.p-past-winners__item-content .p-past-winners__item-content-text p {
  font-size: clamp(0.875rem, calc(0.7916666667rem + 0.2777777778vw), 1rem);
  font-weight: 400;
  color: var(--color-text-secondary, #374151);
  margin-bottom: 0.5rem;
}
.p-past-winners__title {
  font-size: clamp(1.125rem, calc(1rem + 0.4166666667vw), 1.3125rem);
  font-weight: 700;
  color: var(--color-text-primary, #1f2937);
  margin-bottom: 0.5rem;
}
.p-past-winners__creator {
  color: var(--color-text-secondary, #6b7280);
  font-size: 1rem;
  margin-bottom: 1rem;
}

/* ==========================================================================
   アニメーション・ユーティリティ - 開始 (行: ~910-950)
   ========================================================================== */
/**
 * アニメーション定義
 */
@keyframes heroFloat {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
/**
 * ユーティリティクラス
 */
.p-12th-contest-lp__section-spacing {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .p-12th-contest-lp__section-spacing {
    margin-top: 4rem;
  }
}
@media (min-width: 1200px) {
  .p-12th-contest-lp__section-spacing {
    margin-top: 5rem;
  }
}
.p-12th-contest-lp__section-spacing {
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .p-12th-contest-lp__section-spacing {
    margin-bottom: 4rem;
  }
}
@media (min-width: 1200px) {
  .p-12th-contest-lp__section-spacing {
    margin-bottom: 5rem;
  }
}
.p-12th-contest-lp__text-center {
  text-align: center;
}
.p-12th-contest-lp__fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.p-12th-contest-lp__fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.p-terms {
  padding-top: 2rem;
}
@media (min-width: 768px) {
  .p-terms {
    padding-top: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-terms {
    padding-top: 4rem;
  }
}
.p-terms {
  padding-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-terms {
    padding-bottom: 3rem;
  }
}
@media (min-width: 1200px) {
  .p-terms {
    padding-bottom: 4rem;
  }
}
.p-terms {
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
}
.p-terms__inner {
  max-width: 900px;
  margin: 0 auto;
}
.p-terms__inner {
  padding-left: 1rem;
}
@media (min-width: 768px) {
  .p-terms__inner {
    padding-left: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-terms__inner {
    padding-left: 2rem;
  }
}
.p-terms__inner {
  padding-right: 1rem;
}
@media (min-width: 768px) {
  .p-terms__inner {
    padding-right: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .p-terms__inner {
    padding-right: 2rem;
  }
}
.p-terms__title {
  font-size: clamp(1.75rem, calc(1.25rem + 1.6666666667vw), 2.5rem);
  font-weight: bold;
  text-align: center;
}
.p-terms__title {
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-terms__title {
    margin-bottom: 2.5rem;
  }
}
@media (min-width: 1200px) {
  .p-terms__title {
    margin-bottom: 3rem;
  }
}
.p-terms__title {
  color: #333;
  position: relative;
}
.p-terms__title::after {
  content: "";
  position: absolute;
  bottom: -1rem;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 4px;
  background: linear-gradient(90deg, #ff6b6b, #ffa500);
  border-radius: 2px;
}
.p-terms__list {
  counter-reset: terms-counter;
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-terms__item {
  counter-increment: terms-counter;
  background: white;
  border-radius: 12px;
  padding: 2rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.p-terms__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}
.p-terms__item::before {
  content: counter(terms-counter, decimal-leading-zero);
  position: absolute;
  left: -10px;
  top: 2rem;
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, #ff6b6b, #ffa500);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 1.1rem;
  box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3);
}
@media (max-width: calc(768px - 1px)) {
  .p-terms__item {
    padding: 1.5rem;
    padding-left: 2.5rem;
  }
  .p-terms__item::before {
    left: 0;
    top: 1.5rem;
    width: 35px;
    height: 35px;
    font-size: 1rem;
  }
}
.p-terms__item-title {
  font-size: 1.3rem;
  font-weight: bold;
  color: #333;
  margin-bottom: 0.8rem;
  padding-left: 2.5rem;
}
@media (max-width: calc(768px - 1px)) {
  .p-terms__item-title {
    font-size: 1.1rem;
    padding-left: 2rem;
  }
}
.p-terms__item-text {
  color: #666;
  line-height: 1.8;
  padding-left: 2.5rem;
  font-size: 0.8rem;
}
@media (min-width: 768px) {
  .p-terms__item-text {
    font-size: 1rem;
  }
}
@media (max-width: calc(768px - 1px)) {
  .p-terms__item-text {
    padding-left: 2rem;
    line-height: 1.7;
  }
}

.p-course-item__nav-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 20px 0;
  padding: 12px 24px;
  min-height: 44px;
  background-color: #fff;
  border: 2px solid #e60012;
  border-radius: 50px;
  color: #e60012;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
}
@media (max-width: 767px) {
  .p-course-item__nav-button {
    width: 100%;
    max-width: 280px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 768px) {
  .p-course-item__nav-button {
    min-width: 320px;
  }
}
@media (min-width: 1024px) {
  .p-course-item__nav-button {
    min-width: 350px;
  }
}
.p-course-item__nav-button:hover:not(:disabled) {
  background-color: #e60012;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(230, 0, 18, 0.3);
}
.p-course-item__nav-button:focus-visible {
  outline: 3px solid #e60012;
  outline-offset: 2px;
}
.p-course-item__nav-button:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(230, 0, 18, 0.2);
}
.p-course-item__nav-button.is-active, .p-course-item__nav-button[aria-expanded=true] {
  background-color: #e60012;
  color: #fff;
}
.p-course-item__nav-button.is-active .p-course-item__nav-icon, .p-course-item__nav-button[aria-expanded=true] .p-course-item__nav-icon {
  transform: rotate(180deg);
}
.p-course-item__nav-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.p-course-item__nav-text {
  font-size: 16px;
  line-height: 1.4;
  white-space: nowrap;
}
@media (max-width: 480px) {
  .p-course-item__nav-text {
    font-size: 14px;
  }
}

.p-course-item__nav-icon {
  width: 16px;
  height: 16px;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  flex-shrink: 0;
}

.p-work-slider {
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, transform 0.3s ease;
}
.p-work-slider--hidden {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(-10px);
  visibility: hidden;
  margin: 0;
}
.p-work-slider--visible {
  max-height: 2000px;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
  margin-top: 20px;
  margin-bottom: 20px;
}
.p-work-slider--contained-arrows .p-work-slider__container {
  position: relative;
  padding: 0 50px;
}
@media (max-width: 767px) {
  .p-work-slider--contained-arrows .p-work-slider__container {
    padding: 0 40px;
  }
}
.p-work-slider--contained-arrows .p-work-slider__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  background-color: rgba(255, 255, 255, 0.95);
  border: 2px solid #e60012;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  color: #e60012;
}
.p-work-slider--contained-arrows .p-work-slider__arrow:hover:not(:disabled) {
  background-color: #e60012;
  color: #fff;
  transform: translateY(-50%) scale(1.1);
}
.p-work-slider--contained-arrows .p-work-slider__arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.p-work-slider--contained-arrows .p-work-slider__arrow--prev {
  left: 0;
}
.p-work-slider--contained-arrows .p-work-slider__arrow--next {
  right: 0;
}
.p-work-slider--contained-arrows .p-work-slider__arrow svg {
  width: 24px;
  height: 24px;
}
.p-work-slider__wrapper {
  overflow: hidden;
  border-radius: 8px;
}
.p-work-slider__track {
  display: flex;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  gap: 16px;
}
.p-work-slider__item {
  flex: 0 0 calc(50% - 8px);
  min-width: 0;
  display: flex;
}
@media (max-width: 767px) {
  .p-work-slider__item {
    flex: 0 0 100%;
  }
}
.p-work-slider__item img {
  width: 100%;
  height: auto;
  max-height: 270px;
  margin: auto;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.p-work-slider__item img:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}
.p-work-slider__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
  padding: 8px;
}
.p-work-slider__dots .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #ddd;
  cursor: pointer;
  transition: all 0.3s ease;
}
.p-work-slider__dots .dot.active {
  background-color: #e60012;
  transform: scale(1.3);
}
.p-work-slider__dots .dot:hover:not(.active) {
  background-color: #999;
}
.p-work-slider__status {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .p-course-item__nav-button,
  .p-course-item__nav-icon,
  .p-work-slider,
  .p-work-slider__track,
  .p-work-slider__item img,
  .p-work-slider__arrow,
  .p-work-slider__dots .dot {
    transition: none !important;
    animation: none !important;
  }
}
.u-m-0 {
  margin: 0 !important;
}

.u-m-xs {
  margin: 8px !important;
}

.u-m-sm {
  margin: 16px !important;
}

.u-m-md {
  margin: 24px !important;
}

.u-m-lg {
  margin: 32px !important;
}

.u-m-xl {
  margin: 48px !important;
}

.u-mt-0 {
  margin-top: 0 !important;
}

.u-mt-xs {
  margin-top: 8px !important;
}

.u-mt-sm {
  margin-top: 16px !important;
}

.u-mt-md {
  margin-top: 24px !important;
}

.u-mt-lg {
  margin-top: 32px !important;
}

.u-mt-xl {
  margin-top: 48px !important;
}

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-mb-xs {
  margin-bottom: 8px !important;
}

.u-mb-sm {
  margin-bottom: 16px !important;
}

.u-mb-md {
  margin-bottom: 24px !important;
}

.u-mb-lg {
  margin-bottom: 32px !important;
}

.u-mb-xl {
  margin-bottom: 48px !important;
}

.u-p-0 {
  padding: 0 !important;
}

.u-p-xs {
  padding: 8px !important;
}

.u-p-sm {
  padding: 16px !important;
}

.u-p-md {
  padding: 24px !important;
}

.u-p-lg {
  padding: 32px !important;
}

.u-p-xl {
  padding: 48px !important;
}

.u-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.u-my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.u-my-sm {
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}

.u-my-md {
  margin-top: 24px !important;
  margin-bottom: 24px !important;
}

.u-text-left {
  text-align: left !important;
}

.u-text-center {
  text-align: center !important;
}

.u-text-right {
  text-align: right !important;
}

.u-text-justify {
  text-align: justify !important;
}

.u-text-xs {
  font-size: 0.75rem !important;
}

.u-text-sm {
  font-size: 0.875rem !important;
}

.u-text-base {
  font-size: 1rem !important;
}

.u-text-lg {
  font-size: 1.125rem !important;
}

.u-text-xl {
  font-size: 1.25rem !important;
}

.u-text-2xl {
  font-size: 1.5rem !important;
}

.u-text-3xl {
  font-size: 1.875rem !important;
}

.u-text-4xl {
  font-size: 2.25rem !important;
}

.u-font-thin {
  font-weight: 100 !important;
}

.u-font-light {
  font-weight: 300 !important;
}

.u-font-normal {
  font-weight: 400 !important;
}

.u-font-medium {
  font-weight: 500 !important;
}

.u-font-semibold {
  font-weight: 600 !important;
}

.u-font-bold {
  font-weight: 700 !important;
}

.u-font-black {
  font-weight: 900 !important;
}

.u-leading-none {
  line-height: 1 !important;
}

.u-leading-tight {
  line-height: 1.25 !important;
}

.u-leading-snug {
  line-height: 1.375 !important;
}

.u-leading-normal {
  line-height: 1.5 !important;
}

.u-leading-relaxed {
  line-height: 1.625 !important;
}

.u-leading-loose {
  line-height: 2 !important;
}

.u-underline {
  text-decoration: underline !important;
}

.u-line-through {
  text-decoration: line-through !important;
}

.u-no-underline {
  text-decoration: none !important;
}

.u-uppercase {
  text-transform: uppercase !important;
}

.u-lowercase {
  text-transform: lowercase !important;
}

.u-capitalize {
  text-transform: capitalize !important;
}

.u-normal-case {
  text-transform: none !important;
}

.u-truncate {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.u-text-clip {
  overflow: hidden !important;
}

.u-break-normal {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.u-break-words {
  overflow-wrap: break-word !important;
}

.u-break-all {
  word-break: break-all !important;
}

.u-whitespace-normal {
  white-space: normal !important;
}

.u-whitespace-nowrap {
  white-space: nowrap !important;
}

.u-whitespace-pre {
  white-space: pre !important;
}

.u-whitespace-pre-line {
  white-space: pre-line !important;
}

.u-whitespace-pre-wrap {
  white-space: pre-wrap !important;
}

.u-text-primary {
  color: #007cba !important;
}

.u-text-secondary {
  color: #6c757d !important;
}

.u-text-success {
  color: #28a745 !important;
}

.u-text-danger {
  color: #dc3545 !important;
}

.u-text-warning {
  color: #ffc107 !important;
}

.u-text-info {
  color: #17a2b8 !important;
}

.u-text-light {
  color: #f8f9fa !important;
}

.u-text-dark {
  color: #343a40 !important;
}

.u-text-white {
  color: #fff !important;
}

.u-text-black {
  color: #000 !important;
}

.u-text-muted {
  color: #6c757d !important;
}

.u-text-gray-100 {
  color: #f8f9fa !important;
}

.u-text-gray-200 {
  color: #e9ecef !important;
}

.u-text-gray-300 {
  color: #dee2e6 !important;
}

.u-text-gray-400 {
  color: #ced4da !important;
}

.u-text-gray-500 {
  color: #adb5bd !important;
}

.u-text-gray-600 {
  color: #6c757d !important;
}

.u-text-gray-700 {
  color: #495057 !important;
}

.u-text-gray-800 {
  color: #343a40 !important;
}

.u-text-gray-900 {
  color: #212529 !important;
}

.u-bg-primary {
  background-color: #007cba !important;
}

.u-bg-secondary {
  background-color: #6c757d !important;
}

.u-bg-success {
  background-color: #28a745 !important;
}

.u-bg-danger {
  background-color: #dc3545 !important;
}

.u-bg-warning {
  background-color: #ffc107 !important;
}

.u-bg-info {
  background-color: #17a2b8 !important;
}

.u-bg-light {
  background-color: #f8f9fa !important;
}

.u-bg-dark {
  background-color: #343a40 !important;
}

.u-bg-white {
  background-color: #fff !important;
}

.u-bg-black {
  background-color: #000 !important;
}

.u-bg-transparent {
  background-color: transparent !important;
}

.u-bg-gray-100 {
  background-color: #f8f9fa !important;
}

.u-bg-gray-200 {
  background-color: #e9ecef !important;
}

.u-bg-gray-300 {
  background-color: #dee2e6 !important;
}

.u-bg-gray-400 {
  background-color: #ced4da !important;
}

.u-bg-gray-500 {
  background-color: #adb5bd !important;
}

.u-bg-gray-600 {
  background-color: #6c757d !important;
}

.u-bg-gray-700 {
  background-color: #495057 !important;
}

.u-bg-gray-800 {
  background-color: #343a40 !important;
}

.u-bg-gray-900 {
  background-color: #212529 !important;
}

.u-border-primary {
  border-color: #007cba !important;
}

.u-border-secondary {
  border-color: #6c757d !important;
}

.u-border-success {
  border-color: #28a745 !important;
}

.u-border-danger {
  border-color: #dc3545 !important;
}

.u-border-warning {
  border-color: #ffc107 !important;
}

.u-border-info {
  border-color: #17a2b8 !important;
}

.u-border-light {
  border-color: #f8f9fa !important;
}

.u-border-dark {
  border-color: #343a40 !important;
}

.u-border-white {
  border-color: #fff !important;
}

.u-border-black {
  border-color: #000 !important;
}

.u-border-gray-100 {
  border-color: #f8f9fa !important;
}

.u-border-gray-200 {
  border-color: #e9ecef !important;
}

.u-border-gray-300 {
  border-color: #dee2e6 !important;
}

.u-border-gray-400 {
  border-color: #ced4da !important;
}

.u-border-gray-500 {
  border-color: #adb5bd !important;
}

.u-border-gray-600 {
  border-color: #6c757d !important;
}

.u-border-gray-700 {
  border-color: #495057 !important;
}

.u-border-gray-800 {
  border-color: #343a40 !important;
}

.u-border-gray-900 {
  border-color: #212529 !important;
}

.u-border-0 {
  border-width: 0 !important;
}

.u-border {
  border-width: 1px !important;
}

.u-border-2 {
  border-width: 2px !important;
}

.u-border-3 {
  border-width: 3px !important;
}

.u-border-4 {
  border-width: 4px !important;
}

.u-border-5 {
  border-width: 5px !important;
}

.u-border-t {
  border-top-width: 1px !important;
}

.u-border-r {
  border-right-width: 1px !important;
}

.u-border-b {
  border-bottom-width: 1px !important;
}

.u-border-l {
  border-left-width: 1px !important;
}

.u-border-t-0 {
  border-top-width: 0 !important;
}

.u-border-r-0 {
  border-right-width: 0 !important;
}

.u-border-b-0 {
  border-bottom-width: 0 !important;
}

.u-border-l-0 {
  border-left-width: 0 !important;
}

.u-border-solid {
  border-style: solid !important;
}

.u-border-dashed {
  border-style: dashed !important;
}

.u-border-dotted {
  border-style: dotted !important;
}

.u-border-double {
  border-style: double !important;
}

.u-border-none {
  border-style: none !important;
}

.u-rounded-none {
  border-radius: 0 !important;
}

.u-rounded-sm {
  border-radius: 0.125rem !important;
}

.u-rounded {
  border-radius: 0.25rem !important;
}

.u-rounded-md {
  border-radius: 0.375rem !important;
}

.u-rounded-lg {
  border-radius: 0.5rem !important;
}

.u-rounded-xl {
  border-radius: 0.75rem !important;
}

.u-rounded-2xl {
  border-radius: 1rem !important;
}

.u-rounded-3xl {
  border-radius: 1.5rem !important;
}

.u-rounded-full {
  border-radius: 9999px !important;
}

.u-rounded-t-none {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

.u-rounded-r-none {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.u-rounded-b-none {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.u-rounded-l-none {
  border-bottom-left-radius: 0 !important;
  border-top-left-radius: 0 !important;
}

.u-d-none {
  display: none !important;
}

.u-d-inline {
  display: inline !important;
}

.u-d-inline-block {
  display: inline-block !important;
}

.u-d-block {
  display: block !important;
}

.u-d-table {
  display: table !important;
}

.u-d-table-cell {
  display: table-cell !important;
}

.u-d-table-row {
  display: table-row !important;
}

.u-d-flex {
  display: flex !important;
}

.u-d-inline-flex {
  display: inline-flex !important;
}

.u-d-grid {
  display: grid !important;
}

.u-d-inline-grid {
  display: inline-grid !important;
}

.u-visible {
  visibility: visible !important;
}

.u-invisible {
  visibility: hidden !important;
}

.u-opacity-0 {
  opacity: 0 !important;
}

.u-opacity-25 {
  opacity: 0.25 !important;
}

.u-opacity-50 {
  opacity: 0.5 !important;
}

.u-opacity-75 {
  opacity: 0.75 !important;
}

.u-opacity-100 {
  opacity: 1 !important;
}

.u-overflow-auto {
  overflow: auto !important;
}

.u-overflow-hidden {
  overflow: hidden !important;
}

.u-overflow-visible {
  overflow: visible !important;
}

.u-overflow-scroll {
  overflow: scroll !important;
}

.u-overflow-x-auto {
  overflow-x: auto !important;
}

.u-overflow-x-hidden {
  overflow-x: hidden !important;
}

.u-overflow-x-visible {
  overflow-x: visible !important;
}

.u-overflow-x-scroll {
  overflow-x: scroll !important;
}

.u-overflow-y-auto {
  overflow-y: auto !important;
}

.u-overflow-y-hidden {
  overflow-y: hidden !important;
}

.u-overflow-y-visible {
  overflow-y: visible !important;
}

.u-overflow-y-scroll {
  overflow-y: scroll !important;
}

.u-static {
  position: static !important;
}

.u-fixed {
  position: fixed !important;
}

.u-absolute {
  position: absolute !important;
}

.u-relative {
  position: relative !important;
}

.u-sticky {
  position: sticky !important;
}

.u-top-0 {
  top: 0 !important;
}

.u-right-0 {
  right: 0 !important;
}

.u-bottom-0 {
  bottom: 0 !important;
}

.u-left-0 {
  left: 0 !important;
}

.u-top-auto {
  top: auto !important;
}

.u-right-auto {
  right: auto !important;
}

.u-bottom-auto {
  bottom: auto !important;
}

.u-left-auto {
  left: auto !important;
}

.u-z-0 {
  z-index: 0 !important;
}

.u-z-10 {
  z-index: 10 !important;
}

.u-z-20 {
  z-index: 20 !important;
}

.u-z-30 {
  z-index: 30 !important;
}

.u-z-40 {
  z-index: 40 !important;
}

.u-z-50 {
  z-index: 50 !important;
}

.u-z-auto {
  z-index: auto !important;
}

.u-float-left {
  float: left !important;
}

.u-float-right {
  float: right !important;
}

.u-float-none {
  float: none !important;
}

.u-clearfix::after {
  content: "";
  display: table;
  clear: both;
}

.u-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-sr-only-focusable:active, .u-sr-only-focusable:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

.u-flex-row {
  flex-direction: row !important;
}

.u-flex-row-reverse {
  flex-direction: row-reverse !important;
}

.u-flex-column {
  flex-direction: column !important;
}

.u-flex-column-reverse {
  flex-direction: column-reverse !important;
}

.u-flex-wrap {
  flex-wrap: wrap !important;
}

.u-flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}

.u-flex-nowrap {
  flex-wrap: nowrap !important;
}

.u-justify-start {
  justify-content: flex-start !important;
}

.u-justify-end {
  justify-content: flex-end !important;
}

.u-justify-center {
  justify-content: center !important;
}

.u-justify-between {
  justify-content: space-between !important;
}

.u-justify-around {
  justify-content: space-around !important;
}

.u-justify-evenly {
  justify-content: space-evenly !important;
}

.u-items-start {
  align-items: flex-start !important;
}

.u-items-end {
  align-items: flex-end !important;
}

.u-items-center {
  align-items: center !important;
}

.u-items-baseline {
  align-items: baseline !important;
}

.u-items-stretch {
  align-items: stretch !important;
}

.u-content-start {
  align-content: flex-start !important;
}

.u-content-end {
  align-content: flex-end !important;
}

.u-content-center {
  align-content: center !important;
}

.u-content-between {
  align-content: space-between !important;
}

.u-content-around {
  align-content: space-around !important;
}

.u-content-stretch {
  align-content: stretch !important;
}

.u-self-auto {
  align-self: auto !important;
}

.u-self-start {
  align-self: flex-start !important;
}

.u-self-end {
  align-self: flex-end !important;
}

.u-self-center {
  align-self: center !important;
}

.u-self-baseline {
  align-self: baseline !important;
}

.u-self-stretch {
  align-self: stretch !important;
}

.u-flex-grow-0 {
  flex-grow: 0 !important;
}

.u-flex-grow {
  flex-grow: 1 !important;
}

.u-flex-shrink-0 {
  flex-shrink: 0 !important;
}

.u-flex-shrink {
  flex-shrink: 1 !important;
}

.u-flex-basis-0 {
  flex-basis: 0 !important;
}

.u-flex-basis-auto {
  flex-basis: auto !important;
}

.u-flex-basis-full {
  flex-basis: 100% !important;
}

.u-flex-1 {
  flex: 1 1 0% !important;
}

.u-flex-auto {
  flex: 1 1 auto !important;
}

.u-flex-initial {
  flex: 0 1 auto !important;
}

.u-flex-none {
  flex: none !important;
}

.u-order-first {
  order: -9999 !important;
}

.u-order-last {
  order: 9999 !important;
}

.u-order-none {
  order: 0 !important;
}

.u-order-1 {
  order: 1 !important;
}

.u-order-2 {
  order: 2 !important;
}

.u-order-3 {
  order: 3 !important;
}

.u-order-4 {
  order: 4 !important;
}

.u-order-5 {
  order: 5 !important;
}

.u-order-6 {
  order: 6 !important;
}

.u-order-7 {
  order: 7 !important;
}

.u-order-8 {
  order: 8 !important;
}

.u-order-9 {
  order: 9 !important;
}

.u-order-10 {
  order: 10 !important;
}

.u-order-11 {
  order: 11 !important;
}

.u-order-12 {
  order: 12 !important;
}

.u-gap-0 {
  gap: 0 !important;
}

.u-gap-xs {
  gap: 0.25rem !important;
}

.u-gap-sm {
  gap: 0.5rem !important;
}

.u-gap-md {
  gap: 1rem !important;
}

.u-gap-lg {
  gap: 1.5rem !important;
}

.u-gap-xl {
  gap: 2rem !important;
}

.u-gap-2xl {
  gap: 3rem !important;
}

.u-gap-x-0 {
  -moz-column-gap: 0 !important;
       column-gap: 0 !important;
}

.u-gap-x-xs {
  -moz-column-gap: 0.25rem !important;
       column-gap: 0.25rem !important;
}

.u-gap-x-sm {
  -moz-column-gap: 0.5rem !important;
       column-gap: 0.5rem !important;
}

.u-gap-x-md {
  -moz-column-gap: 1rem !important;
       column-gap: 1rem !important;
}

.u-gap-x-lg {
  -moz-column-gap: 1.5rem !important;
       column-gap: 1.5rem !important;
}

.u-gap-x-xl {
  -moz-column-gap: 2rem !important;
       column-gap: 2rem !important;
}

.u-gap-y-0 {
  row-gap: 0 !important;
}

.u-gap-y-xs {
  row-gap: 0.25rem !important;
}

.u-gap-y-sm {
  row-gap: 0.5rem !important;
}

.u-gap-y-md {
  row-gap: 1rem !important;
}

.u-gap-y-lg {
  row-gap: 1.5rem !important;
}

.u-gap-y-xl {
  row-gap: 2rem !important;
}/*# sourceMappingURL=main.css.map */