/*ヘッダー*/

.ww-header{
  position: fixed;
  top:0;
  left:0;
  width:100%;

  z-index:100;

  background: rgba(255,255,255,.82);
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 16px rgba(0,0,0,.04);

  transform: translateY(0);
  transition: transform .25s ease;
}

.ww-header.is-hide{
  transform: translateY(-110%);
}

body.is-hide .ww-header{
  transform: translateY(-110%);
}
/* mainの上余白は残す（出てくる前提なので） */
.ww-main{ padding-top: 90px; }

.ww-header__inner{
  max-width:100%;
  margin:0 auto;
  padding:40px 4% 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

body > header > hr{background-color: #2B2B2B;}
.ww-logo{
  width: 12%;
}

.ww-logo img{
  width: 100%;
}

.ww-nav-main{
  display:flex;
  gap:8%;
  justify-content: flex-end;
  width: 50%;
}

.ww-nav-main a{
  position: relative;
  text-decoration:none;
  color:var(--text);
  letter-spacing:.08em;
  opacity:.8;
  font-size: clamp(16px, 1.2vw, 24px);
  letter-spacing: 0;
  padding-left: 10px;
  align-self: flex-end;
}

.ww-nav-main a:hover{
  opacity:1;
}

.ww-nav-main a.is-active {
  color: #000;
  font-weight: 700;
}

.ww-nav-main a::before {
  content: "";
  position: absolute;
  left: -12px;   /* 適当に調整 */
  top: 60%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  background: #000;
  border-radius: 50%;
  opacity: 1;
}

.nav-sub {
  display: block;
  font-size: 0.6em;
  opacity: 0.6;
}

.ww-nav-main a.is-active::before {
  opacity: 1;
}

.ww-main{
  padding-top:90px;
}

.ww-nav-main.is-open {
  background: rgba(255,255,255,0.66);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ww-menu-toggle{
  display:none;
  background:none;
  border:none;
  padding:0;
  width:28px;
  height:20px;
  flex-direction:column;
  justify-content:space-between;
  cursor:pointer;
}

.ww-menu-toggle span{
  display:block;
  width:100%;
  height:1px;
  background:#2B2B2B;
}

/*ヘッダーここまで*/
/*イントロ*/
.ww-panel.ww-hero{
  width: 100%;
  height: 100svh;
  inset: 0;
  pointer-events: none;
  align-items: center;
}

html.no-scroll,
body.no-scroll{
  overflow: hidden !important;
  height: 100% !important;
}

.brand .now, 
.brand .here, 
.brand .comma.brand .full,
.brand .split { 
  display:inline-block; 
}

.brand-lockup{
  inset: 0;
  opacity: 0;
  place-items:center; 
  padding: 24px;
  position: relative;
  display: grid;
  justify-items: center;
  gap: 0.4rem;
  overflow: hidden; /* 念のため */
  margin-inline: auto;
  color: var(--text) ;
    width: 100%;
  text-align: center;
}

.brand { 
  position:relative; 
  margin: 0;
  line-height: 1;
  letter-spacing: -0.02em;
  white-space: nowrap;
  font-family: "Inter Tight", system-ui, sans-serif;
  font-weight: 800;
  font-size:12vw ;
  display: block;
  place-items: center; 
  justify-self: center;
  width: max-content;
}

.brand .full,
.brand .split{
  grid-area: 1 / 1;
}

.brand .comma{
  opacity:0;
  display:inline-block;
  transform: scale(0.8);
    position: relative;
  left: -0.4em;
}

.tagline{
  margin:0;
  opacity:0;
  transform: translateY(6px);
  font-family: "Inter Tight", system-ui, sans-serif;
  font-weight: 800;
  font-size: 4vw;
  color: #868686;
}



/* full と split を同じ場所に重ねる */
.brand .full,
.brand .split{
  position: absolute;
  left: 0;
  top: 0;
  transform: none;
  white-space: nowrap;
}

/* 高さが潰れないようにダミーの高さを作る */
.brand::before{
  content: "Nowhere";
  visibility: hidden;
  display: inline-block;
}

/*イントロここまで*/
/*巨大ロゴ*/
.bg-viewport{
  position: relative;   /* ←座標親これ1つに */
  min-height: 300vw;
}

.big-logo{
  position: absolute;
  inset: 0;             /* top/left/right/bottom 0 */
  pointer-events: none; /* クリック邪魔しない */
  z-index: 0;
}

.ww-typo-panel,
.ww-panel{
  z-index: 1;           /* 文字を前面に */

}

.ww-typo-panel {
  min-height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
}




.content-wrapper{
  position: relative;
  overflow-x: clip;
  overflow-x: hidden; /* fallback */
  
}


.trigger-create{ height: 100vw; }
.trigger-show{ height: 113vw; }
.trigger-express{ height: 100vw; }

/* 表示枠：ここで隠す
.bg-viewport{
  position: absolute;
  inset: 0;
  overflow: hidden;     
  pointer-events: none;
  z-index: 0;
  height: 100%;
  
}
 */
/* 裏キャンバス：これをデカくする 
.big-logo{
  position: absolute;
  inset: -50vw;         /* ←これで「切れ問題」が激減する 
}
*/

.big-letter{
  position: absolute;
  font-family: "Inter Tight", system-ui, sans-serif;
  font-weight: 800;
  display: inline-block;
  z-index: -1;
  opacity: 60%;
  box-sizing: border-box;
  color:#787878;
}

.big-letter.n{
  width: 170vw;  
  height: auto; 
  --xbase: -50vw;/*最終位置*/
  --ybase: -40vw;/*最終位置*/
  --xadd: 0vw;
  --yadd: 0vw;

  transform: translate(
    calc(var(--xbase) + var(--xadd)),
    calc(var(--ybase) + var(--yadd))
  );
 /*
  transform: translate(-50vw, -40vw); */
}

.big-letter.n .big-svg{
  width: 100%;
  height: auto;
  display: block;
}

.big-letter.o{
  width: 120vw;   
  height: auto;
  --xbase: 25vw;
  --ybase: 20vw;
  --xadd: 0vw;
  --yadd: 0vw;

  transform: translate(
    calc(var(--xbase) + var(--xadd)),
    calc(var(--ybase) + var(--yadd))
  );
/*
  transform: translate(25vw, 20vw); 
*/
}

.big-letter.o .big-svg{
  width: 100%;
  height: auto;
  display: block;
}

.big-letter.w{
  width: 140vw;   
  height: auto;
  --xbase: -40.5vw;
  --ybase: 102.5vw;
  --xadd: 0%;
  --yadd: 0%;

  transform: translate(
    calc(var(--xbase) + var(--xadd)),
    calc(var(--ybase) + var(--yadd))
  );

  /* transform: translate(-40.5vw, 102.5vw); */

}

.big-letter.w .big-svg{
  width: 100%;
  height: auto;
  display: block;
}

.big-letter.h{
  width: 165vw;   
  height: auto;

  --xbase: 5.5vw;
  --ybase: 83vw;
  --xadd: 0%;
  --yadd: 0%;

  transform: translate(
    calc(var(--xbase) + var(--xadd)),
    calc(var(--ybase) + var(--yadd))
  );

 /* transform: translate(5.5vw, 83vw); */


}
.big-letter.h .big-svg{
  width: 100%;
  height: auto;
  display: block;
}

.big-letter.e{
  width: 110vw;  
  height: auto;

  --xbase: -7vw;
  --ybase: 230vw;
  --xadd: 0%;
  --yadd: 0%;

  transform: translate(
    calc(var(--xbase) + var(--xadd)),
    calc(var(--ybase) + var(--yadd))
  );

  /* transform: translate(-7vw, 230vw); */

}
.big-letter.e .big-svg{
  width: 100%;
  height: auto;
  display: block;
}

.big-letter.r{
  width: 70vw;  
  height: auto;

  --xbase: 40.5vw;
  --ybase: 226.5vw;
  --xadd: 0%;
  --yadd: 0%;

  transform: translate(
    calc(var(--xbase) + var(--xadd)),
    calc(var(--ybase) + var(--yadd))
  );

  /*  transform: translate(40.5vw, 226.5vw); */

}
.big-letter.r .big-svg{
  width: 100%;
  height: auto;
  display: block;
}

.typo-alt1,
.typo-alt2,
.typo-alt3{
  color: #ffffff;
}

.typo-base1{/*作る*/
  position: absolute;
  transform: translate(10vw, 10vw);
  width: 35vw;
}

.typo-alt1{/*創る*/
  position: absolute;
  transform: translate(30vw, 60vw);
  writing-mode: vertical-rl;
  height: 30vw;
}

.typo-base2{/*見せる*/
  position: absolute;
  transform: translate(10vw,110vw);
  width: 40vw;
}

.typo-alt2{/*魅せる*/
  position: absolute;
  transform: translate(45vw, 175vw);
  width: 40vw;
}

.typo-base3{/*表す*/
  position: absolute;
  transform: translate(10vw,230vw);
  width: 35vw;
}

.typo-alt3{/*現す*/
  position: absolute;
  transform: translate(46vw, 282vw);
  width: 35vw;
}
/*
.big-logo{
  position: absolute;
  overflow: hidden;
  width: 100%;
  height:8500px;
  z-index: -1;
  
}

.big-letter{
  position: absolute;
  font-family: Inter, system-ui, sans-serif;
  font-weight: 800;
  display: inline-block;
  z-index: -1;
  max-width: 100%;
  box-sizing: border-box;
}
.big-letter.n{
  font-size: 170rem;
  left: -240px;
  opacity: 0.2;
  background: linear-gradient(-45deg,#fcfcfbb3 0%, #202020f1 80%);
  background: -webkit-linear-gradient(135deg, #fcfcfbc0 0%, #202020f1 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
*/

:root{
  --text: #2B2B2B;
}

body{ margin:0; background:#fff; color:var(--text); }

.ww-inner{
  width: 100%;
  margin: 0 auto;
  padding: 0 10%;
}

/* Swiperを画面いっぱいに */
.ww-wide{
  width: 100%;
  padding: 0 10%;          /* ページの左右余白に合わせる */
  position: relative;  
}

@media (min-width: 1200px){
  .ww-inner{ padding: 0 12%; }
  .ww-wide{ padding: 0 12%; }
}


/* 1画面パネル */
.ww-panel{
  min-height: 100svh; /* iPhone対策込みの100vh */
  display: flex;
  align-items: flex-start;
  position: relative;
}

/* 制作例パネルだけは上寄せにする（ガクガク解消） */
.ww-works.ww-panel{
  display: flex;
  flex-direction: column;
}

/* 大きめタイポ */
.ww-typo__line{
  display:flex;
  justify-content: space-between;
  gap: 3rem;
  font-weight: 700;
  font-size: clamp(48px, 10vw, 230px);
  line-height: 1.05;
}

.ww-message{
  padding: 20% 10% 50%;
}

.ww-quiet{
  margin-top: 2rem;
  font-size: clamp(16px, 2.2vw, 50px);
  text-align: center;

}

/* 見出し */
.title-wrapper{
  display: flex;
  justify-content: space-between;
}
.ww-h2{
  font-family: "Inter Tight", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(26px, 4.8vw, 80px);
  margin: 0 0 2rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.ww-h2__ja{
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(32px, 5vw, 80px);
  line-height: 1.1;
}

.ww-h2__en{
  font-family: "Inter Tight", system-ui, sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 4.0vw, 50px);
  letter-spacing: 0.08em;
  opacity: 0.6;
  letter-spacing: 0;
}

.ww-h3{
  font-family: "Inter Tight", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(16px, 1.8vw, 22px);
  margin: 0 0 1rem;
}

.ww-contact__text{
  font-size: clamp(20px, 1.5vw, 38px);
}

.ww-step__text{
  font-size: clamp(20px, 1.5vw, 38px);
}

#ww-step{ position: relative; }
/*
#ww-step > div.ww-inner,
#ww-price > div.ww-inner,
#ww-contact > div.ww-inner{
  display: flex; 
  align-items:flex-start;
  justify-content: space-between;
}
*/
.ww-arrow{
  width: clamp(48px,10vw,96px);
  height: clamp(48px,10vw,96px);
  flex: 0 0 auto;
  aspect-ratio: 1 / 1; 
  border: 1px solid rgba(0,0,0,.6);
  border-radius: 50%;
  display: grid;
  place-items: center;
  transition: 0.3s ease;
  z-index: 2;
}
.ww-arrow-icon{
  width: 77% !important;
  height: 77% !important;
  display: block;
  color: #2B2B2B;
}

.ww-arrow:hover{
  background-color: #2B2B2B;
  transform: scale(1.05);
}

.ww-arrow-icon:hover{
  color: #ffffff;
}

#ww-step .trail-zone{
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 50%;
  pointer-events: auto;   /* ここだけ反応させる */
  overflow: hidden;
  z-index: 1;             /* テキストより下にしたいなら下げる */
}

#ww-price{
  padding-top: 200px;
  position: relative;
}
/*

#ww-step .trail-dot{
  position: absolute;
  border: 2px solid rgba(0, 0, 0, 0.359);
  border-radius: 9999px;
  transform: translate(-50%, -50%);
  opacity: 1;
  will-change: transform, opacity;
}
*/
#ww-step{ position: relative; }

#ww-step .trail-zone,
#ww-price .trail-zone,
#ww-contact .trail-zone{
  position: absolute;
  top: 0; right: 0;
  width: 50%; height: 50%;
  overflow: hidden;
  pointer-events: auto;
  z-index: 1;
}

#ww-step .trail-zone_mt,
#ww-price .trail-zone_mt,
#ww-contact .trail-zone_mt{
  position: absolute;
  bottom: 0; left: 0;
  width: 100%; height: 50%;
  overflow: hidden;
  pointer-events: auto;
  z-index: 1;
}
#ww-step .trail-dot,
#ww-price .trail-dot,
#ww-contact .trail-dot{
  position: absolute;
  border: 2px solid rgba(0,0,0,.4);
  border-radius: 9999px;
  transform: translate(-50%,-50%);
  will-change: transform, opacity;
  pointer-events: none;
}

