@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap");
/*! Eric Meyer’s Reset CSS v2.0 (public domain) */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

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;
}

/* Additional sensible defaults */
*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

button,
input,
select,
textarea {
  font: inherit;
}

/*input[type="text"] {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}*/
button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

/* iOS Safari: button / submit / reset のデフォルト除去 */
button,
input[type=button],
input[type=submit],
input[type=reset] {
  -webkit-appearance: none;
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
}

:root {
  color-scheme: light;
}

html,
body {
  height: 100%;
}

body {
  background: #ffffff;
  color: #0f172a;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: #fd3259;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

@media (min-width: 781px) {
  .container {
    width: min(100% - 2rem, 1000px);
    padding-left: 200px;
  }
}
.container {
  margin-inline: auto;
  padding-block: 1.5rem;
}

.wrapper:not(.r-type01):not(.r-type02) .container {
  padding-left: 0 !important;
}

.wrapper {
  width: 100%;
  background: #f5f5f4 url(../images/bg_head_pc.svg) no-repeat top center/auto 600px;
  margin: 0 auto;
  min-height: 100vh;
  padding-bottom: 400px;
  position: relative;
}
.wrapper.r-login {
  background-color: #fff;
}
.wrapper.r-type01 {
  background: #f5f5f4;
  padding-bottom: 160px;
}
@media (max-width: 780.99px) {
  .wrapper.r-type01 {
    padding-bottom: 38.4615384615vw;
  }
}
.wrapper.r-type02 {
  background: #f5f5f4;
  padding-bottom: 300px;
}
@media (max-width: 780.99px) {
  .wrapper.r-type02 {
    padding-bottom: 51.2820512821vw;
  }
}
.wrapper.r-noheader {
  padding-bottom: 0 !important;
}
@media (max-width: 780.99px) {
  .wrapper {
    background: #f5f5f4 url(../images/bg_head.svg) no-repeat top center/100% auto;
    max-width: 100vw;
    padding-bottom: 49.4871794872vw;
  }
}

.u-ma0 {
  margin: 0 !important;
}

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

.u-mt10 {
  margin-top: 10px !important;
}

.u-mt20 {
  margin-top: 20px !important;
}

.u-mt30 {
  margin-top: 30px !important;
}

.u-pt250 {
  padding-top: 130px !important;
}

.u-pt10 {
  padding-top: 10px !important;
}

.u-mt60 {
  margin-top: 30px !important;
}

.u-mt160 {
  margin-top: 80px !important;
}

.u-mt100 {
  margin-top: 80px !important;
}

.u-mb30 {
  margin-bottom: 30px !important;
}

.u-mb60 {
  margin-bottom: 30px !important;
}

.u-mb80 {
  margin-bottom: 40px !important;
}

.u-mb10 {
  margin-bottom: 10px !important;
}

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

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

.u-valign-b {
  vertical-align: bottom !important;
}

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

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

.u-mr10 {
  margin-left: 10px !important;
}

.u-mr20 {
  margin-right: 20px !important;
}

.u-ml40 {
  margin-left: 40px !important;
}

.u-ml20 {
  margin-left: 20px !important;
}

.u-ml10 {
  margin-left: 10px !important;
}

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

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

.u-maxwd80 {
  max-width: 80% !important;
  height: auto !important;
}

.u-ml57 {
  margin-left: 57px !important;
}

.u-ml80 {
  margin-left: 80px !important;
}

.u-wd100px {
  width: 100px !important;
}

.u-wd120px {
  width: 120px !important;
}

.u-wd150px {
  width: 150px !important;
}

.u-wd200px {
  width: 200px !important;
}

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

.u-fs42 {
  font-size: 42px !important;
}

.u-fs29 {
  font-size: 29px !important;
}

.u-pl20 {
  padding-left: 20px !important;
}

.u-pr20 {
  padding-right: 20px !important;
}

.u-pl13vw {
  padding-left: 77px !important;
}

.u-minh-200 {
  min-height: 200px !important;
}

.u-minh-300 {
  min-height: 300px !important;
}

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

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

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

.u-img-74 {
  width: 74px !important;
  height: auto !important;
}

.u-fs15 {
  font-size: 15px !important;
}

.u-fs23 {
  font-size: 23px !important;
}

.u-wd20px {
  width: 20px !important;
  height: auto !important;
}

.u-ht20px {
  height: 20px !important;
  width: auto !important;
}

.u-wd30px {
  width: 30px !important;
  height: auto !important;
}

.u-wd40px {
  width: 40px !important;
  height: auto !important;
}

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

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

.u-pr10 {
  padding-right: 10px !important;
}

.u-pr40 {
  padding-right: 40px !important;
}

.u-pa60 {
  padding: 60px !important;
}

.u-pa20 {
  padding: 20px !important;
}

.u-px60 {
  padding-left: 60px !important;
  padding-right: 60px !important;
}

.u-pb100 {
  padding-bottom: 100px !important;
}

.u-fs2_5 {
  font-size: 15px !important;
}

.u-fs3vw {
  font-size: 16px !important;
}

.u-txt-large {
  font-size: 34px !important;
}

.u-ml50 {
  margin-left: 50px !important;
}

.u-py20 {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}

.u-gap100 {
  gap: 100px !important;
}

.u-maxh280 {
  max-height: 280px !important;
}

.u-minh400 {
  min-height: 400px !important;
}

@media (max-width: 780.99px) {
  .u-mt10 {
    margin-top: 2.5641025641vw !important;
  }
  .u-mt20 {
    margin-top: 3.8461538462vw !important;
  }
  .u-mt30 {
    margin-top: 5.1282051282vw !important;
  }
  .u-pt250 {
    padding-top: 16.6666666667vw !important;
  }
  .u-pt10 {
    padding-top: 1.2820512821vw !important;
  }
  .u-mt60 {
    margin-top: 7.6923076923vw !important;
  }
  .u-mt100 {
    margin-top: 12.8205128205vw !important;
  }
  .u-mt160 {
    margin-top: 20.5128205128vw !important;
  }
  .u-mb30 {
    margin-bottom: 3.8461538462vw !important;
  }
  .u-mb60 {
    margin-bottom: 7.6923076923vw !important;
  }
  .u-mb80 {
    margin-bottom: 10.2564102564vw !important;
  }
  .u-mb10 {
    margin-bottom: 1.2820512821vw !important;
  }
  .u-mr10 {
    margin-right: 2.5641025641vw !important;
  }
  .u-mr20 {
    margin-right: 3.8461538462vw !important;
  }
  .u-ml40 {
    margin-left: 7.6923076923vw !important;
  }
  .u-ml20 {
    margin-left: 2.5641025641vw !important;
  }
  .u-ml10 {
    margin-left: 1.2820512821vw !important;
  }
  .u-ml57 {
    margin-left: 10.8974358974vw !important;
  }
  .u-ml80 {
    margin-left: 13.8461538462vw !important;
  }
  .u-wd100px {
    width: 12.8205128205vw !important;
  }
  .u-wd120px {
    width: 15.3846153846vw !important;
  }
  .u-wd150px {
    width: 19.2307692308vw !important;
  }
  .u-wd200px {
    width: 25.641025641vw !important;
  }
  .u-mt-60 {
    margin-top: -7.6923076923vw !important;
  }
  .u-fs42 {
    font-size: 5.3846153846vw !important;
  }
  .u-fs29 {
    font-size: 3.7179487179vw !important;
  }
  .u-fs24--sp {
    font-size: 3.0769230769vw !important;
  }
  .u-fs23 {
    font-size: 2.9487179487vw !important;
  }
  .u-pt05 {
    padding-top: 0.5vw !important;
  }
  .u-pl20 {
    padding-left: 2.5641025641vw !important;
  }
  .u-pr20 {
    padding-right: 2.5641025641vw !important;
  }
  .u-pl13vw {
    padding-left: 13vw !important;
  }
  .u-minh-200 {
    min-height: 25.641025641vw !important;
  }
  .u-minh-300 {
    min-height: 38.4615384615vw !important;
  }
  .u-minh-400 {
    min-height: 51.2820512821vw !important;
  }
  .u-img-74 {
    width: 9.4871794872vw !important;
  }
  .u-fs15 {
    font-size: 2.5641025641vw !important;
  }
  .u-wd40px {
    width: 5.1282051282vw !important;
  }
  .u-wd30px {
    width: 6.4102564103vw !important;
  }
  .u-pa60 {
    padding: 7.6923076923vw !important;
  }
  .u-pa20 {
    padding: 2.5641025641vw !important;
  }
  .u-pr10 {
    padding-right: 1.2820512821vw !important;
  }
  .u-pr40 {
    padding-right: 5.1282051282vw !important;
  }
  .u-px60 {
    padding-left: 7.6923076923vw !important;
    padding-right: 7.6923076923vw !important;
  }
  .u-wd20px {
    width: 5vw !important;
  }
  .u-wd40px {
    width: 10vw !important;
  }
  .u-ht20px {
    height: 5vw !important;
  }
  .u-fs2_5 {
    font-size: 2.5vw !important;
  }
  .u-fs3vw {
    font-size: 3vw !important;
  }
  .u-ml50 {
    margin-left: 1.2820512821vw !important;
  }
  .u-wd25vw--sp {
    width: 25vw !important;
  }
  .u-py20 {
    padding-top: 2.5641025641vw !important;
    padding-bottom: 2.5641025641vw !important;
  }
  .u-txt-large {
    font-size: 4.358974359vw !important;
  }
  .u-gap100 {
    gap: 12.8205128205vw !important;
  }
  .u-wd40vw--sp {
    width: 40vw !important;
  }
  .u-maxh280 {
    max-height: 35.8974358974vw !important;
  }
  .u-pb100 {
    padding-bottom: 25.641025641vw !important;
  }
}
.u-wd100per {
  width: 100% !important;
}

.u-wd90per {
  width: 90% !important;
}

.u-wd87per {
  width: 87% !important;
}

.u-wd80per {
  width: 80% !important;
}

.u-wd70per {
  width: 70% !important;
}

.u-wd60per {
  width: 60% !important;
}

.u-wd50per {
  width: 50% !important;
}

.u-wd48per {
  width: 48% !important;
}

.u-wd42per {
  width: 42% !important;
}

.u-wd40per {
  width: 40% !important;
}

.u-wd35per {
  width: 35% !important;
}

.u-wd30per {
  width: 30% !important;
}

.u-wd25per {
  width: 25% !important;
}

.u-wd23per {
  width: 23% !important;
}

.u-wd21per {
  width: 21% !important;
}

.u-wd20per {
  width: 20% !important;
}

.u-wd15per {
  width: 15% !important;
}

.u-wd10per {
  width: 10% !important;
}

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

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

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

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

.u-txt-br {
  color: #7c3f27 !important;
}

.u-txt-orange {
  color: #de6a08 !important;
}

.u-txt-red {
  color: #fd3259 !important;
}

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

.u-valign-m {
  vertical-align: middle !important;
}

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

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

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

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

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

.u-gap04 {
  gap: 0.4rem !important;
}

.u-gap03 {
  gap: 0.3rem !important;
}

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

.u-fs2rem {
  font-size: 2rem !important;
}

.u-wd2rem {
  width: 2rem !important;
  height: auto !important;
}

.u-wd1rem {
  width: 1rem !important;
  height: auto !important;
}

.u-wdht2rem {
  width: 2rem !important;
  height: 1.8rem !important;
  object-fit: contain !important;
}

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

.u-height5rem {
  height: 4rem !important;
}

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

.u-rotate90 {
  transform: rotate(90deg);
}

.u-nomark::before {
  content: none !important;
}

.u-aspect-1 {
  aspect-ratio: 1/1 !important;
}

.u-object-contain {
  object-fit: contain !important;
}

.u-txt-orenge {
  color: #f7911e !important;
}

.u-indent1 {
  text-indent: -1em;
  padding-left: 1em;
}

.u-bgwh {
  background-color: #fff;
}

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

.u-hgt100per {
  height: 100% !important;
}

.u-zindex--1 {
  z-index: -1 !important;
}

.c-item__meta-title a {
  color: #fd3259 !important;
  text-decoration: underline;
}

.c-item__meta-title a:visited {
  color: #7c3f27 !important;
}

.c-item__meta-title a.u-visited-none {
  color: #fd3259 !important;
}

.c-item__meta-title a.u-visited-br {
  color: #7c3f27 !important;
}

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

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

.u-flex-row {
  display: flex !important;
  gap: 4px !important;
}

.u-htauto {
  height: auto !important;
}

.u-mx0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.u-mr--60 {
  margin-right: -60px !important;
}

.l-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1rem;
}

.l-header {
  padding-top: 86px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

.l-header__brand {
  font-weight: 700;
}

.l-header img {
  width: 258px;
  height: auto;
}

@media (max-width: 780.99px) {
  .l-header {
    padding-top: 21.5384615385vw;
  }
  .l-header img {
    width: 33.0769230769vw;
  }
}
.l-header-type01 {
  background: linear-gradient(to right, #d72150, #fd3259);
  height: 100px;
  width: 100%;
}
.l-header-type01-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  max-width: 1100px;
  height: 100%;
  margin: 0 auto;
  padding: 0 20px 20px;
}
.l-header-type01-menu-list {
  display: none;
  position: absolute;
  width: 500px;
  background: #fff;
  top: 100px;
  left: 0;
  box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35);
}
.l-header-type01-menu-list-itm + .l-header-type01-menu-list-itm {
  border-top: 1px solid #ddd;
}
.l-header-type01-menu-list-itm a {
  display: block;
  padding: 8px 16px;
  font-size: 16px;
  color: #7c3f27;
}
.l-header-type01-menu-list-itm a:hover {
  background: #f5f5f5;
  text-decoration: none;
}
.l-header-type01-nav {
  width: 40px;
  height: 40px;
}
.l-header-type01-nav.is-open .l-header-type01-menu-list {
  display: block;
  animation: fadein 0.7s ease;
  z-index: 102;
}
.l-header-type01-menu-togglebtn {
  display: block;
  width: 40px;
  height: 40px;
}
.l-header-type01-menu-togglebtn img {
  width: 100%;
  height: auto;
}
.l-header-type01-logo img {
  width: 200px;
  height: auto;
}
.l-header-type01-logo {
  margin-right: auto;
  margin-left: 50px;
}
.l-header-type01-mypage {
  color: #fff;
  font-size: 20px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 10px;
}
.l-header-type01-mypage span {
  display: block;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #fff;
}

