@charset "UTF-8";
@layer base, layout, unique;
@layer base {
  :root {
    /* 基本となるカラー（ほとんどの場合変更不要） */
    --COLOR_BASE_DARK: #000;
    --COLOR_BASE_LIGHT: #fff;
    /* KHSC 固有カラー */
    --COLOR_KHSC_DARK: #1a1a1a;
    --COLOR_KHSC_SURFACE: #f7f8f0;
    --COLOR_KHSC_SURFACE_ALT: #edebdf;
    --COLOR_KHSC_BORDER: #cc9f9f;
    --COLOR_KHSC_BORDER_GOLD: #d4c079;
    --COLOR_KHSC_ACCENT: #af4c5a;
    --COLOR_KHSC_DIVIDER: #ccc;
    /* ブレークポイント */
    --MINOR_BREAKPOINT: 1600px;
    /* ウィンドウ幅がコンテンツ幅以下時の左右の余白 */
    --OUTSIDE_GUTTER_SP: calc(24px * 2);
    /* コンテンツ幅 */
    --CONTENT_WIDTH_SP: calc(375px - (var(--OUTSIDE_GUTTER_SP) * 2));
    --CONTENT_WIDTH_PC: var(--MINOR_BREAKPOINT);
    /* line-height */
    --LINE_HEIGHT: 1.5;
    /* transition */
    --TRANSITION_KHSC: 0.5s;
  }
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  *::backdrop {
    background-color: rgba(0, 0, 0, 0.5);
  }
  html {
    height: 100%;
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
  }
  html:has(dialog[open]) {
    scrollbar-gutter: stable;
  }
  head noscript {
    display: none;
  }
  body {
    font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
    height: 100%;
    line-height: var(--LINE_HEIGHT);
    overflow-x: clip;
  }
  /* SP Viewport */
  body,p,ul,ol,li,dl,dt,dd {
    margin: 0;
    padding: 0;
  }
  em {
    font-style: normal;
    font-weight: bold;
  }
  sub,
  sup {
    font-size: 75%;
  }
  a :where(img) {
    pointer-events: none;
  }
  img,
  svg {
    height: auto;
    max-width: 100%;
    width: auto;
  }
  ::placeholder {
    opacity: 1;
  }
  label {
    cursor: pointer;
  }
  [type=text],
  [type=date],
  [type=datetime-local],
  [type=email],
  [type=month],
  [type=number],
  [type=password],
  [type=search],
  [type=tel],
  [type=time],
  [type=url],
  [type=week],
  select {
    line-height: 1;
  }
  [type=text],
  [type=date],
  [type=datetime-local],
  [type=email],
  [type=month],
  [type=number],
  [type=password],
  [type=search],
  [type=tel],
  [type=time],
  [type=url],
  [type=week],
  select,
  textarea {
    appearance: none;
    border-radius: 0;
    color: currentColor;
  }
  [type=date]::-webkit-inner-spin-button,
  [type=date]::-webkit-clear-button {
    appearance: none;
  }
  [type=date]::-webkit-calendar-picker-indicator {
    height: 100%;
    left: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    top: 0;
    width: 100%;
  }
  textarea {
    overflow-x: hidden;
    overflow-y: auto;
    resize: vertical;
  }
  summary {
    cursor: pointer;
    list-style: none;
  }
  summary::-webkit-details-marker {
    display: none;
  }
  [hidden=hidden] {
    display: none !important;
  }
}
@layer layout {
  .l_wrap {
    background-image: url("/special/khsc/img/bg.png");
    background-position: center;
    background-size: contain;
    display: grid;
    grid-template-areas: "mainVisual" "content" "footer";
    grid-template-rows: auto 1fr auto;
    min-height: 100%;
    overflow: clip;
    width: 100%;
  }
  /* PC Viewport */
  .l_main_visual {
    grid-area: mainVisual;
    margin: 0;
    position: relative;
    width: 100%;
    /* タッセル画像 */
  }
  .l_main_visual::after {
    aspect-ratio: 88/141;
    background-image: url("/special/khsc/img/kv_sp_2.png");
    background-repeat: no-repeat;
    background-size: contain;
    bottom: -50px;
    content: "";
    height: auto;
    position: absolute;
    right: 0;
    width: clamp(88px, 22.564vw, 140px);
    z-index: 100;
  }
  .l_main_visual {
    /* ライン画像 */
  }
  .l_main_visual::before {
    background-image: url("/special/khsc/img/kv_divider.png");
    background-position: center;
    background-repeat: repeat-x;
    background-size: contain;
    bottom: -15px;
    content: "";
    height: 31px;
    position: absolute;
    width: 100%;
    z-index: 20;
  }
  .l_main_visual_img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
    z-index: 10;
  }
  /* PC Viewport */
  .l_navigation_content_inner {
    margin: 0 auto;
    min-width: 326px;
    padding: 14% 0 0;
    width: 68%;
  }
  .l_navigation_list {
    list-style: none;
  }
  .l_navigation_item {
    border-bottom: 1px solid var(--COLOR_KHSC_DIVIDER);
  }
  .l_navigation_link {
    display: block;
    /* https://min-max-calculator.9elements.com/?16,20,390,767 */
    padding: clamp(1rem, 0.741rem + 1.06vw, 1.25rem) 32px clamp(1rem, 0.741rem + 1.06vw, 1.25rem) 0;
    position: relative;
    transition: opacity var(--TRANSITION_KHSC);
    width: 100%;
    /* icon */
  }
  .l_navigation_link::before {
    background-color: var(--COLOR_KHSC_ACCENT);
    content: "";
    height: 100%;
    mask-image: url("/special/khsc/img/icon_arrow.svg");
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 6%;
  }
  .l_navigation_img {
    display: block;
    width: 80%;
  }
  .l_navigation_sns {
    align-items: center;
    background-color: var(--COLOR_KHSC_SURFACE_ALT);
    border: 1px solid var(--COLOR_KHSC_BORDER);
    box-shadow: 4px 4px 16px 0 rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    gap: 20px 0;
    margin-top: 32px;
    padding: 24px 20px;
  }
  .l_navigation_sns_title_img {
    display: block;
    margin: 0 auto;
    width: 50%;
  }
  .l_navigation_sns_list {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    list-style: none;
  }
  .l_navigation_sns_link {
    display: block;
    transition: opacity var(--TRANSITION_KHSC);
  }
  .l_navigation_sns_img {
    display: block;
    min-width: 40px;
    width: 40px;
  }
  /* SP Viewport */
  /* PC Viewport */
  /* Hoverable Device */
  .l_content {
    display: grid;
    gap: 0 24px;
    grid-area: content;
    grid-template-columns: 1fr minmax(var(--CONTENT_WIDTH_SP), var(--CONTENT_WIDTH_PC)) 1fr;
  }
  .l_content_inner {
    grid-column: 2/3;
    padding: 50px 0 48px;
  }
  /* PC Viewport */
  .l_footer {
    background-color: var(--COLOR_KHSC_DARK);
    display: grid;
    gap: 0 24px;
    grid-area: footer;
    grid-template-columns: 1fr minmax(var(--CONTENT_WIDTH_SP), var(--CONTENT_WIDTH_PC)) 1fr;
  }
  .l_footer_inner {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 10px;
    grid-column: 2/3;
    padding: 16px 0;
  }
  .l_footer_copyright {
    color: var(--COLOR_BASE_LIGHT);
    font-family: "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 10px;
    font-weight: 300;
  }
  .l_footer_logo_img {
    display: block;
    height: 41px;
    width: 141px;
  }
  /* PC Viewport */
}
@layer unique {
  .u_khsc_img {
    display: grid;
  }
  .u_khsc_img_content img,
  .u_khsc_img_text img {
    display: block;
  }
  .u_khsc_img_content {
    grid-column: 1;
    grid-row: 1/3;
  }
  .u_khsc_img_text {
    align-self: end;
    grid-column: 1;
    grid-row: 2/3;
    /* https://min-max-calculator.9elements.com/?40,80,390,767 / https://min-max-calculator.9elements.com/?40,65,390,767 */
    padding: 0 clamp(2.5rem, -0.086rem + 10.61vw, 5rem) clamp(2.5rem, 0.884rem + 6.63vw, 4.063rem);
    text-align: center;
  }
  /* PC Viewport */
  .u_khsc_banner {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
    margin-top: 56px;
  }
  .u_khsc_banner_item {
    border: 1px solid var(--COLOR_KHSC_BORDER);
  }
  .u_khsc_banner_link {
    box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.25);
    display: block;
    transition: box-shadow var(--TRANSITION_KHSC);
  }
  .u_khsc_banner_img {
    display: block;
    width: 100%;
  }
  /* PC Viewport */
  /* Hoverable Device */
  .u_khsc_copyright {
    margin-top: 56px;
    text-align: center;
  }
  .u_khsc_copyright_img {
    display: inline-block;
    width: 274px;
  }
  /* PC Viewport */
}
@media only screen and (width < 768px){
  @layer base{
    body:has(.js_navigation[open]) {
      overscroll-behavior-y: none;
      overflow-y: hidden;
      scrollbar-gutter: stable;
    }
  }
  @layer layout{
    .l_navigation_hamburger {
      z-index: 100;
    }
    .l_navigation_hamburger[open] {
      background-color: var(--COLOR_KHSC_SURFACE);
      inset: 0;
      position: fixed;
      width: 100%;
    }
    .l_navigation_hamburger_content {
      height: 100vh;
      overflow-y: auto;
    }
    .l_navigation_hamburger_button {
      background-color: var(--COLOR_KHSC_DARK);
      border: 1px solid var(--COLOR_KHSC_BORDER_GOLD);
      border-radius: 50%;
      height: 48px;
      margin-left: auto;
      position: absolute;
      right: 8px;
      top: 8px;
      width: 48px;
      /* ≡上下2本 */
    }
    .l_navigation_hamburger_button::before, .l_navigation_hamburger_button::after {
      background-color: var(--COLOR_BASE_LIGHT);
      content: "";
      height: 2px;
      left: 11px;
      position: absolute;
      transition: transform var(--TRANSITION_KHSC);
      width: 24px;
    }
    .l_navigation_hamburger_button::before {
      top: 15px;
    }
    .l_navigation_hamburger_button::after {
      bottom: 15px;
    }
    .l_navigation_hamburger[open] .l_navigation_hamburger_button {
      background-color: var(--COLOR_KHSC_SURFACE);
      border: 1px solid var(--COLOR_KHSC_SURFACE);
    }
    .l_navigation_hamburger[open] .l_navigation_hamburger_button::before, .l_navigation_hamburger[open] .l_navigation_hamburger_button::after {
      background-color: var(--COLOR_BASE_DARK);
      inset: 0;
      margin: auto;
      width: 25px;
    }
    .l_navigation_hamburger[open] .l_navigation_hamburger_button::before {
      transform: rotate(-45deg);
    }
    .l_navigation_hamburger[open] .l_navigation_hamburger_button::after {
      transform: rotate(45deg);
    }
    .l_navigation_hamburger_button_text {
      background-color: var(--COLOR_BASE_LIGHT);
      bottom: 0;
      height: 2px;
      left: 11px;
      margin: auto 0;
      overflow: hidden;
      position: absolute;
      top: 0;
      transition: opacity var(--TRANSITION_KHSC);
      width: 24px;
    }
    .l_navigation_hamburger[open] .l_navigation_hamburger_button_text {
      opacity: 0;
    }
  }
}
@media print, screen and (width >= 768px){
  @layer layout{
    .l_wrap {
      background-attachment: fixed;
      background-position: center top;
      background-repeat: repeat-y;
      background-size: 100% auto;
      gap: 0 14px;
      grid-template-columns: 1fr min(372px, (100% - 42px) * 372 / 1356) min(984px, (100% - 42px) * 984 / 1356) 1fr;
    }
    .l_main_visual {
      grid-column: 1/5;
      height: 54vw;
      max-height: 788px;
      /* 背景画像 */
    }
    .l_main_visual::after {
      background-image: url("/special/khsc/img/kv_pc_bg.png");
      background-repeat: repeat-x;
      height: 100%;
      left: 50%;
      min-width: 4000px;
      position: absolute;
      top: 0;
      transform: translateX(-50%);
      width: 100%;
      z-index: 0;
    }
    .l_main_visual {
      /* ライン画像 */
    }
    .l_main_visual::before {
      height: 6%;
    }
    .l_main_visual_img {
      left: 50%;
      position: absolute;
      top: 0;
      transform: translateX(-50%);
      width: auto;
    }
    .l_navigation {
      align-self: start;
      grid-column: 2/3;
      grid-row: 1/-1;
      margin-top: clamp(1px, 13.02vw, 185px);
      position: sticky;
      top: 0;
      width: 100%;
      z-index: 1000;
    }
    .l_navigation_inner {
      padding-top: 8%;
    }
    .l_navigation_hamburger_button {
      display: none;
    }
    .l_navigation_content {
      aspect-ratio: 372/780;
      background-image: url("/special/khsc/img/kv_menu_pc.png");
      background-position: center top;
      background-repeat: no-repeat;
      background-size: contain;
    }
    .l_navigation_content_inner {
      min-width: auto;
      padding: 10% 3% 21% 0;
      width: 69%;
    }
    .l_navigation_img {
      width: 100%;
    }
    .l_navigation_link {
      /* https://min-max-calculator.9elements.com/?10,16,768,1600 */
      padding: clamp(0.625rem, 0.279rem + 0.72vw, 1rem) 32px clamp(0.625rem, 0.279rem + 0.72vw, 1rem) 0;
      /* icon */
    }
    .l_navigation_link::before {
      width: 9%;
    }
    .l_navigation_sns {
      /* https://min-max-calculator.9elements.com/?6,16,768,1600 */
      gap: clamp(0.375rem, -0.202rem + 1.2vw, 1rem);
      /* https://min-max-calculator.9elements.com/?5,20,768,1600 */
      margin-top: clamp(0.313rem, -0.553rem + 1.8vw, 1.25rem);
      /* https://min-max-calculator.9elements.com/?10,23,768,1600 / https://min-max-calculator.9elements.com/?10,14,768,1600 / https://min-max-calculator.9elements.com/?10,25,768,1600 */
      padding: clamp(0.625rem, -0.125rem + 1.56vw, 1.438rem) clamp(0.625rem, 0.394rem + 0.48vw, 0.875rem) clamp(0.625rem, -0.24rem + 1.8vw, 1.563rem);
    }
    .l_navigation_sns_title {
      max-width: 100%;
      width: 130px;
    }
    .l_navigation_sns_list {
      flex-wrap: nowrap;
      /* https://min-max-calculator.9elements.com/?5,15,768,1600 */
      gap: clamp(0.313rem, -0.264rem + 1.2vw, 0.938rem);
    }
    .l_navigation_sns_img {
      max-width: 30px;
      min-width: auto;
      width: 100%;
    }
    .l_content {
      gap: 0;
      grid-column: 3/4;
    }
    .l_content_inner {
      padding: 72px 0;
    }
    .l_footer {
      gap: 0 56px;
      grid-column: 1/5;
    }
    .l_footer_inner {
      flex-direction: row;
      justify-content: space-between;
      padding: 24px 0;
    }
    .l_footer_logo_img {
      height: 48px;
      width: 168px;
    }
    .l_footer_copyright {
      font-size: 12px;
    }
  }
  @layer unique{
    .u_khsc_img_text {
      /* https://min-max-calculator.9elements.com/?35,80,768,1200 / https://min-max-calculator.9elements.com/?26,65,768,1600 */
      padding: 0 clamp(2.188rem, -0.409rem + 5.41vw, 5rem) clamp(1.625rem, -0.625rem + 4.69vw, 4.063rem);
    }
    .u_khsc_banner {
      flex-direction: row;
      flex-wrap: wrap;
      /* https://min-max-calculator.9elements.com/?20,34,768,1600 */
      gap: clamp(1.25rem, 0.442rem + 1.68vw, 2.125rem);
      justify-content: center;
      /* https://min-max-calculator.9elements.com/?60,88,768,1600 */
      margin-top: clamp(3.75rem, 2.135rem + 3.37vw, 5.5rem);
    }
    .u_khsc_banner_item {
      flex: 0 1 calc((100% - 34px) / 2);
      max-width: 453px;
    }
    .u_khsc_banner_item:nth-child(3) {
      margin-inline: auto;
    }
    .u_khsc_copyright {
      margin-top: 64px;
    }
    .u_khsc_copyright_img {
      width: 500px;
    }
  }
}
@media only screen and (any-hover: hover){
  @layer layout{
    .l_navigation_link:hover,
    .l_navigation_sns_link:hover {
      opacity: 0.5;
    }
  }
  @layer unique{
    .u_khsc_banner_link:any-link:hover {
      box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.4);
    }
  }
}
