@charset "UTF-8";

/* =====================================================
  COMRADE TOP MINIMAL / UNIFIED
===================================================== */

:root{
  --cm-ease-quiet:cubic-bezier(.22,.61,.36,1);
  --cm-ease-slow:cubic-bezier(.19,1,.22,1);

  --cm-loading-line-dur:1.85s;
  --cm-loading-fade-dur:1.28s;

  --cm-reveal-dur:1.12s;
  --cm-reveal-y:14px;
  --cm-reveal-blur:8px;
}

/* =====================================================
  BASE
===================================================== */

.cm-top{
  min-height:100vh;
  background:var(--cs-bg, #f3f3f1);
  color:var(--cs-ink, #111);
  position:relative;
}

/* =====================================================
  HEADER HIDE
===================================================== */

body.page-template-page-top-minimal-php header{
  display:none !important;
}

/* =====================================================
  LOADING
===================================================== */

.cs-loading{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  opacity:1;
  visibility:visible;
  transition:
    opacity var(--cm-loading-fade-dur) var(--cm-ease-quiet),
    visibility var(--cm-loading-fade-dur) var(--cm-ease-quiet),
    background .9s var(--cm-ease-quiet);
  will-change:opacity;
}

.cs-loading.is-end{
  background:rgba(255,255,255,.9);
}

.cs-loading.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.cs-loading__inner{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.cs-loading__text{
  margin:0 0 var(--cs-flow-sm);
  font-family:"Cormorant Garamond", serif;
  font-size:14px;
  font-weight:400;
  letter-spacing:.12em;
  line-height:1;
  color:#222;
}

.cs-loading__line{
  position:relative;
  width:min(180px, 42vw);
  height:1px;
  background:rgba(17,17,17,.08);
  overflow:hidden;
}

.cs-loading__line::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:0;
  height:100%;
  background:rgba(17,17,17,.9);
  animation:cmLineGrow var(--cm-loading-line-dur) var(--cm-ease-slow) forwards;
}

.cs-loading__line::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(17,17,17,.2),
    rgba(17,17,17,0)
  );
  opacity:0;
  animation:cmLineAfterglow .9s var(--cm-ease-quiet) forwards;
  animation-delay:calc(var(--cm-loading-line-dur) - .05s);
}

@keyframes cmLineGrow{
  0%{ width:0; }
  100%{ width:100%; }
}

@keyframes cmLineAfterglow{
  0%{ opacity:0; transform:translateX(0); }
  20%{ opacity:1; }
  100%{ opacity:0; transform:translateX(12px); }
}

/* =====================================================
  HERO REVEAL
===================================================== */

.cm-top-hero__logo,
.cm-top-hero__lead,
.cm-top-hero__enter{
  opacity:0;
  transform:translateY(var(--cm-reveal-y));
  filter:blur(var(--cm-reveal-blur));
  will-change:transform, opacity;
}

body.is-ready .cm-top-hero__logo,
body.is-ready .cm-top-hero__lead,
body.is-ready .cm-top-hero__enter{
  animation:cmRevealFloat var(--cm-reveal-dur) var(--cm-ease-quiet) forwards;
}

body.is-ready .cm-top-hero__logo{ animation-delay:.06s; }
body.is-ready .cm-top-hero__lead{ animation-delay:.20s; }
body.is-ready .cm-top-hero__enter{ animation-delay:.38s; }

@keyframes cmRevealFloat{
  0%{
    opacity:0;
    transform:translateY(var(--cm-reveal-y));
    filter:blur(var(--cm-reveal-blur));
  }
  100%{
    opacity:1;
    transform:translateY(0);
    filter:blur(0);
  }
}

/* =====================================================
  LOGO
===================================================== */

.cm-top-hero__logo{
  margin:0 0 var(--cs-flow-sm);
  line-height:1;
}

.cm-top-hero__logo a{
  display:inline-block;
  text-decoration:none;
}

.cm-top-hero__logo img{
  display:block;
  width:clamp(92px, 7.4vw, 118px);
  height:auto;
}

/* =====================================================
  LEAD / ABOUT BLOCK
===================================================== */

.cm-top-hero__lead{
  max-width:620px;
  margin:0 0 var(--cs-flow-lg);
  filter:none;
}

.cm-top-hero__eyebrow{
  margin:0 0 var(--cs-flow-xs);
  font-family:"Cinzel", serif;
  font-size:11px;
  line-height:1.2;
  letter-spacing:.22em;
  color:#222;
}

.cm-top-hero__copy{
  margin:0 0 var(--cs-flow-md);
  font-family:"Cormorant Garamond", serif;
  font-size:clamp(16px, 1.35vw, 19px);
  line-height:1.5;
  letter-spacing:.02em;
  color:#222;
}

.cm-top-hero__copy span{
  display:block;
}