@media (min-width: 781px) {
  .l-header-type01-menu-list {
    width: 200px;
    left: calc(50% - 540px);
    background-color: #fd3259;
    color: #fff;
    box-shadow: none;
  }
  .l-header-type01-menu-list a {
    color: #fff;
  }
  .l-header-type01-menu-list a:hover {
    background: rgba(255, 255, 255, 0.2);
  }
  .r-orange .l-header-type01-menu-list {
    background-color: #f7911e;
  }
}
.r-orange .l-header-type01 {
  background: linear-gradient(to right, #f15e24, #f7911e);
}

.r-orange .c-headings-type01 {
  background-image: url(../images/ico_man_o.svg);
}

.l-header-type01.r-nobg {
  background: none !important;
  border-bottom: solid 1px #fff;
  padding-bottom: 16px;
}
.l-header-type01.r-nobg .l-header-type01-mypage-txt {
  color: #515151;
}

@media (max-width: 780.99px) {
  .l-header-type01.r-nobg {
    padding-bottom: 2.0512820513vw;
  }
}
@keyframes fadein {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 780.99px) {
  .l-header-type01 {
    height: 17.564103vw !important;
  }
  .l-header-type01-inner {
    padding: 0 5.1282051282vw 0;
    max-width: 100%;
    align-items: center;
  }
  .l-header-type01-nav {
    width: 6.4102564103vw;
    height: 6.4102564103vw;
  }
  .l-header-type01-menu-togglebtn {
    width: 6.4102564103vw;
    height: 6.4102564103vw;
  }
  .l-header-type01-logo img {
    width: 25.5128205128vw;
  }
  .l-header-type01-logo {
    margin-left: 6.4102564103vw;
  }
  .l-header-type01-mypage {
    font-size: 2.6923076923vw;
    margin-right: 0;
  }
  .l-header-type01-mypage span {
    width: 10vw;
    height: 10vw;
  }
  .l-header-type01-menu-list {
    width: 80vw;
    top: 17.564103vw;
  }
  .l-header-type01-menu-list-itm a {
    padding: 5.1282051282vw 5.1282051282vw;
    font-size: 3.8461538462vw;
  }
}
.l-header-type01-menu-list-itm-sub a {
  padding-left: 20px;
}

.has-submenu {
  position: relative;
}
.has-submenu span {
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.has-submenu span::after {
  content: "";
  width: 10px;
  height: 10px;
  display: block;
  border-left: solid 2px #fff;
  border-bottom: solid 2px #fff;
  transform: rotate(-45deg);
}
.has-submenu.is-open > span {
  transform: rotate(180deg);
}

.l-header-type01-menu-list-itm-sub {
  background: rgba(255, 250, 239, 0.1);
}

.l-header-type01-menu-list-itm-sub-itm + .l-header-type01-menu-list-itm-sub-itm {
  border-top: solid 1px rgba(255, 250, 239, 0.2);
}

.has-submenu > ul {
  display: none;
}

.has-submenu.is-open > ul {
  display: block;
}

.l-header-type01-menu-list-itm-sub .l-header-type01-menu-list-itm-sub a {
  padding-left: 40px;
}

.l-header-type01-menu-list-itm-sub a {
  font-size: 13px;
  line-height: 1.4;
}

@media (max-width: 780.99px) {
  .has-submenu span {
    width: 10.2564102564vw;
    height: 15.512821vw;
  }
  .has-submenu span::after {
    width: 2.5641025641vw;
    height: 2.5641025641vw;
    border-left: solid 0.2564102564vw #000;
    border-bottom: solid 0.2564102564vw #000;
  }
  .l-header-type01-menu-list-itm-sub a {
    font-size: 3.0769230769vw;
  }
  .l-header-type01-menu-list-itm-sub {
    background: rgba(255, 245, 228, 0.1);
  }
  .l-header-type01-menu-list-itm-sub .l-header-type01-menu-list-itm-sub {
    background: rgba(255, 255, 255, 0.1);
  }
  .l-header-type01-menu-list-itm-sub-itm + .l-header-type01-menu-list-itm-sub-itm {
    border-top: solid 1px rgba(0, 0, 0, 0.05);
  }
  .l-header-type01-menu-list-itm-sub a {
    padding-left: 10vw;
  }
  .l-header-type01-menu-list-itm-sub .l-header-type01-menu-list-itm-sub a {
    padding-left: 15vw;
  }
  .l-header-type01-menu-list-itm-sub {
    border-top: solid 1px rgba(0, 0, 0, 0.05);
  }
}
.l-footer {
  height: 400px;
  background: url(../images/bg_foot_pc.svg) no-repeat center bottom/auto 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}

@media (max-width: 780.99px) {
  .l-footer {
    background: url(../images/bg_foot.svg) no-repeat center bottom/100% auto;
    height: 49.4871794872vw;
  }
}
.l-footer-type01 {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  background: transparent;
  height: auto;
  width: 100%;
  z-index: 100;
}
.l-footer-type01-menu-list {
  display: none !important;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
}
.l-footer-type01-menu-list-itm a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 110px;
}
.l-footer-type01-menu-list-itm a img {
  width: auto;
  height: 80px;
}

.r-orange .l-footer-type01 {
  background: transparent;
}

@media (max-width: 780.99px) {
  .l-footer-type01 {
    height: auto;
  }
  .l-footer-type01-menu-list {
    gap: 2.5641025641vw;
  }
  .l-footer-type01-menu-list-itm a {
    width: 15.3846153846vw;
  }
  .l-footer-type01-menu-list-itm a img {
    height: 13.0769230769vw;
  }
}
.l-footer-calender-menu {
  position: absolute;
  top: -120px;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 101;
}

.l-footer-calender-menu-list {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 500px;
  margin: 0 auto;
}
.l-footer-calender-menu-list-itm {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  justify-content: center;
  align-items: center;
  color: #515151;
  font-size: 15px;
}
.l-footer-calender-menu-list-itm a:hover {
  background: linear-gradient(to left, #d72150, #fd3259);
}
.l-footer-calender-menu-list-itm-r {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(to right, #d72150, #fd3259);
}
.l-footer-calender-menu-list-itm-r img {
  width: 50%;
  height: auto;
}
.l-footer-calender-menu-list-itm-l {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 198px;
  height: 45px;
  border-radius: 25px;
  background: linear-gradient(to right, #d72150, #fd3259);
  margin-bottom: 4px;
}
.l-footer-calender-menu-list-itm-l img {
  width: 70%;
  height: auto;
}

@media (max-width: 780.99px) {
  .l-footer-calender-menu {
    top: -16vw;
  }
  .l-footer-calender-menu-list {
    width: 90%;
  }
  .l-footer-calender-menu-list-itm {
    font-size: 1.9230769231vw;
  }
  .l-footer-calender-menu-list-itm-r {
    width: 9.6153846154vw;
    height: 9.6153846154vw;
  }
  .l-footer-calender-menu-list-itm-l {
    width: 25.3846153846vw;
    height: 5.7692307692vw;
    border-radius: 3.2051282051vw;
    margin-bottom: 2.0512820513vw;
  }
}
.c-btn-send {
  width: 250px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  background-color: #fd3259;
  border-radius: 100px;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 20px auto 0;
  position: relative;
}
.c-btn-send::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 24px;
  right: 34px;
  transform: rotate(45deg);
  border-top: #fff solid 2px;
  border-right: #fff solid 2px;
}
.c-btn-send:hover {
  background-color: rgba(253, 50, 89, 0.6);
}
.c-btn-send.r-sub {
  background-color: #f7a808;
}
.c-btn-send.r-sub:hover {
  background-color: rgba(247, 168, 8, 0.6);
}
.c-btn-send.r-column {
  border: solid 1px #f7a808;
  background: #fff;
  color: #f7a808;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -30px;
  margin: 0 auto;
}
.c-btn-send.r-column::after {
  content: none;
}
.c-btn-send.r-wide {
  width: 452px;
}
.c-btn-send.r-small {
  width: 200px;
  border-radius: 20px;
  margin-left: 0;
}
.c-btn-send.r-xsmall {
  width: 200px;
  border-radius: 5px;
  margin-right: 0;
  background: #f08d45;
}
.c-btn-send.r-xsmall::after {
  content: none;
}

.c-btn-send-s {
  display: inline-block;
  background-color: #fd3259;
  border-radius: 5px;
  color: #fff;
  padding: 2px 4px;
  margin: 0 4px;
}

.c-btn-sub {
  width: 168px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 18px;
  text-align: center;
  background-color: #fff;
  border-radius: 100px;
  border: solid 1px #f7a808;
  color: #f7a808;
  cursor: pointer;
  transition: background-color 0.3s ease;
  position: relative;
  padding-right: 20px;
  margin-top: 20px;
}
.c-btn-sub.r-wide {
  width: 90%;
  margin-top: 0;
}
.c-btn-sub.r-disabled {
  background-color: #e0e0e0;
  border-color: #e0e0e0;
  color: #a0a0a0;
  pointer-events: none;
}
.c-btn-sub.r-disabled::after {
  content: none !important;
}
.c-btn-sub.r-disabled:hover {
  background-color: #e0e0e0;
}
.c-btn-sub::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  position: absolute;
  top: 18px;
  right: 23px;
  transform: rotate(45deg);
  border-top: #f7a808 solid 2px;
  border-right: #f7a808 solid 2px;
}
.c-btn-sub:hover {
  background-color: rgba(247, 168, 8, 0.6);
  color: #fff;
}
.c-btn-sub:hover::after {
  border-top: #fff solid 2px;
  border-right: #fff solid 2px;
}

.c-btn-confirm {
  width: 200px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  background-color: #fd3259;
  border-radius: 20px;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 40px auto 0;
}
.c-btn-confirm:hover {
  background-color: rgba(253, 50, 89, 0.6);
}
.c-btn-confirm span {
  font-size: 16px;
  font-weight: 400;
  margin-right: 6px;
}
.c-btn-confirm.r-sub {
  background-color: #f7a808;
}
.c-btn-confirm.r-sub:hover {
  background-color: rgba(247, 168, 8, 0.6);
}

.c-btn-change {
  width: 300px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  background-color: #fd3259;
  border-radius: 100px;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 20px auto 0;
  position: relative;
}
.c-btn-change:hover {
  background-color: rgba(253, 50, 89, 0.6);
  text-decoration: none;
}

.c-btn-nagative {
  width: 200px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  background-color: #b5b5b6;
  border-radius: 35px;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 40px auto 0;
}
.c-btn-nagative:hover {
  background-color: rgba(181, 181, 182, 0.6);
}

@media (max-width: 780.99px) {
  .c-btn-send {
    width: 38.4615384615vw;
    height: 9.2307692308vw;
    font-size: 3.4615384615vw;
    border-radius: 12.8205128205vw;
    margin: 5.1282051282vw auto 0;
  }
  .c-btn-send::after {
    width: 2.3076923077vw;
    height: 2.3076923077vw;
    top: 3.5897435897vw;
    right: 5.1282051282vw;
    border-top: #fff solid 0.2564102564vw;
    border-right: #fff solid 0.2564102564vw;
  }
  .c-btn-send:hover {
    background-color: #fd3259;
  }
  .c-btn-send.r-column {
    bottom: -3.8461538462vw;
  }
  .c-btn-send.r-wide {
    width: 57.9487179487vw;
  }
  .c-btn-send.r-xsmall {
    width: 25.641025641vw;
    border-radius: 1.2820512821vw;
    margin-top: 2vw;
  }
  .c-btn-send-s {
    border-radius: 1.2820512821vw;
    padding: 0.2564102564vw 1.0256410256vw;
    margin: 0 0.5128205128vw;
  }
  .c-btn-sub {
    width: 21.5384615385vw;
    height: 9.2307692308vw;
    font-size: 2.6923076923vw;
    border-radius: 12.8205128205vw;
    margin-top: 3.8461538462vw;
    padding-right: 2.5641025641vw;
  }
  .c-btn-sub::after {
    width: 1.5384615385vw;
    height: 1.5384615385vw;
    top: 3.5897435897vw;
    right: 2.9487179487vw;
    border-top: #f7a808 solid 0.2564102564vw;
    border-right: #f7a808 solid 0.2564102564vw;
  }
  .c-btn-sub:hover {
    background-color: #f7a808;
  }
  .c-btn-confirm {
    width: 32.3076923077vw;
    height: 13.8461538462vw;
    font-size: 5.3846153846vw;
    border-radius: 4.4871794872vw;
    margin: 11.5384615385vw auto 0;
  }
  .c-btn-confirm:hover {
    background-color: #fd3259;
  }
  .c-btn-confirm.r-sub {
    height: 11.5384615385vw;
  }
  .c-btn-change {
    width: 63.5897435897vw;
    height: 9.2307692308vw;
    font-size: 3.4615384615vw;
    border-radius: 12.8205128205vw;
    margin: 5.1282051282vw auto 0;
  }
  .c-btn-change:hover {
    background-color: #fd3259;
  }
  .c-btn-nagative {
    width: 32.3076923077vw;
    height: 13.8461538462vw;
    font-size: 5.3846153846vw;
    border-radius: 4.4871794872vw;
    margin: 11.5384615385vw auto 0;
  }
  .c-btn-nagative:hover {
    background-color: #b5b5b6;
  }
}
.c-btn-menu {
  width: 100%;
  height: 185px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 30px;
  font-size: 30px;
  color: #7c3f27;
  padding: 26px 50px;
  border-radius: 16px;
  background: #fff;
  margin-top: 16px;
  position: relative;
}
.c-btn-menu img {
  width: 111px;
  height: 100%;
  object-fit: contain;
}
.c-btn-menu:hover {
  text-decoration: none;
}
.c-btn-menu.r-em {
  font-weight: bold;
  color: #fd3259;
}

@media (max-width: 780.99px) {
  .c-btn-menu {
    height: 23.7179487179vw;
    gap: 3.8461538462vw;
    font-size: 4.358974359vw;
    padding: 3.3333333333vw 6.4102564103vw;
    border-radius: 2.0512820513vw;
  }
  .c-btn-menu img {
    width: 14.2307692308vw;
  }
}
.c-btn-back {
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 155px;
  height: 73px;
  color: #7c3f27;
  font-size: 30px;
  text-decoration: none;
  background: url("data:image/svg+xml;utf8,<?xml version=\"1.0\" encoding=\"UTF-8\"?><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox='0 0 154.91 73.46'><path fill='white' stroke='%236f7070' stroke-width='1.14' stroke-miterlimit='10' d='M154.34,36.73c0,19.97-8.29,36.16-18.52,36.16H19.09C8.86,72.89.57,56.7.57,36.73h0C.57,16.75,8.86.57,19.09.57h116.74c10.22,0,18.52,16.19,18.52,36.16h0Z'/></svg>") no-repeat center/contain;
}

@media (max-width: 780.99px) {
  .c-btn-back {
    width: 19.8717948718vw;
    height: 9.358974359vw;
    font-size: 3.8461538462vw;
  }
}
.c-btn-back-page {
  margin: 20px auto 0;
  text-align: center;
  width: 200px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-size: 20px;
  color: #7c3f27;
}
.c-btn-back-page img {
  width: 30px;
  height: auto;
}

@media (max-width: 780.99px) {
  .c-btn-back-page {
    margin: 5.1282051282vw auto 0;
    width: 38.4615384615vw;
    height: 12.8205128205vw;
    font-size: 3.8461538462vw;
    gap: 1.2820512821vw;
  }
  .c-btn-back-page img {
    width: 7.6923076923vw;
  }
}
.c-btn-menu-group {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.c-btn-menu-group .c-btn-menu {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px;
  height: auto;
  gap: 10px;
}
.c-btn-menu-group .c-btn-menu img {
  height: 100px;
}
.c-btn-menu-group.r-wrap {
  flex-wrap: wrap;
  margin-top: 40px;
}
.c-btn-menu-group.r-wrap .c-btn-menu {
  width: 46%;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 30px;
}
.c-btn-menu-group.r-wrap .c-btn-menu.r-small {
  aspect-ratio: auto;
  flex-direction: row;
  font-size: 25px;
  justify-content: flex-start;
  border-radius: 20px;
}
.c-btn-menu-group.r-wrap .c-btn-menu.r-small img {
  width: 70px;
  height: 70px;
}
.c-btn-menu-group.r-wrap .c-btn-menu.r-small img.r-small {
  height: 50px;
}

span.c-btn-menu {
  background-color: transparent !important;
  border: solid 2px #fff;
  color: #a8a7a7 !important;
}
span.c-btn-menu svg path {
  fill: #a8a7a7 !important;
}

.c-btn-menu-info {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(to right, #d72150, #fd3259);
  color: #fff;
  font-size: 30px;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: -10px;
  right: -10px;
}

@media (max-width: 780.99px) {
  .c-btn-menu-group {
    gap: 2.5641025641vw;
  }
  .c-btn-menu-group .c-btn-menu {
    padding: 2.5641025641vw;
    gap: 1.2820512821vw;
  }
  .c-btn-menu-group .c-btn-menu img {
    height: 12.8205128205vw;
  }
  .c-btn-menu-group.r-wrap {
    margin-top: 2vw;
  }
  .c-btn-menu-group.r-wrap .c-btn-menu {
    border-radius: 3.8461538462vw;
  }
  .c-btn-menu-group.r-wrap .c-btn-menu img {
    height: 15.820513vw;
  }
  .c-btn-menu-group.r-wrap .c-btn-menu.r-small {
    font-size: 3.2051282051vw;
    border-radius: 2.5641025641vw;
  }
  .c-btn-menu-group.r-wrap .c-btn-menu.r-small img {
    width: 8.9743589744vw;
    height: 8.9743589744vw;
  }
  .c-btn-menu-group.r-wrap .c-btn-menu.r-small img.r-small {
    height: 6.4102564103vw;
  }
  .c-btn-menu-info {
    width: 7.6923076923vw;
    height: 7.6923076923vw;
    font-size: 3.8461538462vw;
    top: -vw(10);
    right: -vw(10);
  }
}
.c-btn-totop {
  margin-top: 30px;
}
.c-btn-totop a {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 13px;
  font-size: 20px;
  color: #fd3259;
  text-decoration: none;
  width: fit-content;
  margin: 0 auto;
}
.c-btn-totop img {
  width: 65px;
  height: auto;
}

@media (max-width: 780.99px) {
  .c-btn-totop {
    margin-top: 6.4102564103vw;
  }
  .c-btn-totop a {
    gap: 1.6666666667vw;
    font-size: 2.5641025641vw;
  }
  .c-btn-totop img {
    width: 8.3333333333vw;
  }
}
.c-btn-collist {
  display: flex;
  flex-direction: column;
  gap: 23px;
}
.c-btn-collist-itm-link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100px;
  color: #7c3f27;
  font-size: 30px;
  text-decoration: none;
  background-color: #fff;
  border-radius: 20px;
}
.c-btn-collist-itm-link:hover {
  text-decoration: none;
}

@media (max-width: 780.99px) {
  .c-btn-collist {
    gap: 2.9487179487vw;
  }
  .c-btn-collist-itm-link {
    height: 14.1025641026vw;
    font-size: 3.8461538462vw;
    border-radius: 2.5641025641vw;
  }
}
.c-btn-change-output {
  display: block;
  width: 160px;
  height: 50px;
  background: rgba(242, 150, 0, 0.2);
  border-radius: 10px;
  font-size: 27px;
  font-weight: bold;
  line-height: 50px;
  text-align: center;
  color: #7c3f27;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.c-btn-change-output.r-mid {
  width: 221px;
  height: 70px;
  line-height: 70px;
}
.c-btn-change-output:hover {
  background-color: rgba(242, 150, 0, 0.3);
}
.c-btn-change-output.r-sub {
  background: none;
  border: solid 2px #7c3f27;
  width: 90px;
  height: 40px;
  font-size: 16px;
  line-height: 34px;
  transition: box-shadow 0.3s ease;
  flex-grow: 0;
  flex-shrink: 0;
}
.c-btn-change-output.r-sub:hover {
  text-decoration: none;
  box-shadow: 0 0 0 1px #7c3f27 inset;
}

.c-accrdion-type01-ttl > * {
  flex-grow: 0;
  flex-shrink: 0;
}

@media (max-width: 780.99px) {
  .c-btn-change-output {
    width: 20.5128205128vw;
    height: 6.4102564103vw;
    font-size: 3.4615384615vw;
    line-height: 6.4102564103vw;
    border-radius: 1.2820512821vw;
  }
  .c-btn-change-output.r-mid {
    width: 28.3333333333vw;
    height: 8.9743589744vw;
    line-height: 8.9743589744vw;
  }
  .c-btn-change-output:hover {
    background-color: rgba(242, 150, 0, 0.2);
  }
  .c-btn-change-output.r-sub {
    width: 12.8205128205vw;
    height: 6.4102564103vw;
    font-size: 2.3076923077vw;
    line-height: 5.3846153846vw;
  }
  .c-btn-change-output.r-sub:hover {
    box-shadow: none;
  }
}
.c-button-commit {
  width: 200px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  background-color: #fff;
  color: #fd3259;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 40px auto 0;
  position: relative;
  border-radius: 20px;
  overflow: hidden;
}
.c-button-commit::after {
  content: "";
  position: absolute;
  inset: 0; /* top, right, bottom, left: 0 と同じ */
  padding: 3px; /* ← ボーダーの太さ */
  border-radius: inherit;
  background: linear-gradient(to right, #d72150, #fd3259);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

@media (max-width: 780.99px) {
  .c-button-commit {
    width: 38.4615384615vw;
    height: 12.8205128205vw;
    font-size: 3.8461538462vw;
    margin: 11.5384615385vw auto 0;
  }
}
.c-btn-clear {
  width: 160px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  background-color: #f4f4f4;
  border-radius: 20px;
  color: #7c3f27;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 40px auto 0;
  border: solid 2px #7c3f27;
}
.c-btn-clear:hover {
  background-color: #fff;
}

@media (max-width: 780.99px) {
  .c-btn-clear {
    width: 23.0769230769vw;
    height: 10vw;
    font-size: 3.5897435897vw;
    margin: 11.5384615385vw auto 0;
  }
}
.c-button-commit-em {
  width: 200px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 40px auto 0;
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: linear-gradient(to right, #d72150, #fd3259);
}
.c-button-commit-em:hover {
  text-decoration: none;
}

@media (max-width: 780.99px) {
  .c-button-commit-em {
    width: 38.4615384615vw;
    height: 12.8205128205vw;
    font-size: 3.8461538462vw;
    margin: 11.5384615385vw auto 0;
  }
}
.c-btn-upload {
  padding: 6px 16px;
  border-radius: 10px;
  display: inline-block;
  background: #e89898;
  color: #fff;
  font-size: 16px;
  margin-left: 60px;
}

@media (max-width: 780.99px) {
  .c-btn-upload {
    padding: 0.7692307692vw 2.0512820513vw;
    border-radius: 1.2820512821vw;
    font-size: 2.0512820513vw;
    margin-left: 7.6923076923vw;
  }
}
.input-del-btn {
  width: 30px;
  height: 30px;
  justify-content: center;
  align-items: center;
  font-size: 30px;
  color: #fd3259;
  font-weight: bold;
  position: absolute;
  top: 20px;
  right: 20px;
  display: none;
}

@media (max-width: 780.99px) {
  .input-del-btn {
    width: 3.8461538462vw;
    height: 3.8461538462vw;
    font-size: 5.1282051282vw;
    top: 2.5641025641vw;
    right: 1.2820512821vw;
  }
}
.c-btn-img-upload-s.disabled {
  pointer-events: none;
  opacity: 0.3;
}

.c-button-add-circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  background-color: #000;
  border-radius: 50%;
  align-self: center;
}
.c-button-add-circle img {
  width: 60%;
  height: auto;
}

@media (max-width: 780.99px) {
  .c-button-add-circle {
    width: 5vw;
    height: 5vw;
    margin-right: 6vw;
  }
}
.c-card {
  border-radius: 0.75rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
  background: #fff;
  padding: 1rem;
}

.c-card__title {
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.c-card__body {
  line-height: 1.8;
}

.c-modal {
  position: fixed;
  inset: 0;
  display: none;
  place-items: center;
  background: rgba(0, 0, 0, 0.5);
  padding: 1rem;
}

.c-modal[aria-hidden=false] {
  display: grid;
}

.c-modal__panel {
  background: #fff;
  border-radius: 0.75rem;
  padding: 1.5rem;
  width: min(90vw, 560px);
}

.c-login {
  width: 87.6923076923%;
  margin: 200px auto 0;
  background: #fd3259 url("../images/bg_content.svg") no-repeat bottom center/100% auto;
  border-radius: 145px;
  padding: 30px 90px 50px;
}
.c-login-hdg {
  text-align: center;
  color: #fff;
  font-size: 43px;
  margin-bottom: 50px;
}
.c-login-field {
  position: relative;
  margin-bottom: 50px;
}
.c-login-field-ttl {
  color: #fff;
  font-size: 25px;
}
.c-login-field::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  border-radius: 2px;
  background: #ffb0c7;
  position: absolute;
  bottom: 0;
  left: 0;
}
.c-login-input {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  outline: none;
  background: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  width: 100%;
  font-size: 25px;
  color: #000;
  margin-top: 10px;
  margin-bottom: 6px;
}
.c-login-btn {
  background-color: transparent;
  border: none;
  outline: none;
  padding: 0;
  appearance: none;
  width: 300px;
  height: 72px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 27px;
  font-weight: 700;
  text-align: center;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 100px;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin: 40px auto 0;
  position: relative;
}
.c-login-btn::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  position: absolute;
  top: 28px;
  right: 40px;
  transform: rotate(45deg);
  border-top: #fff solid 2px;
  border-right: #fff solid 2px;
}
.c-login-btn:hover {
  background-color: rgba(255, 255, 255, 0.1);
}
.c-login-txt {
  display: flex;
  justify-content: space-between;
}
.c-login-txt + p {
  margin-top: 16px;
}
.c-login-txts {
  font-size: 25px;
  color: #fff;
  margin-top: 50px;
}
.c-login-txts a {
  font-weight: bold;
  color: #fff;
}

@media (max-width: 780.99px) {
  .c-login {
    width: 87.6923076923%;
    margin: 42.3076923077vw auto 0;
    border-radius: 18.5897435897vw;
    padding: 5.1282051282vw 10.2564102564vw 8.9743589744vw;
  }
  .c-login-hdg {
    font-size: 5.5128205128vw;
    margin-bottom: 6.4102564103vw;
  }
  .c-login-field {
    margin-bottom: 6.4102564103vw;
  }
  .c-login-field-ttl {
    font-size: 3.2051282051vw;
  }
  .c-login-field::after {
    height: 0.5128205128vw;
    border-radius: 0.2564102564vw;
  }
  .c-login-input {
    font-size: 3.2051282051vw;
    margin-top: 1.2820512821vw;
    margin-bottom: 0.7692307692vw;
  }
  .c-login-btn {
    width: 38.4615384615vw;
    height: 9.2307692308vw;
    font-size: 3.4615384615vw;
    border-radius: 12.8205128205vw;
    margin: 5.1282051282vw auto 0;
  }
  .c-login-btn::after {
    width: 2.3076923077vw;
    height: 2.3076923077vw;
    top: 3.5897435897vw;
    right: 5.1282051282vw;
    border-top: #fff solid 0.2564102564vw;
    border-right: #fff solid 0.2564102564vw;
  }
  .c-login-txt + p {
    margin-top: 2.0512820513vw;
  }
  .c-login-txts {
    font-size: 3.2051282051vw;
    margin-top: 6.4102564103vw;
  }
}
.l-main-hdg-lv1 {
  text-align: center;
  color: #fd3259;
  font-size: 42px;
  font-weight: bold;
}
.l-main-hdg-lv2 {
  text-align: center;
  color: #fd3259;
  font-size: 28px;
  font-weight: bold;
}

.r-main .l-main-hdg-lv1 {
  margin-top: 150px;
  margin-bottom: 30px;
}

.l-main-hdg-plan {
  width: 500px;
  height: 60px;
  margin: 67px auto 82px;
  border-radius: 50px;
  background: linear-gradient(to right, #4ba69e, #55a9dc);
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 28px;
  font-weight: 700;
}

@media (max-width: 780.99px) {
  .l-main-hdg-lv1 {
    font-size: 5.3846153846vw;
  }
  .l-main-hdg-lv2 {
    font-size: 3.9743589744vw;
  }
  .r-main .l-main-hdg-lv1 {
    margin-top: 28.2051282051vw;
    margin-bottom: 12.8205128205vw;
  }
  .l-main-hdg-plan {
    width: 80.1282051282vw;
    height: 10.2564102564vw;
    margin: 8.5897435897vw auto 10.5128205128vw;
    font-size: 4.7435897436vw;
    border-radius: 6.4102564103vw;
  }
}
.c-headings-type01 {
  width: 900px;
  height: 340px;
  padding: 100px 100px 0 300px;
  margin: 25px auto;
  background: url("../images/ico_man.svg") no-repeat top left/auto 100%;
}

.c-headings-type01-lv1 {
  width: 500px;
  height: 60px;
  border-radius: 50px;
  background: linear-gradient(to right, #f15a24, #f7931e);
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 28px;
  font-weight: 900;
}
.c-headings-type01-lv1.r-important {
  position: relative;
}
.c-headings-type01-lv1.r-important::before {
  content: "";
  width: 63px;
  height: 77px;
  display: block;
  background: url("../images/ico_important.svg") no-repeat center center/contain;
  position: absolute;
  top: -77px;
  left: 34px;
}

.c-headings-type01-txt {
  margin-top: 20px;
  font-size: 18px;
  line-height: 1.5;
  color: #7c3f27;
  padding-left: 130px;
  font-weight: bold;
}

.c-headings-type01-lv2 {
  color: #fd3259;
  font-size: 35px;
  font-weight: bold;
}
.c-headings-type01-lv2::before {
  content: "●";
  display: inline-block;
}

.c-headings-type01-lv2-nm {
  color: #fd3259;
  font-size: 35px;
  font-weight: bold;
  margin-bottom: 1rem;
}

.c-headings-type00-lv2 {
  color: #000;
  font-size: 30px;
  font-weight: bold;
}
.c-headings-type00-lv2::before {
  content: "●";
  display: inline-block;
}

.c-headings-type00-lv3 {
  color: #000;
  font-size: 30px;
  font-weight: bold;
}
.c-headings-type00-lv3::before {
  content: "◎";
  display: inline-block;
}

.r-orange .c-headings-type01-lv1 {
  background: #fff !important;
  color: #fd3259 !important;
  border: solid 4px #fd3259;
}

.c-headings-type01-subttl {
  text-align: center;
  color: #fd3259;
  font-size: 20px;
  font-weight: bold;
  margin-left: 16px;
  margin-top: -2rem;
}

@media (max-width: 780.99px) {
  .c-headings-type01 {
    width: 100%;
    height: 41.0256410256vw;
    padding: 10.2564102564vw 5.1282051282vw 0 35.8974358974vw;
    margin: 3.2051282051vw auto;
  }
  .c-headings-type01-lv1 {
    width: 58.9743589744vw;
    height: 10.2564102564vw;
    border-radius: 6.4102564103vw;
    font-size: 3.8461538462vw;
  }
  .c-headings-type01-lv1.r-important::before {
    content: "";
    width: 8.0769230769vw;
    height: 9.8717948718vw;
    top: -9.8717948718vw;
    left: 4.358974359vw;
  }
  .c-headings-type01-txt {
    margin-top: 2.5641025641vw;
    font-size: 2.6923076923vw;
    padding-left: 14.1025641026vw;
  }
  .c-headings-type01-lv2,
  .c-headings-type01-lv2-nm {
    font-size: 4.358974359vw;
  }
  .c-headings-type00-lv2,
  .c-headings-type00-lv3 {
    font-size: 3.5897435897vw;
  }
}
.c-sub-hdg {
  text-align: center;
  color: #7c3f27;
  font-size: 34px;
  font-weight: bold;
  margin-bottom: 150px;
}

@media (max-width: 780.99px) {
  .c-sub-hdg {
    font-size: 4.358974359vw;
    margin-bottom: 19.2307692308vw;
  }
}
.c-headings-type01-sub {
  margin-top: -170px;
  padding: 0 80px;
}
.c-headings-type01-sub-ttl {
  color: #fff;
  font-size: 30px;
  font-weight: bold;
  height: 100px;
  display: flex;
  flex-direction: column;
  justify-content: end;
  margin-left: 40px;
  width: 121px;
  line-height: 1.2;
  margin-bottom: 8px;
}

.c-main-hdg-type01 {
  color: #fd3259;
  font-size: 30px;
  font-weight: bold;
}
.c-main-hdg-type01::before {
  content: "■";
  display: inline-block;
  margin-right: 6px;
}

@media (max-width: 780.99px) {
  .c-headings-type01-sub {
    margin-top: -21.7948717949vw;
    padding: 0 10.2564102564vw;
  }
  .c-headings-type01-sub-ttl {
    font-size: 3.8461538462vw;
    height: 12.8205128205vw;
    margin-left: 5.1282051282vw;
    width: 15.5128205128vw;
    margin-bottom: 1.0256410256vw;
  }
  .c-main-hdg-type01 {
    font-size: 4.6153846154vw;
  }
}
.c-headgings-flex {
  display: flex;
  gap: 60px;
  align-items: center;
}

@media (max-width: 780.99px) {
  .c-headgings-flex {
    gap: 7.6923076923vw;
  }
}
.c-main-hdg-type02 {
  color: #000;
  font-size: 26px;
  font-weight: bold;
}

@media (max-width: 780.99px) {
  .c-main-hdg-type02 {
    font-size: 3.3333333333vw;
  }
}
.c-txt {
  font-size: 18px;
  color: #000;
  padding: 0 30px;
}
.c-txt-n {
  font-size: 18px;
  color: #000;
}
.c-txt-n + .c-txt-n {
  margin-top: 1rem;
}
.c-txt-scroll-bdr {
  border: solid 1px #d9284d;
  border-radius: 28px;
  background: #fff;
  padding: 20px;
  margin-top: 40px;
  margin-bottom: 20px;
}
.c-txt-scroll-bdr-inr {
  padding: 16px;
  max-height: 328px;
  overflow-y: scroll;
}
.c-txt-scroll-bdr-inr::-webkit-scrollbar {
  width: 8px;
  background: transparent;
}
.c-txt-scroll-bdr-inr::-webkit-scrollbar-thumb {
  background: #fd3259;
  border-radius: 4px;
}
.c-txt-scroll-bdr-inr::-webkit-scrollbar-track {
  background: transparent;
}
.c-txt-error {
  color: #f00;
  font-size: 18px;
}
.c-txt-error.r-blue {
  color: #00f;
}

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

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

.u-txt-small {
  font-size: 16px !important;
}

@media (max-width: 780.99px) {
  .c-txt {
    font-size: 3.5897435897vw;
    padding: 0 3.8461538462vw;
  }
  .c-txt-n {
    font-size: 3.8461538462vw;
  }
  .c-txt-scroll-bdr {
    border: solid 0.1282051282vw #d9284d;
    border-radius: 3.5897435897vw;
    padding: 2.5641025641vw;
    margin-top: 5.1282051282vw;
    margin-bottom: 2.5641025641vw;
  }
  .c-txt-scroll-bdr-inr {
    padding: 2.0512820513vw;
    max-height: 67.6923076923vw;
  }
  .c-txt-scroll-bdr-inr::-webkit-scrollbar {
    width: 1.0256410256vw;
  }
  .c-txt-scroll-bdr-inr::-webkit-scrollbar-thumb {
    border-radius: 0.5128205128vw;
  }
  .c-txt-error {
    font-size: 3.8461538462vw;
  }
  .u-txt-small {
    font-size: 3.0769230769vw !important;
  }
}
.u-txt-type01-s {
  color: #7c3f27;
  font-size: 18px;
}

@media (max-width: 780.99px) {
  .u-txt-type01-s {
    font-size: 3.3333333333vw;
  }
  .u-maxheight228 {
    max-height: 29.2307692308vw !important;
  }
}
.u-txt-bold {
  font-weight: bold !important;
}

.c-txt-note {
  color: #fd3259;
  font-size: 30px;
  text-indent: -1em;
  padding-left: 3em;
}

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

.u-txt-br {
  color: #7c3f27 !important;
}

@media (max-width: 780.99px) {
  .c-txt-note {
    font-size: 3.8461538462vw;
    padding-left: 12.8205128205vw;
    text-indent: -vw(30);
  }
}
.c-txt-filename {
  margin-top: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  line-height: 1;
  font-size: 16px;
  width: 70%;
}
.c-txt-filename span {
  white-space: nowrap; /* 折り返さない */
  overflow: hidden; /* はみ出した部分を非表示 */
  text-overflow: ellipsis; /* 省略記号（…）を表示 */
  display: block;
}
.c-txt-filename::before {
  flex-shrink: 0;
  content: "";
  display: inline-block;
  width: 19px;
  height: 23px;
  background: url("../images/ico_pin_ok.svg") no-repeat left bottom/contain;
}
.c-txt-filename + .c-txt-filename-error {
  margin-top: 6px;
}
.c-txt-filename-error {
  margin-top: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #d70000;
  line-height: 1;
  font-size: 16px;
  width: 70%;
}
.c-txt-filename-error::before {
  flex-shrink: 0;
  content: "";
  display: inline-block;
  width: 19px;
  height: 23px;
  background: url("../images/ico_pin_ng.svg") no-repeat left bottom/contain;
}
.c-txt-filename-trash {
  display: block;
  width: 70px;
  height: 70px;
  position: absolute;
  right: 0;
  bottom: 0;
  top: 0;
  margin: auto 0;
}
.c-txt-filename-trash img {
  width: 100%;
  height: auto;
}

@media (max-width: 780.99px) {
  .c-txt-filename-wrap {
    display: none;
  }
  .c-txt-filename {
    margin-top: 3.8461538462vw;
    gap: 1.0256410256vw;
    font-size: 2.8205128205vw;
    margin-left: 3.8461538462vw;
    width: 70%;
  }
  .c-txt-filename::before {
    width: 2.4358974359vw;
    height: 2.9487179487vw;
  }
  .c-txt-filename + .c-txt-filename-error {
    margin-top: 0.7692307692vw;
  }
  .c-txt-filename-error {
    margin-top: 3.8461538462vw;
    gap: 1.0256410256vw;
    font-size: 2.8205128205vw;
    margin-left: 3.8461538462vw;
    width: 70%;
  }
  .c-txt-filename-error::before {
    width: 2.4358974359vw;
    height: 2.9487179487vw;
  }
  .c-txt-filename-trash {
    width: 8.9743589744vw;
    height: 8.9743589744vw;
  }
}
.u-txt-confirm {
  color: #7c3f27;
  font-weight: bold;
  text-align: center;
  font-size: 24px;
}

@media (max-width: 780.99px) {
  .u-txt-confirm {
    font-size: 3.8461538462vw;
  }
}
.c-txt-link-or {
  text-decoration: underline;
  color: #f7a808;
}

.c-txt-note-01 {
  text-indent: -1.2em;
  padding-left: 1em;
  font-size: 15px;
}
.c-txt-note-01::before {
  content: "※";
}

@media (max-width: 780.99px) {
  .c-txt-note-01 {
    font-size: 2.5641025641vw;
  }
}
.c-block {
  padding: 0 50px;
}
.c-block + .c-block {
  margin-top: 80px;
}
.c-block-bdr {
  width: 100%;
  background: #fff;
  border-radius: 30px;
  border: solid 4px #d9284d;
  padding: 30px 50px;
}

.c-block-n {
  padding: 0 50px;
}
.c-block-n + .c-block-n {
  margin-top: 80px;
}
.c-block-n.r-column {
  background: #f9deb2;
  border-radius: 30px;
  padding: 20px 40px 120px;
  position: relative;
  width: 84%;
  margin: 0 auto;
}

.c-block-chk {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.c-block-chk-inp {
  appearance: none;
  -webkit-appearance: none;
  width: 30px;
  height: 30px;
  border: 2px solid #fd3259;
  background: #fff;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
}

.c-block-chk-inp:checked::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background: #fd3259;
  position: absolute;
  top: 4px;
  left: 4px;
  border-radius: 2px;
}

.c-block-chk-lbl {
  font-size: 20px;
  color: #000;
  cursor: pointer;
}

@media (max-width: 780.99px) {
  .c-block {
    padding: 0 6.4102564103vw;
  }
  .c-block + .c-block {
    margin-top: 19.2307692308vw;
  }
  .c-block-bdr {
    border-radius: 6.4102564103vw;
    border: solid 0.5128205128vw #d9284d;
    padding: 3.8461538462vw 6.4102564103vw;
  }
  .c-block-n {
    padding: 0 10.2564102564vw;
  }
  .c-block-n + .c-block-n {
    margin-top: 19.2307692308vw;
  }
  .c-block-n.r-column {
    border-radius: 3.8461538462vw;
    padding: 2.5641025641vw 5.1282051282vw 10.2564102564vw;
  }
  .c-block-chk {
    gap: 1.5384615385vw;
  }
  .c-block-chk-inp {
    width: 3.8461538462vw;
    height: 3.8461538462vw;
    border: 0.2564102564vw solid #fd3259;
  }
  .c-block-chk-inp:checked::after {
    width: 2.3076923077vw;
    height: 2.3076923077vw;
    top: 0.5128205128vw;
    left: 0.5128205128vw;
    border-radius: 0.2564102564vw;
  }
  .c-block-chk-lbl {
    font-size: 3.5897435897vw;
  }
}
.c-block-qr {
  border: solid 4px #fd3259;
  background: #fff;
  width: 500px;
  height: 500px;
  margin: 0 auto 200px;
}

@media (max-width: 780.99px) {
  .c-block-qr {
    border: solid 0.5128205128vw #fd3259;
    width: 64.1025641026vw;
    height: 64.1025641026vw;
    margin: 0 auto 25.641025641vw;
  }
}
.c-block-toggle-btn {
  border-top: solid 1px #fd3259;
  padding: 8px 40px;
  width: 90%;
  margin: 10px auto;
  position: relative;
}
.c-block-toggle-btn::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  border-top: #000 solid 2px;
  border-right: #000 solid 2px;
  transform: rotate(135deg);
  margin: auto 0;
  position: absolute;
  right: 20px;
  top: 0;
  bottom: 0;
}
.c-block-toggle-btn.r-bdrbtm {
  border-top: none;
  padding: 8px 0 0.8rem;
}

.is-open .c-block-toggle-btn::after {
  transform: rotate(-45deg);
  top: 16px;
}

.c-block-toggle-content {
  display: none;
}

.is-open .c-block-toggle-content {
  display: block;
}

.c-block-toggle-wrap {
  border-bottom: solid 1px #fd3259;
}

@media (max-width: 780.99px) {
  .c-block-toggle-btn {
    padding: 1.0256410256vw 5.1282051282vw;
    margin: 1.2820512821vw auto;
  }
  .c-block-toggle-btn::after {
    width: 2.3076923077vw;
    height: 2.3076923077vw;
    right: 2.5641025641vw;
  }
  .c-block-toggle-btn.r-bdrbtm {
    border-top: none;
    padding: 1.0256410256vw 0;
  }
  .is-open .c-block-toggle-btn::after {
    top: 2.0512820513vw;
  }
}
.c-block-toggle-btn-type01 {
  position: relative;
  padding: 20px 40px;
}
.c-block-toggle-btn-type01::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  border-top: #000 solid 2px;
  border-right: #000 solid 2px;
  transform: rotate(135deg);
  margin: auto 0;
  position: absolute;
  right: 20px;
  top: 0;
  bottom: 0;
}

.is-open .c-block-toggle-btn-type01::after {
  transform: rotate(-45deg);
  top: 16px;
}

.c-block-copy {
  padding-bottom: 60px;
  position: relative;
  padding-top: 30px;
}
.c-block-copy + .c-block-copy {
  border-top: solid 1px #ddd;
}

.c-block-copy-delete-btn {
  width: 30px;
  height: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 40px;
  color: #fd3259;
  font-weight: bold;
  position: absolute;
  top: 16px;
  right: 8px;
}

@media (max-width: 780.99px) {
  .c-block-copy {
    padding-bottom: 7.6923076923vw;
    padding-top: 3.8461538462vw;
  }
  .c-block-copy-delete-btn {
    width: 3.8461538462vw;
    height: 3.8461538462vw;
    font-size: 5.1282051282vw;
    top: 4.1025641026vw;
    right: 1.0256410256vw;
  }
}
.c-hint-wrap {
  position: relative;
  display: inline;
  margin-left: 0.6rem;
}

.c-hint-img {
  width: 30px;
  height: auto;
  display: inline;
  cursor: pointer;
  vertical-align: text-bottom;
}

.c-hint-txt {
  position: absolute;
  border-radius: 10px;
  padding: 16px;
  font-size: 16px;
  color: #333;
  border: solid 2px #fd3259;
  bottom: -80px;
  right: -200px;
  background-color: #fff;
  min-width: 200px;
  min-height: 80px;
  z-index: 999;
  display: none;
}

.c-hint-wrap:hover .c-hint-txt {
  display: block;
}

/* ▼ SP用トグル表示 */
.c-hint-wrap.is-open .c-hint-txt {
  display: block !important;
}

@media (max-width: 780.99px) {
  .c-hint-img {
    width: 7vw;
  }
  .c-hint-txt {
    border-radius: 2vw;
    padding: 3vw;
    font-size: 3.2vw;
    bottom: -16vw;
    right: -43vw;
    min-width: 44vw;
    min-height: 16vw;
  }
  .c-hint-wrap:hover .c-hint-txt {
    display: none;
  }
}
/* アクセント色は必要に応じて調整（スクショに近いサーモン） */
.c-radio-group {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-top: 20px;
}

.c-radio-area {
  position: relative;
  display: flex;
  align-items: center;
}

.c-radio-area input[type=radio] {
  appearance: none;
  -webkit-appearance: none;
  width: 0;
  height: 0;
  position: absolute;
  opacity: 0;
}

.c-radio-area label {
  width: 114px;
  height: 114px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 50px 26px 0;
  border-radius: 20px;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  transition: background 0.2s, color 0.2s;
}
.c-radio-area label::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: #fff;
  position: absolute;
  top: 21px;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.c-radio-area.r-orange label {
  background: linear-gradient(to right, #e06738, #e9963e);
}

.c-radio-area.r-blue label {
  background: linear-gradient(to right, #4ba69e, #55a9dc);
}

.c-radio-area input[type=radio]:checked + label::after {
  content: "✔";
  display: block;
  text-align: center;
  margin-left: 10px;
  font-size: 30px;
  color: #7a7474;
  position: absolute;
  top: 4px;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 30px;
}

.u-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;
}

/* グループ */
.c-radio-txt-group {
  display: grid;
  gap: 50px;
  color: #111;
  margin-top: 60px;
  margin-bottom: 60px;
}

/* ラベル1件（行） */
.c-radio-txt {
  display: grid;
  grid-template-columns: 36px 1fr; /* 左に丸、右にテキスト */
  align-items: start;
  column-gap: 12px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  font-size: 26px;
}

/* ネイティブのラジオは視覚的に隠す（アクセス可能なまま） */
.c-radio-txt > input[type=radio] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* 左の丸（外観） */
.c-radio-bullet {
  width: 30px;
  height: 30px;
  margin-top: 8px;
  border-radius: 50%;
  box-shadow: 0 0 0 3px #fd3259 inset;
  display: inline-block;
  position: relative;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

/* 内側のドット（選択時に出す） */
.c-radio-bullet::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: #fd3259;
  transform: scale(0);
  transition: transform 0.15s ease;
}

/* 選択状態 */
.c-radio-txt > input[type=radio]:checked + .c-radio-bullet {
  border-color: transparent; /* 輪郭を消して塗りつぶしに見せる */
}

.c-radio-txt > input[type=radio]:checked + .c-radio-bullet::after {
  transform: scale(1); /* 中のドットを表示＝塗りつぶし風 */
}

/* フォーカスリング（キーボード操作時） */
.c-radio-txt > input[type=radio]:focus-visible + .c-radio-bullet {
  box-shadow: 0 0 0 4px rgba(233, 106, 115, 0.35);
}

/* 右側のテキスト塊 */
.c-radio-body {
  display: grid;
  gap: 0.35rem;
}

.c-radio-title {
  line-height: 1.3;
  padding-top: 8px;
}

.c-radio-desc {
  font-size: 18px;
  line-height: 1.6;
}

/* ホバーの微妙なフィードバック（任意） */
.c-radio-txt:hover .c-radio-bullet {
  border-color: #bfc6d1;
}

@media (max-width: 780.99px) {
  .c-radio-group {
    gap: 5.1282051282vw;
    margin-top: 7.6923076923vw;
  }
  .c-radio-area label {
    width: 27.4358974359vw;
    height: 27.4358974359vw;
    padding: 12.8205128205vw 4.6153846154vw 0;
    border-radius: 5.1282051282vw;
    font-size: 4.4871794872vw;
  }
  .c-radio-area label::before {
    width: 7.6923076923vw;
    height: 7.6923076923vw;
    border-radius: 1.1538461538vw;
    top: 5.2564102564vw;
  }
  .c-radio-area input[type=radio]:checked + label::after {
    font-size: 9.7435897436vw;
    width: 7.6923076923vw;
    top: 0;
  }
  .c-radio-txt-group {
    gap: 10.2564102564vw;
    margin-top: 12.8205128205vw;
    margin-bottom: 12.8205128205vw;
  }
  .c-radio-txt {
    font-size: 3.8461538462vw;
    column-gap: 1.5384615385vw;
  }
  .c-radio-bullet {
    width: 6.4102564103vw;
    height: 6.4102564103vw;
    margin-top: 0.5128205128vw;
  }
  .c-radio-bullet::after {
    inset: 0.3846153846vw;
  }
  .c-radio-body {
    gap: 1.5384615385vw;
  }
  .c-radio-title {
    padding-top: 1.0256410256vw;
  }
  .c-radio-desc {
    font-size: 2.6923076923vw;
  }
}
/* =========================
   c-radio-inline component
   ========================= */
.c-radio-inline {
  --radio-color: #b21e1e;
  --radio-size: 44px; /* 外枠サイズ */
  --radio-border: 3px; /* 枠の太さ */
  --radio-dot: 24px; /* 内側ドットのサイズ */
  display: inline-flex;
  gap: 20px 36px;
  align-items: center;
  line-height: 1;
  flex-wrap: wrap;
}
.c-radio-inline.r-column {
  flex-direction: column;
  align-items: flex-start;
}

.c-radio {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  min-height: var(--radio-size);
  vertical-align: middle;
}

.c-radio > input[type=radio] {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
}

.c-radio__fake {
  inline-size: var(--radio-size);
  block-size: var(--radio-size);
  border: var(--radio-border) solid var(--radio-color);
  border-radius: 50%;
  position: relative;
  display: inline-block;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  background-color: #fff;
}

/* 中点をスケール表示（レイアウトを崩さない） */
.c-radio__fake::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  inline-size: var(--radio-dot);
  block-size: var(--radio-dot);
  background: var(--radio-color);
  border-radius: 50%;
  transform: scale(0);
  transition: transform 0.12s ease-out;
}

.c-radio > input[type=radio]:checked + .c-radio__fake::after {
  transform: scale(1);
}

.c-radio:hover .c-radio__fake {
  border-color: color-mix(in oklab, var(--radio-color), black 10%);
}

.c-radio > input[type=radio]:focus-visible + .c-radio__fake {
  outline: 2px solid Highlight;
  outline-offset: 4px;
}

.c-radio > input[type=radio]:disabled + .c-radio__fake {
  opacity: 0.5;
}

.c-radio > input[type=radio]:disabled ~ .c-radio__label {
  color: #9aa0a6;
  cursor: not-allowed;
}

.c-radio__label {
  font-size: 24px;
  line-height: 1;
}

/* 丸は絶対に縮ませない＆固定サイズに */
.c-radio__fake {
  flex: 0 0 var(--radio-size); /* ← shrink:0; basis=サイズ */
  inline-size: var(--radio-size);
  block-size: var(--radio-size);
  min-inline-size: var(--radio-size);
  min-block-size: var(--radio-size);
}

/* テキスト側を縮め・折り返し/省略できるように */
.c-radio__label {
  flex: 1 1 auto;
  min-width: 0; /* ← これがないと省略が効かないこと多い */
  /* 1行省略させたい場合は以下も */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 親は必要なら折返しOKのままでOK（現状のままでも可） */
.c-radio-inline {
  min-width: 0; /* 念のため。内側の収まりを良くする */
}

@media (max-width: 780.99px) {
  .c-radio-inline {
    gap: 2.5641025641vw 6.4102564103vw;
  }
  .c-radio-inline.r-small {
    gap: 2.5641025641vw;
    flex-wrap: nowrap;
  }
  .c-radio-inline.r-small .c-radio {
    gap: 0.5vw;
  }
  .c-radio-inline.r-small .c-radio__label {
    font-size: 2.8vw;
  }
  .c-radio {
    gap: 2.5641025641vw;
    min-height: 5.641025641vw;
  }
  .c-radio__fake {
    inline-size: 5.641025641vw;
    block-size: 5.641025641vw;
    border-width: 0.3846153846vw;
  }
  .c-radio__fake::after {
    inline-size: 3.3333333333vw;
    block-size: 3.3333333333vw;
  }
  .c-radio__label {
    font-size: 3.8461538462vw;
  }
  .c-radio__fake {
    flex: 0 0 5.641025641vw;
    inline-size: 5.641025641vw;
    block-size: 5.641025641vw;
    min-inline-size: 5.641025641vw;
    min-block-size: 5.641025641vw;
  }
  .c-radio__label {
    min-width: 0;
  }
}
.c-radio-toggle {
  width: 30px;
  height: 15px;
}

/*デフォルトのラジオボタンの設定*/
.c-radio-toggle input[type=radio] {
  display: none;
}

/*通常時のラジオボタンの設定*/
.c-radio-toggle label {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  cursor: pointer;
  height: 15px;
}

.c-radio-toggle input[type=radio] + label:before,
.c-radio-toggle input[type=radio] + label:after {
  position: absolute;
  content: "";
}

/*スイッチのベース*/
.c-radio-toggle input[type=radio] + label:before {
  right: 0;
  width: 30px;
  height: 15px;
  background: #d3d3d3;
  border: 1px solid #d3d3d3;
  border-radius: 15px;
}

/*スイッチの●*/
.c-radio-toggle input[type=radio] + label:after {
  right: 15px;
  width: 15px;
  height: 15px;
  background: #fff;
  border-radius: 50%;
  transition: all 200ms ease-out;
}

/*checked時の色と位置の設定*/
.c-radio-toggle input[type=radio]:checked + label:after {
  right: 0;
  background: #fd3259;
}

.c-form-block + .c-form-block {
  margin-top: 20px;
}

.c-form-block-2col {
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.c-form-block-2col-s {
  display: flex;
  justify-content: flex-start;
  gap: 20px;
}
.c-form-block-2col .c-form-block + .c-form-block {
  margin-top: 0;
}
.c-form-block-2col .c-form-block {
  width: 48%;
}
.c-form-block-2col.r-top {
  align-items: flex-start;
}

.c-form-block-2col + .c-form-block-2col {
  margin-top: 20px;
}

.c-form-block-label {
  color: #000;
  font-size: 20px;
  margin-bottom: 8px;
}
.c-form-block-label .required {
  color: #f00;
  margin-left: 8px;
  font-size: 0.8em;
  font-weight: bold;
}
.c-form-block-label.r-type01 {
  color: #7c3f27;
}

.c-form-block-input-select-wrap.r-small .c-form-block-input {
  width: 50px !important;
  height: 30px !important;
  padding: 2px 5px !important;
  line-height: 1 !important;
}
.c-form-block-input-select-wrap.r-small .c-form-block-input.u-wd100px {
  width: 100px !important;
}

.c-form-block-input {
  width: 100%;
  height: 50px;
  border: 1px solid #d9284d;
  padding: 6px 20px;
  background: #fff;
  font-size: 18px;
  border-radius: 10px;
}
.c-form-block-input.r-nobdr {
  border: none;
  line-height: 50px;
}
.c-form-block-input.r-small {
  height: 30px;
  line-height: 30px;
  padding: 0 20px;
}

.c-form-block-input + .c-form-block-input {
  margin-top: 20px;
}

.c-form-btm-txt {
  width: 60%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  font-size: 24px;
  color: #000;
  margin-top: 80px;
}
.c-form-btm-txt a {
  font-weight: bold;
  color: #000;
}

.r-rank-warp {
  counter-reset: item;
}

.r-rank {
  counter-increment: item;
  position: relative;
  padding-left: 50px;
}
.r-rank + .r-rank {
  margin-top: 8px;
}

.r-rank::before {
  content: counter(item);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  font-weight: bold;
  color: #000;
  display: block;
  width: 30px;
}

@media (max-width: 780.99px) {
  .r-rank {
    padding-left: 12.8205128205vw;
  }
  .r-rank + .r-rank {
    margin-top: 2.0512820513vw;
  }
  .r-rank::before {
    left: 3.8461538462vw;
    font-size: 5.1282051282vw;
    width: 6.4102564103vw;
  }
}
@media (max-width: 780.99px) {
  .c-form-block + .c-form-block {
    margin-top: 5.1282051282vw;
  }
  .c-form-block-2col {
    gap: 0;
  }
  .c-form-block-2col-s {
    gap: 2.5641025641vw;
  }
  .c-form-block-2col + .c-form-block-2col {
    margin-top: 2.5641025641vw;
  }
  .c-form-block-label {
    font-size: 3.3333333333vw;
    margin-bottom: 2.0512820513vw;
  }
  .c-form-block-input {
    height: 11.1538461538vw;
    font-size: 3.5897435897vw;
    border-radius: 1.2820512821vw;
    padding: 0.7692307692vw 2.5641025641vw;
  }
  .c-form-block-input.r-nobdr {
    line-height: 11.1538461538vw;
  }
  .c-form-block-input.r-small {
    height: 6.4102564103vw;
    line-height: 6.4102564103vw;
    padding: 0 2.5641025641vw;
  }
  .c-form-block-input-select-wrap.r-small .c-form-block-label {
    width: 10.2564102564vw;
    height: 5.641025641vw;
    padding: 0.2564102564vw 0.641025641vw;
  }
  .c-form-block-input + .c-form-block-input {
    margin-top: 2.5641025641vw;
  }
  .c-form-btm-txt {
    width: 80%;
    gap: 2.5641025641vw;
    font-size: 3.5897435897vw;
    margin-top: 10.2564102564vw;
  }
  .c-form-btm-txt a {
    font-weight: bold;
    color: #000;
  }
  .c-form-block-input-select-wrap.r-small .c-form-block-input.u-wd100px {
    width: 17.9487179487vw !important;
  }
}
select.c-form-block-input {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  position: relative;
}

/* IE用の隠し矢印 */
select.c-form-block-input::-ms-expand {
  display: none;
}

.c-form-block-input-select-wrap {
  position: relative;
}
.c-form-block-input-select-wrap::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  border-top: #fd3259 solid 2px;
  border-right: #fd3259 solid 2px;
  position: absolute;
  top: 18px;
  right: 20px;
  transform: rotate(135deg);
  pointer-events: none;
}

.c-form-block-input-select-wrap.r-small::after {
  top: 8px;
  right: 8px;
}

@media (max-width: 780.99px) {
  .c-form-block-input-select-wrap::after {
    width: 1.5384615385vw;
    height: 1.5384615385vw;
    top: 4.1025641026vw;
    right: 2.5641025641vw;
    border-top: #fd3259 solid 0.2564102564vw;
    border-right: #fd3259 solid 0.2564102564vw;
  }
  .c-form-block-input-select-wrap.r-small::after {
    top: 2.8205128205vw;
    right: 2.0512820513vw;
  }
  .c-form-block-input-select-wrap.r-custom-select::after {
    top: 2.5641025641vw;
  }
}
.c-form-block-input:disabled {
  background: #bcbcbc;
  cursor: not-allowed;
  border: none;
}

textarea.c-form-block-input {
  height: 179px;
  resize: vertical;
}

@media (max-width: 780.99px) {
  textarea.c-form-block-input {
    height: 22.9487179487vw;
  }
}
.color-select {
  position: relative;
  width: 180px;
  font-family: sans-serif;
}

.color-selected {
  padding: 8px;
  border-radius: 8px;
  border: 1px solid #fd3259;
  cursor: pointer;
  background-color: #fff;
  min-height: 3rem;
}
.color-selected.r-nobdr {
  border: none;
}

.color-options {
  position: absolute;
  top: 110%;
  left: 0;
  width: 100%;
  background: white;
  border: 1px solid #fd3259;
  border-radius: 8px;
  display: none;
  flex-direction: column;
  z-index: 10;
}

.color-option {
  height: 30px;
  border-radius: 8px;
  margin: 4px;
  cursor: pointer;
}

.color-option:hover {
  outline: 2px solid #333;
}

@media (max-width: 780.99px) {
  .color-select {
    width: 23.0769230769vw;
  }
  .color-selected {
    padding: 1.0256410256vw;
    border-radius: 1.0256410256vw;
    font-size: 2.5641025641vw;
    min-height: 7.846154vw;
  }
  .color-options {
    border-radius: 1.0256410256vw;
    top: 14.1025641026vw;
  }
  .color-option {
    height: 3.8461538462vw;
    border-radius: 1.0256410256vw;
    margin: 0.5128205128vw;
  }
}
.color-select {
  position: relative;
}

.color-options {
  display: none; /* 初期は非表示 */
  gap: 2px; /* 並べた時の間隔 */
  flex-wrap: wrap; /* 折返し */
  padding: 8px;
}

.color-option {
  width: 100%;
  height: 36px;
  border-radius: 6px;
  border: 1px solid #ddd;
  cursor: pointer;
  display: flex !important;
  justify-content: center;
  align-items: center;
}
.color-option img {
  height: 80%;
  width: auto;
}

.color-selected {
  display: flex !important;
  justify-content: center;
  align-items: center;
}
.color-selected img {
  height: auto !important;
  width: 80px !important;
}

.color-option--all {
  font-size: 12px;
  line-height: 1;
}

.day {
  position: relative;
}

.day-icons {
  position: absolute;
  bottom: 4px; /* セルの下に配置 */
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  z-index: 2;
  width: 100%;
}

.day-icons img {
  width: auto;
  height: 14px;
  margin: 0 2px;
}

.ym-selects {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ym-selects select {
  padding: 4px 8px;
  background: none;
  font-size: 30px;
  font-weight: bold;
  border: none;
}

@media (max-width: 780.99px) {
  .color-options {
    gap: 0.2564102564vw; /* 並べた時の間隔 */
    padding: 1.0256410256vw;
  }
  .color-option {
    height: 4.6153846154vw;
    border-radius: 0.7692307692vw;
  }
  .color-selected img {
    width: 10.2564102564vw !important;
  }
  .color-option--all {
    font-size: 1.5384615385vw;
  }
  .ym-selects select {
    padding: 0.5128205128vw 1.0256410256vw;
    font-size: 6.4102564103vw;
  }
  .day-icons img {
    height: 3vw;
    margin: 0 0.1vw;
  }
}
.c-form-selectedcolor {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 80px;
  width: 80px;
  height: 24px;
  border-radius: 6px;
  border: solid 1px #ddd;
  font-size: 12px;
  margin-left: 10px;
}

.c-form-block-label-icon {
  width: 36px;
  height: 36px;
  object-fit: contain;
  margin-right: 10px;
  display: inline-block;
  vertical-align: middle;
}

@media (max-width: 780.99px) {
  .c-form-selectedcolor {
    min-width: 23.0769230769vw;
    width: 23.0769230769vw;
    height: 7.6923076923vw;
    border-radius: 2.0512820513vw;
    font-size: 2.5641025641vw;
    margin-left: 1.2820512821vw;
  }
  .c-form-block-label-icon {
    width: 4.6153846154vw;
    height: 4.6153846154vw;
    margin-right: 1.2820512821vw;
  }
}
.c-form-pic-prev {
  width: 100px;
  padding: 10px;
  background-color: #fff;
  position: relative;
}
.c-form-pic-prev img {
  width: 100%;
  max-height: 200px;
  object-fit: contain;
}

@media (max-width: 780.99px) {
  .c-form-pic-prev {
    width: 23.0769230769vw;
    padding: 2.5641025641vw;
  }
  .c-form-pic-prev img {
    max-height: 25.641025641vw;
  }
}
.c-form-pic-prev-close-btn {
  display: block;
  width: 30px;
  height: 30px;
  font-size: 30px;
  color: #fd3259;
  font-weight: bold;
  position: absolute;
  right: -30px;
  top: -18px;
}

@media (max-width: 780.99px) {
  .c-form-pic-prev-close-btn {
    width: 3.8461538462vw;
    height: 3.8461538462vw;
    font-size: 3.8461538462vw;
    right: -3.8461538462vw;
    top: -2.3076923077vw;
  }
}
.color-option-file-img {
  width: 30px;
  height: auto;
}

.color-selected.r-img img {
  width: 40px !important;
  height: auto;
}

.color-selected {
  padding-right: 20px;
}

@media (max-width: 780.99px) {
  .color-option-file-img {
    width: 3.8461538462vw;
  }
  .color-selected.r-img img {
    width: 5.1282051282vw !important;
  }
  .color-selected {
    padding-right: 2.5641025641vw;
  }
}
.img-label-delete-btn {
  width: 30px;
  height: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 40px;
  color: #fd3259;
  font-weight: bold;
  position: absolute;
  top: 16px;
  right: 16px;
  display: none;
}

@media (max-width: 780.99px) {
  .img-label-delete-btn {
    width: 5.1282051282vw;
    height: 5.1282051282vw;
    font-size: 5.1282051282vw;
    top: 4.1025641026vw;
    right: 4.1025641026vw;
  }
}
/* ボタンをselectっぽく */
.c-multiselect-trigger {
  text-align: left;
  width: 100%;
}

/* メニュー内：左にチェック、右の丸バッジは使わない */
.c-multiselect-item {
  justify-content: flex-start;
  gap: 10px;
}

/* checkbox自体は非表示（既存思想に合わせる） */
.c-multiselect-item input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* 左のチェックボックス見た目 */
.c-multiselect-badge {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 2px solid #d7d7d7;
  background: #fff;
  flex: 0 0 auto;
  position: relative;
}

.c-multiselect-badge::after {
  content: "";
  position: absolute;
  width: 5px;
  height: 10px;
  border-right: 2px solid transparent;
  border-bottom: 2px solid transparent;
  left: 6px;
  top: 2px;
  transform: rotate(45deg);
}

/* 選択時：サイトの赤系に合わせる */
.c-multiselect-item input:checked ~ .c-multiselect-badge {
  background: #fd3259;
  border-color: #fd3259;
}

.c-multiselect-item input:checked ~ .c-multiselect-badge::after {
  border-right-color: #fff;
  border-bottom-color: #fff;
}

.c-password-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.js-password {
  width: 100%;
  padding-right: 44px; /* アイコン分余白 */
}

.c-password-toggle {
  position: absolute;
  right: 12px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  padding: 4px;
}

/* 押しやすく */
.c-password-toggle:active {
  opacity: 0.6;
}

.c-accrdion-type01-ttl {
  background-color: #f7f0b2;
  padding: 21px 60px;
  font-size: 25px;
  border-top: solid 2px #eda31b;
  display: flex;
  gap: 1.5rem;
}
.c-accrdion-type01-ttl span {
  display: inline-block;
}

.c-accrdion-type01-data-00 {
  background: #f4efce;
  padding: 8px 60px;
  font-size: 22px;
}
.c-accrdion-type01-data-00 span {
  display: inline-block;
  padding-left: 30px;
}

.c-accrdion-type01-data-01 {
  padding: 8px 60px;
  background: #fff;
}
.c-accrdion-type01-data-01:nth-child(even) {
  background-color: #f4f4f4;
}
.c-accrdion-type01-data-01 img {
  width: 100px;
  height: auto;
  display: block;
  margin: 20px auto;
}

.c-accrdion-type01-data-01-ttl {
  font-size: 26px;
  font-weight: bold;
  color: #7c3f27;
}

.c-accrdion-type01-data-01-data {
  font-size: 22px;
  padding-left: 80px;
}

.c-accrdion-type01-data-02 {
  text-align: center;
  background-color: #f4efce;
  font-size: 22px;
  padding: 12px;
  border-top: solid 0.5px #eda31b;
}

@media (max-width: 780.99px) {
  .c-accrdion-type01-ttl {
    font-size: 3.2051282051vw;
    padding: 2.6923076923vw 7.6923076923vw;
  }
  .c-accrdion-type01-ttl span {
    display: inline-block;
  }
  .c-accrdion-type01-data-00 {
    font-size: 2.8205128205vw;
    padding: 1.0256410256vw 7.6923076923vw;
  }
  .c-accrdion-type01-data-00 span {
    display: inline-block;
    padding-left: 3.8461538462vw;
  }
  .c-accrdion-type01-data-01 {
    font-size: 2.8205128205vw;
    padding: 1.0256410256vw 7.6923076923vw;
  }
  .c-accrdion-type01-data-01 img {
    width: 12.8205128205vw;
    height: auto;
    display: block;
    margin: 2.5641025641vw auto;
  }
  .c-accrdion-type01-data-01-ttl {
    font-size: 3.3333333333vw;
  }
  .c-accrdion-type01-data-01-data {
    font-size: 2.8205128205vw;
    padding-left: 10.2564102564vw;
  }
  .c-accrdion-type01-data-02 {
    font-size: 2.8205128205vw;
    padding: 1.5384615385vw;
  }
}
/* ========== Component: c-accordion-route ========== */
.c-accordion-route {
  background: #f3f3f3;
  margin-top: 30px;
}

/* ---------- card ---------- */
.c-accordion-route__card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  max-width: 360px;
}

@media (max-width: 780.99px) {
  .c-accordion-route__card {
    max-width: 100%;
  }
}
/* ---------- head ---------- */
.c-accordion-route__head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 18px;
  background: #fff;
  border: 0;
  cursor: pointer;
  text-align: left;
}

.c-accordion-route__title {
  font-weight: 700;
  color: #7a452b;
  letter-spacing: 0.02em;
}

.c-accordion-route__chevron {
  inline-size: 14px;
  block-size: 14px;
  border: solid #fd3259;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  top: -4px;
  position: relative;
}

.c-accordion-route__head[aria-expanded=true] .c-accordion-route__chevron {
  transform: rotate(-135deg); /* 上向き */
  top: 4px;
}

/* ---------- panel ---------- */
.c-accordion-route__panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  padding: 18px 18px 22px;
  border-top: 1px solid #ececec;
}

.c-accordion-route__section {
  display: grid;
  gap: 12px;
}

.c-accordion-route__label {
  color: #7a452b;
  font-weight: 700;
  font-size: 14px;
}

.c-accordion-route__row {
  display: flex;
  align-items: baseline;
  gap: 18px;
  margin-left: 20px;
}

.c-accordion-route__time {
  min-width: 72px;
  font-weight: 900;
  font-size: 28px;
  color: #000;
}

.c-accordion-route__place {
  font-size: 20px;
  font-weight: 900;
  color: #000;
}

/* 矢印と見出し（行き／帰り） */
.c-accordion-route__flow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 30px;
  margin: 2px 0 4px;
}

.c-accordion-route__arrow {
  width: 18px;
  height: 18px;
  transform: rotate(90deg);
  border-width: 0 3px 3px 0;
  display: inline-block;
}

.c-accordion-route__flow-title {
  color: #7a452b;
  font-weight: 800;
}

/* ---------- radios ---------- */
.c-accordion-route__radio-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}

.c-accordion-route__radio {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  color: #7a452b;
}

.c-accordion-route__radio input {
  appearance: none;
  inline-size: 22px;
  block-size: 22px;
  border-radius: 50%;
  border: 2px solid #bbb;
  background: #fff;
  display: grid;
  place-items: center;
  outline: none;
  cursor: pointer;
}

.c-accordion-route__radio input::after {
  content: "";
  inline-size: 12px;
  block-size: 12px;
  border-radius: 50%;
  background: transparent;
  transition: background 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
  box-shadow: inset 0 0 0 0 #63b730;
}

.c-accordion-route__radio input:checked {
  border-color: #63b730;
}

.c-accordion-route__radio input:checked::after {
  background: #63b730;
}

.c-accordion-route__radio input:focus-visible {
  box-shadow: 0 0 0 3px #cfe8ff;
}

/* 無効の見た目 */
.c-accordion-route__radio input:disabled {
  border-color: #cfcfcf;
  cursor: not-allowed;
}

.c-accordion-route__radio input:disabled::after {
  background: #cfcfcf;
}

/* ---------- small helpers ---------- */
.c-accordion-route__muted {
  color: #000;
  font-size: 18px;
  text-align: center;
}

/* 開閉アニメ（任意） */
.c-accordion-route__region {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.25s ease;
}

.c-accordion-route__head[aria-expanded=true] + .c-accordion-route__region {
  max-height: 3000px; /* 内容に応じて十分大きく */
}

.c-accordion-outer-list-itm {
  background-color: #f4e8d3;
  border-bottom: solid 1px #fd3259;
  padding: 15px 30px 15px 80px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.c-accordion-outer-list .c-accordion-route {
  margin-top: 0;
  width: 80%;
}
.c-accordion-outer-list .c-accordion-route__panel {
  gap: 0.5rem;
}
.c-accordion-outer-list .c-accordion-route__card {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 780.99px) {
  .c-accordion-outer-list-itm {
    padding: 1.9230769231vw 3.8461538462vw 1.9230769231vw 10.2564102564vw;
  }
  .c-accordion-outer-list .c-accordion-route {
    width: 70vw;
  }
}
.c-list-btn-odd {
  margin-top: -60px;
}
.c-list-btn-odd.r-th-hogosya {
  margin-top: 30px;
}
.c-list-btn-odd.r-th-hogosya .c-list-btn-odd-itm:nth-child(1) .c-list-btn-odd-table-tr:nth-child(1) .c-list-btn-odd-table-td {
  position: relative;
}
.c-list-btn-odd.r-th-hogosya .c-list-btn-odd-itm:nth-child(1) .c-list-btn-odd-table-tr:nth-child(1) .c-list-btn-odd-table-td:nth-child(1)::after {
  content: "保護者名";
  display: block;
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  margin: 0 auto;
  font-size: 14px;
  color: #7c3f27;
  font-weight: bold;
}
.c-list-btn-odd.r-th-hogosya .c-list-btn-odd-itm:nth-child(1) .c-list-btn-odd-table-tr:nth-child(1) .c-list-btn-odd-table-td:nth-child(2)::after {
  content: "利用者名";
  display: block;
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  margin: 0 auto;
  font-size: 14px;
  color: #7c3f27;
  font-weight: bold;
}
.c-list-btn-odd.r-th-hogosya .c-list-btn-odd-itm:nth-child(1) .c-list-btn-odd-table-tr:nth-child(1) .c-list-btn-odd-table-td:nth-child(3)::after {
  content: "日時";
  display: block;
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  margin: 0 auto;
  font-size: 14px;
  color: #7c3f27;
  font-weight: bold;
}

.c-list-btn-odd-itm {
  padding: 20px 60px;
}
.c-list-btn-odd-itm:nth-child(odd) {
  background: #fff;
}

.c-list-btn-odd-table {
  width: 100%;
}

.c-list-btn-odd-table-ttl {
  color: #7c3f27;
  font-size: 18px;
}

.c-list-btn-odd-table-txt {
  font-size: 16px;
}

.c-list-btn-odd-table-td {
  width: 40%;
}

.c-list-btn-odd-table-td.r-date {
  color: #7c3f27;
  font-size: 13px;
  width: 20%;
}

.c-list-btn-odd-group {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 80px;
  margin-top: 30px;
}

.c-c-list-btn-odd-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 165px;
  height: 60px;
  font-size: 22px;
  color: #fff;
  border-radius: 20px;
}
.c-c-list-btn-odd-btn.r-ok {
  background: #fff;
  border: solid 1px #6f7070;
  color: #bc0404;
}
.c-c-list-btn-odd-btn.r-ng {
  background: #0e92cc;
}

@media (max-width: 780.99px) {
  .c-list-btn-odd {
    margin-top: -7.6923076923vw;
  }
  .c-list-btn-odd.r-th-hogosya {
    margin-top: 7.6923076923vw;
  }
  .c-list-btn-odd.r-th-hogosya .c-list-btn-odd-itm:nth-child(1) .c-list-btn-odd-table-tr:nth-child(1) .c-list-btn-odd-table-td:nth-child(1)::after {
    top: -7.6923076923vw;
    font-size: 2.5641025641vw;
  }
  .c-list-btn-odd.r-th-hogosya .c-list-btn-odd-itm:nth-child(1) .c-list-btn-odd-table-tr:nth-child(1) .c-list-btn-odd-table-td:nth-child(2)::after {
    top: -7.6923076923vw;
    font-size: 2.5641025641vw;
  }
  .c-list-btn-odd.r-th-hogosya .c-list-btn-odd-itm:nth-child(1) .c-list-btn-odd-table-tr:nth-child(1) .c-list-btn-odd-table-td:nth-child(3)::after {
    top: -7.6923076923vw;
    font-size: 2.5641025641vw;
  }
  .c-list-btn-odd-itm {
    padding: 2.5641025641vw 7.6923076923vw;
  }
  .c-list-btn-odd-table-ttl {
    font-size: 2.8205128205vw;
  }
  .c-list-btn-odd-table-txt {
    font-size: 2.5641025641vw;
  }
  .c-list-btn-odd-table-td.r-date {
    font-size: 2.5641025641vw;
  }
  .c-list-btn-odd-group {
    gap: 10.2564102564vw;
    margin-top: 3.8461538462vw;
  }
  .c-c-list-btn-odd-btn {
    width: 21.1538461538vw;
    height: 7.6923076923vw;
    font-size: 3.0769230769vw;
  }
}
.c-list-btn-odd-single-itm {
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}
.c-list-btn-odd-single-itm:nth-child(even) {
  background: #f4f4f4;
}

.c-list-btn-odd-single-btn {
  display: block;
  width: 104px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #9e9e9e;
  color: #fff;
  font-size: 15px;
  border-radius: 20px;
}

.c-list-btn-odd-single-ttl {
  font-size: 24px;
  color: #7c3f27;
  width: 50%;
}

.c-list-btn-odd-single-date {
  font-size: 18px;
  color: #7c3f27;
  width: 30%;
}

.c-status-list-warp {
  margin-top: -30px;
}

.c-status-list-hdg {
  color: #fd3259;
  font-size: 26px;
  padding-left: 126px;
  font-weight: bold;
}

.c-status-list-itm {
  padding: 10px 80px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.c-status-list-itm:nth-child(odd) {
  background: #fff;
}

.c-status-list-itm-txt {
  color: #fd3259;
  font-size: 30px;
  font-weight: bold;
  margin-left: 20px;
  flex-shrink: 0;
  flex-grow: 0;
}
.c-status-list-itm-txt::before {
  content: "■";
  display: inline-block;
  margin-right: 6px;
}

.c-status-list-itm-icon {
  width: 87px;
  height: 42px;
  border: solid 5px #fd3259;
  border-radius: 14px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 16px;
  background: #fff;
  color: #d8d7d6;
  flex-shrink: 0;
  flex-grow: 0;
}
.c-status-list-itm-icon.r-on {
  color: #000;
}

@media (max-width: 780.99px) {
  .c-list-btn-odd-single-itm {
    padding: 1.0256410256vw 1.2820512821vw;
    gap: 1.2820512821vw;
  }
  .c-list-btn-odd-single-btn {
    width: 13.3333333333vw;
    height: 6.4102564103vw;
    font-size: 2.3076923077vw;
    border-radius: 2.5641025641vw;
  }
  .c-list-btn-odd-single-ttl {
    font-size: 3.0769230769vw;
  }
  .c-list-btn-odd-single-date {
    font-size: 2.5641025641vw;
  }
  .c-status-list-warp {
    margin-top: -3.8461538462vw;
  }
  .c-status-list-hdg {
    font-size: 3.3333333333vw;
    padding-left: 16.1538461538vw;
  }
  .c-status-list-itm {
    padding: 1.2820512821vw 10.2564102564vw;
  }
  .c-status-list-itm-txt {
    font-size: 3.8461538462vw;
    margin-left: 2.5641025641vw;
  }
  .c-status-list-itm-icon {
    width: 11.1538461538vw;
    height: 5.3846153846vw;
    border: solid 0.641025641vw #fd3259;
    border-radius: 1.7948717949vw;
    font-size: 2.0512820513vw;
  }
}
.c-status-list-itm-txt-s {
  font-size: 0.8em;
}

.c-bgw-list-itm {
  border-radius: 20px;
  padding: 20px;
  background: #fff;
}
.c-bgw-list-itm img {
  max-width: 80%;
  margin: auto;
}
.c-bgw-list-itm.r-close {
  position: relative;
  display: flex;
  align-items: center;
}
.c-bgw-list-itm.r-close .c-bgw-list-itm-close-btn {
  display: block;
  width: 30px;
  height: 30px;
  font-size: 30px;
  color: #fd3259;
  font-weight: bold;
  position: absolute;
  right: -30px;
  top: 0;
}

.c-bgw-list-itm + .c-bgw-list-itm {
  margin-top: 10px;
}

.c-bgw-list-flex {
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 10px;
}

.c-bgw-list-itm-ttl {
  color: #fd3259;
  font-weight: bold;
  font-size: 24px;
}
.c-bgw-list-itm-ttl-sub {
  font-size: 20px;
  color: #fd3259;
}

.c-bgw-list-itm-txt-l {
  padding-left: 10px;
  font-size: 30px;
  font-weight: bold;
}

.c-bgw-list-itm-txt {
  padding-left: 10px;
  font-size: 24px;
  min-height: 24px;
}

@media (max-width: 780.99px) {
  .c-bgw-list-itm {
    border-radius: 2.5641025641vw;
    padding: 2.5641025641vw;
  }
  .c-bgw-list-itm img {
    max-width: 100%;
  }
  .c-bgw-list-itm.r-close .c-bgw-list-itm-close-btn {
    width: 3.8461538462vw;
    height: 3.8461538462vw;
    font-size: 3.8461538462vw;
    right: -3.8461538462vw;
  }
  .c-bgw-list-itm-ttl {
    font-size: 3.0769230769vw;
  }
  .c-bgw-list-itm-ttl-sub {
    font-size: 2.5641025641vw;
  }
  .c-bgw-list-itm-txt-l {
    font-size: 3.8461538462vw;
  }
  .c-bgw-list-itm-txt {
    font-size: 3.0769230769vw;
    min-height: 3.0769230769vw;
  }
}
.c-list-disc {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.c-list-disc-itm {
  padding-left: 1em;
  text-indent: -1em;
  font-size: 23px;
  color: #7c3f27;
}
.c-list-disc-itm::before {
  content: "●";
}
.c-list-disc-itm p {
  margin-left: 40px;
}

@media (max-width: 780.99px) {
  .c-list-disc {
    gap: 2.0512820513vw;
  }
  .c-list-disc-itm {
    font-size: 3.3333333333vw;
  }
  .c-list-disc-itm p {
    margin-left: 5.1282051282vw;
  }
}
.c-num-check-list-itm {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fff;
  padding: 10px 20px 10px 0;
}
.c-num-check-list-itm-num {
  font-size: 24px;
  font-weight: bold;
  width: 10%;
  flex-shrink: 0;
  text-align: center;
}
.c-num-check-list-itm-txt {
  font-size: 25px;
  flex-grow: 1;
  line-height: 1.4;
  margin-right: 16px;
}
.c-num-check-list-itm + .c-num-check-list-itm {
  border-top: solid 1px #fd3259;
}

@media (max-width: 780.99px) {
  .c-num-check-list-itm {
    padding: 1.2820512821vw 2.5641025641vw 1.2820512821vw 0;
  }
  .c-num-check-list-itm-num {
    font-size: 3.0769230769vw;
  }
  .c-num-check-list-itm-txt {
    font-size: 3.2051282051vw;
    margin-right: 4vw;
  }
}
.c-radio-mlt-list {
  background: #fff;
  padding: 10px 50px;
}
.c-radio-mlt-list-itm {
  padding: 5px 0;
}
.c-radio-mlt-list-itm-txt {
  font-size: 18px;
}
.c-radio-mlt-list-itm .c-radio-inline {
  margin-left: 30%;
  width: 100%;
}

@media (max-width: 780.99px) {
  .c-radio-mlt-list {
    padding: 1.2820512821vw 10.2564102564vw;
  }
  .c-radio-mlt-list-itm {
    padding: 1.2820512821vw 0;
  }
  .c-radio-mlt-list-itm-txt {
    font-size: 3.3333333333vw;
  }
}
.c-calender-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 32px;
}
.c-calender-list-itm-link {
  background: #fff;
  border-radius: 16px;
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 20px;
  color: #515151;
  min-height: 130px;
}
.c-calender-list-itm-link:hover {
  text-decoration: none;
}
.c-calender-list-itm-time {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  font-size: 26px;
  width: 100px;
}
.c-calender-list-itm-color {
  width: 20px;
  border-radius: 8px;
  align-self: stretch;
}
.c-calender-list-itm-val {
  font-size: 30px;
}
.c-calender-list-itm-icon {
  width: auto;
  height: 45px;
  margin-left: auto;
}

@media (max-width: 780.99px) {
  .c-calender-list {
    gap: 1.0256410256vw;
    margin-top: 4.1025641026vw;
  }
  .c-calender-list-itm-link {
    border-radius: 2.0512820513vw;
    gap: 2.0512820513vw;
    padding: 2.5641025641vw;
    min-height: 16.6666666667vw;
  }
  .c-calender-list-itm-time {
    font-size: 3.3333333333vw;
    width: 12.8205128205vw;
  }
  .c-calender-list-itm-color {
    width: 2.5641025641vw;
    border-radius: 1.0256410256vw;
  }
  .c-calender-list-itm-val {
    font-size: 3.8461538462vw;
  }
  .c-calender-list-itm-icon {
    height: 5.1282051282vw;
  }
}
.c-attch-file-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  margin-top: 30px;
}
.c-attch-file-list-itm {
  width: calc(16.6666666667% - 2px);
  aspect-ratio: 1/1;
  background: #fff;
  display: none;
}
.c-attch-file-list-itm-link {
  display: block;
  width: 100%;
  height: 100%;
}
.c-attch-file-list-itm-link img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.c-attch-file-list.r-all .c-attch-file-list-itm {
  display: block !important;
}
.c-attch-file-list.r-pic .c-attch-file-list-itm.r-pic {
  display: block !important;
}
.c-attch-file-list.r-mov .c-attch-file-list-itm.r-mov {
  display: block !important;
}
.c-attch-file-list.r-file .c-attch-file-list-itm.r-file {
  display: flex !important;
  gap: 1rem;
  width: 100%;
  aspect-ratio: unset;
  background-color: unset;
}
.c-attch-file-list.r-file .c-attch-file-list-itm.r-file a {
  height: auto;
}

/* ==========================================================================
   Component: c-sch-filter
   年スケジュール表示用フィルター＋リストエリア
   ========================================================================== */
/* ---------------- ラッパー ---------------- */
.c-sch-filter {
  background: #f6f6f7;
  border-radius: 12px;
  padding: 8px;
}

/* ---------------- Accordion ---------------- */
.c-sch-accordion {
  background: #e89898;
  border-radius: 10px;
  overflow: hidden;
}
.c-sch-accordion[open] .c-sch-accordion__summary {
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.c-sch-accordion__summary {
  cursor: pointer;
  padding: 10px 12px;
  font-weight: 700;
  color: #fff;
  position: relative;
  list-style: none;
}
.c-sch-accordion__summary::-webkit-details-marker {
  display: none;
}
.c-sch-accordion__chev {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  width: 0;
  height: 0;
  border: 6px solid transparent;
  border-top-color: #fff;
  transition: transform 0.2s;
}
.c-sch-accordion[open] .c-sch-accordion__chev {
  transform: translateY(-50%) rotate(180deg);
}
.c-sch-accordion__body {
  background: #fff;
  padding: 10px;
}

/* ---------------- Block（セクション） ---------------- */
.c-sch-block {
  padding: 10px 20px;
}
.c-sch-block:last-child {
  border-bottom: 0;
}
.c-sch-block__title {
  font-size: 0.8rem;
  margin: 0.25rem 0 0.5rem;
  color: #666;
}
.c-sch-block__title small,
.c-sch-block__title span {
  font-weight: normal;
  font-size: 0.7rem;
  color: #999;
}

/* ---------------- Radio group ---------------- */
.c-sch-radio-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.c-sch-radio {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}
.c-sch-radio input {
  display: none;
}
.c-sch-radio__ui {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #e36d79;
  position: relative;
}
input:checked + .c-sch-radio__ui::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e36d79;
}
.c-sch-radio__label {
  font-size: 0.9rem;
  color: #333;
}

/* ---------------- Number box ---------------- */
.c-sch-numbox {
  position: relative;
  display: inline-block;
}
.c-sch-numbox input {
  width: 64px;
  padding: 6px 28px 6px 8px;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 0.9rem;
}
.c-sch-numbox input:disabled {
  background: #fafafa;
  color: #bbb;
}
.c-sch-numbox__unit {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  color: #888;
  font-size: 0.8rem;
}

/* ---------------- Color Chips ---------------- */
.c-sch-chips {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 8px;
}

.c-sch-chip {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-weight: 700;
  transition: outline 0.15s;
}
.c-sch-chip.is-on {
  position: relative;
}
.c-sch-chip.is-on::before {
  content: "";
  display: block;
  width: 60%;
  height: 60%;
  background: #fff;
  border-radius: 2px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.c-sch-chip.is-on::after {
  content: "✓";
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  color: #d70000;
  font-size: 20px;
  font-weight: bold;
  line-height: 1;
}
.c-sch-chip[data-color=white] {
  background: #fff;
}
.c-sch-chip[data-color=lime] {
  background: #b6d335;
}
.c-sch-chip[data-color=forest] {
  background: #176a3b;
}
.c-sch-chip[data-color=teal] {
  background: #3ac1c9;
}
.c-sch-chip[data-color=blue] {
  background: #0b67b1;
}
.c-sch-chip[data-color=purple] {
  background: #8a3da9;
}
.c-sch-chip[data-color=magenta] {
  background: #e10074;
}
.c-sch-chip[data-color=red] {
  background: #e20613;
}
.c-sch-chip[data-color=orange] {
  background: #f28a00;
}
.c-sch-chip[data-color=yellow] {
  background: #ffd400;
}
.c-sch-chip[data-color=mint] {
  background: #d8ebe5;
}
.c-sch-chip[data-color=sky] {
  background: #dceaf5;
}
.c-sch-chip[data-color=lavender] {
  background: #e8e2f2;
}
.c-sch-chip[data-color=pink] {
  background: #f7dae5;
}
.c-sch-chip[data-color=peach] {
  background: #f8e9d3;
}
.c-sch-chip[data-color=lemon] {
  background: #fef5d7;
}

/* ---------------- Icon checkbox ---------------- */
.c-sch-iconchk-group {
  display: flex;
  gap: 8px;
}

.c-sch-iconchk input {
  display: none;
}
.c-sch-iconchk__ui {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 28px;
  border: 1px solid #ddd;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: outline 0.15s;
}
input:checked + .c-sch-iconchk__ui {
  outline: 2px solid #e36d79;
}

/* ---------------- Buttons / Actions ---------------- */
.c-sch-actions {
  padding: 8px;
  background: #b2b2b2;
}

.c-sch-btn {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 8px 10px;
  border-radius: 8px;
  background: #dcdbdb;
  color: #fff;
  border: none;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.9rem;
  transition: background 0.2s;
  display: inline-block;
}
.c-sch-btn--ghost {
  margin-left: auto;
  display: inline-block;
  color: #333;
}

/* ---------------- Timeline ---------------- */
.c-sch-timeline {
  margin-top: 8px;
  background: #fff;
  border-radius: 10px;
}

/* ---------------- Tabs ---------------- */
.c-sch-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 6px;
  background-color: rgba(232, 152, 152, 0.2);
  padding: 16px;
  border-radius: 10px 10px 0 0;
  display: grid;
  grid-template-columns: 24px 50px auto;
  align-items: center;
}
.c-sch-tabs__btn {
  width: 36px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid #eee;
  background: #fff;
  cursor: pointer;
  transition: all 0.15s;
}
.c-sch-tabs__btn.is-active {
  background: #f8e9eb;
  border-color: #f3c9cf;
}
.c-sch-tabs__btn:hover {
  background: #fafafa;
}
.c-sch-tabs img {
  margin: 0 auto;
}

/* ---------------- Year List ---------------- */
.c-sch-year-list {
  list-style: none;
  margin: 0;
  padding: 8px;
}
.c-sch-year-list__item {
  display: grid;
  grid-template-columns: 24px 50px auto auto;
  align-items: center;
  gap: 10px;
  padding: 8px 6px;
  border-bottom: 1px solid #f5f5f5;
  font-size: 0.95rem;
}
.c-sch-year-list__item:last-child {
  border-bottom: none;
}
.c-sch-year-list__index {
  color: #999;
  width: 24px;
  text-align: center;
}
.c-sch-year-list__year {
  font-weight: 700;
}
.c-sch-year-list__badges {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.c-sch-year-list__badge {
  text-align: center;
  display: inline-block;
  font-style: normal;
  font-size: 0.6rem;
  line-height: 1;
  padding: 2px 10px;
  border-radius: 6px;
  background: #eee;
  color: #333;
  font-weight: 700;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.06);
}
.c-sch-year-list__badge--yellow {
  background: #ffd400;
}
.c-sch-year-list__badge--green {
  background: #b6d335;
}
.c-sch-year-list__badge--blue {
  background: #0b67b1;
}
.c-sch-year-list__icon {
  font-size: 0.95rem;
  opacity: 0.9;
}

/* ---------------- Utility ---------------- */
.u-sch-row {
  display: flex;
  align-items: center;
}

.u-sch-gap {
  gap: 0.5rem;
}

.u-sch-sep {
  opacity: 0.7;
}

.c-sch-year-list__badge-wrap {
  display: flex;
  flex-direction: column;
  gap: 1px;
  width: 120px;
}

.c-sch-year-list__icons {
  display: flex;
  width: 300px;
  flex-grow: 0;
  flex-shrink: 0;
  margin-left: auto;
}
.c-sch-year-list__icons span,
.c-sch-year-list__icons a {
  width: 33%;
}
.c-sch-year-list__icons span img,
.c-sch-year-list__icons a img {
  aspect-ratio: 1/1;
  width: 60%;
  height: 60%;
  object-fit: contain;
  margin: 0 auto;
}

.c-timeset-list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-left: 30px;
}
.c-timeset-list-itm {
  display: flex;
  align-items: center;
  gap: 72px;
}
.c-timeset-list-itm-ttl {
  color: #f7911e;
  font-size: 26px;
  width: 250px;
  flex-shrink: 0;
}
.c-timeset-list-itm-data {
  font-size: 43px;
  font-weight: bold;
  color: #000;
}