/* Swiper */
/* ===== Swiper: full-bleed + peek ===== */
.ww-wide{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: visible;
}

.ww-swiper.swiper{
  overflow: visible !important;  /* ←これ重要 */
  box-sizing: border-box;
}

@media (min-width: 1200px){
  .ww-swiper.swiper{ padding: 0 12%; }
}

/* 中央カード幅（左右チラ見せが出ないなら 62vw に下げる） */
.ww-swiper .swiper-slide{
  width: clamp(280px, 72vw, 780px);
}

:root{
  --cardW: clamp(280px, 72vw, 780px);
  --navOver: 0px;   /* はみ出し量 */
}

/* 矢印（全幅基準） */
.ww-nav{
  position:absolute; 
  transform:translateY(-50%);
  border:none;
  background:transparent;
  color:  rgb(209 209 209 / 65%);
  width:80px; height:80px;
  cursor:pointer;
  z-index:10;
  left: 0;
  top: 50%;
  will-change: transform;
  transform: translate(-50%, -50%);
  transition: opacity .2s ease, transform .2s ease;
}

.ww-prev{
  left: calc(50% - (var(--cardW) / 2) - var(--navOver));
}

.ww-next{
  left: calc(50% + (var(--cardW) / 2) + var(--navOver));
}

.ww-detail{
  position: relative;
  left: var(--detailShift, 0px);
  width: clamp(280px, 72vw, 780px); /* slide幅と同じ */
  margin-left: 0 !important;                   /* JSで合わせる */
  margin-top: 2rem;
  margin-bottom: 50px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .35s ease, opacity .2s ease;
  border-top: 1px solid rgba(43,43,43,.15);
  padding: 0 50px 50px;
  background-color: #2b2b2b21;
}

