:root{
  --pink:#ff4f9a;
  --pink2:#ff5e87;
  --orange:#ff8a4c;
  --purple:#8b5cf6;
  --grad: linear-gradient(105deg,#ff3d8b 0%,#ff5d83 38%,#ff7e57 100%);
  --grad-h: linear-gradient(100deg,#ff3d8b 0%,#ff6f6f 55%,#ff8a4c 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
/* Desktop: scale type to the smaller of width/height so the FV always
   fills the full viewport (100vw x 100vh) and still fits in one screen. */
html{font-size:clamp(10px, min(1.18vw, 1.5vh), 18px)}
body{
  font-family:"Noto Sans JP",sans-serif;
  color:#fff;
  background:#fff;
  -webkit-font-smoothing:antialiased;
}

/* ===== FV frame ===== */
.fv{
  position:relative;
  width:100vw;
  height:100vh;
  background:#fdeef2;
  overflow:hidden;
}
.fv__inner{
  position:relative;
  width:100%;
  height:100%;
  background:url("assets/fv-bg.png") no-repeat center center;
  background-size:cover;
  overflow:hidden;
}

/* ===== Header ===== */
.header{
  position:absolute;
  top:2.4rem;
  left:50%;
  transform:translateX(-50%);
  width:100%;
  max-width:1280px;
  padding:0 clamp(20px,4vw,48px);
  z-index:5;
}
.logo__mark{
  display:block;
  font-weight:800;
  font-size:2.6rem;
  letter-spacing:.04em;
  color:#fff;
  line-height:1;
  text-shadow:0 2px 8px rgba(0,0,0,.10);
}
.logo__plus{font-weight:800}
.logo__sub{
  display:block;
  margin-top:.45rem;
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.12em;
  color:#fff;
}

/* ===== top-right handwriting ===== */
.catch-hand{
  position:absolute;
  top:3.4rem;right:calc(3.4rem + 150px);
  z-index:5;
  width:24rem;
  height:auto;
}

/* ===== Main copy ===== */
.copy{
  position:absolute;
  top:calc(11.5rem - 30px);left:calc(2.6rem + 100px);
  z-index:4;
}
.headline{margin:0}
.headline img{
  display:block;
  width:38.5rem;
  max-width:100%;
  height:auto;
  filter:drop-shadow(0 3px 12px rgba(0,0,0,.10));
}

.tags{
  list-style:none;
  display:flex;
  gap:.7rem;
  margin-top:1.7rem;
}
.tags li{
  background:rgba(255,255,255,.92);
  color:#ff5786;
  font-weight:700;
  font-size:1.6rem;
  padding:.32em .7em;
  border-radius:.35rem;
  box-shadow:0 4px 12px rgba(255,80,140,.15);
}

.lead{
  margin-top:1.5rem;
  font-size:1.82rem;
  font-weight:700;
  line-height:1.55;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.08);
}

.lead-row{
  display:flex;
  align-items:flex-end;
  gap:1.8rem;
}
.joinus{
  margin-top:0;
  margin-bottom:.2rem;
  white-space:nowrap;
  font-family:"Caveat",cursive;
  font-weight:700;
  font-size:3.35rem;
  color:#ff8a4c;
  transform:rotate(-4deg);
  letter-spacing:.04em;
}

/* ===== Feature badges ===== */
.features{
  position:absolute;
  left:calc(2.6rem + 100px);
  bottom:calc(16.5rem - 30px);
  z-index:4;
  list-style:none;
  display:flex;
  gap:.9rem;
}
.feat{
  width:12.4rem;height:12.4rem;
  border-radius:50%;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 26px rgba(255,90,140,.18);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;
  padding:1rem;
}
.feat__circle{
  width:3rem;height:3rem;
  margin-bottom:.35rem;
}
.feat__circle svg{width:100%;height:100%}
.feat:nth-child(1) .feat__circle{color:var(--pink)}
.feat:nth-child(2) .feat__circle{color:#ff7a6b}
.feat:nth-child(3) .feat__circle{color:var(--orange)}
.feat:nth-child(4) .feat__circle{color:var(--purple)}
.feat__title{
  font-weight:800;
  font-size:1.44rem;
  line-height:1.1;
}
.feat:nth-child(1) .feat__title{color:var(--pink)}
.feat:nth-child(2) .feat__title{color:#ff7a6b}
.feat:nth-child(3) .feat__title{color:var(--orange)}
.feat:nth-child(4) .feat__title{color:var(--purple)}
.feat__desc{
  margin-top:.3rem;
  font-size:.92rem;
  font-weight:500;
  color:#555;
  line-height:1.3;
}

/* ===== stamp ===== */
.stamp{
  position:absolute;
  right:2.6rem;
  bottom:12.8rem;
  z-index:5;
  width:12.1rem;
  height:auto;
  transform:rotate(-6deg);
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.08));
}

/* ===== CTA card ===== */
.cta-card{
  position:absolute;
  left:50%;
  bottom:1.6rem;
  transform:translateX(-50%);
  z-index:6;
  width:85%;
  max-width:1090px;
  background:#fff;
  border-radius:1.6rem;
  box-shadow:0 14px 40px rgba(255,90,140,.20);
  padding:1.5rem 2.4rem 1.7rem;
  display:flex;
  gap:2.4rem;
}
.cta-col{flex:1;display:flex;flex-direction:column;align-items:center}
.cta-note{
  color:#3bbf6b;
  font-weight:700;
  font-size:1.18rem;
  margin-bottom:.75rem;
  letter-spacing:.02em;
}
.cta-note--pink{color:#ff5786}
.cta-btn{
  width:100%;
  display:flex;align-items:center;
  gap:.7rem;
  padding:1.05rem 1.5rem;
  border-radius:999px;
  text-decoration:none;
  color:#fff;
  font-weight:800;
  font-size:1.55rem;
  box-shadow:0 8px 18px rgba(0,0,0,.12);
  transition:transform .15s ease,box-shadow .15s ease;
}
.cta-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.18)}
.cta-btn--line{background:#2bb53c}
.cta-btn--book{background:var(--grad-h)}
.cta-btn__ico{display:flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;flex-shrink:0}
.cta-btn__ico svg{width:100%;height:100%}
.line-badge{
  background:#fff;color:#2bb53c;
  font-size:.7rem;font-weight:800;
  padding:.18em .35em;border-radius:.35em;
  letter-spacing:.02em;
}
.cta-btn__label{flex:1;text-align:center}
.cta-btn__arrow{font-size:1.6rem;font-weight:700}

/* shown only on mobile — hide on desktop via min-width so nothing
   competes with the mobile @media display rules */
@media (min-width:761px){
  .headline-sp{display:none}
  .hamburger{display:none}
}

/* =========================================================
   MOBILE (<=760px)  — matches SP FV mockup, uses SP FV.png
   Design canvas width = 654px (1rem ≈ 16px → 2.446vw)
========================================================= */
@media (max-width:760px){
  html{font-size:2.446vw;}
  body{color:#333;}

  .fv{
    display:block;
    width:100%;
    height:auto;
    overflow:visible;
    background:#fff;
  }
  .fv::before{display:none;}
  .fv__inner{
    position:relative;
    width:100%;
    height:auto;
    min-height:125vw;          /* show the full SP background incl. photo */
    box-shadow:none;
    background:url("assets/sp-fv-bg.png") no-repeat center top;
    background-size:100% auto;
    overflow:hidden;
    padding-bottom:30vw;
  }

  /* Header */
  .header{
    position:static;
    transform:none;
    left:auto;
    max-width:none;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    padding:1.2rem 1.6rem 0;
  }
  .logo__mark{
    font-size:2rem;
    background:none;
    -webkit-background-clip:initial;background-clip:initial;
    color:#fff;
    -webkit-text-fill-color:#fff;
    text-shadow:0 1px 6px rgba(0,0,0,.12);
  }
  .logo__sub{
    margin-top:.4rem;
    color:#fff;
    font-size:.82rem;
    letter-spacing:.08em;
  }
  .hamburger{
    flex:0 0 auto;
    margin-top:.2rem;
    z-index:6;
    display:flex!important;flex-direction:column;justify-content:center;gap:.34rem;
    width:3.7rem;height:3.7rem;
    border:none;border-radius:50%;
    background:#fff;
    box-shadow:0 6px 16px rgba(255,90,140,.25);
    cursor:pointer;
    padding:0 .95rem;
  }
  .hamburger span{
    display:block;height:.22rem;border-radius:2px;
    background:linear-gradient(90deg,#ff3d8b,#ff8a4c);
  }

  /* Main copy */
  .copy{
    position:relative;
    top:auto;left:auto;
    padding:2.2rem 1.6rem 0;
  }
  .headline{display:none;}      /* hide desktop heading image */
  .headline-sp{
    display:block;
    font-weight:900;
    line-height:1.18;
    color:#ee3f8c;
  }
  .headline-sp__row{
    display:inline-block;
    font-size:3.55rem;
    letter-spacing:.01em;
    border-bottom:2px solid #ff7fb0;
    padding-bottom:.12em;
    margin-bottom:.5rem;
  }
  .headline-sp em{font-style:normal;}

  /* top-right handwriting */
  .catch-hand{
    position:absolute;
    top:10rem;right:1.2rem;
    width:13rem;
    z-index:5;
  }
  /* stamp */
  .stamp{
    position:absolute;
    top:15.6rem;right:6.6rem;
    bottom:auto;
    width:9.2rem;
    transform:rotate(-7deg);
    z-index:5;
    border-radius:50%;
    background:radial-gradient(circle at 50% 52%, rgba(255,255,255,.92) 58%, rgba(255,255,255,0) 70%);
  }

  /* tags */
  .tags{
    flex-wrap:wrap;
    gap:.5rem;
    margin-top:1.3rem;
  }
  .tags li{
    background:#fff;
    border:1.5px solid #ff8fbb;
    color:#ff5786;
    font-size:1.02rem;
    padding:.3em .55em;
    box-shadow:none;
  }

  /* lead */
  .lead-row{display:block;}
  .lead{
    margin-top:1.1rem;
    color:#333;
    font-size:1.18rem;
    text-shadow:none;
  }
  .joinus{
    position:absolute;
    right:2.2rem;
    margin-top:0;
    transform:translateY(-1.1rem) rotate(-6deg);
    font-size:2.6rem;
    color:#ff8a4c;
  }

  /* hide feature badges on mobile FV */
  .features{display:none;}

  /* CTA — only the LINE button, in flow */
  .cta-card{
    position:static;
    transform:none;
    width:auto;
    max-width:none;
    background:transparent;
    box-shadow:none;
    padding:0;
    margin:1.6rem 1.6rem 0;
    display:block;
  }
  .cta-card .cta-col:nth-child(2){display:none;}
  .cta-col{align-items:stretch;}
  .cta-note{display:none;}
  .cta-btn{
    width:auto;
    align-self:flex-start;
    display:inline-flex;
    font-size:1.32rem;
    padding:1rem 1.4rem;
    box-shadow:0 8px 18px rgba(43,181,60,.30);
  }
  .cta-btn__label{flex:0 1 auto;}
}


/* =========================================================
   ABOUT section
========================================================= */
.about{
  position:relative;
  background:#fff url("assets/about-bg.png") no-repeat center top;
  background-size:100% auto;
  color:#444;
  overflow:hidden;
  font-size:clamp(13px,1.12vw,17px);
  padding:clamp(40px,6vw,90px) 0 0;
}
.about__inner{
  position:relative;
  max-width:1240px;
  margin:0 auto;
  padding:0 clamp(20px,3.4vw,48px) clamp(40px,6vw,80px);
}
.about__watermark{
  position:absolute;
  top:-.4em;left:.3em;
  font-family:"Caveat",cursive;
  font-size:5.4em;
  color:#ff7cae;
  opacity:.35;
  pointer-events:none;
  transform:rotate(-4deg);
}
.about__eyebrow{
  display:flex;align-items:center;gap:.7em;
  margin-top:3.2em;
  color:#ff5e9a;
  font-weight:800;
  letter-spacing:.14em;
  font-size:1.05em;
}
.about__eyebrow .bar{width:2.4em;height:2px;background:#ff5e9a;display:inline-block}
.about__title{margin-top:.5em;line-height:1.18}
.about__title-sm{
  display:block;
  font-size:2.5em;
  font-weight:900;
  color:#3a3a3a;
}
.about__title-lg{
  display:block;
  font-size:4.2em;
  font-weight:900;
  background:linear-gradient(90deg,#ff2e8b 0%,#ff8a4c 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.about__title-lg .q{font-size:.95em}
.about__sub{
  display:block;
  width:clamp(280px,38vw,430px);
  height:auto;
  margin:1.4em 0 1.6em;
}
.about__photos{
  position:absolute;
  top:1.5em;right:clamp(20px,4vw,40px);
  width:46%;
  max-width:520px;
  height:auto;
  z-index:1;
}
.about__body{
  position:relative;
  z-index:2;
  max-width:54%;
  font-size:1.18em;
  line-height:2;
  font-weight:500;
  color:#4a4a4a;
}
.about__body p+p{margin-top:1.4em}
.about__body .em-pink{
  font-style:normal;font-weight:800;
  color:#ff3d8b;
}

/* feature block */
.about__feature{margin-top:clamp(36px,5vw,64px)}
.feature-pill{
  width:max-content;
  margin:0 auto;
  display:flex;align-items:center;gap:1em;
  padding:.6em 1.8em;
  border-radius:999px;
  background:linear-gradient(90deg,#ff3d8b,#ff7e9e);
  color:#fff;font-weight:800;font-size:1.5em;
  box-shadow:0 8px 20px rgba(255,80,140,.25);
}
.feature-pill .tick{width:.9em;height:2px;background:#ffd34d;border-radius:2px;position:relative}
.feature-pill .tick::before{content:"";position:absolute;width:.9em;height:2px;background:#ffd34d;border-radius:2px;top:-.34em;transform:rotate(38deg);transform-origin:left}
.feature-pill .tick--r{transform:scaleX(-1)}

.feature-grid{
  list-style:none;
  margin:clamp(26px,3.4vw,44px) 0 0;
  padding:clamp(20px,3vw,40px) clamp(14px,2vw,30px);
  background:rgba(255,255,255,.7);
  border-radius:24px;
  box-shadow:0 16px 40px rgba(255,120,160,.12);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(10px,1.5vw,24px);
}
.fcard{
  text-align:center;
  padding:0 .4em;
  position:relative;
}
.fcard+.fcard::before{
  content:"";position:absolute;left:0;top:10%;height:80%;
  border-left:1px dashed #f0c4d6;
}
.fcard__badge{
  width:4.6em;height:4.6em;
  margin:0 auto .9em;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  box-shadow:0 8px 18px rgba(0,0,0,.10);
  position:relative;
}
.fcard__badge::after{
  content:"";position:absolute;inset:-5px;border-radius:50%;
  border:2px solid currentColor;opacity:.35;
}
.fcard__badge svg{width:55%;height:55%}
.fcard__badge--pink{background:linear-gradient(135deg,#ff5fa2,#ff3d8b);color:#ff3d8b}
.fcard__badge--orange{background:linear-gradient(135deg,#ffb36b,#ff7a3d);color:#ff7a3d}
.fcard__badge--purple{background:linear-gradient(135deg,#b18cff,#8b5cf6);color:#8b5cf6}
.fcard__badge--pink svg,
.fcard__badge--orange svg,
.fcard__badge--purple svg{color:#fff}
.fcard__title{font-size:1.42em;font-weight:800;margin-bottom:.55em}
.fcard__title--pink{color:#ff3d8b}
.fcard__title--orange{color:#ff7a3d}
.fcard__title--purple{color:#8b5cf6}
.fcard__desc{font-size:.98em;line-height:1.75;color:#555;font-weight:500}

.about__banner{
  display:block;
  width:min(92%,900px);
  height:auto;
  margin:clamp(30px,4vw,56px) auto clamp(20px,3vw,40px);
}

/* =========================================================
   WORK ENVIRONMENT section
========================================================= */
.environment{
  position:relative;
  z-index:3;
  margin:clamp(42px,5.5vw,76px) calc(50% - 50vw) clamp(44px,5vw,70px);
  padding:clamp(46px,5.8vw,82px) max(24px,calc((100vw - 1120px) / 2 + 40px)) clamp(48px,5.8vw,82px);
  overflow:hidden;
  background:
    radial-gradient(circle at 96% 25%, rgba(255,128,160,.22) 0 8%, transparent 22%),
    radial-gradient(circle at 2% 8%, rgba(255,210,228,.38) 0 18%, transparent 36%),
    linear-gradient(180deg,#fff 0%,#fff8fb 52%,#fff 100%);
}
.environment::before,
.environment::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
}
.environment::before{
  top:28px;
  right:32px;
  width:126px;
  height:92px;
  background-image:radial-gradient(rgba(255,255,255,.95) 1.4px, transparent 1.5px);
  background-size:13px 13px;
  opacity:.9;
}
.environment::after{
  left:0;
  bottom:0;
  width:54%;
  height:44%;
  background:linear-gradient(135deg,rgba(255,86,145,.08),rgba(139,92,246,.08));
  clip-path:polygon(0 16%,100% 100%,0 100%);
}
.environment__hero,
.environment__grid{
  position:relative;
  z-index:1;
}
.environment__hero{
  min-height:clamp(330px,31vw,430px);
  display:grid;
  grid-template-columns:minmax(440px,54%) 1fr;
  align-items:center;
}
.environment__copy{
  position:relative;
  z-index:2;
  padding:clamp(10px,2vw,24px) 0 clamp(24px,3vw,40px);
}
.environment__script{
  position:absolute;
  left:-.9em;
  top:-.85em;
  font-family:"Caveat",cursive;
  font-size:clamp(58px,8.2vw,112px);
  font-weight:700;
  line-height:1;
  color:#ffc3dc;
  opacity:.72;
  transform:rotate(-8deg);
  white-space:nowrap;
}
.environment__eyebrow{
  position:relative;
  margin-bottom:1.45em;
  color:#ff4f9a;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:clamp(13px,1.25vw,18px);
  font-weight:900;
  letter-spacing:.16em;
}
.environment__eyebrow::after{
  content:"";
  display:block;
  width:34px;
  height:3px;
  margin-top:.58em;
  border-radius:999px;
  background:#ff4f9a;
}
.environment__title{
  margin:0;
  color:#333;
  font-weight:900;
  line-height:1.15;
}
.environment__title span{
  display:block;
  font-size:clamp(30px,3.4vw,48px);
  letter-spacing:.04em;
}
.environment__title strong{
  display:block;
  margin-top:.12em;
  background:linear-gradient(96deg,#ff3d8b 0%,#ff6c77 45%,#ff8a2f 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-size:clamp(50px,6.2vw,88px);
  letter-spacing:.02em;
}
.environment__lead{
  margin-top:1.45em;
  color:#383838;
  font-size:clamp(15px,1.35vw,20px);
  font-weight:700;
  line-height:2;
  letter-spacing:.02em;
}
.environment__photo{
  position:absolute;
  top:0;
  right:0;
  width:min(53vw,690px);
  height:clamp(330px,34vw,470px);
  border-bottom-left-radius:54% 48%;
  overflow:hidden;
  z-index:1;
  -webkit-mask-image:radial-gradient(ellipse at 70% 46%,#000 0 55%,rgba(0,0,0,.72) 68%,transparent 82%);
  mask-image:radial-gradient(ellipse at 70% 46%,#000 0 55%,rgba(0,0,0,.72) 68%,transparent 82%);
}
.environment__photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,#fff 0%,rgba(255,255,255,.76) 13%,rgba(255,255,255,0) 38%),
    radial-gradient(circle at 92% 72%,rgba(255,118,151,.34),transparent 24%);
}
.environment__photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.08) brightness(1.04);
}
.environment__grid{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(14px,1.7vw,24px);
  margin-top:clamp(22px,3vw,42px);
  padding:0;
}
.env-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:clamp(330px,28vw,400px);
  padding:clamp(20px,2.2vw,30px) clamp(14px,1.7vw,22px) clamp(14px,1.4vw,18px);
  border-radius:20px;
  background:rgba(255,255,255,.94);
  box-shadow:0 14px 32px rgba(80,50,80,.11);
  text-align:center;
}
.env-card__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(48px,5.2vw,64px);
  height:clamp(48px,5.2vw,64px);
  margin-bottom:1em;
  border-radius:50%;
  color:#fff;
  box-shadow:0 10px 18px rgba(255,85,145,.22);
}
.env-card__icon svg{
  width:58%;
  height:58%;
}
.env-card--pink .env-card__icon{background:linear-gradient(135deg,#ff4f9a,#ff7aac)}
.env-card--orange .env-card__icon{background:linear-gradient(135deg,#ff8a4c,#ff6f3d)}
.env-card--purple .env-card__icon{background:linear-gradient(135deg,#9a62ff,#7a56f4)}
.env-card h4{
  margin:0;
  font-size:clamp(17px,1.75vw,24px);
  font-weight:900;
  line-height:1.25;
  letter-spacing:.03em;
}
.env-card--pink h4{color:#ff4f9a}
.env-card--orange h4{color:#ff783b}
.env-card--purple h4{color:#8057f5}
.env-card h4::after{
  content:"";
  display:block;
  width:100%;
  height:2px;
  margin:.72em auto .72em;
  background-image:linear-gradient(90deg,currentColor 45%,transparent 45%);
  background-size:8px 2px;
  opacity:.7;
}
.env-card p{
  margin:0 auto 1.35em;
  color:#333;
  font-size:clamp(13px,1.04vw,15px);
  font-weight:700;
  line-height:1.85;
  letter-spacing:.02em;
}
.env-card img{
  display:block;
  width:100%;
  margin-top:auto;
  aspect-ratio:213 / 119;
  object-fit:cover;
  border-radius:10px;
}

/* =========================================================
   ONE DAY SCHEDULE section
========================================================= */
.schedule{
  position:relative;
  z-index:3;
  margin:0 calc(50% - 50vw) clamp(44px,5vw,70px);
  padding:clamp(46px,5.8vw,82px) max(24px,calc((100vw - 1120px) / 2 + 40px)) clamp(46px,5.5vw,78px);
  overflow:hidden;
  background:
    radial-gradient(circle at 0 55%, rgba(255,128,160,.22) 0 9%, transparent 23%),
    radial-gradient(circle at 100% 57%, rgba(160,94,255,.18) 0 8%, transparent 24%),
    linear-gradient(180deg,#fff 0%,#fff 70%,#fff8fb 100%);
}
.schedule::before,
.schedule::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
}
.schedule::before{
  top:0;
  right:0;
  width:148px;
  height:148px;
  border-bottom-left-radius:100%;
  background:
    radial-gradient(rgba(255,255,255,.95) 1.4px,transparent 1.6px) 0 0 / 13px 13px,
    linear-gradient(135deg,#ff4f9a,#d45cff);
}
.schedule::after{
  left:0;
  bottom:0;
  width:100%;
  height:170px;
  background:
    radial-gradient(rgba(255,255,255,.88) 1.4px,transparent 1.6px) 0 52px / 13px 13px,
    linear-gradient(95deg,rgba(255,79,154,.95),rgba(255,138,76,.52),rgba(139,92,246,.9));
  clip-path:polygon(0 35%,10% 52%,36% 100%,100% 100%,100% 62%,88% 52%,72% 77%,45% 62%,24% 80%,0 55%);
  opacity:.82;
}
.schedule__hero,
.schedule__body{
  position:relative;
  z-index:1;
}
.schedule__hero{
  min-height:clamp(300px,31vw,395px);
  display:grid;
  grid-template-columns:minmax(520px,58%) 1fr;
  align-items:center;
}
.schedule__copy{
  position:relative;
  z-index:2;
}
.schedule__script{
  position:absolute;
  top:-.9em;
  left:-.7em;
  font-family:"Caveat",cursive;
  font-size:clamp(56px,8.6vw,116px);
  font-weight:700;
  line-height:1;
  color:#ffc3dc;
  opacity:.72;
  transform:rotate(-6deg);
  white-space:nowrap;
}
.schedule__eyebrow{
  margin-bottom:1.05em;
  color:#ff3d8b;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:clamp(13px,1.25vw,18px);
  font-weight:900;
  letter-spacing:.16em;
}
.schedule__eyebrow::after{
  content:"";
  display:block;
  width:34px;
  height:3px;
  margin-top:.58em;
  border-radius:999px;
  background:#ff3d8b;
}
.schedule__title{
  margin:0;
  color:#111;
  font-weight:900;
  line-height:1.08;
}
.schedule__title span{
  display:block;
  font-size:clamp(32px,3.4vw,48px);
  letter-spacing:.02em;
}
.schedule__title strong{
  display:block;
  margin-top:.12em;
  background:linear-gradient(96deg,#ff2f8f 0%,#ff5a80 48%,#ff8838 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-size:clamp(58px,6.6vw,94px);
  letter-spacing:.01em;
}
.schedule__lead{
  margin-top:1.55em;
  color:#1f1f1f;
  font-size:clamp(15px,1.35vw,20px);
  font-weight:800;
  line-height:2;
  letter-spacing:.03em;
}
.schedule__lead::after{
  content:"";
  display:block;
  width:min(360px,58%);
  height:16px;
  margin-top:.4em;
  background:linear-gradient(90deg,#ff4f9a,#ff7a3d);
  clip-path:polygon(0 65%,100% 0,100% 14%,0 78%);
  opacity:.7;
}
.schedule__hero-photo{
  position:absolute;
  top:-60px;
  right:0;
  width:min(52vw,620px);
  height:clamp(310px,34vw,450px);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 28%,#000 100%);
}
.schedule__hero-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.78) 22%,rgba(255,255,255,0) 54%);
}
.schedule__hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.06) brightness(1.04);
}
.schedule__body{
  display:grid;
  grid-template-columns:minmax(510px,54%) 1fr;
  gap:clamp(24px,3.4vw,50px);
  align-items:start;
  margin-top:clamp(16px,2.4vw,30px);
  padding:clamp(30px,3.2vw,46px) clamp(22px,2.6vw,36px);
  border-radius:28px;
  background:rgba(255,255,255,.93);
  box-shadow:0 18px 42px rgba(70,40,80,.1);
}
.schedule__timeline{
  position:relative;
  list-style:none;
  margin:0;
  padding:0;
}
.schedule__timeline::before{
  content:"";
  position:absolute;
  top:44px;
  bottom:44px;
  left:108px;
  border-left:2px dotted #ffc1dc;
}
.schedule-item{
  position:relative;
  display:grid;
  grid-template-columns:90px 22px 78px 1fr;
  gap:18px;
  align-items:center;
  min-height:104px;
  padding:12px 0;
  border-bottom:1px dashed #f3d7e5;
}
.schedule-item:last-child{border-bottom:none}
.schedule-item time{
  display:flex;
  flex-direction:column;
  align-items:center;
  color:#101010;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-weight:900;
  line-height:1;
}
.schedule-item time strong{
  font-size:clamp(25px,2.5vw,34px);
}
.schedule-item time span{
  margin-top:.45em;
  padding:.26em .48em;
  border-radius:999px;
  color:#fff;
  font-size:clamp(12px,1vw,14px);
}
.schedule-item--pink time span,
.schedule-item--pink .schedule-item__dot,
.schedule-item--pink .schedule-item__icon{background:#ff3d8b}
.schedule-item--orange time span,
.schedule-item--orange .schedule-item__dot,
.schedule-item--orange .schedule-item__icon{background:#ff6f3d}
.schedule-item--purple time span,
.schedule-item--purple .schedule-item__dot,
.schedule-item--purple .schedule-item__icon{background:#8b5cf6}
.schedule-item__dot{
  position:relative;
  z-index:1;
  width:18px;
  height:18px;
  border-radius:50%;
  box-shadow:0 0 0 6px #fff;
}
.schedule-item__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  border-radius:50%;
  color:#fff;
  box-shadow:0 10px 18px rgba(255,80,140,.26);
}
.schedule-item__icon svg{
  width:56%;
  height:56%;
}
.schedule-item h4{
  margin:0 0 .35em;
  color:#111;
  font-size:clamp(19px,1.8vw,26px);
  font-weight:900;
  line-height:1.25;
}
.schedule-item p{
  margin:0;
  color:#222;
  font-size:clamp(13px,1.15vw,16px);
  font-weight:700;
  line-height:1.7;
}
.schedule__photos{
  position:relative;
  min-height:760px;
}
.schedule-photo{
  position:absolute;
  margin:0;
  overflow:hidden;
  border-radius:34px;
  box-shadow:0 12px 24px rgba(60,40,80,.1);
}
.schedule-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.schedule-photo--meeting{
  top:0;
  left:0;
  width:68%;
  height:190px;
  border-top-left-radius:74px;
}
.schedule-photo--lunch{
  top:230px;
  left:20px;
  width:82%;
  height:176px;
  border-top-left-radius:58px;
  border-bottom-right-radius:58px;
}
.schedule-photo--desk{
  top:450px;
  left:0;
  width:68%;
  height:184px;
  border-top-left-radius:70px;
  border-bottom-right-radius:70px;
}
.schedule-photo--leaving{
  top:650px;
  left:66px;
  width:58%;
  height:154px;
  border-top-left-radius:62px;
}
.schedule-bubble{
  position:absolute;
  margin:0;
  padding:1em 1.35em;
  border:2px solid currentColor;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  font-family:"Yomogi","Noto Sans JP",sans-serif;
  font-size:clamp(16px,1.55vw,22px);
  font-weight:700;
  line-height:1.55;
  text-align:center;
  transform:rotate(-6deg);
}
.schedule-bubble::after{
  content:"";
  position:absolute;
  right:12%;
  bottom:-8px;
  width:36px;
  height:16px;
  border-bottom:2px solid currentColor;
  border-radius:50%;
  transform:rotate(-16deg);
}
.schedule-bubble--pink{
  top:18px;
  right:0;
  color:#ff4f9a;
}
.schedule-bubble--orange{
  top:240px;
  right:-4px;
  color:#ff7a3d;
  transform:rotate(-7deg);
}
.schedule-bubble--purple{
  top:488px;
  right:-8px;
  color:#9a62ff;
  transform:rotate(-6deg);
}
.schedule-bubble--orange2{
  top:652px;
  right:0;
  color:#ff6f3d;
  transform:rotate(-5deg);
}

/* =========================================================
   EMPLOYEE INTERVIEW section
========================================================= */
.interview{
  position:relative;
  z-index:3;
  margin:0 calc(50% - 50vw) clamp(44px,5vw,70px);
  padding:clamp(46px,5.8vw,82px) max(24px,calc((100vw - 1120px) / 2 + 40px)) clamp(46px,5.5vw,78px);
  overflow:hidden;
  background:
    radial-gradient(circle at 44% 27%, rgba(255,79,154,.18) 0 3%, transparent 8%),
    radial-gradient(circle at 100% 24%, rgba(255,138,76,.35) 0 9%, transparent 18%),
    linear-gradient(180deg,#fff 0%,#fff8fb 100%);
}
.interview::before,
.interview::after{
  content:"";
  position:absolute;
  pointer-events:none;
}
.interview::before{
  top:0;
  right:0;
  width:132px;
  height:132px;
  border-bottom-left-radius:100%;
  background:
    radial-gradient(#ff5aa0 1.4px,transparent 1.6px) 0 48px / 13px 13px,
    linear-gradient(135deg,#ff3d8b,#ff8a4c);
}
.interview::after{
  right:0;
  bottom:0;
  width:120px;
  height:230px;
  background-image:radial-gradient(rgba(255,80,154,.25) 1.4px,transparent 1.6px);
  background-size:13px 13px;
}
.interview__hero,
.interview__list{
  position:relative;
  z-index:1;
}
.interview__hero{
  min-height:clamp(340px,33vw,430px);
  display:grid;
  grid-template-columns:minmax(420px,48%) 1fr;
  align-items:center;
}
.interview__copy{
  position:relative;
  z-index:2;
}
.interview__script{
  position:absolute;
  top:-.95em;
  left:-.55em;
  font-family:"Caveat",cursive;
  font-size:clamp(62px,8.5vw,118px);
  font-weight:700;
  line-height:1;
  color:#ffc3dc;
  opacity:.78;
  transform:rotate(-8deg);
  white-space:nowrap;
}
.interview__eyebrow{
  margin-bottom:1.15em;
  color:#ff3d8b;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:clamp(13px,1.25vw,18px);
  font-weight:900;
  letter-spacing:.16em;
}
.interview__eyebrow::after{
  content:"";
  display:block;
  width:34px;
  height:3px;
  margin-top:.58em;
  border-radius:999px;
  background:#ff3d8b;
}
.interview__title{
  margin:0;
  color:#111;
  font-weight:900;
  line-height:1.1;
}
.interview__title span{
  display:block;
  font-size:clamp(32px,3.3vw,48px);
  letter-spacing:.04em;
}
.interview__title strong{
  display:block;
  margin-top:.12em;
  background:linear-gradient(96deg,#ff2f8f 0%,#ff5d7c 52%,#ff8838 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-size:clamp(64px,6.9vw,98px);
  letter-spacing:.01em;
}
.interview__lead{
  margin-top:1.5em;
  color:#1f1f1f;
  font-size:clamp(15px,1.35vw,20px);
  font-weight:800;
  line-height:2;
  letter-spacing:.03em;
}
.interview__hero-photo{
  position:absolute;
  top:-24px;
  right:0;
  width:min(54vw,620px);
  height:clamp(300px,34vw,440px);
  overflow:hidden;
  border-bottom-left-radius:38%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 100%);
}
.interview__hero-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.72) 20%,rgba(255,255,255,0) 48%);
}
.interview__hero-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.05) brightness(1.04);
}
.interview__list{
  display:flex;
  flex-direction:column;
  gap:clamp(18px,2vw,26px);
  margin-top:clamp(12px,2vw,26px);
}
.interview-card{
  display:grid;
  grid-template-columns:minmax(180px,220px) minmax(280px,.9fr) minmax(360px,1.05fr);
  gap:clamp(22px,2.7vw,40px);
  align-items:center;
  padding:clamp(26px,3vw,38px);
  border-radius:34px;
  background:rgba(255,255,255,.95);
  box-shadow:0 14px 36px rgba(80,50,80,.1);
}
.interview-card__photo{
  display:block;
  width:100%;
  aspect-ratio:186 / 237;
  object-fit:cover;
  border-radius:22px;
}
.interview-card__main{
  min-width:0;
}
.interview-card__meta{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:1.15em;
}
.interview-card__num{
  font-family:"Caveat",cursive;
  font-size:clamp(52px,5vw,72px);
  font-weight:700;
  line-height:.9;
}
.interview-card--pink .interview-card__num,
.interview-card--pink h4{color:#ff4f9a}
.interview-card--orange .interview-card__num,
.interview-card--orange h4{color:#ff7a3d}
.interview-card--purple .interview-card__num,
.interview-card--purple h4{color:#9a62ff}
.interview-card__meta p{
  margin:0;
  color:#222;
  font-size:14px;
  font-weight:800;
  line-height:1.45;
}
.interview-card__meta span:not(.interview-card__num){
  display:block;
  font-size:12px;
  font-weight:700;
}
.interview-card h4{
  margin:0 0 1.05em;
  font-size:clamp(22px,2.15vw,31px);
  font-weight:900;
  line-height:1.45;
  letter-spacing:.04em;
}
.interview-card__body{
  margin:0;
  color:#222;
  font-size:clamp(14px,1.15vw,16px);
  font-weight:700;
  line-height:1.85;
}
.interview-card__qa{
  height:100%;
  padding-left:clamp(22px,2.5vw,34px);
  border-left:2px dotted #f4bfd5;
}
.interview-card__qa dl,
.interview-card__qa dd{
  margin:0;
}
.interview-card__qa dt{
  display:inline-block;
  margin:0 0 .75em;
  padding:.45em 1.4em;
  border-radius:999px;
  font-size:clamp(15px,1.35vw,19px);
  font-weight:900;
  line-height:1.25;
}
.interview-card--pink .interview-card__qa dt{color:#ff4f9a;background:#ffe1ed}
.interview-card--orange .interview-card__qa dt{color:#ff7a3d;background:#ffe7dc}
.interview-card--purple .interview-card__qa dt{color:#9a62ff;background:#eee3ff}
.interview-card__qa dd{
  color:#222;
  font-size:clamp(13px,1.08vw,16px);
  font-weight:700;
  line-height:1.85;
}
.interview-card__qa dd+dt{
  margin-top:1.45em;
}

/* =========================================================
   FAQ section
========================================================= */
.faq{
  position:relative;
  z-index:3;
  margin:0 calc(50% - 50vw) clamp(44px,5vw,70px);
  padding:clamp(46px,5.8vw,82px) max(24px,calc((100vw - 1120px) / 2 + 40px)) clamp(48px,5.5vw,76px);
  overflow:hidden;
  background:
    radial-gradient(circle at 100% 25%, rgba(255,138,76,.38) 0 5%, transparent 13%),
    radial-gradient(circle at 100% 0, rgba(255,79,154,.32) 0 10%, transparent 18%),
    radial-gradient(circle at 0 84%, rgba(255,210,228,.45) 0 16%, transparent 32%),
    linear-gradient(180deg,#fff 0%,#fff8fb 100%);
}
.faq::before,
.faq::after{
  content:"";
  position:absolute;
  pointer-events:none;
}
.faq::before{
  top:0;
  right:0;
  width:132px;
  height:132px;
  border-bottom-left-radius:100%;
  background:
    radial-gradient(rgba(255,255,255,.9) 1.4px,transparent 1.6px) 0 48px / 13px 13px,
    linear-gradient(135deg,#ff3d8b,#ff8a4c);
}
.faq::after{
  right:0;
  bottom:24px;
  width:150px;
  height:160px;
  background-image:radial-gradient(rgba(255,80,154,.22) 1.4px,transparent 1.6px);
  background-size:13px 13px;
}
.faq__hero,
.faq__grid{
  position:relative;
  z-index:1;
}
.faq__hero{
  min-height:clamp(300px,28vw,380px);
  display:grid;
  grid-template-columns:minmax(520px,56%) 1fr;
  align-items:center;
}
.faq__copy{
  position:relative;
  z-index:2;
}
.faq__script{
  position:absolute;
  top:-.78em;
  left:-.55em;
  font-family:"Caveat",cursive;
  font-size:clamp(68px,8.8vw,126px);
  font-weight:700;
  line-height:1;
  color:#ffc3dc;
  opacity:.78;
  transform:rotate(-8deg);
  white-space:nowrap;
}
.faq__eyebrow{
  margin-bottom:1.15em;
  color:#ff3d8b;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:clamp(13px,1.25vw,18px);
  font-weight:900;
  letter-spacing:.18em;
}
.faq__eyebrow::after{
  content:"";
  display:block;
  width:34px;
  height:3px;
  margin-top:.58em;
  border-radius:999px;
  background:#ff3d8b;
}
.faq__title{
  margin:0;
  background:linear-gradient(96deg,#111 0%,#111 28%,#ff3d8b 58%,#ff8838 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-size:clamp(58px,6vw,86px);
  font-weight:900;
  line-height:1.12;
  letter-spacing:.04em;
}
.faq__lead{
  margin-top:1.45em;
  color:#1f1f1f;
  font-size:clamp(15px,1.35vw,20px);
  font-weight:800;
  line-height:2;
  letter-spacing:.04em;
}
.faq__hero-photo{
  position:absolute;
  top:-34px;
  right:120px;
  width:min(45vw,530px);
  height:clamp(300px,30vw,390px);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 25%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 25%,#000 100%);
}
.faq__hero-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.7) 25%,rgba(255,255,255,0) 55%);
}
.faq__hero-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.04) brightness(1.04);
}
.faq__note{
  position:absolute;
  top:24px;
  right:22px;
  z-index:2;
  width:188px;
  height:188px;
  margin:0;
  border:2px dashed #ffa7ca;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#222;
  background:rgba(255,255,255,.62);
  font-size:17px;
  font-weight:800;
  line-height:1.65;
  text-align:center;
}
.faq__note span{
  display:block;
  color:#ff3d8b;
  font-family:"Caveat",cursive;
  font-size:34px;
  line-height:1.1;
}
.faq__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:clamp(14px,1.8vw,24px) clamp(18px,2vw,28px);
  margin-top:clamp(18px,2.5vw,34px);
}
.faq-item{
  position:relative;
  min-height:0;
  padding:clamp(20px,2.3vw,28px) clamp(58px,4.6vw,78px) clamp(20px,2.3vw,28px) clamp(26px,2.4vw,34px);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 30px rgba(80,50,80,.09);
  transition:box-shadow .2s ease, transform .2s ease;
}
.faq-item::after{
  content:"";
  position:absolute;
  top:clamp(31px,3.4vw,42px);
  right:28px;
  width:16px;
  height:16px;
  border-right:3px solid currentColor;
  border-bottom:3px solid currentColor;
  transform:rotate(45deg);
  transition:transform .2s ease;
  pointer-events:none;
}
.faq-item.is-open::after{
  transform:translateY(5px) rotate(225deg);
}
.faq-item h4{
  margin:0;
  font-size:clamp(18px,1.7vw,24px);
  font-weight:900;
  line-height:1.35;
}
.faq-item__button{
  display:flex;
  align-items:center;
  gap:.72em;
  width:100%;
  min-height:44px;
  padding:0;
  border:0;
  color:currentColor;
  background:transparent;
  font:inherit;
  line-height:inherit;
  text-align:left;
  cursor:pointer;
}
.faq-item__button span{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  color:#fff;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:24px;
  font-weight:900;
  box-shadow:0 8px 16px rgba(255,80,140,.2);
}
.faq-item__answer{
  margin-top:.7em;
}
.faq-item__answer p{
  margin:0 0 0 calc(44px + .72em);
  color:#222;
  font-size:clamp(13px,1.08vw,16px);
  font-weight:700;
  line-height:1.85;
}
.faq-item--pink{color:#ff3d8b}
.faq-item--orange{color:#ff7a3d}
.faq-item--purple{color:#9a62ff}
.faq-item--pink .faq-item__button span{background:linear-gradient(135deg,#ff3d8b,#ff77a8)}
.faq-item--orange .faq-item__button span{background:linear-gradient(135deg,#ff8a4c,#ff6f3d)}
.faq-item--purple .faq-item__button span{background:linear-gradient(135deg,#9a62ff,#7d54f4)}

.env-card p,
.schedule-item p,
.interview-card h4,
.interview-card__body,
.interview-card__qa dd,
.job-info__lead,
.job-detail-card p,
.job-detail-card li,
.company-tour__lead,
.tour-learn-card p,
.tour-voice-card p,
.faq-item__button{
  text-wrap:pretty;
}

/* =========================================================
   JOB INFORMATION section
========================================================= */
.job-info{
  position:relative;
  z-index:3;
  margin:0 calc(50% - 50vw) clamp(44px,5vw,70px);
  padding:clamp(46px,5.8vw,82px) max(24px,calc((100vw - 1120px) / 2 + 40px)) clamp(48px,5.5vw,76px);
  overflow:hidden;
  background:
    radial-gradient(circle at 44% 30%,rgba(222,80,225,.28) 0 4%,transparent 8%),
    radial-gradient(circle at 100% 31%,rgba(255,128,150,.3) 0 10%,transparent 18%),
    linear-gradient(180deg,#fff 0%,#fff8fb 100%);
}
.job-info::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:128px;
  height:128px;
  border-bottom-left-radius:100%;
  background:
    radial-gradient(rgba(255,255,255,.9) 1.4px,transparent 1.6px) 0 46px / 13px 13px,
    linear-gradient(135deg,#ff3d8b,#ff8a4c);
}
.job-info__hero,
.job-info__grid,
.job-flow{
  position:relative;
  z-index:1;
}
.job-info__hero{
  min-height:clamp(300px,30vw,390px);
  display:grid;
  grid-template-columns:minmax(430px,48%) 1fr;
  align-items:center;
}
.job-info__copy{
  position:relative;
  z-index:2;
}
.job-info__script{
  position:absolute;
  top:-.9em;
  left:-.55em;
  font-family:"Caveat",cursive;
  font-size:clamp(58px,8.2vw,112px);
  font-weight:700;
  line-height:1;
  color:#ffc3dc;
  opacity:.78;
  transform:rotate(-8deg);
  white-space:nowrap;
}
.job-info__eyebrow{
  margin-bottom:1.15em;
  color:#ff3d8b;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:clamp(13px,1.25vw,18px);
  font-weight:900;
  letter-spacing:.16em;
}
.job-info__eyebrow::after{
  content:"";
  display:block;
  width:34px;
  height:3px;
  margin-top:.58em;
  border-radius:999px;
  background:#ff3d8b;
}
.job-info__title{
  margin:0;
  color:#111;
  font-size:clamp(52px,5.4vw,78px);
  font-weight:900;
  line-height:1.12;
  letter-spacing:.06em;
}
.job-info__lead{
  margin-top:1.35em;
  color:#1f1f1f;
  font-size:clamp(15px,1.35vw,20px);
  font-weight:800;
  line-height:2;
  letter-spacing:.04em;
}
.job-info__photo{
  position:absolute;
  top:-34px;
  right:0;
  width:min(56vw,700px);
  height:clamp(300px,34vw,430px);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 100%);
}
.job-info__photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.7) 24%,rgba(255,255,255,0) 52%);
}
.job-info__photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.04) brightness(1.04);
}
.job-info__grid{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(14px,1.7vw,24px);
  margin:clamp(24px,3vw,42px) 0 0;
  padding:0;
}
.job-card{
  min-height:clamp(190px,16vw,240px);
  padding:clamp(20px,2.1vw,28px) clamp(15px,1.7vw,22px);
  border-radius:22px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 30px rgba(80,50,80,.09);
  text-align:center;
}
.job-card__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(50px,5vw,62px);
  height:clamp(50px,5vw,62px);
  margin:0 auto .88em;
  border-radius:50%;
  color:#fff;
  box-shadow:0 8px 16px rgba(255,80,140,.2);
}
.job-card__icon svg{
  width:56%;
  height:56%;
}
.job-card h4{
  margin:0 0 1.05em;
  font-size:clamp(17px,1.7vw,23px);
  font-weight:900;
  line-height:1.25;
}
.job-card p{
  margin:0;
  color:#222;
  font-size:clamp(13px,1.05vw,16px);
  font-weight:700;
  line-height:1.85;
}
.job-card--pink h4{color:#ff3d8b}
.job-card--orange h4{color:#ff7a3d}
.job-card--purple h4{color:#9a62ff}
.job-card--pink .job-card__icon{background:linear-gradient(135deg,#ff3d8b,#ff77a8)}
.job-card--orange .job-card__icon{background:linear-gradient(135deg,#ff8a4c,#ff6f3d)}
.job-card--purple .job-card__icon{background:linear-gradient(135deg,#9a62ff,#7d54f4)}
.job-detail{
  position:relative;
  z-index:1;
  margin-top:clamp(28px,3.6vw,48px);
  padding:clamp(22px,2.8vw,38px);
  border-radius:28px;
  background:rgba(255,255,255,.95);
  box-shadow:0 16px 38px rgba(80,50,80,.1);
}
.job-detail__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  margin-bottom:clamp(18px,2vw,28px);
}
.job-detail__head h4{
  margin:0;
  color:#ff4f9a;
  font-size:clamp(22px,2.2vw,32px);
  font-weight:900;
  letter-spacing:.08em;
}
.job-detail__head a{
  flex:0 0 auto;
  color:#ff4f9a;
  background:#fff0f6;
  border:1px solid rgba(255,79,154,.22);
  border-radius:999px;
  padding:.6em 1.1em;
  text-decoration:none;
  font-size:clamp(12px,1vw,14px);
  font-weight:800;
}
.job-detail__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,1.7vw,22px);
}
.job-detail-card{
  padding:clamp(18px,2vw,26px);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,248,251,.92));
  box-shadow:0 10px 24px rgba(80,50,80,.07);
}
.job-detail-card--wide{
  grid-column:1 / -1;
}
.job-detail-card h5{
  margin:0 0 .8em;
  color:#ff4f9a;
  font-size:clamp(18px,1.65vw,24px);
  font-weight:900;
  line-height:1.35;
}
.job-detail-card h6{
  margin:1.25em 0 .55em;
  color:#ff7a3d;
  font-size:clamp(14px,1.15vw,16px);
  font-weight:900;
}
.job-detail-card p,
.job-detail-card li{
  color:#222;
  font-size:clamp(13px,1.02vw,15px);
  font-weight:700;
  line-height:1.85;
}
.job-detail-card p{
  margin:0;
}
.job-detail-card p+p{
  margin-top:.85em;
}
.job-detail-card__lead{
  color:#111!important;
  font-size:clamp(15px,1.25vw,18px)!important;
  font-weight:900!important;
}
.job-detail-card ul{
  margin:.3em 0 0;
  padding-left:1.2em;
}
.job-detail-card li+li{
  margin-top:.25em;
}
.job-flow{
  margin-top:clamp(26px,3.4vw,44px);
}
.job-flow h4{
  margin:0 0 1.1em;
  color:#ff4f9a;
  font-size:clamp(22px,2.2vw,32px);
  font-weight:900;
  line-height:1.3;
  letter-spacing:.18em;
  text-align:center;
}
.job-flow__list{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(16px,2vw,28px);
  margin:0;
  padding:0;
}
.job-step{
  position:relative;
  min-height:clamp(230px,19vw,286px);
  padding:clamp(20px,2vw,28px) clamp(14px,1.6vw,22px);
  border-radius:22px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 30px rgba(80,50,80,.09);
  text-align:center;
}
.job-step:not(:last-child)::after{
  content:"";
  position:absolute;
  top:50%;
  right:calc(clamp(16px,2vw,28px) / -1 - 8px);
  width:0;
  height:0;
  border-top:18px solid transparent;
  border-bottom:18px solid transparent;
  border-left:18px solid #ff5d8f;
  transform:translateY(-50%);
  filter:drop-shadow(0 4px 8px rgba(255,80,140,.18));
}
.job-step__step{
  display:block;
  margin-bottom:1em;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:15px;
  font-weight:900;
  letter-spacing:.16em;
}
.job-step__step b{
  font-family:"Caveat",cursive;
  font-size:30px;
  line-height:1;
}
.job-step__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:70px;
  height:70px;
  margin:0 auto 1.1em;
  border-radius:50%;
  color:currentColor;
  background:color-mix(in srgb,currentColor 18%,#fff);
}
.job-step__icon svg{
  width:58%;
  height:58%;
}
.job-step h5{
  margin:0 0 .8em;
  font-size:clamp(16px,1.55vw,21px);
  font-weight:900;
}
.job-step p{
  margin:0;
  color:#222;
  font-size:clamp(12px,1vw,14px);
  font-weight:700;
  line-height:1.75;
}
.job-step--pink{color:#ff3d8b}
.job-step--orange{color:#ff7a3d}
.job-step--purple{color:#9a62ff}

/* =========================================================
   COMPANY TOUR section
========================================================= */
.company-tour{
  position:relative;
  z-index:3;
  margin:0 calc(50% - 50vw) clamp(44px,5vw,70px);
  padding:clamp(46px,5.8vw,82px) max(24px,calc((100vw - 1120px) / 2 + 40px)) clamp(48px,5.5vw,76px);
  overflow:hidden;
  background:
    radial-gradient(circle at 100% 31%,rgba(255,142,124,.28) 0 8%,transparent 18%),
    linear-gradient(180deg,#fff 0%,#fff8fb 100%);
}
.company-tour::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:126px;
  height:126px;
  border-bottom-left-radius:100%;
  background:
    radial-gradient(rgba(255,255,255,.9) 1.4px,transparent 1.6px) 0 46px / 13px 13px,
    linear-gradient(135deg,#ff3d8b,#ff8a4c);
}
.company-tour__hero,
.tour-learn,
.tour-voice,
.tour-steps{
  position:relative;
  z-index:1;
}
.company-tour__hero{
  min-height:clamp(350px,34vw,440px);
  display:grid;
  grid-template-columns:minmax(520px,56%) 1fr;
  align-items:center;
}
.company-tour__copy{
  position:relative;
  z-index:2;
}
.company-tour__script{
  position:absolute;
  top:-.85em;
  left:-.55em;
  font-family:"Caveat",cursive;
  font-size:clamp(58px,8.2vw,112px);
  font-weight:700;
  line-height:1;
  color:#ffc3dc;
  opacity:.78;
  transform:rotate(-8deg);
  white-space:nowrap;
}
.company-tour__eyebrow{
  margin-bottom:1.15em;
  color:#ff3d8b;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:clamp(13px,1.25vw,18px);
  font-weight:900;
  letter-spacing:.16em;
}
.company-tour__eyebrow::after{
  content:"";
  display:block;
  width:34px;
  height:3px;
  margin-top:.58em;
  border-radius:999px;
  background:#ff3d8b;
}
.company-tour__title{
  margin:0;
  font-weight:900;
  line-height:1.12;
}
.company-tour__title span{
  display:block;
  color:#111;
  font-size:clamp(30px,3.2vw,46px);
  letter-spacing:.03em;
}
.company-tour__title strong{
  display:block;
  margin-top:.12em;
  background:linear-gradient(96deg,#ff2f8f 0%,#ff5d7c 50%,#ff8838 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-size:clamp(58px,6.8vw,94px);
  letter-spacing:.03em;
}
.company-tour__lead{
  margin-top:1.35em;
  color:#1f1f1f;
  font-size:clamp(15px,1.35vw,20px);
  font-weight:800;
  line-height:2;
  letter-spacing:.03em;
}
.company-tour__photo{
  position:absolute;
  top:-30px;
  right:0;
  width:min(56vw,700px);
  height:clamp(330px,35vw,470px);
  overflow:hidden;
  border-bottom-left-radius:38%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 20%,#000 100%);
}
.company-tour__photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.72) 24%,rgba(255,255,255,0) 52%);
}
.company-tour__photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.05) brightness(1.04);
}
.tour-learn{
  margin-top:clamp(22px,3vw,42px);
}
.tour-learn h4,
.tour-voice h4,
.tour-steps h4{
  margin:0 0 1.1em;
  color:#111;
  font-size:clamp(22px,2.25vw,32px);
  font-weight:900;
  line-height:1.35;
  text-align:center;
  letter-spacing:.08em;
}
.tour-learn h4{color:#ff4f9a}
.tour-learn__grid{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(14px,1.7vw,24px);
  margin:0;
  padding:0;
}
.tour-learn-card{
  min-height:clamp(240px,21vw,300px);
  padding:clamp(22px,2.3vw,32px) clamp(16px,1.8vw,24px);
  border-radius:22px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 30px rgba(80,50,80,.09);
  text-align:center;
}
.tour-learn-card__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(60px,6vw,78px);
  height:clamp(60px,6vw,78px);
  margin:0 auto 1.2em;
  border-radius:50%;
  color:#fff;
  box-shadow:0 8px 16px rgba(255,80,140,.2);
}
.tour-learn-card__icon svg{
  width:56%;
  height:56%;
}
.tour-learn-card h5{
  margin:0 0 1em;
  font-size:clamp(17px,1.7vw,23px);
  font-weight:900;
}
.tour-learn-card p{
  margin:0;
  color:#222;
  font-size:clamp(13px,1.05vw,16px);
  font-weight:700;
  line-height:1.85;
}
.tour-learn-card--pink h5{color:#ff3d8b}
.tour-learn-card--orange h5{color:#ff7a3d}
.tour-learn-card--purple h5{color:#9a62ff}
.tour-learn-card--pink .tour-learn-card__icon{background:linear-gradient(135deg,#ff3d8b,#ff77a8)}
.tour-learn-card--orange .tour-learn-card__icon{background:linear-gradient(135deg,#ff8a4c,#ff6f3d)}
.tour-learn-card--purple .tour-learn-card__icon{background:linear-gradient(135deg,#9a62ff,#7d54f4)}
.tour-voice{
  margin-top:clamp(44px,5vw,70px);
}
.tour-voice__script{
  position:absolute;
  left:28px;
  top:-34px;
  font-family:"Caveat",cursive;
  font-size:clamp(52px,6vw,82px);
  color:#ff9fc4;
  transform:rotate(-8deg);
}
.tour-voice__grid{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(16px,2vw,28px);
  margin:0;
  padding:0;
}
.tour-voice-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:270px;
  padding:clamp(24px,2.4vw,34px);
  border-radius:22px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 30px rgba(80,50,80,.09);
  text-align:center;
}
.tour-voice-card img{
  width:clamp(112px,10vw,142px);
  height:clamp(112px,10vw,142px);
  object-fit:cover;
  object-position:center top;
  border-radius:50%;
  box-shadow:0 10px 22px rgba(80,50,80,.12);
}
.tour-voice-card h5{
  margin:clamp(14px,1.5vw,20px) 0 .75em;
  font-size:clamp(17px,1.6vw,22px);
  font-weight:900;
  line-height:1.45;
}
.tour-voice-card p{
  margin:0 0 1.1em;
  color:#222;
  font-size:clamp(12px,1vw,14px);
  font-weight:700;
  line-height:1.75;
}
.tour-voice-card span{
  display:inline-block;
  padding:.36em 1em;
  border-radius:999px;
  background:#fff0f6;
  font-size:13px;
  font-weight:900;
}
.tour-voice-card--pink h5,
.tour-voice-card--pink span{color:#ff3d8b}
.tour-voice-card--orange h5,
.tour-voice-card--orange span{color:#ff7a3d}
.tour-voice-card--purple h5,
.tour-voice-card--purple span{color:#9a62ff}
.tour-steps{
  margin-top:clamp(36px,4vw,60px);
}
.tour-steps__list{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0;
  padding:0;
  border-radius:22px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 30px rgba(80,50,80,.09);
  overflow:hidden;
}
.tour-step{
  position:relative;
  display:grid;
  grid-template-columns:76px 1fr;
  gap:16px;
  align-items:center;
  min-height:150px;
  padding:clamp(22px,2.4vw,32px);
}
.tour-step:not(:last-child){
  border-right:1px solid #f2c7d9;
}
.tour-step:not(:last-child)::after{
  content:"";
  position:absolute;
  top:50%;
  right:-14px;
  width:0;
  height:0;
  border-top:18px solid transparent;
  border-bottom:18px solid transparent;
  border-left:18px solid #ff5d8f;
  transform:translateY(-50%);
  z-index:2;
}
.tour-step__step{
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:14px;
  font-weight:900;
  letter-spacing:.12em;
}
.tour-step__step b{
  display:block;
  font-family:"Caveat",cursive;
  font-size:34px;
  line-height:1;
}
.tour-step__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:66px;
  height:66px;
  border-radius:50%;
  background:color-mix(in srgb,currentColor 18%,#fff);
}
.tour-step__icon svg{
  width:58%;
  height:58%;
}
.tour-step h5{
  margin:0 0 .45em;
  font-size:clamp(17px,1.6vw,22px);
  font-weight:900;
}
.tour-step p{
  margin:0;
  color:#222;
  font-size:clamp(12px,1vw,14px);
  font-weight:700;
  line-height:1.75;
}
.tour-step--pink{color:#ff3d8b}
.tour-step--orange{color:#ff7a3d}
.tour-step--purple{color:#9a62ff}

.env-card,
.schedule-item,
.interview-card,
.faq-item,
.job-card,
.job-detail-card,
.job-step,
.tour-learn-card,
.tour-voice-card,
.tour-step{
  min-width:0;
}
.env-card p,
.schedule-item p,
.interview-card p,
.interview-card dd,
.faq-item p,
.job-card p,
.job-detail-card p,
.job-detail-card li,
.job-step p,
.tour-learn-card p,
.tour-voice-card p,
.tour-step p{
  overflow-wrap:break-word;
}
.job-detail-card li{
  overflow-wrap:anywhere;
}
.tour-step__step{
  grid-column:1;
  grid-row:1;
}
.tour-step__icon{
  grid-column:1;
  grid-row:2;
}
.tour-step > div{
  grid-column:2;
  grid-row:1 / span 2;
  min-width:0;
}

@media (min-width:901px){
  .environment,
  .schedule,
  .interview,
  .faq,
  .job-info,
  .company-tour{
    padding-left:max(36px,calc((100vw - 1240px) / 2 + 48px));
    padding-right:max(36px,calc((100vw - 1240px) / 2 + 48px));
  }
}

@media (min-width:1001px){
  .environment__copy,
  .schedule__copy,
  .company-tour__copy{
    max-width:680px;
  }
  .environment__title strong{
    font-size:clamp(60px,5.45vw,78px);
    line-height:1.08;
    letter-spacing:0;
    white-space:nowrap;
  }
  .schedule__title strong{
    font-size:clamp(58px,5.35vw,76px);
    line-height:1.08;
    letter-spacing:0;
    white-space:nowrap;
  }
  .company-tour__title span{
    font-size:clamp(30px,2.65vw,38px);
    letter-spacing:0;
    white-space:nowrap;
  }
  .company-tour__title strong{
    font-size:clamp(60px,5.45vw,78px);
    line-height:1.08;
    letter-spacing:0;
    white-space:nowrap;
  }
  .tour-learn-card h5{
    font-size:clamp(17px,1.45vw,21px);
    word-break:keep-all;
    overflow-wrap:normal;
  }
}

@media (min-width:761px) and (max-width:1000px){
  .environment__grid,
  .job-info__grid,
  .tour-learn__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .tour-voice__grid,
  .job-flow__list,
  .tour-steps__list{
    grid-template-columns:1fr;
  }
  .tour-voice-card{
    min-height:0;
    grid-template-columns:120px 1fr;
  }
  .tour-steps__list{
    gap:14px;
    background:transparent;
    box-shadow:none;
    overflow:visible;
  }
  .job-flow__list{
    gap:14px;
    background:transparent;
    box-shadow:none;
    overflow:visible;
  }
  .job-step{
    display:grid;
    grid-template-columns:66px 1fr;
    column-gap:16px;
    align-items:center;
    min-height:0;
    border-radius:22px;
    background:rgba(255,255,255,.94);
    box-shadow:0 12px 30px rgba(80,50,80,.09);
    text-align:left;
  }
  .job-step__step{
    grid-column:2;
    margin:0 0 4px;
  }
  .job-step__icon{
    grid-row:1 / span 3;
    margin:0;
  }
  .job-step:not(:last-child)::after{
    display:none;
  }
  .tour-step{
    border-radius:22px;
    background:rgba(255,255,255,.94);
    box-shadow:0 12px 30px rgba(80,50,80,.09);
  }
  .tour-step:not(:last-child){
    border-right:none;
  }
  .tour-step:not(:last-child)::after{
    display:none;
  }
}

/* =========================================================
   Drawer menu (opened state) — uses hamburger background
========================================================= */
.menu{
  position:fixed;inset:0;z-index:100;
  display:none;
  background:#ff5b8e url("assets/menu-bg.png") no-repeat center center;
  background-size:cover;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.menu.is-open{display:block;animation:menuFade .25s ease}
@keyframes menuFade{from{opacity:0}to{opacity:1}}
.menu__inner{
  min-height:100%;
  padding:2rem 1.7rem 2.6rem;
  display:flex;flex-direction:column;
}
.menu__head{
  display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:1.6rem;
}
.logo--menu .logo__mark{color:#fff;background:none;-webkit-text-fill-color:#fff}
.logo--menu .logo__sub{color:rgba(255,255,255,.9)}
.menu__close{
  width:3rem;height:3rem;border:none;background:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.menu__close svg{width:100%;height:100%}

.menu__nav{display:flex;flex-direction:column}
.mnav{
  display:flex;align-items:center;gap:1.1rem;
  padding:1.15rem .4rem;
  text-decoration:none;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.4);
  font-size:1.5rem;font-weight:700;
}
.mnav:first-child{border-top:1px solid rgba(255,255,255,.4)}
.mnav__ico{width:1.9rem;height:1.9rem;flex:0 0 auto;display:flex}
.mnav__ico svg{width:100%;height:100%}
.mnav__label{flex:1}
.mnav__arrow{font-size:1.7rem;font-weight:400;opacity:.9}

.menu__cta{margin-top:1.6rem;display:flex;flex-direction:column;gap:1rem}
.menu-card{
  position:static;transform:none;width:100%;max-width:none;
  background:#fff;border-radius:1.3rem;
  box-shadow:0 10px 26px rgba(0,0,0,.12);
  padding:1.1rem 1.2rem 1.3rem;display:block;
}
.menu-card .cta-note{display:block;text-align:center}
.menu-card .cta-btn{width:100%;font-size:1.35rem;padding:1rem 1.3rem}

.menu__follow{
  margin:1.8rem 0 .9rem;
  font-family:"Caveat",cursive;font-weight:700;
  font-size:2.1rem;color:#ffe06a;transform:rotate(-4deg);
  padding-left:.4rem;
}
.menu__social{display:flex;gap:1rem;padding-left:.2rem}
.menu__social a{
  width:3.2rem;height:3.2rem;border-radius:50%;
  background:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 14px rgba(0,0,0,.12);
}
.menu__social svg{width:54%;height:54%}

/* ABOUT — mobile stacking */
@media (max-width:760px){
  .about{font-size:2.6vw;background-size:cover}
  .about__inner{padding:0 5vw 8vw}
  .about__watermark{font-size:4.6em}
  .about__photos{
    position:static;
    width:100%;max-width:none;
    margin:1.4em 0 .4em;
  }
  .about__title-sm{font-size:2.2em}
  .about__title-lg{font-size:3.6em}
  .about__body{max-width:none;font-size:1.25em}
  .about__sub{width:min(80%,360px)}
  .feature-grid{grid-template-columns:repeat(2,1fr);gap:1.4em .6em}
  .fcard:nth-child(3)::before,
  .fcard:nth-child(2)::before{border-left:none}
  .feature-pill{font-size:1.55em}
}

/* =========================================================
   CTA / CONTACT section
========================================================= */
.contact{
  background:#ff7a6a url("assets/cta-bg.png") no-repeat center center;
  background-size:cover;
  padding:clamp(48px,7vw,110px) 0;
  font-size:clamp(13px,1.12vw,17px);
}
.contact__inner{
  max-width:1180px;margin:0 auto;
  padding:0 clamp(20px,4vw,40px);
}
.contact__title{
  text-align:center;color:#2b2b2b;
  font-weight:900;font-size:2.5em;
  margin-bottom:1em;
}
.contact__title .grad{
  background:linear-gradient(90deg,#ff2e8b,#ff8a4c);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.sp-break{display:none}
.contact__card{
  background:rgba(255,255,255,.96);
  border-radius:28px;
  box-shadow:0 24px 60px rgba(255,90,140,.18);
  padding:clamp(26px,3vw,48px) clamp(20px,2.6vw,40px) clamp(20px,2.6vw,40px);
}
.contact__cards{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(16px,2vw,28px);
}
.ccol{
  border-radius:20px;
  padding:clamp(20px,2.4vw,34px) clamp(18px,2vw,30px);
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.ccol--line{background:#f1faf2}
.ccol--book{background:#fdf0f5}
.ccol__note{color:#3bbf6b;font-weight:700;font-size:1.05em;letter-spacing:.02em}
.ccol__note--pink{color:#ff5786}
.ccol__head{
  display:flex;align-items:center;gap:.6em;
  margin:.9em 0;
}
.ccol__badge{flex:0 0 auto}
.ccol__badge.line-badge{
  font-size:1em;background:#2bb53c;color:#fff;
  padding:.4em .5em;border-radius:.5em;font-weight:800;
}
.ccol__badge--cal{
  width:2.6em;height:2.6em;background:none;display:flex;
}
.ccol__badge--cal svg{width:100%;height:100%}
.ccol__head-txt{font-size:2.05em;font-weight:900;color:#2bb53c;line-height:1.15}
.ccol__head-txt b{font-weight:900}
.ccol__head-txt--pink{color:#ff4f8b;text-align:left}
.ccol__divider{
  width:88%;height:0;border-top:2px dotted #9bd6a6;
  margin:.4em 0 1em;
}
.ccol__divider--pink{border-top-color:#f3aec6}
.ccol__desc{color:#555;font-weight:500;line-height:1.7;font-size:1.02em;margin-bottom:1.4em}
.ccol .cta-btn{max-width:380px;width:100%;margin-top:auto}

/* =========================================================
   FOOTER
========================================================= */
.footer{background:#fff}
.footer__main{
  position:relative;
  background:
    linear-gradient(180deg,#fff5f8 0%,#fdeef4 60%,#f6ecfb 100%);
  border-radius:40px 40px 0 0;
  margin-top:-40px;
  overflow:hidden;
  padding:clamp(40px,5vw,72px) 0 clamp(30px,4vw,56px);
}
.footer__city{
  position:absolute;right:0;bottom:0;
  width:min(60%,820px);height:auto;
  opacity:.55;pointer-events:none;
}
.footer__inner{
  position:relative;z-index:1;
  max-width:1280px;margin:0 auto;
  padding:0 clamp(20px,4vw,48px);
  display:grid;
  grid-template-columns:1.6fr 1fr 1.4fr;
  gap:clamp(20px,2.4vw,44px);
  font-size:clamp(12px,.92vw,15px);
}
.logo--footer .logo__mark{
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:none;font-size:2.5em;
}
.logo--footer .logo__sub{color:#777}
.footer__hand{display:block;width:min(85%,260px);height:auto;margin:1.4em 0 1.2em}
.footer__lead{color:#555;line-height:1.9;font-size:1.05em;font-weight:500}
.footer__follow{
  margin:1.6em 0 .7em;
  font-family:"Caveat",cursive;font-weight:700;font-size:1.9em;
  color:#ff6a8e;transform:rotate(-4deg);
}
.footer__social{display:flex;gap:.8em}
.footer__social a{
  width:3.4em;height:3.4em;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 5px 14px rgba(0,0,0,.10);
}
.footer__social svg{width:52%;height:52%}

.fcol__title{
  font-size:1.32em;font-weight:800;color:#333;
  padding-bottom:.7em;margin-bottom:.4em;
  position:relative;
}
.fcol__title::after{
  content:"";position:absolute;left:0;bottom:0;width:2.4em;height:3px;border-radius:2px;
  background:linear-gradient(90deg,#ff3d8b,#ff8a4c);
}
.fcol__list{list-style:none}
.fcol__list li{border-bottom:1px solid rgba(0,0,0,.07)}
.fcol__list a{
  display:flex;align-items:center;justify-content:space-between;
  padding:.85em .2em;
  color:#555;text-decoration:none;font-weight:500;font-size:1.05em;
}
.fcol__list a span{color:#ff7aa0;font-size:1.2em}
.fcol__list a:hover{color:#ff4f8b}

.fcol--entry .fbtn{
  display:flex;align-items:center;gap:.7em;
  padding:.85em 1.1em;border-radius:14px;
  text-decoration:none;color:#fff;font-weight:800;font-size:1.1em;line-height:1.25;
  box-shadow:0 8px 18px rgba(0,0,0,.12);
  margin-top:1em;
}
.fbtn--line{background:#2bb53c}
.fbtn--book{background:var(--grad-h)}
.fbtn__ico{flex:0 0 auto;display:flex;align-items:center}
.fbtn__ico svg{width:1.8em;height:1.8em}
.fbtn__ico .line-badge{font-size:.62em}
.fbtn__txt{flex:1}
.fcol--entry .cta-btn__arrow{font-size:1.4em}

.footer__bottom{
  background:#f3f3f5;
  padding:clamp(24px,3vw,40px) clamp(20px,4vw,48px) clamp(20px,2.4vw,32px);
  position:relative;
}
.footer__bottom-inner{
  max-width:1280px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1em 1.6em;
}
.footer__legal{
  list-style:none;display:flex;flex-wrap:wrap;
  gap:1.4em;
}
.footer__legal li{position:relative;padding-right:1.4em}
.footer__legal li:not(:last-child)::after{
  content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:1px;height:1em;background:#ccc;
}
.footer__legal a{color:#555;text-decoration:none;font-size:clamp(12px,.95vw,15px)}
.footer__copy{margin-left:auto;color:#999;font-size:clamp(11px,.85vw,13px)}
.footer__top{
  position:absolute;right:clamp(20px,4vw,48px);bottom:clamp(20px,3vw,40px);
  width:3.6rem;height:3.6rem;border-radius:50%;
  background:#fff;box-shadow:0 6px 16px rgba(0,0,0,.14);
  display:flex;align-items:center;justify-content:center;
}
.footer__top svg{width:48%;height:48%}

/* ---- CONTACT + FOOTER mobile ---- */
@media (max-width:760px){
  .contact{font-size:2.7vw}
  .contact__title{font-size:2.3em}
  .sp-break{display:block}
  .contact__cards{grid-template-columns:1fr;gap:1.2em}
  .ccol__head-txt{font-size:2.2em}

  .footer__main{border-radius:28px 28px 0 0;margin-top:-28px}
  .footer__inner{
    grid-template-columns:1fr 1fr;
    gap:1.8em 1.4em;
    font-size:2.4vw;
  }
  .fcol--brand{grid-column:1 / -1}
  .fcol--entry{grid-column:1 / -1}
  .fcol--entry .fbtn{font-size:1.3em}
  .footer__city{width:80%;opacity:.4}
  .footer__bottom-inner{flex-direction:column;align-items:flex-start;gap:.9em}
  .footer__copy{margin-left:0}
  .footer__top{width:3rem;height:3rem}
}

/* ---- Mobile refinements ---- */
@media (max-width:760px){
  html{
    font-size:clamp(10px,2.65vw,13px);
    overflow-x:hidden;
    scroll-behavior:smooth;
  }
  body{
    min-width:0;
    overflow-x:hidden;
    background:#fff;
  }
  img,svg{max-width:100%}

  .fv{
    min-height:0;
    overflow:hidden;
  }
  .fv__inner{
    min-height:0;
    padding-bottom:0;
    background-position:center top;
    background-size:100% auto;
  }
  .header{
    position:relative;
    z-index:10;
    padding:0 16px 0;
    transform:translateY(-10px);
  }
  .logo__mark{font-size:clamp(24px,7vw,30px)}
  .logo__sub{
    font-size:clamp(10px,2.65vw,12px);
    letter-spacing:.04em;
    white-space:nowrap;
  }
  .hamburger{
    width:44px;
    height:44px;
    padding:0 12px;
  }
  .hamburger span{height:3px}

  .copy{
    padding:22px 16px 0;
    min-height:clamp(430px,112vw,500px);
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .headline-sp{
    max-width:76%;
    text-shadow:0 2px 0 rgba(255,255,255,.55);
  }
  .headline-sp__row{
    font-size:clamp(32px,9.6vw,42px);
    line-height:1.16;
    margin-bottom:8px;
  }
  .catch-hand{
    top:106px;
    right:10px;
    width:clamp(116px,32vw,142px);
  }
  .stamp{
    top:330px;
    left:16px;
    right:auto;
    width:clamp(82px,23vw,100px);
    transform:rotate(-7deg);
  }
  .tags{
    width:min(72%,300px);
    gap:6px;
    margin-top:12px;
  }
  .tags li{
    font-size:clamp(12px,3.2vw,14px);
    line-height:1.2;
    border-radius:7px;
  }
  .lead{
    font-size:clamp(14px,3.7vw,17px);
    line-height:1.65;
    margin-top:12px;
    max-width:70%;
  }
  .joinus{
    left:122px;
    right:auto;
    transform:translateY(14px) rotate(-6deg);
    font-size:clamp(28px,8vw,36px);
    z-index:6;
    text-shadow:0 2px 0 rgba(255,255,255,.85),0 0 10px rgba(255,255,255,.75);
  }
  .cta-card{
    margin:auto 16px 20px;
    width:calc(100% - 32px);
  }
  .cta-btn{
    width:100%;
    justify-content:center;
    min-height:52px;
    padding:12px 16px;
    font-size:clamp(15px,4vw,18px);
  }
  .cta-btn__label{
    flex:0 1 auto;
    min-width:0;
  }
  .cta-btn__ico{
    width:26px;
    height:26px;
  }

  .about{
    padding:44px 0 0;
    font-size:clamp(12px,3.15vw,15px);
    background-position:center top;
  }
  .about__inner{padding:0 18px 44px}
  .about__watermark,
  .environment__script,
  .schedule__script,
  .interview__script,
  .faq__script,
  .job-info__script,
  .company-tour__script,
  .tour-voice__script{
    z-index:0;
    pointer-events:none;
  }
  .about__eyebrow,
  .about__title,
  .about__sub,
  .about__photos,
  .about__body,
  .about__feature,
  .about__banner,
  .environment__copy,
  .environment__eyebrow,
  .environment__title,
  .environment__lead,
  .environment__photo,
  .environment__grid,
  .schedule__copy,
  .schedule__eyebrow,
  .schedule__title,
  .schedule__lead,
  .schedule__hero-photo,
  .schedule__body,
  .interview__copy,
  .interview__eyebrow,
  .interview__title,
  .interview__lead,
  .interview__hero-photo,
  .interview__list,
  .faq__copy,
  .faq__eyebrow,
  .faq__title,
  .faq__lead,
  .faq__hero-photo,
  .faq__note,
  .faq__grid,
  .job-info__copy,
  .job-info__eyebrow,
  .job-info__title,
  .job-info__lead,
  .job-info__photo,
  .job-info__grid,
  .job-detail,
  .job-info__flow,
  .company-tour__copy,
  .company-tour__eyebrow,
  .company-tour__title,
  .company-tour__lead,
  .company-tour__photo,
  .tour-learn,
  .tour-voice h4,
  .tour-voice__grid{
    position:relative;
    z-index:1;
  }
  .about__watermark{
    top:-18px;
    left:12px;
    font-size:56px;
  }
  .about__eyebrow{
    margin-top:0;
    font-size:12px;
    letter-spacing:.12em;
  }
  .about__title-sm{font-size:clamp(24px,7vw,31px)}
  .about__title-lg{font-size:clamp(38px,11vw,49px)}
  .about__sub{
    width:min(92%,330px);
    margin:16px 0 14px;
  }
  .about__photos{
    margin:10px auto 18px;
    border-radius:18px;
  }
  .about__body{
    font-size:15px;
    line-height:1.9;
    font-weight:600;
  }
  .about__body br{display:none}
  .about__body p+p{margin-top:18px}
  .about__feature{margin-top:34px}
  .feature-pill{
    width:100%;
    justify-content:center;
    gap:10px;
    padding:10px 14px;
    font-size:16px;
    white-space:nowrap;
  }
  .feature-grid{
    grid-template-columns:1fr;
    gap:14px;
    margin-top:20px;
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  .fcard{
    display:grid;
    grid-template-columns:56px 1fr;
    column-gap:14px;
    align-items:center;
    text-align:left;
    padding:16px;
    border-radius:16px;
    background:rgba(255,255,255,.9);
    box-shadow:0 10px 24px rgba(255,120,160,.14);
  }
  .fcard+.fcard::before{display:none}
  .fcard__badge{
    grid-row:1 / span 2;
    width:52px;
    height:52px;
    margin:0;
  }
  .fcard__title{
    margin:0 0 4px;
    font-size:18px;
  }
  .fcard__desc{
    font-size:13px;
    line-height:1.65;
  }
  .fcard__desc br{display:none}
  .about__banner{
    width:100%;
    margin:28px auto 0;
  }

  .environment{
    margin:30px -18px 34px;
    padding:38px 18px 42px;
    background:
      radial-gradient(circle at 96% 13%, rgba(255,128,160,.18) 0 11%, transparent 28%),
      linear-gradient(180deg,#fff 0%,#fff7fb 56%,#fff 100%);
  }
  .environment::before{
    top:20px;
    right:12px;
    width:86px;
    height:70px;
    background-size:10px 10px;
    opacity:.75;
  }
  .environment::after{width:100%;height:22%}
  .environment__hero{
    min-height:0;
    display:block;
  }
  .environment__copy{
    padding:0;
  }
  .environment__script{
    left:-10px;
    top:-24px;
    font-size:54px;
    opacity:.7;
  }
  .environment__eyebrow{
    margin-bottom:18px;
    font-size:12px;
  }
  .environment__title span{
    font-size:clamp(24px,7vw,31px);
  }
  .environment__title strong{
    font-size:clamp(39px,10.7vw,43px);
    line-height:1.06;
    white-space:nowrap;
    letter-spacing:0;
  }
  .environment__lead{
    margin-top:16px;
    font-size:14px;
    line-height:1.85;
  }
  .environment__lead br{display:none}
  .environment__photo{
    position:relative;
    width:100%;
    height:auto;
    margin:24px 0 0;
    aspect-ratio:590 / 330;
    border-radius:0 0 0 48px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 100%);
  }
  .environment__photo::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.44) 16%,rgba(255,255,255,0) 42%);
  }
  .environment__grid{
    grid-template-columns:1fr;
    gap:14px;
    margin-top:22px;
  }
  .env-card{
    display:grid;
    grid-template-columns:54px 1fr;
    column-gap:14px;
    align-items:center;
    min-height:0;
    padding:16px;
    border-radius:18px;
    text-align:left;
  }
  .env-card__icon{
    grid-row:1 / span 2;
    width:52px;
    height:52px;
    margin:0;
  }
  .env-card h4{
    font-size:18px;
  }
  .env-card h4::after{
    margin:.48em 0 .34em;
  }
  .env-card p{
    margin:0;
    font-size:13px;
    line-height:1.65;
  }
  .env-card img{
    grid-column:1 / -1;
    margin-top:12px;
    border-radius:12px;
  }

  .schedule{
    margin:0 -18px 34px;
    padding:38px 18px 48px;
    background:
      radial-gradient(circle at 0 40%, rgba(255,128,160,.18) 0 12%, transparent 28%),
      radial-gradient(circle at 100% 58%, rgba(160,94,255,.14) 0 12%, transparent 28%),
      linear-gradient(180deg,#fff 0%,#fff8fb 100%);
  }
  .schedule::before{
    width:88px;
    height:88px;
    background-size:10px 10px;
  }
  .schedule::after{
    height:96px;
    opacity:.52;
  }
  .schedule__hero{
    min-height:0;
    display:block;
  }
  .schedule__script{
    top:-24px;
    left:-14px;
    font-size:50px;
  }
  .schedule__eyebrow{
    margin-bottom:16px;
    font-size:12px;
  }
  .schedule__title span{
    font-size:clamp(25px,7.3vw,32px);
  }
  .schedule__title strong{
    font-size:clamp(36px,10.2vw,40px);
    line-height:1.06;
    white-space:nowrap;
    letter-spacing:0;
  }
  .schedule__lead{
    margin-top:16px;
    font-size:14px;
    line-height:1.85;
  }
  .schedule__lead br{display:none}
  .schedule__lead::after{width:72%}
  .schedule__hero-photo{
    position:relative;
    top:auto;
    right:auto;
    width:100%;
    height:auto;
    aspect-ratio:537 / 300;
    margin-top:20px;
    border-radius:0 0 0 42px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 100%);
  }
  .schedule__hero-photo::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.46) 18%,rgba(255,255,255,0) 46%);
  }
  .schedule__body{
    display:block;
    margin-top:18px;
    padding:16px;
    border-radius:22px;
  }
  .schedule__timeline::before{
    left:72px;
    top:34px;
    bottom:34px;
  }
  .schedule-item{
    grid-template-columns:58px 14px 52px 1fr;
    gap:10px;
    min-height:0;
    padding:14px 0;
  }
  .schedule-item time strong{font-size:21px}
  .schedule-item time span{
    font-size:10px;
    padding:.28em .5em;
  }
  .schedule-item__dot{
    width:13px;
    height:13px;
    box-shadow:0 0 0 4px #fff;
  }
  .schedule-item__icon{
    width:48px;
    height:48px;
  }
  .schedule-item h4{
    font-size:16px;
  }
  .schedule-item p{
    font-size:12px;
    line-height:1.6;
  }
  .schedule__photos{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    min-height:0;
    margin-top:18px;
  }
  .schedule-photo{
    position:relative;
    top:auto;
    left:auto;
    width:100%;
    height:auto;
    aspect-ratio:16 / 9;
    border-radius:18px;
  }
  .schedule-photo--meeting,
  .schedule-photo--lunch,
  .schedule-photo--desk,
  .schedule-photo--leaving{
    top:auto;
    left:auto;
    width:100%;
    height:auto;
    border-radius:18px;
  }
  .schedule-bubble{
    position:relative;
    top:auto;
    right:auto;
    justify-self:end;
    max-width:78%;
    padding:.8em 1.1em;
    font-size:15px;
  }
  .schedule-bubble--pink,
  .schedule-bubble--orange,
  .schedule-bubble--purple,
  .schedule-bubble--orange2{
    top:auto;
    right:auto;
  }

  .interview{
    margin:0 -18px 34px;
    padding:38px 18px 46px;
    background:
      radial-gradient(circle at 100% 12%, rgba(255,80,154,.22) 0 12%, transparent 28%),
      linear-gradient(180deg,#fff 0%,#fff8fb 100%);
  }
  .interview::before{
    width:86px;
    height:86px;
    background-size:10px 10px;
  }
  .interview::after{
    width:80px;
    height:160px;
    background-size:10px 10px;
  }
  .interview__hero{
    min-height:0;
    display:block;
  }
  .interview__script{
    top:-24px;
    left:-10px;
    font-size:54px;
  }
  .interview__eyebrow{
    margin-bottom:16px;
    font-size:12px;
  }
  .interview__title span{
    font-size:clamp(26px,7.5vw,34px);
  }
  .interview__title strong{
    font-size:clamp(44px,11.6vw,48px);
    line-height:1.05;
    white-space:nowrap;
    letter-spacing:0;
  }
  .interview__lead{
    margin-top:16px;
    font-size:14px;
    line-height:1.85;
  }
  .interview__lead br{display:none}
  .interview__hero-photo{
    position:relative;
    top:auto;
    right:auto;
    width:100%;
    height:auto;
    aspect-ratio:485 / 300;
    margin-top:20px;
    border-radius:0 0 0 42px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
  }
  .interview__hero-photo::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.42) 18%,rgba(255,255,255,0) 46%);
  }
  .interview__list{
    gap:16px;
    margin-top:20px;
  }
  .interview-card{
    grid-template-columns:86px 1fr;
    gap:14px;
    align-items:start;
    padding:16px;
    border-radius:22px;
  }
  .interview-card__photo{
    width:86px;
    border-radius:16px;
  }
  .interview-card__main{
    min-width:0;
  }
  .interview-card__meta{
    gap:10px;
    margin-bottom:8px;
  }
  .interview-card__num{
    font-size:42px;
  }
  .interview-card__meta p{
    font-size:12px;
  }
  .interview-card__meta span:not(.interview-card__num){
    font-size:10px;
  }
  .interview-card h4{
    margin-bottom:8px;
    font-size:18px;
    line-height:1.45;
  }
  .interview-card__body{
    font-size:12px;
    line-height:1.7;
  }
  .interview-card__qa{
    grid-column:1 / -1;
    padding:14px 0 0;
    border-left:none;
    border-top:1px dotted #f4bfd5;
  }
  .interview-card__qa dt{
    font-size:13px;
    padding:.48em 1.1em;
  }
  .interview-card__qa dd{
    font-size:12px;
    line-height:1.7;
  }
  .interview-card__qa dd+dt{
    margin-top:12px;
  }

  .faq{
    margin:0 -18px 34px;
    padding:38px 18px 44px;
    background:
      radial-gradient(circle at 100% 8%, rgba(255,80,154,.22) 0 12%, transparent 28%),
      radial-gradient(circle at 0 82%, rgba(255,210,228,.36) 0 18%, transparent 34%),
      linear-gradient(180deg,#fff 0%,#fff8fb 100%);
  }
  .faq::before{
    width:86px;
    height:86px;
    background-size:10px 10px;
  }
  .faq::after{
    width:86px;
    height:120px;
    background-size:10px 10px;
  }
  .faq__hero{
    min-height:0;
    display:block;
  }
  .faq__script{
    top:-24px;
    left:-10px;
    font-size:56px;
  }
  .faq__eyebrow{
    margin-bottom:16px;
    font-size:11px;
    letter-spacing:.12em;
  }
  .faq__title{
    font-size:clamp(42px,12vw,54px);
    line-height:1.12;
  }
  .faq__lead{
    margin-top:16px;
    font-size:14px;
    line-height:1.85;
    letter-spacing:.02em;
  }
  .faq__lead br{display:none}
  .faq__hero-photo{
    position:relative;
    top:auto;
    right:auto;
    width:100%;
    height:auto;
    aspect-ratio:474 / 280;
    margin-top:20px;
    border-radius:0 0 0 42px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
  }
  .faq__hero-photo::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.42) 18%,rgba(255,255,255,0) 46%);
  }
  .faq__note{
    top:auto;
    right:14px;
    bottom:-12px;
    width:112px;
    height:112px;
    font-size:11px;
    line-height:1.45;
  }
  .faq__note span{
    font-size:25px;
  }
  .faq__grid{
    grid-template-columns:1fr;
    gap:12px;
    margin-top:24px;
  }
  .faq-item{
    min-height:0;
    padding:16px 38px 16px 12px;
    border-radius:18px;
  }
  .faq-item::after{
    right:15px;
    width:12px;
    height:12px;
    border-width:2px;
  }
  .faq-item h4{
    font-size:15px;
  }
  .faq-item__button{
    gap:8px;
    min-height:36px;
  }
  .faq-item__button span{
    width:32px;
    height:32px;
    font-size:18px;
  }
  .faq-item__answer{
    margin-top:8px;
  }
  .faq-item__answer p{
    margin-left:46px;
    font-size:12px;
    line-height:1.7;
  }

  .job-info{
    margin:0 -18px 34px;
    padding:38px 18px 46px;
    background:
      radial-gradient(circle at 100% 12%, rgba(255,80,154,.22) 0 12%, transparent 28%),
      linear-gradient(180deg,#fff 0%,#fff8fb 100%);
  }
  .job-info::before{
    width:86px;
    height:86px;
    background-size:10px 10px;
  }
  .job-info__hero{
    min-height:0;
    display:block;
  }
  .job-info__script{
    top:-24px;
    left:-10px;
    font-size:48px;
  }
  .job-info__eyebrow{
    margin-bottom:16px;
    font-size:12px;
  }
  .job-info__title{
    font-size:clamp(42px,12vw,54px);
  }
  .job-info__lead{
    margin-top:16px;
    font-size:14px;
    line-height:1.85;
  }
  .job-info__lead br{display:none}
  .job-info__photo{
    position:relative;
    top:auto;
    right:auto;
    width:100%;
    height:auto;
    aspect-ratio:668 / 310;
    margin-top:20px;
    border-radius:0 0 0 42px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
  }
  .job-info__photo::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.42) 18%,rgba(255,255,255,0) 46%);
  }
  .job-info__grid{
    grid-template-columns:1fr;
    gap:12px;
    margin-top:22px;
  }
  .job-card{
    display:grid;
    grid-template-columns:52px 1fr;
    column-gap:14px;
    align-items:center;
    min-height:0;
    padding:16px;
    border-radius:18px;
    text-align:left;
  }
  .job-card__icon{
    grid-row:1 / span 2;
    width:50px;
    height:50px;
    margin:0;
  }
  .job-card h4{
    margin:0 0 4px;
    font-size:18px;
  }
  .job-card p{
    font-size:12px;
    line-height:1.7;
  }
  .job-card--location h4 + p{
    word-break:keep-all;
    overflow-wrap:normal;
  }
  .job-detail{
    margin-top:22px;
    padding:16px;
    border-radius:20px;
  }
  .job-detail__head{
    display:block;
    margin-bottom:16px;
  }
  .job-detail__head h4{
    font-size:20px;
    letter-spacing:.04em;
  }
  .job-detail__head a{
    display:inline-block;
    margin-top:10px;
    font-size:12px;
  }
  .job-detail__grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .job-detail-card{
    padding:16px;
    border-radius:16px;
  }
  .job-detail-card h5{
    font-size:18px;
  }
  .job-detail-card h6{
    font-size:14px;
  }
  .job-detail-card p,
  .job-detail-card li{
    font-size:12px;
    line-height:1.7;
  }
  .job-detail-card__lead{
    font-size:14px!important;
  }
  .job-flow{
    margin-top:26px;
  }
  .job-flow h4{
    font-size:19px;
    letter-spacing:.08em;
  }
  .job-flow__list{
    grid-template-columns:1fr;
    gap:12px;
  }
  .job-step{
    display:grid;
    grid-template-columns:58px 1fr;
    column-gap:14px;
    align-items:center;
    min-height:0;
    padding:16px;
    border-radius:18px;
    text-align:left;
  }
  .job-step:not(:last-child)::after{
    top:auto;
    right:auto;
    left:27px;
    bottom:-14px;
    border-left:12px solid transparent;
    border-right:12px solid transparent;
    border-top:12px solid #ff5d8f;
    border-bottom:none;
    transform:none;
    z-index:2;
  }
  .job-step__step{
    grid-column:2;
    margin:0 0 4px;
    font-size:12px;
  }
  .job-step__step b{font-size:22px}
  .job-step__icon{
    grid-row:1 / span 3;
    width:54px;
    height:54px;
    margin:0;
  }
  .job-step h5{
    margin:0 0 4px;
    font-size:17px;
  }
  .job-step p{
    font-size:12px;
    line-height:1.65;
  }

  .company-tour{
    margin:0 -18px 34px;
    padding:38px 18px 46px;
    background:
      radial-gradient(circle at 100% 12%, rgba(255,80,154,.22) 0 12%, transparent 28%),
      linear-gradient(180deg,#fff 0%,#fff8fb 100%);
  }
  .company-tour::before{
    width:86px;
    height:86px;
    background-size:10px 10px;
  }
  .company-tour__hero{
    min-height:0;
    display:block;
  }
  .company-tour__script{
    top:-24px;
    left:-10px;
    font-size:48px;
  }
  .company-tour__eyebrow{
    margin-bottom:16px;
    font-size:12px;
  }
  .company-tour__title span{
    font-size:clamp(22px,5.9vw,24px);
    white-space:nowrap;
    letter-spacing:0;
  }
  .company-tour__title strong{
    font-size:clamp(40px,10.9vw,44px);
    line-height:1.06;
    white-space:nowrap;
    letter-spacing:0;
  }
  .company-tour__lead{
    margin-top:16px;
    font-size:14px;
    line-height:1.85;
  }
  .company-tour__lead br{display:none}
  .company-tour__photo{
    position:relative;
    top:auto;
    right:auto;
    width:100%;
    height:auto;
    aspect-ratio:523 / 310;
    margin-top:20px;
    border-radius:0 0 0 42px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
  }
  .company-tour__photo::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.42) 18%,rgba(255,255,255,0) 46%);
  }
  .tour-learn{margin-top:24px}
  .tour-learn h4,
  .tour-voice h4,
  .tour-steps h4{
    font-size:19px;
    letter-spacing:.04em;
  }
  .tour-learn__grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .tour-learn-card{
    display:grid;
    grid-template-columns:52px 1fr;
    column-gap:14px;
    align-items:center;
    min-height:0;
    padding:16px;
    border-radius:18px;
    text-align:left;
  }
  .tour-learn-card__icon{
    grid-row:1 / span 2;
    width:50px;
    height:50px;
    margin:0;
  }
  .tour-learn-card h5{
    margin:0 0 4px;
    font-size:18px;
  }
  .tour-learn-card p{
    font-size:12px;
    line-height:1.7;
  }
  .tour-voice{
    margin-top:34px;
  }
  .tour-voice__script{
    left:0;
    top:-34px;
    font-size:46px;
    opacity:.62;
  }
  .tour-voice__grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .tour-voice-card{
    align-items:center;
    min-height:0;
    padding:16px;
    border-radius:18px;
    text-align:center;
  }
  .tour-voice-card img{
    width:104px;
    height:104px;
  }
  .tour-voice-card h5{
    margin:12px 0 6px;
    font-size:16px;
  }
  .tour-voice-card p{
    margin-bottom:8px;
    font-size:12px;
    line-height:1.65;
  }
  .tour-voice-card span{
    font-size:11px;
  }
  .tour-steps{
    margin-top:30px;
  }
  .tour-steps__list{
    grid-template-columns:1fr;
    gap:0;
    background:transparent;
    box-shadow:none;
    overflow:visible;
  }
  .tour-step{
    grid-template-columns:58px 1fr;
    gap:14px;
    min-height:0;
    padding:16px;
    border-radius:18px;
    background:rgba(255,255,255,.94);
    box-shadow:0 12px 30px rgba(80,50,80,.09);
  }
  .tour-step:not(:last-child){
    margin-bottom:12px;
    border-right:none;
  }
  .tour-step:not(:last-child)::after{
    top:auto;
    right:auto;
    left:28px;
    bottom:-14px;
    border-left:12px solid transparent;
    border-right:12px solid transparent;
    border-top:12px solid #ff5d8f;
    border-bottom:none;
    transform:none;
  }
  .tour-step__step{
    grid-column:2;
    grid-row:1;
    font-size:12px;
  }
  .tour-step__step b{font-size:22px}
  .tour-step__icon{
    grid-column:1;
    grid-row:1 / span 3;
    width:54px;
    height:54px;
  }
  .tour-step > div{
    grid-column:2;
    grid-row:2 / span 2;
  }
  .tour-step h5{
    margin:0 0 4px;
    font-size:17px;
  }
  .tour-step p{
    font-size:12px;
    line-height:1.65;
  }

  .contact{
    padding:48px 0 72px;
    font-size:14px;
    background-position:center top;
  }
  .contact__inner{padding:0 16px}
  .contact__card{
    border-radius:22px;
    padding:24px 16px 18px;
  }
  .contact__title{
    font-size:clamp(26px,7.4vw,34px);
    line-height:1.35;
    margin-bottom:18px;
  }
  .ccol{
    border-radius:18px;
    padding:20px 14px;
  }
  .ccol__note{font-size:13px}
  .ccol__head{
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
  }
  .ccol__head-txt{
    width:100%;
    text-align:center;
    font-size:clamp(23px,6.4vw,30px);
  }
  .ccol__desc{
    font-size:14px;
    line-height:1.65;
  }
  .ccol__desc br{display:none}

  .menu{
    background-position:center top;
  }
  .menu__inner{
    padding:18px 16px 28px;
  }
  .menu__head{margin-bottom:18px}
  .menu__close{
    width:42px;
    height:42px;
    flex:0 0 auto;
  }
  .mnav{
    min-height:52px;
    padding:12px 2px;
    font-size:16px;
  }
  .mnav__ico{
    width:24px;
    height:24px;
  }
  .menu__cta{gap:12px}
  .menu-card{
    border-radius:16px;
    padding:14px;
  }
  .menu-card .cta-btn{
    font-size:15px;
    padding:12px 14px;
  }

  .footer__main{
    margin-top:-24px;
    padding:42px 0 38px;
    border-radius:26px 26px 0 0;
  }
  .footer__inner{
    display:flex;
    flex-direction:column;
    gap:28px;
    padding:0 18px;
    font-size:14px;
  }
  .logo--footer .logo__mark{
    font-size:32px;
    background:var(--grad);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    -webkit-text-fill-color:transparent;
  }
  .footer__hand{
    width:min(78%,260px);
    margin:16px 0 14px;
  }
  .footer__lead{
    font-size:13px;
    line-height:1.75;
  }
  .footer__city{
    width:100%;
    opacity:.28;
  }
  .fcol__title{
    font-size:18px;
    margin-bottom:8px;
  }
  .fcol__list a{
    min-height:44px;
    padding:10px 0;
    font-size:15px;
  }
  .fcol--entry{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  .fcol--entry .fcol__title{margin-bottom:0}
  .fcol--entry .fbtn{
    margin-top:0;
    min-height:58px;
    padding:12px 16px;
    border-radius:16px;
    font-size:16px;
  }
  .fbtn__txt br{display:none}
  .footer__bottom{
    padding:24px 18px 76px;
  }
  .footer__legal{
    flex-direction:column;
    gap:10px;
  }
  .footer__legal li{
    padding-right:0;
  }
  .footer__legal li:not(:last-child)::after{display:none}
  .footer__legal a{font-size:13px}
  .footer__copy{font-size:12px}
  .footer__top{
    right:18px;
    bottom:22px;
    width:44px;
    height:44px;
  }
}

@media (max-width:360px){
  .headline-sp{max-width:80%}
  .headline-sp__row{font-size:30px}
  .catch-hand{width:108px}
  .stamp{
    top:148px;
    right:52px;
    width:78px;
  }
  .lead{max-width:76%}
  .feature-pill{
    font-size:14px;
    padding-inline:10px;
  }
}

@media (max-width:760px){
  .environment__title,
  .schedule__title,
  .interview__title,
  .faq__title,
  .company-tour__title{
    position:relative !important;
    z-index:999 !important;
    overflow:visible !important;
    width:100% !important;
    max-width:none !important;
  }
  .environment__title strong,
  .schedule__title strong,
  .interview__title strong,
  .company-tour__title strong{
    position:relative !important;
    z-index:1000 !important;
    display:inline-block !important;
    width:auto !important;
    max-width:none !important;
    overflow:visible !important;
    white-space:nowrap !important;
    padding-right:.12em !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
  }
  .environment__title strong{
    font-size:clamp(28px,7.7vw,31px) !important;
  }
  .schedule__title strong{
    font-size:clamp(27px,7.45vw,30px) !important;
  }
  .company-tour__title strong{
    font-size:clamp(31px,8.25vw,33px) !important;
  }
}

/* =========================================================
   Unified page background
   FV, contact CTA and footer keep their own visual worlds.
========================================================= */
.about{
  background:
    radial-gradient(circle at 100% 5%, rgba(255,79,154,.12) 0 8rem, transparent 20rem),
    radial-gradient(circle at 0 18%, rgba(255,191,218,.18) 0 10rem, transparent 24rem),
    radial-gradient(circle at 100% 44%, rgba(255,138,76,.10) 0 9rem, transparent 24rem),
    radial-gradient(circle at 0 68%, rgba(255,208,226,.16) 0 12rem, transparent 28rem),
    linear-gradient(180deg,#fff 0%,#fff8fb 24%,#fff 48%,#fff7fb 74%,#fff 100%) !important;
  background-size:auto !important;
}
.environment,
.schedule,
.interview,
.faq,
.job-info,
.company-tour{
  background:transparent !important;
}
.environment::after,
.schedule::after{
  display:none;
}
.environment__photo::after,
.schedule__hero-photo::after,
.interview__hero-photo::after,
.faq__hero-photo::after,
.job-info__photo::after,
.company-tour__photo::after{
  background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.48) 20%,rgba(255,255,255,0) 52%) !important;
}
.environment,
.schedule,
.interview,
.faq,
.job-info,
.company-tour,
.environment__copy,
.schedule__copy,
.company-tour__copy,
.environment__title,
.schedule__title,
.company-tour__title{
  overflow:visible !important;
}
.environment__title strong,
.schedule__title strong,
.company-tour__title strong{
  position:relative !important;
  z-index:20 !important;
  display:inline-block !important;
  width:auto !important;
  max-width:none !important;
  overflow:visible !important;
  white-space:nowrap !important;
  padding-right:.08em;
  isolation:isolate;
}
.about__watermark,
.environment__script,
.schedule__script,
.interview__script,
.faq__script,
.job-info__script,
.company-tour__script,
.tour-voice__script{
  z-index:0 !important;
  pointer-events:none;
}
.about__eyebrow,
.about__title,
.about__sub,
.about__photos,
.about__body,
.about__feature,
.about__banner,
.environment__copy,
.environment__eyebrow,
.environment__title,
.environment__lead,
.environment__photo,
.environment__grid,
.schedule__copy,
.schedule__eyebrow,
.schedule__title,
.schedule__lead,
.schedule__hero-photo,
.schedule__body,
.interview__copy,
.interview__eyebrow,
.interview__title,
.interview__lead,
.interview__hero-photo,
.interview__list,
.faq__copy,
.faq__eyebrow,
.faq__title,
.faq__lead,
.faq__hero-photo,
.faq__note,
.faq__grid,
.job-info__copy,
.job-info__eyebrow,
.job-info__title,
.job-info__lead,
.job-info__photo,
.job-info__grid,
.job-detail,
.job-flow,
.company-tour__copy,
.company-tour__eyebrow,
.company-tour__title,
.company-tour__lead,
.company-tour__photo,
.tour-learn,
.tour-voice h4,
.tour-voice__grid,
.tour-steps{
  position:relative;
  z-index:1;
}
.about__photos{
  position:absolute;
  top:1.5em;
  right:clamp(20px,4vw,40px);
  width:46%;
  max-width:520px;
  height:auto;
  z-index:1;
}

@media (min-width:761px){
  .about__title-lg{
    width:max-content;
    max-width:100%;
    white-space:nowrap;
  }
  .faq__note{
    z-index:5;
    transform:translate(600px,-250px);
  }
  .interview__copy,
  .faq__copy{
    width:max-content;
    max-width:none;
    overflow:visible;
    z-index:5;
  }
  .interview__title,
  .faq__title{
    width:max-content;
    max-width:none;
    overflow:visible;
    white-space:nowrap;
  }
  .interview__title strong,
  .faq__title{
    position:relative;
    z-index:6;
    display:inline-block;
    width:max-content;
    max-width:none;
    overflow:visible;
    white-space:nowrap;
    padding-right:.08em;
    letter-spacing:0;
  }
  .interview__title strong{
    font-size:clamp(60px,6.05vw,88px);
  }
  .faq__title{
    font-size:clamp(54px,5.35vw,76px);
  }
  .environment__photo,
  .schedule__hero-photo,
  .interview__hero-photo,
  .faq__hero-photo,
  .job-info__photo,
  .company-tour__photo{
    right:calc(max(36px, calc((100vw - 1240px) / 2 + 48px)) * -1) !important;
  }
}

@media (max-width:760px){
  .about{
    background:
      radial-gradient(circle at 100% 6%, rgba(255,79,154,.13) 0 86px, transparent 210px),
      radial-gradient(circle at 0 22%, rgba(255,210,228,.18) 0 92px, transparent 220px),
      radial-gradient(circle at 100% 50%, rgba(255,138,76,.10) 0 84px, transparent 210px),
      radial-gradient(circle at 0 76%, rgba(255,210,228,.16) 0 92px, transparent 230px),
      linear-gradient(180deg,#fff 0%,#fff8fb 26%,#fff 52%,#fff7fb 78%,#fff 100%) !important;
  }
  .environment,
  .schedule,
  .interview,
  .faq,
  .job-info,
  .company-tour{
    background:transparent !important;
  }
  .environment::after,
  .schedule::after{
    display:none;
  }
  .about__photos{
    position:relative;
    top:auto;
    right:auto;
    width:100%;
    max-width:none;
    height:auto;
  }
  .environment__photo,
  .schedule__hero-photo,
  .interview__hero-photo,
  .faq__hero-photo,
  .job-info__photo,
  .company-tour__photo{
    width:calc(100% + 18px) !important;
    margin-right:-18px !important;
    margin-left:0 !important;
    border-radius:0 0 0 42px;
  }
  .environment__title strong,
  .schedule__title strong,
  .interview__title strong,
  .faq__title{
    display:inline-block;
    width:auto;
    max-width:none;
    white-space:nowrap;
    letter-spacing:0;
  }
  .environment__title strong{
    font-size:clamp(28px,7.7vw,31px);
    line-height:1.08;
  }
  .schedule__title strong{
    font-size:clamp(27px,7.45vw,30px);
    line-height:1.08;
  }
  .interview__title strong{
    font-size:clamp(39px,10.55vw,43px);
    line-height:1.08;
  }
  .faq__title{
    font-size:clamp(34px,9.5vw,38px);
    line-height:1.12;
  }
  .schedule__lead{
    font-size:14px;
    letter-spacing:0;
    white-space:normal;
  }
  .schedule__lead br{
    display:block;
  }
  .schedule__lead-nowrap{
    display:block;
    white-space:nowrap;
    font-size:clamp(12px,3.3vw,13px);
  }
  .faq__hero{
    position:relative;
  }
  .faq__hero-photo{
    margin-top:20px;
  }
  .faq__note{
    position:absolute !important;
    top:auto;
    right:-2px;
    bottom:8px;
    width:124px;
    height:124px;
    z-index:2;
    transform:translateX(0);
    background:rgba(255,255,255,.72);
  }
  .interview__title strong{
    display:block;
    white-space:nowrap;
  }
  .company-tour__title strong{
    display:block;
    white-space:nowrap;
    font-size:clamp(31px,8.4vw,34px);
  }
}

@media (max-width:760px){
  .environment__title,
  .schedule__title,
  .company-tour__title{
    position:relative !important;
    z-index:999 !important;
    overflow:visible !important;
  }
  .environment__title strong,
  .schedule__title strong,
  .company-tour__title strong{
    position:relative !important;
    z-index:1000 !important;
    display:inline-block !important;
    width:auto !important;
    max-width:none !important;
    overflow:visible !important;
    white-space:nowrap !important;
    padding-right:.14em !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
  }
  .interview__copy,
  .faq__copy{
    width:100% !important;
    max-width:none !important;
    overflow:visible !important;
  }
  .faq__title{
    position:relative !important;
    z-index:1000 !important;
    display:inline-block !important;
    width:auto !important;
    max-width:none !important;
    overflow:visible !important;
    white-space:nowrap !important;
    padding-right:.14em !important;
    letter-spacing:0 !important;
    background-clip:text !important;
    -webkit-background-clip:text !important;
  }
  .environment__title strong{
    font-size:clamp(28px,7.7vw,31px) !important;
  }
  .schedule__title strong{
    font-size:clamp(27px,7.45vw,30px) !important;
  }
  .interview__title strong{
    font-size:clamp(30px,8.25vw,34px) !important;
  }
  .faq__title{
    font-size:clamp(30px,8.25vw,34px) !important;
  }
  .company-tour__title strong{
    font-size:clamp(30px,8.05vw,32px) !important;
  }
}