@media (max-width: 780.99px) {
  .c-timeset-list {
    gap: 2.5641025641vw;
    margin-left: 3.8461538462vw;
  }
  .c-timeset-list-itm {
    gap: 5.3846153846vw;
  }
  .c-timeset-list-itm-ttl {
    font-size: 3.3333333333vw;
    width: 25.641025641vw;
  }
  .c-timeset-list-itm-data {
    font-size: 5.5128205128vw;
  }
  .c-sch-year-list__icons {
    width: 20vw;
  }
}
:root {
  --row-h: 68px;
  --time-w: 56px;
  --c-time: #7a452b; /* 左の時間のブラウン系 */
  --c-border: #eee; /* 行の罫線 */
  --c-icon: #111; /* アイコン色(黒) */
  --c-tip: #e36767; /* 重要／吹き出しの赤 */
  --c-tip-bg: #fff; /* 吹き出し背景 */
  --radius: 12px;
  --shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

/* 土台 */
.c-timeline-list {
  width: min(920px, 100%);
  margin: 24px auto;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
}

.c-timeline-list__row {
  display: grid;
  grid-template-columns: var(--time-w) 1fr;
  align-items: center;
  min-height: var(--row-h);
  border-top: 1px solid var(--c-border);
  position: relative;
  background: #fff;
}

.c-timeline-list__time {
  padding: 10px 12px;
  color: var(--c-time);
  font-weight: 800;
  font-size: 22px;
  line-height: 1;
}

.c-timeline-list__events {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 10px 12px;
}

/* アイコンボタン（ホバー/フォーカスでツールチップが出る） */
.ico {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  padding: 0;
  cursor: default;
}

.ico img {
  display: block;
  width: 32px;
  height: 32px;
  object-fit: contain;
}

/* 重要マークのバッジ重ね */
.ico--note .badge {
  position: absolute;
  top: -6px;
  right: -4px;
  width: 18px;
  height: 18px;
  pointer-events: none;
}

/* ツールチップ（吹き出し） */
/* ==== 基本ツールチップスタイル ==== */
.has-tooltip {
  position: relative;
  display: inline-block;
  cursor: help;
  color: #d9284d;
  text-decoration: underline dotted #d9284d;
}

/* 非表示がデフォルト */
.has-tooltip .tooltip {
  position: absolute;
  top: 30px;
  left: -24px;
  display: inline-block;
  margin: 1.5em 0;
  padding: 7px;
  width: 85px;
  color: #000;
  font-size: 12px;
  background: #fff;
  border: solid 1.5px #d9284d;
  box-sizing: border-box;
  border-radius: 3px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 10;
  line-height: 1.5;
}

@media (max-width: 780.99px) {
  .has-tooltip .tooltip {
    font-size: 3vw;
  }
}
/* 三角形（白） */
.has-tooltip .tooltip:before {
  content: "";
  position: absolute;
  top: -19px;
  left: calc(50% - 2px);
  margin-left: -15px;
  border: 7px solid transparent;
  border-bottom: 14px solid #fff;
  z-index: 2;
}

/* 三角形（赤の縁） */
.has-tooltip .tooltip:after {
  content: "";
  position: absolute;
  top: -21px;
  left: 50%;
  margin-left: -17px;
  border: 7px solid transparent;
  border-bottom: 14px solid #d9284d;
  z-index: 1;
}

/* 内側のテキスト調整 */
.has-tooltip .tooltip p {
  margin: 0;
  padding: 0;
}

/* ==== 表示トリガー ==== */
.has-tooltip:hover .tooltip,
.has-tooltip:focus-within .tooltip {
  opacity: 1;
  visibility: visible;
}

/* レスポンシブ細調整 */
@media (max-width: 560px) {
  :root {
    --row-h: 64px;
    --time-w: 50px;
  }
  .c-timeline-list__time {
    font-size: 20px;
  }
  .c-timeline-list__events {
    gap: 14px;
  }
}
/* 行の背景の縞（うっすら）※必要なければ削除 */
.c-timeline-list__row:nth-child(odd) {
  background: #fff;
}

.c-timeline-list__row:nth-child(even) {
  background: #fff;
}

/* 視覚調整（行区切りと余白はデザイン画像に合わせて） */
.c-timeline-list__row + .c-timeline-list__row {
  border-top: 1px solid #f1f1f1;
}

.c-table-sort__head-btn {
  border: solid 1px #7c3f27;
  padding: 6px 16px;
  border-radius: 16px;
  color: #7c3f27;
  padding-right: 50px;
  background: #fff url("../images/ico_sort.svg") no-repeat center right 10px/18px auto;
}

.c-table-sort tbody tr:nth-child(odd) {
  background: #fff;
}

.c-table-sort {
  width: 100%;
}
.c-table-sort.r-narrowed td {
  padding-top: 6px;
  padding-bottom: 6px;
}

.c-table-sort th {
  text-align: left;
  padding: 16px 20px;
}
.c-table-sort th:nth-child(1) {
  padding-left: 60px;
}

.c-table-sort td {
  padding: 16px 20px;
  vertical-align: top;
}

.c-table-sort td:nth-child(1) {
  width: 16%;
  color: #7c3f27;
  font-size: 15px;
  padding-left: 60px;
}

.c-table-sort td:nth-child(2) {
  width: 13%;
  color: #7c3f27;
  font-size: 15px;
  text-align: center;
}
.c-table-sort td:nth-child(2) img {
  width: auto;
  height: 60px;
  margin: 0 auto;
}

.r-txts {
  font-size: 15px;
  color: #7c3f27;
}

.c-table-sort td:last-child {
  width: 28%;
  padding-right: 30px;
}

.c-item__meta-title {
  font-size: 22px;
  color: #7c3f27;
}

.c-place {
  font-size: 18px;
  color: #7c3f27;
}

@media (max-width: 780.99px) {
  .c-table-sort__head-btn {
    font-size: 2.8205128205vw;
    padding: 0.7692307692vw 2.0512820513vw;
    border-radius: 2.0512820513vw;
    padding-right: 6.4102564103vw;
    background-size: 3vw auto;
  }
  .c-table-sort th {
    padding: 2.0512820513vw 2.5641025641vw;
  }
  .c-table-sort th:nth-child(1) {
    padding-left: 5.1282051282vw;
  }
  .c-table-sort td {
    padding: 2.0512820513vw 2.5641025641vw;
  }
  .c-table-sort td:nth-child(1) {
    font-size: 2.8205128205vw;
    padding-left: 5.1282051282vw;
  }
  .c-table-sort td:nth-child(2) {
    font-size: 2.3076923077vw;
  }
  .c-table-sort td:nth-child(2) img {
    height: 7.6923076923vw;
  }
  .r-txts {
    font-size: 2.3076923077vw;
  }
  .c-table-sort td:last-child {
    padding-right: 2.5641025641vw;
  }
  .c-item__meta-title {
    font-size: 3.0769230769vw;
  }
  .c-place {
    font-size: 2.5641025641vw;
  }
}
.r-3col td:nth-child(1) {
  width: 25% !important;
}

.r-3col td:nth-child(2) {
  width: 30% !important;
  text-align: left !important;
}

.js-scroll-to-disp {
  margin-bottom: 200px;
}

/* =========================
   Inline custom checkbox
   ========================= */
.c-check-inline {
  --on: #d70000; /* チェック時の赤 */
  --off: #d3d3d3; /* 未チェック背景 */
  --box-size: 30px; /* 角丸四角のサイズ */
  --radius: 6px; /* 角丸 */
  --gap-item: 32px; /* 各項目の間隔 */
  --gap-label: 10px; /* 文字と四角の間隔 */
  display: inline-flex;
  align-items: center;
  gap: 10px var(--gap-item);
  line-height: 1;
  font: inherit;
  flex-wrap: wrap;
}
.c-check-inline.r-column {
  flex-direction: column;
  align-items: flex-start;
}

.c-check {
  display: inline-flex;
  align-items: center;
  gap: var(--gap-label);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  min-height: var(--box-size);
}

/* 既定のチェックボックスは視覚的に隠す（可読性は維持） */
.c-check > input[type=checkbox] {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
}

/* 四角（44×44） */
.c-check__box {
  inline-size: var(--box-size);
  block-size: var(--box-size);
  background: var(--off);
  border-radius: var(--radius);
  position: relative;
  display: inline-block;
  vertical-align: middle;
  transition: background-color 0.15s ease;
}

/* チェックマーク（白）: 常に存在してscaleで出す→レイアウトがブレない */
.c-check__box::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  inline-size: 16px;
  block-size: 10px;
  border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: rotate(-45deg) translateY(-1px) scale(0);
  transform-origin: center;
  transition: transform 0.12s ease-out;
}