.ww-detail.is-open{
  max-height: 1200px;  /* 内容が増えても十分な高さ */
  opacity: 1;
  padding-top: 2rem;
}
.ww-detail__meta{ font-size: 14px; letter-spacing:.06em; opacity:.7; font-family: "Inter Tight", system-ui, sans-serif; }
.ww-detail__title{ font-size: clamp(22px, 1.3vw, 24px); margin:.6rem 0 1rem; }
.ww-detail__list{ margin:0; padding-left: 1.2rem; }


.ww-thumb{
  aspect-ratio: 16 / 10;   /* ←箱の比率を固定 */
  width: 100%;
  overflow: hidden;
  background: rgba(43,43,43,.06);
}

.ww-thumb img{
  width: 100%;
  height: 100%;            /* ←これが無いと高さが揃わない */
  object-fit: cover;       /* ←切り抜きで揃える */
  display: block;
}

.thumb-title-box{
  display: flex;
  flex-direction: column;
  padding: 30px 0;
  gap: 10px;
}

.ww-card{padding: 0; border: none;}
.ww-card__name,
.ww-card__cap{
  text-align: left;
  margin-block: 0;
}

.ww-card__name{
  font-size: 1.5rem;
}

.ww-card__cap{
  font-size: 1.1rem;
}