.cm-top-hero__definition{
  margin:0 0 var(--cs-flow-md);
}

.cm-top-hero__item{
  margin:0 0 var(--cs-flow-sm);
}

.cm-top-hero__item:last-child{
  margin-bottom:0;
}

.cm-top-hero__word{
  margin:0 0 3px;
  font-family:"Cinzel", serif;
  font-size:11px;
  line-height:1.2;
  letter-spacing:.18em;
  color:#222;
}

.cm-top-hero__desc{
  margin:0;
}

.cm-top-hero__desc span{
  display:block;
}

.cm-top-hero__desc span:first-child{
  font-family:"Cormorant Garamond", serif;
  font-size:14px;
  line-height:1.5;
  letter-spacing:.05em;
  color:#222;
  opacity:.88;
}

.cm-top-hero__desc span:last-child{
  margin-top:2px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12px;
  line-height:1.8;
  letter-spacing:.04em;
  color:#333;
  opacity:.72;
}

.cm-top-hero__statement{
  margin:0;
}

.cm-top-hero__statement p{
  margin:0 0 6px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  line-height:1.9;
  letter-spacing:.04em;
  color:#333;
}

.cm-top-hero__statement p:last-child{
  margin-bottom:0;
}

.cm-top-hero__sign{
  margin-top:var(--cs-flow-sm);
  font-family:"Cormorant Garamond", serif !important;
  font-size:14px !important;
  line-height:1.6 !important;
  letter-spacing:.08em !important;
  text-transform:lowercase;
  color:#222 !important;
  opacity:.82;
}

/* =====================================================
  ENTER
===================================================== */

.cm-top-hero__enter{
  display:block;
}

/* テーマ側リンク装飾を遮断 */
.cm-top-hero__enter a,
.cm-top-hero__enter a:link,
.cm-top-hero__enter a:visited,
.cm-top-hero__enter a:hover,
.cm-top-hero__enter a:focus,
.cm-top-hero__enter a:focus-visible,
.cm-top-hero__enter a:active{
  text-decoration:none !important;
  border:none !important;
  box-shadow:none !important;
  background:none !important;
  background-image:none !important;
  background-size:0 0 !important;
  background-repeat:no-repeat !important;
  color:inherit;
}

.cs-enter-link{
  position:relative;
  display:inline-block;
  padding-bottom:var(--cs-flow-sm);
  font-family:"Cinzel", serif;
  font-size:11px;
  line-height:1;
  letter-spacing:.16em;
  text-decoration:none !important;
  border:none !important;
  box-shadow:none !important;
  background:none !important;
  background-image:none !important;
  background-size:0 0 !important;
  background-repeat:no-repeat !important;
  color:inherit;
  opacity:.92;
  transition:opacity .4s var(--cm-ease-quiet);
}

.cs-enter-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:96px;
  height:1px;
  background:rgba(17,17,17,.32);
  pointer-events:none;
}

.cs-enter-link:hover,
.cs-enter-link:focus-visible{
  opacity:.7;
}

/* =====================================================
  MOBILE
===================================================== */

@media (max-width:767px){

  .cm-top-hero__logo{
    margin-bottom:var(--cs-flow-sm);
  }

  .cm-top-hero__logo img{
    width:88px;
  }

  .cm-top-hero__lead{
    max-width:none;
    margin-bottom:var(--cs-flow-lg);
  }

  .cm-top-hero__eyebrow{
    margin-bottom:var(--cs-flow-xs);
  }

  .cm-top-hero__copy{
    margin-bottom:var(--cs-flow-md);
    font-size:15px;
    line-height:1.52;
  }

  .cm-top-hero__definition{
    margin-bottom:var(--cs-flow-md);
  }

  .cm-top-hero__item{
    margin-bottom:var(--cs-flow-sm);
  }

  .cm-top-hero__word{
    font-size:10px;
    letter-spacing:.16em;
  }

  .cm-top-hero__desc span:first-child{
    font-size:13px;
  }

  .cm-top-hero__desc span:last-child{
    font-size:11px;
    line-height:1.76;
  }

  .cm-top-hero__statement p{
    font-size:12px;
    line-height:1.82;
  }

  .cm-top-hero__sign{
    margin-top:var(--cs-flow-sm);
    font-size:13px !important;
  }

  .cs-enter-link{
    padding-bottom:var(--cs-flow-sm);
    font-size:10px;
  }

  .cs-enter-link::after{
    width:78px;
  }
}

/* =====================================================
  REDUCED MOTION
===================================================== */

@media (prefers-reduced-motion: reduce){
  .cs-loading,
  .cm-top-hero__logo,
  .cm-top-hero__lead,
  .cm-top-hero__enter{
    animation:none !important;
    transition:none !important;
    transform:none !important;
    filter:none !important;
    opacity:1 !important;
  }
}