/* チェック時の見た目 */
.c-check > input[type=checkbox]:checked ~ .c-check__box {
  background: var(--on);
}

.c-check > input[type=checkbox] ~ .c-check__box::after {
  transform: rotate(-45deg) translateY(-1px) scale(1);
}

/* hover で少し明度を下げる（任意） */
.c-check:hover .c-check__box {
  filter: brightness(0.96);
}

/* キーボードフォーカス（レイアウトに影響しない outline） */
.c-check > input[type=checkbox]:focus-visible ~ .c-check__box {
  outline: 2px solid Highlight;
  outline-offset: 3px;
}

/* 無効状態 */
.c-check > input[type=checkbox]:disabled ~ .c-check__box {
  background: #eee;
  opacity: 0.7;
}

.c-check > input[type=checkbox]:disabled ~ .c-check__label {
  color: #9aa0a6;
  cursor: not-allowed;
}

.c-check__label {
  font-size: 18px; /* 必要なら調整 */
  line-height: 1;
}
.c-check__label .r-small {
  font-size: 15px;
}

@media (max-width: 780.99px) {
  .c-check-inline {
    gap: 1.2820512821vw 2.3076923077vw;
  }
  .c-check {
    min-height: 5.641025641vw;
    gap: 1.2820512821vw;
  }
  .c-check__box {
    inline-size: 5.641025641vw;
    block-size: 5.641025641vw;
    border-radius: 1.0256410256vw;
  }
  .c-check__box::after {
    inline-size: 2.5641025641vw;
    block-size: 1.2820512821vw;
    border-bottom: 0.7692307692vw solid #fff;
    border-left: 0.7692307692vw solid #fff;
  }
  .c-check__label {
    font-size: 3.3333333333vw;
  }
  .c-check__label .r-small {
    font-size: 2.3076923077vw;
  }
}
.c-check-toggle-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 30px;
}
.c-check-toggle-list-itm {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.c-check-toggle-list-itm-hdg {
  background: #fff;
  padding: 24px 32px;
  border-radius: 10px;
  position: relative;
}
.c-check-toggle-list-itm-hdg .toggle-arrow {
  content: "";
  width: 15px;
  height: 15px;
  display: block;
  border-top: #1d1d1b solid 1px;
  border-left: #1d1d1b solid 1px;
  transform: rotate(-135deg);
  position: absolute;
  top: 30px;
  right: 30px;
  transition: 0.3s;
}
.c-check-toggle-list-itm-data {
  background: #fff;
  padding: 16px 32px 30px;
  border-radius: 10px;
  padding-left: 70px;
  display: none;
  padding-top: 26px;
  gap: 30px;
}
.c-check-toggle-list-itm.is-open .c-check-toggle-list-itm-data {
  display: flex;
}
.c-check-toggle-list-itm.is-open .c-check-toggle-list-itm-hdg .toggle-arrow {
  transform: rotate(45deg);
  top: 36px;
}

.c-selectradio {
  position: relative;
  display: inline-block;
}

/* トリガーボタン */
.c-selectradio-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.2rem 0.5rem;
  border: 1px solid #e84a5f;
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
  font: inherit;
  line-height: 1;
  position: relative;
  min-width: 30vw;
  position: relative;
}