/*巨大フォントの終息エリア*/

.ww-logo-resolve {
  height: 350svh;
  position: relative;
  overflow: hidden;
}

.ww-logo-resolve__pin{
  position: relative;
  height: 100svh;
}

.ww-logo-resolve__stage{
  position: relative;
  height: 100svh;
  width: 100%;

}

.ww-logo-resolve__lockup{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(72vw, 980px);

}

.ww-logo-resolve__motion-pos{
  position: relative;
  width: 100%;

}

.ww-logo-resolve__motion-shape{
  position: relative;
  width: 100%;
  transform-origin: 90% 25%;
}

.ww-logo-resolve__logo{
  position: relative;   /* absoluteやめる */
  width: 100%;
  margin: 0;

  aspect-ratio: 93.255524 / 16.017675;
}

.ww-logo-resolve__sub{
  position: relative;
  margin: 1.2vw 0 0;
  text-align: center;
  font-size: clamp(14px, 4vw, 48px);
  font-family: "Inter Tight", system-ui, sans-serif;
  font-weight: 800;
  color: #868686;
  opacity: 1;
  white-space: nowrap;
}




/*
.ww-logo-resolve__logo{
  position: relative;
  inset: 0;
  left: 0;
  top: 0;
  margin: 0;
  height: auto;
  color: #2B2B2B;
  width: 800vw;

/*  transform: translate(-100vw, 20vw) scale(3.0);*//*
}
/*
.ww-logo-resolve__scale{
  position: relative;
  width: 100%;
  transform-origin: right center;
  will-change: transform;
}
*/
.ww-logo-resolve__svg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.ww-logo-resolve__svg--grad{
  opacity: 1;
}