.c-selectradio-trigger::after {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  border-right: 2px solid #e84a5f;
  border-bottom: 2px solid #e84a5f;
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  right: 0.6rem;
  top: 0.35rem;
  position: absolute;
}

.c-selectradio-trigger[aria-expanded=true]::after {
  transform: rotate(-135deg);
}

/* メニュー本体 */
.c-selectradio-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 200px;
  background: #fff;
  border-radius: 16px;
  padding: 0.5rem 0.5rem;
  list-style: none;
  margin: 0;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
  display: none;
  z-index: 50;
}

.c-selectradio-menu[aria-hidden=false] {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

/* 各項目 */
.c-selectradio-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0.6rem;
  border-radius: 10px;
  cursor: pointer;
  user-select: none;
}

.c-selectradio-item:hover {
  background: #f9f3f4;
}

/* inputを非表示 */
.c-selectradio-item input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* 右側の丸いインジケータ */
.c-selectradio-badge {
  position: relative;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid #d7d7d7;
  flex: 0 0 auto;
  background: #f1f1f1;
}

.c-selectradio-badge::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 8px;
  border-right: 2px solid #cfcfcf;
  border-bottom: 2px solid #cfcfcf;
  left: 7px;
  top: 5px;
  transform: rotate(45deg);
}

/* 選択時のスタイル（赤丸＋白チェック） */
.c-selectradio-item input:checked ~ .c-selectradio-badge {
  background: #e84a5f;
  border-color: #e84a5f;
}

.c-selectradio-item input:checked ~ .c-selectradio-badge::after {
  border-color: #fff;
}

.checkbox-2 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 2em;
  border: none;
}

.checkbox-2 label {
  display: flex;
  align-items: center;
  gap: 0 0.5em;
  position: relative;
  cursor: pointer;
}

.checkbox-2 label::before {
  width: 66px;
  height: 66px;
  border-radius: 10px;
  border: 2px solid #e36767;
  content: "";
  background: #fff;
}

.checkbox-2 label:has(:checked)::after {
  position: absolute;
  top: 1px;
  left: 40px;
  transform: rotate(45deg);
  width: 30px;
  height: 47px;
  border: solid #e36767;
  border-width: 0 5px 5px 0;
  content: "";
}

.checkbox-2 input {
  display: none;
}

.checkbox-2 label:has(input:disabled) {
  cursor: default;
}

.checkbox-2 label:has(input:disabled)::before {
  background-color: #efcfcf;
}

@media (max-width: 780.99px) {
  .checkbox-2 label::before {
    width: 8.4615384615vw;
    height: 8.4615384615vw;
    border-radius: 1.2820512821vw;
    border: 2px solid #e36767;
  }
  .checkbox-2 label:has(:checked)::after {
    top: 0.7692307692vw;
    left: 7.6923076923vw;
    width: 3.2051282051vw;
    height: 5.3846153846vw;
    border-width: 0 1.2820512821vw 1.2820512821vw 0;
  }
}
.c-calendar {
  width: 100%;
  margin: 0 auto;
  background: #fff;
  padding: 10px 30px 20px;
  color: #000;
  font-size: 20px;
  font-weight: bold;
  border-radius: 20px;
}
.c-calendar table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}
.c-calendar th {
  padding: 10px 0;
  width: 14.2857142857%;
  text-align: center;
}
.c-calendar th:nth-child(1), .c-calendar th:nth-child(7) {
  color: #ec1e24;
}
.c-calendar td {
  text-align: center;
  padding: 10px 0;
}
.c-calendar td:nth-child(1), .c-calendar td:nth-child(7) {
  color: #ec1e24;
}
.c-calendar-ttl {
  text-align: center;
  position: relative;
  font-size: 40px;
  margin-bottom: 10px;
}
.c-calendar-ttl span {
  font-size: 26px;
  position: absolute;
  left: 40px;
  top: 24px;
}
.c-calendar-mark-g {
  background: #ccc;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  margin: 0 auto;
}
.c-calendar-mark-r {
  background: #f192a9;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  margin: 0 auto;
}

@media (max-width: 780.99px) {
  .c-calendar {
    padding: 1.2820512821vw 3.8461538462vw 3.8461538462vw;
    font-size: 3.3333333333vw;
    border-radius: 2.5641025641vw;
  }
  .c-calendar table {
    margin-top: 2.5641025641vw;
  }
  .c-calendar th {
    padding: 1.2820512821vw 0;
  }
  .c-calendar td {
    padding: 1.2820512821vw 0;
  }
  .c-calendar-ttl {
    font-size: 5.1282051282vw;
    margin-bottom: 1.2820512821vw;
  }
  .c-calendar-ttl span {
    font-size: 3.3333333333vw;
    left: 1.2820512821vw;
    top: 2.5641025641vw;
  }
  .c-calendar-mark-g {
    width: 6.4102564103vw;
    height: 6.4102564103vw;
  }
  .c-calendar-mark-r {
    width: 6.4102564103vw;
    height: 6.4102564103vw;
  }
}
:root {
  --cell-min-h: 110px; /* 日セルの最低高さ */
  --lane-height: 18px; /* ラベル1本の高さ */
  --lane-gap: 0; /* ラベル同士の間隔 */
  --event-top: 8px; /* 日付表示の下にラベルを載せるY位置 */
  --border: #f08; /* 罫線色（サンプル） */
  --sun: #e74c3c;
  --sat: #2980b9;
}

/* ===== イベント色パレット ===== */
:root {
  /* 濃色（白文字） */
  --c-lime: #b6d335;
  --c-forest: #176a3b;
  --c-teal: #3ac1c9;
  --c-blue: #0b67b1;
  --c-indigo: #3d52c6;
  --c-purple: #8a3da9;
  --c-magenta: #e10074;
  --c-red: #e20613;
  --c-orange: #f28a00;
  --c-yellow: #ffd400;
  /* 白（枠だけ） */
  --c-white: #ffffff;
  --c-white-bd: #888; /* 枠色は好みで */
  /* 淡色（黒文字） */
  --c-mint: #d4ebe1;
  --c-ice: #dfece7;
  --c-sky: #d9e9fb;
  --c-lavender: #e8dff7;
  --c-lilac: #eed9f2;
  --c-pink: #f7d0e1;
  --c-rose: #f9c5cf;
  --c-peach: #fde0c8;
}

/* 濃色：白文字 */
.event--lime {
  background: var(--c-lime);
  color: #fff;
}