.ww-logo-resolve__svg--solid{
  position: absolute;
  inset: 0;
  opacity: 0;
}







/*ここからフッター*/
.ww-footer{
  padding: 10% 3% 3%;
  background-color: #2B2B2B;
  color: rgb(186, 186, 186);
  height: 400px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
}

.ww-footer__inner{
  height: auto;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5%;
}
.ww-footer__brand{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 30px;
}

.ww-footer-logo{
  width: 80%;
  height: auto;
}

.ww-footer-logo img{
  width: 100%;
}

.ww-footer__nav{
  display: flex;
  gap:50px;
  font-size: 24px;
}

.ww-footer__nav a{
  color:rgb(186, 186, 186);
  font-size: 0.7em;
}
.ww-footer__bottom{
  margin-bottom: 0px;
  margin-top: auto;
}


@media (max-width: 767px){

  .ww-header__inner{
    padding: 18px 20px 14px;
  }

  .ww-logo{
    width:auto;
    max-width:140px;
  }

  .ww-logo img{
    width:100%;
    height:auto;
    display:block;
  }

  .ww-menu-toggle{
    display:flex;
  }

  .ww-nav-main{
    display:none;
  }

  .ww-nav-main.is-open{
    display:flex;
    position:absolute;
    top:100%;
    left:0;
    width:100%;
    padding:20px;

    backdrop-filter: blur(8px);
    flex-direction:column;
    gap:18px;
    align-items:flex-end;
    box-sizing:border-box;
    border-top:1px solid rgba(43,43,43,.12);
  }

  .ww-nav-main a{
    font-size:16px;
    padding-left:14px;
  }

  .ww-nav-main a::before{
    left:0;
    width:5px;
    height:5px;
  }

.ww-footer{
  padding: 10% 3% 3%;
  height: 300px;
}

.ww-footer__nav {
  gap: 20px;
}

.ww-footer-logo{
    width: 60%;
}

.ww-footer__inner {
  gap: 10%;
}

body > main > div > div.pin-spacer > section > div{
  padding: 0;
}


}