.event--forest {
  background: var(--c-forest);
  color: #fff;
}

.event--teal {
  background: var(--c-teal);
  color: #fff;
}

.event--blue {
  background: var(--c-blue);
  color: #fff;
}

.event--indigo {
  background: var(--c-indigo);
  color: #fff;
}

.event--purple {
  background: var(--c-purple);
  color: #fff;
}

.event--magenta {
  background: var(--c-magenta);
  color: #fff;
}

.event--red {
  background: var(--c-red);
  color: #fff;
}

.event--orange {
  background: var(--c-orange);
  color: #fff;
}

.event--yellow {
  background: var(--c-yellow);
  color: #333;
} /* 黄は黒文字が見やすい */
/* 白（枠線のみ） */
.event--white {
  background: var(--c-white);
  color: #333;
  box-shadow: inset 0 0 0 1.5px var(--c-white-bd);
}

/* 淡色：黒文字 */
.event--mint {
  background: var(--c-mint);
  color: #333;
}

.event--ice {
  background: var(--c-ice);
  color: #333;
}

.event--sky {
  background: var(--c-sky);
  color: #333;
}

.event--lavender {
  background: var(--c-lavender);
  color: #333;
}

.event--lilac {
  background: var(--c-lilac);
  color: #333;
}

.event--pink {
  background: var(--c-pink);
  color: #333;
}

.event--rose {
  background: var(--c-rose);
  color: #333;
}

.event--peach {
  background: var(--c-peach);
  color: #333;
}

* {
  box-sizing: border-box;
}

.toolbar {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem 1rem;
}

.toolbar .title {
  font-weight: 800;
  font-size: 1.25rem;
  margin-right: auto;
}

.toolbar button {
  padding: 0.4rem 0.6rem;
  border: 1px solid #ddd;
  border-radius: 0.5rem;
  background: #fafafa;
  cursor: pointer;
}

.toolbar button:hover {
  background: #f3f3f3;
}

/* カレンダー全体の相対基準。イベントはこの上に絶対配置される */
.calendar-wrap {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
}

/* 曜日ヘッダと本体は同じ7列グリッド */
.grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.dow {
  padding: 0.5rem;
  text-align: center;
  font-weight: 700;
  border-bottom: 1px solid var(--border);
}

.dow:nth-child(7n+1) {
  color: var(--sun);
}

.dow:nth-child(7n) {
  color: var(--sat);
}

.calendar {
  border-left: 1px solid var(--border);
}

.day {
  position: relative; /* 日付文字やバッジの基準 */
  min-height: var(--cell-min-h);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: #fff;
}

.date {
  position: absolute;
  top: 6px;
  left: 6px;
  font-weight: 800;
  font-size: 0.95rem;
}

.is-outside .date {
  color: #aaa;
}

.sun .date {
  color: var(--sun);
}

.sat .date {
  color: var(--sat);
}

.is-today {
  background-color: #efefef;
}

.is-today .date {
  background: #333;
  padding: 0 0.5rem;
  border-radius: 1rem;
  color: #fff;
}

/* ====== イベント（ラベル） ====== */
.events-layer {
  /* イベントをまとめて重ねるレイヤ */
  position: absolute;
  inset: 0;
  z-index: 1;
}

.event {
  position: absolute;
  height: var(--lane-height);
  line-height: var(--lane-height);
  padding: 0 0.3rem;
  border-radius: 0.1rem;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06) inset;
  text-align: center;
}

.event--inpatient {
  background: #f0a018;
  color: #fff;
}

.event--outpatient {
  background: #d9d9d9;
  color: #333;
}

.event--day-short {
  background: #ef7ad1;
  color: #fff;
}

.event a {
  display: block;
  text-decoration: underline;
  color: inherit;
}

/* 週端で継続する見せ方（任意） */
.event.is-continued-left {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.event.is-continued-right {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

@media (max-width: 780.99px) {
  :root {
    --cell-min-h: 96px;
    --lane-height: 12vw;
  }
  .toolbar .title {
    font-size: 1.1rem;
  }
  .event {
    font-size: 2.3076923077vw;
  }
}
/* 名前の行：背景・ボーダーなし、テキストだけ */
.cal-entry {
  display: block;
  font-size: 12px;
  line-height: 1.5;
  margin-top: 2px; /* 行間だけ */
  margin-left: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background: none;
  border: none;
  padding: 0;
}

.c-service-day-calendar {
  --cell-size: auto;
  --border-color: #f090a0;
  --bg-main: #f6d6b0;
  --bg-out: #f8e7cf;
  --color-sun: #d22;
  --color-sat: #247;
  background: var(--bg-main);
  border-radius: 6px;
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  color: #333;
}

.c-service-day-calendar__header {
  text-align: center;
  padding: 8px 0 4px;
  font-weight: bold;
}

.c-service-day-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  background: var(--border-color);
  border: 1px solid var(--border-color);
}

.c-service-day-calendar__day {
  background: var(--bg-main);
  min-height: var(--cell-size);
  padding: 4px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  position: relative;
}

.c-service-day-calendar__day.is-out {
  background: var(--bg-out);
  opacity: 0.7;
}

.c-service-day-calendar__day.is-sun .c-service-day-calendar__date {
  color: var(--color-sun);
}

.c-service-day-calendar__day.is-sat .c-service-day-calendar__date {
  color: var(--color-sat);
}

.c-service-day-calendar__date {
  font-weight: bold;
  margin-bottom: 4px;
}

/* チェックボックス */
.c-service-day-calendar__check {
  position: relative;
  display: inline-block;
}

.c-service-day-calendar__check input {
  position: absolute;
  opacity: 0;
}

.c-service-day-calendar__box {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid #e34;
  border-radius: 3px;
  background: #fff;
  box-sizing: border-box;
}

.c-service-day-calendar__check input:checked + .c-service-day-calendar__box::after {
  position: absolute;
  top: 1px;
  left: 5px;
  transform: rotate(45deg);
  width: 7px;
  height: 14px;
  border: solid #e34;
  border-width: 0 3px 3px 0;
  content: "";
}

/* カレンダーの外観（必要に応じて前回のものと併用） */
.c-service-day-calendar {
  --cell-size: 50px;
  --border-color: #f090a0;
  --bg-main: #f6d6b0;
  --bg-out: #f8e7cf;
  --color-sun: #d22;
  --color-sat: #247;
  background: var(--bg-main);
  border-radius: 6px;
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  color: #333;
}

.c-service-day-calendar__header {
  text-align: center;
  padding: 8px 0 4px;
  font-weight: 700;
}

.c-service-day-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  background: var(--border-color);
  border: 1px solid var(--border-color);
  border-radius: 4px;
}

.c-service-day-calendar__day {
  background: var(--bg-main);
  min-height: var(--cell-size);
  padding: 4px 4px 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.c-service-day-calendar__day.is-sun .c-service-day-calendar__date {
  color: var(--color-sun);
}

.c-service-day-calendar__day.is-sat .c-service-day-calendar__date {
  color: var(--color-sat);
}

.c-service-day-calendar__date {
  font-weight: 700;
  margin-bottom: 4px;
}

/* ── 状態表示用 span（チェック風） ── */
.c-service-day-calendar__mark {
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 3px;
  box-sizing: border-box;
  cursor: pointer;
  outline: none;
  position: relative;
}

/* 利用予定日（OFFデザイン：白地＋赤枠 □） */
.c-service-day-calendar__mark.is-planned {
  background: #fff;
  border: 2px solid #e34;
}

/* 休業日（ONデザイン：赤塗り＋白チェック） */
.c-service-day-calendar__mark.is-closed {
  background: #f08d45;
  border: 2px solid #f08d45;
}

/* 未設定（枠線なしの白） */
.c-service-day-calendar__mark.is-unset {
  background: #fff;
  border: 2px solid transparent;
}

/* フォーカス見やすく */
.c-service-day-calendar__mark:focus {
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
}

.r-viewmode .c-service-day-calendar__mark {
  cursor: default;
}

.c-service-day-calendar__check.r-check {
  display: block;
  width: 0.5rem;
  height: 1em;
  border-top: solid #e34 3px;
  border-left: solid #e34 3px;
  transform: rotate(-135deg);
}

a.cal-entry {
  color: initial;
  text-decoration: underline;
}

/* ========== component: c-progress ========== */
.c-progress {
  --dot-size: 28px; /* 白丸サイズ */
  --color-red: #d80000;
  --color-red-weak: rgba(216, 0, 0, 0.15);
  --color-line: #e6e6e6; /* 未完了ライン */
  --wrap-w: var(--c-progress-width, 580px);
  width: min(100%, var(--wrap-w));
  margin: 24px auto;
  position: relative;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
}

/* 見出し（中央上部） */
.c-progress__title {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  color: #7a4a2e; /* 見本のブラウン系に寄せる */
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.02em;
}

/* 下地のグレートラック（全体） */
.c-progress__track {
  position: absolute;
  left: calc(var(--dot-size) / 2);
  right: calc(var(--dot-size) / 2);
  top: calc(var(--dot-size) / 2 + 8px);
  height: 2px;
  z-index: 0;
}

/* 並び */
.c-progress__list {
  counter-reset: step;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: start;
  gap: 0;
  list-style: none;
  padding: 20px 0 0;
  margin: 0;
  position: relative;
  z-index: 1; /* 丸をトラックの上に */
}

/* 各ステップ */
.c-progress__item {
  position: relative;
  text-align: center;
  padding-top: 10px;
}

/* ステップ間の “到達済み” 赤ライン（右方向へ伸ばす） */
.c-progress__list::after {
  content: "";
  width: 76%;
  height: 2px;
  background: var(--color-red);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 0;
  transform: translateY(-2px);
}

/* 丸（白 36px） */
.c-progress__circle {
  display: block;
  width: var(--dot-size);
  height: var(--dot-size);
  margin: 0 auto 6px;
  background: #fff;
  border: 2px solid var(--color-red);
  border-radius: 50%;
  position: relative;
  box-sizing: border-box;
  z-index: 1;
}

/* 現在地：中央に赤い小丸＋淡いリング */
.c-progress__item.is-current .c-progress__circle {
  border: none;
  background: rgba(var(--color-red), 0.2);
}

.c-progress__item.is-current .c-progress__circle::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--color-red);
  box-shadow: 0 0 0 10px var(--color-red-weak);
}

/* 完了：塗りつぶし＆チェック */
.c-progress__item.is-done .c-progress__circle {
  background: var(--color-red);
  width: 24px;
  height: 24px;
  transform: translateY(2px);
}

.c-progress__item.is-done .c-progress__circle::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 8px;
  height: 14px;
  border: 3px solid #fff;
  border-top: 0;
  border-left: 0;
  transform: translateY(2px) rotate(45deg);
  border-radius: 1px;
  top: -7px;
}

/* ラベル（数字） */
.c-progress__label {
  display: inline-block;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  color: #222;
}

/* 未来（未到達）を薄くしたい場合は、:not(.is-done):not(.is-current) に色を落とす */
.c-progress__item:not(.is-done):not(.is-current) .c-progress__label {
  color: #bbb;
}

/* ちょいレスポンシブ */
@media (max-width: 640px) {
  .c-progress__title {
    top: -16px;
    font-size: 15px;
  }
  .c-progress__label {
    font-size: 13px;
  }
}
.zen-maru-gothic-regular {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.zen-maru-gothic-bold {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.p-torisetsu-ttl {
  text-align: center;
  margin-top: 40px;
}
.p-torisetsu-ttl img {
  width: 410px;
  height: auto;
  margin: 0 auto;
}
.p-torisetsu-new-btn {
  font-size: 30px;
  color: #515151;
  margin-top: 40px;
}
.p-torisetsu-new-btn-blank {
  display: block;
  width: 184px;
  height: 232px;
  border: 4px solid #d23c56;
  border-radius: 10px;
  background: #fff;
  margin: 10px auto 0;
  overflow: hidden;
}
.p-torisetsu-new-btn-blank img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-torisetsu-go-btn {
  display: block;
  width: 150px;
  height: auto;
  margin: 80px auto 0;
}
.p-torisetsu-go-btn img {
  width: 100%;
  height: auto;
}
.p-torisetsu-home-btn {
  display: block;
  width: 132px;
  height: auto;
  margin: 200px auto 80px;
}
.p-torisetsu-home-btn img {
  width: 100%;
  height: auto;
}

.p-torisetsu-hdg2 {
  font-size: 24px;
  font-weight: 700;
  color: #515151;
}

.p-torisetsu-flex {
  margin-top: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.p-torisetsu-sort {
  position: relative;
  height: 48px;
  font-size: 16px;
}
.p-torisetsu-sort a {
  text-decoration: none;
}

/* ドロップダウン全体 */
.p-torisetsu-sort-select {
  position: absolute;
  top: 0;
  right: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 220px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
  overflow: hidden;
  max-height: 48px;
  transition: max-height 180ms ease;
  z-index: 1000;
}

.p-torisetsu-sort-select.is-open {
  max-height: 400px;
}

.p-torisetsu-sort-select-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
  text-decoration: none;
  color: #222;
  white-space: nowrap;
}

/* 区切り線 */
.p-torisetsu-sort-select-itm:not(:first-child) .p-torisetsu-sort-select-link {
  border-top: 1px solid #eee;
}

.p-torisetsu-sort-select-itm:not(:first-child) .p-torisetsu-sort-select-link:hover {
  background: #f6f6f6;
}

.p-torisetsu-list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 24px;
}

.p-torisetsu-list-itm {
  position: relative;
  width: calc((100% - 48px) / 3);
}
.p-torisetsu-list-itm-menu {
  position: absolute;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.9);
  padding: 10px;
  top: 80px;
  right: -20px;
  box-shadow: 0px 1px 9px 0px rgba(0, 0, 0, 0.19);
  display: none;
}

.p-torisetsu-list-itm-menu-itm {
  font-size: 18px;
}
.p-torisetsu-list-itm-menu-itm img {
  width: 27px;
  height: 27px;
  object-fit: contain;
  margin-right: 20px;
}
.p-torisetsu-list-itm-menu-itm a {
  display: flex;
  align-items: center;
  color: #222;
  text-decoration: none;
  padding: 10px;
}
.p-torisetsu-list-itm-menu-itm + .p-torisetsu-list-itm-menu-itm {
  margin-top: 10px;
}
.p-torisetsu-list-itm-menu-itm:last-child {
  border-top: solid 1px #d72150;
}

.p-torisetsu-list-itm-inner img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
}

.p-torisetsu-list-itm.is-menu-open .p-torisetsu-list-itm-menu {
  display: block;
}

.p-torisetsu-list-itm {
  font-size: 20px;
}

@media (max-width: 780.99px) {
  .p-torisetsu-ttl {
    margin-top: 5.1282051282vw;
  }
  .p-torisetsu-ttl img {
    width: 52.5641025641vw;
  }
  .p-torisetsu-new-btn {
    font-size: 7.0512820513vw;
    margin-top: 5.1282051282vw;
  }
  .p-torisetsu-new-btn-blank {
    display: block;
    width: 23.5897435897vw;
    height: 29.7435897436vw;
    border: 0.5128205128vw solid #d23c56;
    border-radius: 1.2820512821vw;
    background: #fff;
    margin: 1.2820512821vw auto 0;
  }
  .p-torisetsu-go-btn {
    display: block;
    width: 25.641025641vw;
    height: auto;
    margin: 15.3846153846vw auto 0;
  }
  .p-torisetsu-home-btn {
    width: 16.9230769231vw;
    height: auto;
    margin: 12.8205128205vw auto 10.2564102564vw;
  }
  .p-torisetsu-hdg2 {
    font-size: 3.8461538462vw;
  }
  .p-torisetsu-flex {
    margin-top: 12.8205128205vw;
  }
  .p-torisetsu-sort {
    position: relative;
    height: 7.4358974359vw;
    font-size: 3.3333333333vw;
  }
  /* ドロップダウン全体 */
  .p-torisetsu-sort-select {
    width: 34.6153846154vw;
    border-radius: 1.7948717949vw;
    box-shadow: 0 0.2564102564vw 1.2820512821vw rgba(0, 0, 0, 0.12);
    max-height: 7.4358974359vw;
  }
  .p-torisetsu-sort-select.is-open {
    max-height: 51.2820512821vw;
  }
  .p-torisetsu-sort-select-link {
    gap: 1.0256410256vw;
    padding: 1.5384615385vw 1.7948717949vw;
  }
  .p-torisetsu-list {
    gap: 3.0769230769vw;
    margin-top: 10.2564102564vw;
  }
  .p-torisetsu-list-itm {
    position: relative;
    width: calc((100% - 6.1538461538vw) / 3);
  }
  .p-torisetsu-list-itm-menu {
    border-radius: 1.2820512821vw;
    padding: 1.2820512821vw;
    top: 10.2564102564vw;
    right: -2.5641025641vw;
    box-shadow: 0px 0.1282051282vw 1.1538461538vw 0px rgba(0, 0, 0, 0.19);
    z-index: 10;
  }
  .p-torisetsu-list-itm-menu-itm {
    font-size: 3.0769230769vw;
  }
  .p-torisetsu-list-itm-menu-itm img {
    width: 3.4615384615vw;
    height: 3.4615384615vw;
    object-fit: contain;
    margin-right: 2.5641025641vw;
  }
  .p-torisetsu-list-itm-menu-itm a {
    padding: 1.7948717949vw 2.5641025641vw;
  }
  .p-torisetsu-list-itm-menu-itm + .p-torisetsu-list-itm-menu-itm {
    margin-top: 1.2820512821vw;
  }
  .p-torisetsu-list-itm-inner img {
    border-radius: 1.2820512821vw;
  }
  .p-torisetsu-list-itm {
    font-size: 3.3333333333vw;
  }
}
.p-torisetsu-edit-menu {
  width: 100%;
  margin: 0 auto;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
}
.p-torisetsu-edit-menu-list {
  display: flex;
  justify-content: center;
  gap: 20px;
  background: #fff;
  border-radius: 10px;
}
.p-torisetsu-edit-menu-list-itm {
  width: 100px;
  text-align: center;
}
.p-torisetsu-edit-menu-list-itm > button {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 10px;
  font-size: 12px;
  margin: 0 auto;
}
.p-torisetsu-edit-menu-list-itm > button img {
  width: 30px;
  height: 30px;
  object-fit: contain;
  margin: 0 auto 5px;
}
.p-torisetsu-edit-menu-list-itm-content {
  max-height: 0;
  transition: max-height 0.6s;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  background: #fff;
  z-index: 999999;
}
.p-torisetsu-edit-menu-list-itm-content-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding-bottom: 30px;
  padding-top: 16px;
}
.p-torisetsu-edit-menu-list-itm-content.is-open {
  max-height: 1000px;
  box-shadow: 0px -2px 10px 0px rgba(0, 0, 0, 0.1);
}
.p-torisetsu-edit-menu-list-itm-content-block {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  max-height: 500px;
  overflow-y: auto;
}
.p-torisetsu-edit-menu-list-itm-content-block-itm {
  width: calc((100% - 80px) / 6);
  aspect-ratio: 1/1;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
}
.p-torisetsu-edit-menu-list-itm-content-block-itm img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-torisetsu-edit-menu-list-itm-content-block-itm img.r-contain {
  object-fit: contain !important;
}
.p-torisetsu-edit-menu-list-itm-content-block-itm.is-selected::after {
  content: "";
  display: block;
  width: 28px;
  height: 22px;
  background: url("../images/torisetsu/ico_check.svg") no-repeat center center/contain;
  font-size: 24px;
  color: #fd3259;
  position: absolute;
  bottom: 8px;
  right: 8px;
}
.p-torisetsu-edit-menu-list-itm-content-block.r-3col {
  margin-top: 32px;
}
.p-torisetsu-edit-menu-list-itm-content-block.r-3col .p-torisetsu-edit-menu-list-itm-content-block-itm {
  width: calc((100% - 32px) / 3);
  aspect-ratio: 184/232;
}
.p-torisetsu-edit-menu-list-itm-content-block-shape {
  margin-top: 32px;
}
.p-torisetsu-edit-menu-list-itm-content-block-shape .p-torisetsu-edit-menu-list-itm-content-block-itm {
  width: calc((100% - 64px) / 4);
  aspect-ratio: 1/1;
}
.p-torisetsu-edit-menu-list-itm-content-closebtn {
  display: block;
  width: 200px;
  height: 5px;
  line-height: 0;
  overflow: hidden;
  color: transparent;
  border-radius: 3px;
  padding: 0;
  margin: 0 auto;
  background: linear-gradient(to right, #d72150, #fd3259);
}
.p-torisetsu-edit-menu-list-itm-content .c-button-commit-em {
  margin-left: 0;
  margin-bottom: 16px;
}
.p-torisetsu-edit-menu-list-itm-content-label {
  font-size: 20px;
  margin: 40px 0;
}
.p-torisetsu-edit-menu-list-itm-content-cancelbtn {
  display: inline-block;
  text-align: right;
  font-size: 16px;
  font-weight: bold;
  margin-left: auto;
}

.p-torisetsu-edit-menu-list-itm-content-block-shape {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  padding: 0 120px;
}
.p-torisetsu-edit-menu-list-itm-content-block-shape-itm {
  width: calc((100% - 48px) / 4);
  aspect-ratio: 1/1;
}
.p-torisetsu-edit-menu-list-itm-content-block-shape-itm img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-torisetsu-edit-menu-list-itm-content-block-shape-itm.is-selected img {
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.6));
}

.p-torisetsu-edit-menu-list-itm-content-block-color-list {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
}
.p-torisetsu-edit-menu-list-itm-content-block-color-list-itm {
  width: 54px;
  height: 54px;
  border-radius: 8px;
  display: block;
}
.p-torisetsu-edit-menu-list-itm-content-block-color-list-itm.is-selected {
  box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.6);
}

.p-torisetsu-edit-text-toolbar {
  padding: 0 120px;
}
.p-torisetsu-edit-text-toolbar-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.p-torisetsu-edit-text-toolbar-row + .p-torisetsu-edit-text-toolbar-row {
  margin-top: 18px;
}
.p-torisetsu-edit-text-toolbar-group {
  display: flex;
  align-items: center;
  gap: 16px;
}
.p-torisetsu-edit-text-toolbar-btn {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: transparent;
  padding: 0;
}
.p-torisetsu-edit-text-toolbar-btn img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  display: block;
}
.p-torisetsu-edit-text-toolbar-btn.is-selected {
  background: #f7a9db;
}
.p-torisetsu-edit-text-toolbar-size {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.p-torisetsu-edit-text-toolbar-size-select {
  width: 92px;
  height: 56px;
  border: 2px solid #fd3259;
  border-radius: 8px;
  font-size: 18px;
  font-weight: 700;
  padding: 0 12px;
  background: #fff;
}
.p-torisetsu-edit-text-toolbar-size-unit {
  font-size: 18px;
  font-weight: 700;
}

.p-torisetsu-edit-text-area {
  padding: 0 120px;
}
.p-torisetsu-edit-text-area-input {
  width: 100%;
  min-height: 190px;
  border: 2px solid #fd3259;
  border-radius: 8px;
  padding: 14px 16px;
  font-size: 20px;
  line-height: 1.6;
  resize: none;
  outline: none;
}

.p-torisetsu-edit-canvas {
  width: 720px;
  aspect-ratio: 1/1.414;
  background-color: #fff;
  user-select: none;
}

.p-torisetsu-edit-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.p-torisetsu-edit-ttl {
  font-size: 16px;
  width: 40%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.p-torisetsu-edit-btn-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 8px;
  width: 26%;
}
.p-torisetsu-edit-btn-wrap img {
  width: 30px;
  height: auto;
}
.p-torisetsu-edit-btn-wrap span {
  font-size: 12px;
}

.p-torisetsu-edit-layer-wrap {
  width: 40%;
  position: relative;
}

.p-torisetsu-edit-layer-btn {
  margin-left: auto;
  display: block;
}
.p-torisetsu-edit-layer-btn img {
  width: 50px;
  height: auto;
}

.p-torisetsu-edit-layer-list-wrap {
  display: none;
  position: absolute;
  top: 60px;
  right: 0;
}
.p-torisetsu-edit-layer-list-wrap.is-open {
  display: block;
}

.p-torisetsu-edit-layer-list-wrap {
  background-color: #f8c9cd;
  border-radius: 3px;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
  width: 300px;
  padding: 20px;
  z-index: 9999999;
}

.p-torisetsu-edit-layer-list-ttl {
  color: #fff;
  font-size: 16px;
  margin-bottom: 8px;
}

.p-torisetsu-edit-layer-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
  height: 200px;
  overflow-y: auto;
}

.p-torisetsu-edit-layer-list-itm {
  background-color: #fff;
  border-radius: 2px;
  padding: 4px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  cursor: pointer;
}

.p-torisetsu-edit-layer-list-itm-delbtn {
  display: block;
}
.p-torisetsu-edit-layer-list-itm-delbtn img {
  width: 14px;
  height: auto;
}

.p-torisetsu-edit-layer-list-itm-txt {
  width: 70%;
  text-align: left;
  font-size: 15px;
}

.p-torisetsu-edit-layer-list-close-btn {
  position: absolute;
  top: 30px;
  right: 20px;
  display: block;
  width: 20px;
  cursor: pointer;
}
.p-torisetsu-edit-layer-list-close-btn img {
  width: 10px;
  height: auto;
}

.p-torisetsu-edit-layer-list-itm-thumb {
  display: block;
  width: 40px;
  height: 40px;
}
.p-torisetsu-edit-layer-list-itm-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.js-canvas-item {
  box-sizing: border-box;
}

.p-torisetsu-edit-canvas-btns {
  position: relative;
}
.p-torisetsu-edit-canvas-btns .p-torisetsu-edit-menu-list-itm-content-cancelbtn {
  position: absolute;
  top: 10px;
  right: 10px;
}

html:not(.is-exporting) .js-canvas-item.is-active:not(.is-locked) .canvas-item-inner::after {
  content: "";
  position: absolute;
  inset: -1px;
  box-shadow: 0 0 0 2px #fd3259;
  pointer-events: none;
}

html:not(.is-exporting) .js-canvas-item.is-active:not(.is-locked) .canvas-item-inner::before {
  content: "";
  position: absolute;
  background-image: url("../images/torisetsu/ico_corner.svg"), url("../images/torisetsu/ico_corner.svg"), url("../images/torisetsu/ico_corner.svg"), url("../images/torisetsu/ico_corner.svg");
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
  background-position: left top, right top, left bottom, right bottom;
  /* サイズ調整（必要に応じて変更） */
  background-size: 10px 10px, 10px 10px, 10px 10px, 10px 10px;
  pointer-events: none;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  transform: scale(1.04);
  z-index: 1;
}

.js-canvas-item {
  outline: none;
}

@media (max-width: 780.99px) {
  .p-torisetsu-edit-menu-list {
    gap: 2.0512820513vw;
    border-radius: 1.2820512821vw;
  }
  .p-torisetsu-edit-menu-list-itm {
    width: 14vw;
  }
  .p-torisetsu-edit-menu-list-itm > button {
    padding: 2.5641025641vw 1.0256410256vw;
    font-size: 1.7948717949vw;
  }
  .p-torisetsu-edit-menu-list-itm > button img {
    width: 8vw;
    height: 8vw;
    margin: 0 auto 0.641025641vw;
  }
  .p-torisetsu-edit-menu-list-itm-content {
    padding: 1.2820512821vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-inner {
    max-width: 100%;
    padding-bottom: 3.8461538462vw;
    padding-top: 2.0512820513vw;
  }
  .p-torisetsu-edit-menu-list-itm-content.is-open {
    max-height: 100vh;
  }
  .p-torisetsu-edit-menu-list-itm-content-block {
    gap: 2vw;
    max-height: 64.1025641026vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block-itm {
    width: calc((100% - 10vw) / 6);
    border-radius: 1.0256410256vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block-itm.is-selected::after {
    width: 3.5897435897vw;
    height: 2.8205128205vw;
    font-size: 3.0769230769vw;
    bottom: 1.0256410256vw;
    right: 1.0256410256vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block.r-3col {
    margin-top: 4.1025641026vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block.r-3col .p-torisetsu-edit-menu-list-itm-content-block-itm {
    width: calc((100% - 4vw) / 3);
  }
  .p-torisetsu-edit-menu-list-itm-content-block-shape {
    margin-top: 4.1025641026vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block-shape .p-torisetsu-edit-menu-list-itm-content-block-itm {
    width: calc((100% - 6vw) / 4);
  }
  .p-torisetsu-edit-menu-list-itm-content-closebtn {
    width: 25.641025641vw;
    height: 0.641025641vw;
    border-radius: 0.3846153846vw;
  }
  .p-torisetsu-edit-menu-list-itm-content .c-button-commit-em {
    margin-bottom: 2.0512820513vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-label {
    font-size: 3.8461538462vw;
    margin: 5.1282051282vw 0;
  }
  .p-torisetsu-edit-menu-list-itm-content-cancelbtn {
    width: 38.4615384615vw;
    font-size: 2.9487179487vw;
    padding-right: 4vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block-shape {
    gap: 2vw;
    padding: 0 15.3846153846vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block-shape-itm {
    width: calc((100% - 6vw) / 4);
  }
  .p-torisetsu-edit-menu-list-itm-content-block-color {
    width: 62vw;
    margin: 0 auto;
  }
  .p-torisetsu-edit-menu-list-itm-content-block-color-list {
    gap: 2vw;
  }
  .p-torisetsu-edit-menu-list-itm-content-block-color-list-itm {
    width: 6.9230769231vw;
    height: 6.9230769231vw;
    border-radius: 1.0256410256vw;
  }
  .p-torisetsu-edit-text-toolbar {
    padding: 0 15.3846153846vw;
  }
  .p-torisetsu-edit-text-toolbar-row {
    gap: 2vw;
  }
  .p-torisetsu-edit-text-toolbar-row + .p-torisetsu-edit-text-toolbar-row {
    margin-top: 2.3076923077vw;
  }
  .p-torisetsu-edit-text-toolbar-group {
    gap: 2vw;
  }
  .p-torisetsu-edit-text-toolbar-btn {
    width: 7.1794871795vw;
    height: 7.1794871795vw;
  }
  .p-torisetsu-edit-text-toolbar-btn img {
    width: 4.358974359vw;
    height: 4.358974359vw;
  }
  .p-torisetsu-edit-text-toolbar-size {
    gap: 1.2820512821vw;
  }
  .p-torisetsu-edit-text-toolbar-size-select {
    width: 11.7948717949vw;
    height: 7.1794871795vw;
    border-radius: 1.0256410256vw;
    font-size: 2.3076923077vw;
    padding: 0 1.5384615385vw;
  }
  .p-torisetsu-edit-text-toolbar-size-unit {
    font-size: 2.3076923077vw;
  }
  .p-torisetsu-edit-text-area {
    padding: 0 15.3846153846vw;
  }
  .p-torisetsu-edit-text-area-input {
    width: 100%;
    min-height: 24.358974359vw;
    border: 2px solid #fd3259;
    border-radius: 1.0256410256vw;
    padding: 1.7948717949vw 2.0512820513vw;
    font-size: 2.5641025641vw;
    line-height: 1.6;
    resize: none;
    outline: none;
  }
  .p-torisetsu-edit-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.0256410256vw;
  }
  .p-torisetsu-edit-ttl {
    font-size: 3.5897435897vw;
    width: 40%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  .p-torisetsu-edit-btn-wrap {
    display: flex;
    justify-content: center;
    gap: 6px;
    width: 26%;
  }
  .p-torisetsu-edit-btn-wrap img {
    width: 3.8461538462vw;
    height: auto;
  }
  .p-torisetsu-edit-btn-wrap span {
    font-size: 2.5641025641vw;
  }
  .p-torisetsu-edit-layer-wrap {
    width: 40%;
    position: relative;
  }
  .p-torisetsu-edit-layer-btn {
    margin-left: auto;
    display: block;
  }
  .p-torisetsu-edit-layer-btn img {
    width: 10.2564102564vw;
    height: auto;
  }
  .p-torisetsu-edit-layer-list-wrap {
    display: none;
    position: absolute;
    top: 11.5384615385vw;
    right: 0;
  }
  .p-torisetsu-edit-layer-list-wrap.is-open {
    display: block;
  }
  .p-torisetsu-edit-layer-list-wrap {
    background-color: #f8c9cd;
    border-radius: 0.3846153846vw;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
    width: 38.4615384615vw;
    padding: 2.5641025641vw;
    z-index: 9999999;
  }
  .p-torisetsu-edit-layer-list-ttl {
    color: #fff;
    font-size: 2.5641025641vw;
    margin-bottom: 1.0256410256vw;
    font-weight: bold;
  }
  .p-torisetsu-edit-layer-list {
    display: flex;
    flex-direction: column;
    gap: 1px;
    height: 25.641025641vw;
    overflow-y: auto;
  }
  .p-torisetsu-edit-layer-list-itm {
    background-color: #fff;
    border-radius: 0.2564102564vw;
    padding: 0.5128205128vw 2.0512820513vw;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.7948717949vw;
    cursor: pointer;
  }
  .p-torisetsu-edit-layer-list-itm-delbtn {
    display: block;
  }
  .p-torisetsu-edit-layer-list-itm-delbtn img {
    width: 3.8461538462vw;
    height: auto;
  }
  .p-torisetsu-edit-layer-list-itm-txt {
    width: 70%;
    text-align: left;
    font-size: 1.9230769231vw;
  }
  .p-torisetsu-edit-layer-list-close-btn {
    position: absolute;
    top: 3.8461538462vw;
    right: 2.5641025641vw;
    display: block;
    width: 2.5641025641vw;
    cursor: pointer;
  }
  .p-torisetsu-edit-layer-list-close-btn img {
    width: 1.2820512821vw;
    height: auto;
  }
  .p-torisetsu-edit-layer-list-itm-thumb {
    display: block;
    width: 5.1282051282vw;
    height: 5.1282051282vw;
  }
  .p-torisetsu-edit-layer-list-itm-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .js-canvas-item {
    box-sizing: border-box;
  }
  .p-torisetsu-edit-canvas-btns {
    position: relative;
  }
  .p-torisetsu-edit-canvas-btns .p-torisetsu-edit-menu-list-itm-content-cancelbtn {
    position: absolute;
    top: 4.6153846154vw;
    right: 1.2820512821vw;
    font-size: 2.5641025641vw;
    width: 20vw;
  }
  .p-torisetsu-edit-canvas-btns .c-button-commit-em {
    margin-top: 5vw !important;
  }
}
@media (max-width: 780.99px) {
  /* 外枠 */
  /*.p-torisetsu-edit-canvas .js-canvas-item[data-layer-type="assessment"] {
    width: 90% !important;
    max-width: 90% !important;
  }*/
  /* ★内側の固定 600px を殺す（ここが重要） */
  /*.p-torisetsu-edit-canvas .js-canvas-item[data-layer-type="assessment"] > div {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }*/
  /* テーブルも親幅に合わせる */
  /*.p-torisetsu-edit-canvas
    .js-canvas-item[data-layer-type="assessment"]
    .table-form {
    width: 100% !important;
    table-layout: fixed;
  }*/
}
/* ===== Assessment : screen & PDF 完全一致 ===== */
/* 通常表示（SP/PC 共通） */
.p-torisetsu-edit-canvas .js-canvas-item[data-layer-type=assessment] > div {
  width: 100% !important;
  max-width: 100% !important;
}

/* テーブル自体も追従 */
.p-torisetsu-edit-canvas .js-canvas-item[data-layer-type=assessment] .table-form {
  width: 100% !important;
  table-layout: fixed;
}

.p-torisetsu-edit-canvas img {
  max-width: 100%;
  max-height: 100%;
  margin: 0 auto;
  object-fit: contain;
}

html.is-exporting .p-torisetsu-edit-canvas .js-canvas-item[data-layer-type=assessment] .table-form td,
html.is-exporting .p-torisetsu-edit-canvas .js-canvas-item[data-layer-type=assessment] .table-form th {
  padding: 0 4px 12px;
  line-height: 1.2;
}

@media (max-width: 780.99px) {
  html.is-exporting .p-torisetsu-edit-canvas .js-canvas-item[data-layer-type=assessment] .table-form td,
  html.is-exporting .p-torisetsu-edit-canvas .js-canvas-item[data-layer-type=assessment] .table-form th {
    font-size: 0.88em;
    padding: 0 2px 8px;
  }
}
/* 左右寄せだけ上書き */
html.is-exporting .js-canvas-item[data-layer-type=assessment] .ta-left {
  justify-content: flex-start;
}

html.is-exporting .js-canvas-item[data-layer-type=assessment] .ta-right {
  justify-content: flex-end;
}

.p-torisetsu-top-btn {
  display: flex;
  justify-content: center;
  height: 50px;
  margin: 0 16px 32px;
}
.p-torisetsu-top-btn img {
  width: auto;
  height: 100%;
  object-fit: contain;
}

.p-torisetsu-edit-canvas-pager {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 16px auto 0;
  width: 60%;
}

.p-torisetsu-edit-canvas-pager-btn {
  width: 30px;
  display: block;
  cursor: pointer;
}
.p-torisetsu-edit-canvas-pager-btn image {
  width: 100%;
  height: auto;
}
.p-torisetsu-edit-canvas-pager-btn.p-torisetsu-next-btn img {
  transform: rotate(180deg);
}

.p-torisetsu-edit-canvas-pager-nums {
  font-size: 16px;
}

.p-torisetsu-edit-canvas-wrap {
  overflow: hidden;
}

/* ===== Modal ===== */
.c-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: 0.2s;
  z-index: 999;
}

.c-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: 0.2s;
  z-index: 100000000;
}

.c-modal.is-open,
.c-modal-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.c-modal-inner {
  background: #fff;
  width: 100%;
  max-width: 420px;
  padding: 32px 24px;
  border-radius: 8px;
  text-align: center;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.c-modal-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 32px;
  /*border-radius: 50%;
  background: #ffd500;
  color: #e60033;
  font-weight: bold;
  font-size: 28px;*/
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-modal-icon img {
  width: 100%;
  height: auto;
}

.c-modal-text {
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 32px;
  font-weight: bold;
}

.c-modal-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

.c-modal-btn {
  padding: 10px 16px;
  border-radius: 6px;
  font-size: 14px;
  border: none;
  cursor: pointer;
}

.c-modal-btn.primary {
  background: linear-gradient(to right, #d72150, #fd3259);
  color: #fff;
}

.c-modal-btn.sub {
  background: #f5caca;
}

.c-modal-btn.gray {
  background: #777;
  color: #fff;
}

.u-red {
  color: #e60033;
}

.p-torisetsu-edit-menu-list-itm-content-inner .p-torisetsu-edit-menu-list-itm-content-cancelbtn {
  display: block;
  width: 300px;
}

.js-canvas-item,
.js-canvas-item * {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none; /* コピー/辞書/翻訳メニュー抑止 */
}

.js-canvas-item {
  touch-action: manipulation;
}

.js-canvas-item.is-interactable {
  touch-action: none;
}

/* ===== html2canvas / PDF export 用 ===== */
html.is-exporting,
html.is-exporting * {
  transform: none !important;
}

html.is-exporting body {
  overflow: visible !important;
  position: static !important;
  top: 0 !important;
}

/* === torisetsu canvas isolation === */
.p-torisetsu-edit-canvas,
.p-torisetsu-edit-canvas * {
  box-sizing: border-box;
  max-width: none !important;
  min-width: 0 !important;
}

/* 画像が勝手に伸びるのを止める */
/*.p-torisetsu-edit-canvas img {
  width: auto !important;
  height: auto !important;
  max-width: none !important;
}*/
.p-torisetsu-edit-canvas {
  width: 720px;
  aspect-ratio: 1/1.414;
  position: relative;
}

.p-torisetsu-edit-canvas-wrap {
  width: 100%;
  display: flex;
  justify-content: center;
  aspect-ratio: 1/1.414;
}

.p-torisetsu-edit-canvas-scaler {
  transform-origin: top center;
}

.export-mode .p-torisetsu-edit-canvas-scaler {
  transform: scale(1) !important;
}

.js-canvas-item {
  position: absolute;
}

.canvas-item-inner {
  transform-origin: left top;
}

.canvas-item-inner {
  pointer-events: auto;
}

.js-canvas-item {
  pointer-events: none; /* 親は当たり判定を持たない */
}

.js-canvas-item > .canvas-item-inner {
  pointer-events: auto; /* 見た目そのものが当たり判定 */
}

.js-canvas-item[data-layer-type=template] .canvas-item-inner {
  aspect-ratio: 1/1.414;
}

/* SP時だけ：アクティブ要素の左上に move アイコンを表示 */
@media (max-width: 780.99px) {
  html:not(.is-exporting) .js-canvas-item.is-active .canvas-item-inner {
    position: relative; /* ::before を要素内に固定するため */
  }
}
.p-torisetsu-edit-rotate-btn {
  display: none;
}

html:not(.is-exporting) .js-canvas-item.is-active:not(.is-locked) .p-torisetsu-edit-rotate-btn {
  display: block;
  position: absolute;
  top: 0;
  left: -39px;
  width: 30px;
  height: 30px;
  cursor: pointer;
  pointer-events: auto !important;
}

.p-torisetsu-edit-layer-list-itm-lock-btn {
  display: block;
  width: 20px;
}
.p-torisetsu-edit-layer-list-itm-lock-btn img {
  width: auto;
  height: 100%;
}

@media (max-width: 780.99px) {
  html:not(.is-exporting) .js-canvas-item.is-active:not(.is-locked) .p-torisetsu-edit-rotate-btn {
    left: -10.8974358974vw;
    width: 8.9743589744vw;
    height: 8.9743589744vw;
  }
  .p-torisetsu-edit-layer-list-itm-lock-btn {
    width: 5.1282051282vw;
  }
  html:not(.is-exporting) .js-canvas-item.is-active:not(.is-locked) .canvas-item-inner::before {
    content: "";
    position: absolute;
    background-image: url(../images/torisetsu/ico_corner.svg), url(../images/torisetsu/ico_corner.svg), url(../images/torisetsu/ico_corner.svg), url(../images/torisetsu/ico_corner.svg), url(../images/torisetsu/move.png);
    background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
    background-position: left top, right top, left bottom, right bottom, left 3vw top 3vw;
    background-size: 10px 10px, 10px 10px, 10px 10px, 10px 10px, 4vw 4vw;
  }
}
.p-torisetsu-edit-rotate-btn__ {
  display: none !important;
}

/*# sourceMappingURL=main.css.map */
