/* ============================================
   RESUme LP V3 — "Warm Discovery"
   個人向け・自己発見ジャーニー
   参考: SHElikes / SkillSkip / STUDY FOR ALL
   ============================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --green:#1B5E4B;
  --green-d:#134236;
  --green-l:#34A17B;
  --mint:#D4F0E7;
  --mint-l:#EAF8F3;
  --cream:#FFF9F0;
  --warm:#FEF6EC;
  --orange:#F2994A;
  --orange-l:#FBBE6A;
  --gold:#D4A843;
  --coral:#F07070;
  --dark:#1A1A1A;
  --g800:#333;
  --g600:#666;
  --g400:#999;
  --g200:#DDD;
  --g100:#F3F3F1;
  --white:#FFF;
  --bg:#FEFEFE;
  --grad-green:linear-gradient(135deg,var(--green),var(--green-l));
  --grad-warm:linear-gradient(135deg,var(--mint-l),var(--cream));
  --grad-orange:linear-gradient(135deg,var(--orange),var(--orange-l));
  --ff:'Zen Maru Gothic',sans-serif;
  --fd:'Montserrat',sans-serif;
  --fh:'Caveat',cursive;
  --fk:'Klee One',cursive;
  --fm:'JetBrains Mono',monospace;
  --max:1080px;
  --ease:cubic-bezier(.4,0,.2,1);
  --r:16px;
}

html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--ff);font-weight:400;line-height:1.9;color:var(--g800);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:var(--green);text-decoration:none;transition:.2s}

h1,h2,h3,h4{font-family:var(--fk),var(--ff);font-weight:700;line-height:1.35;color:var(--dark);letter-spacing:-.01em}
h1{font-size:clamp(1.625rem,4.2vw,2.5rem);font-weight:700}
h2{font-size:clamp(1.375rem,3vw,2rem);font-weight:700}
h3{font-size:clamp(1rem,1.8vw,1.25rem)}

/* Animated underline for emphasis */
.wiggle{position:relative;display:inline-block}
.wiggle::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:6px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M0 3 Q 12.5 0 25 3 T 50 3 T 75 3 T 100 3' fill='none' stroke='%23F2994A' stroke-width='2'/%3E%3C/svg%3E") repeat-x;background-size:80px 6px}

/* Soft wobble animation */
@keyframes wobble{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
.wobble{animation:wobble 3s ease-in-out infinite}

/* Float animation */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.float{animation:float 3s ease-in-out infinite}

/* Handwritten accent */
.hand{font-family:var(--fh);font-weight:400;font-size:1.5em;color:var(--orange);transform:rotate(-2deg);display:inline-block}
.en{font-family:var(--fd);font-weight:800;letter-spacing:-.02em}

/* Tags / Badges */
.tag{
  display:inline-block;font-size:.6875rem;font-weight:700;
  padding:5px 14px;border-radius:9999px;letter-spacing:.02em;
}
.tag--green{background:var(--green);color:var(--white)}
.tag--mint{background:var(--mint);color:var(--green)}
.tag--orange{background:var(--orange);color:var(--white)}

/* Circle badge (like reference images) */
.circle-badge{
  width:80px;height:80px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:.625rem;font-weight:700;line-height:1.3;text-align:center;
  box-shadow:0 4px 16px rgba(0,0,0,.08);
  position:absolute;z-index:5;
}
.circle-badge--green{background:var(--green);color:var(--white)}
.circle-badge--orange{background:var(--orange);color:var(--white)}
.circle-badge--white{background:var(--white);color:var(--green);border:2px solid var(--mint)}

/* Ribbon (diagonal) */
.ribbon{
  position:absolute;z-index:5;
  background:var(--green);color:var(--white);
  font-size:.6875rem;font-weight:700;letter-spacing:.04em;
  padding:8px 40px;
  transform:rotate(-4deg);
  box-shadow:0 2px 12px rgba(27,94,75,.2);
  border-radius:4px;
}

.sub{font-size:clamp(.9375rem,1.3vw,1.0625rem);color:var(--g600);max-width:600px;line-height:1.9}

/* Layout */
.w{max-width:var(--max);margin:0 auto;padding:0 clamp(16px,4vw,28px)}
.sec{padding:clamp(52px,8vw,88px) 0;position:relative}
.sec--white{background:var(--white)}
.sec--mint{background:var(--mint-l)}
.sec--warm{background:var(--warm)}
.sec--green{background:var(--green);color:var(--white)}
.sec--green h2,.sec--green h3{color:var(--white)}
.sec--dark{background:var(--dark);color:var(--white)}
.sec--dark h2,.sec--dark h3{color:var(--white)}
.sh{text-align:center;margin-bottom:clamp(32px,5vw,52px)}
.sh .sub{margin:12px auto 0}

.g{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}

/* Accent dot line */
.dot-line{width:48px;height:3px;background:var(--grad-green);border-radius:2px;margin:0 auto 16px}

/* Buttons — warm, rounded */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:16px 36px;font-family:var(--ff);font-size:.9375rem;font-weight:700;line-height:1;
  border:none;border-radius:9999px;cursor:pointer;transition:all .3s var(--ease);text-decoration:none;
}
.btn--primary{background:var(--grad-green);color:var(--white);box-shadow:0 4px 20px rgba(27,94,75,.2)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(27,94,75,.3);color:var(--white)}
.btn--orange{background:var(--grad-orange);color:var(--white);box-shadow:0 4px 20px rgba(242,153,74,.25)}
.btn--orange:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(242,153,74,.35);color:var(--white)}
.btn--outline{background:var(--white);color:var(--green);border:2px solid var(--green)}
.btn--outline:hover{background:var(--mint-l);color:var(--green)}
.btn--ghost{background:rgba(255,255,255,.15);color:var(--white);border:1.5px solid rgba(255,255,255,.3);border-radius:9999px}
.btn--ghost:hover{background:rgba(255,255,255,.25);color:var(--white)}
.btn--lg{padding:18px 44px;font-size:1rem}

/* Cards — rounded, warm shadow */
.card{background:var(--white);border:1px solid var(--g200);border-radius:var(--r);padding:28px;transition:all .3s var(--ease)}
.card:hover{box-shadow:0 8px 28px rgba(0,0,0,.07);transform:translateY(-3px)}
.card--pop{border:2px solid var(--green);box-shadow:0 6px 24px rgba(27,94,75,.1)}
.card--pop::before{content:attr(data-badge);position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--orange);color:var(--white);font-size:.6875rem;font-weight:700;padding:4px 18px;border-radius:9999px}

/* Big numbers */
.big-num{font-family:var(--fd);font-weight:900;line-height:1;background:var(--grad-green);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* Header */
.hd{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.04);padding:0 clamp(16px,4vw,28px)}
.hd__in{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:60px}
.hd__logo{display:flex;align-items:center;gap:8px}
.hd__logo img{height:36px}
.hd__logo span{font-size:.6875rem;color:var(--g400)}
.nav{display:flex;align-items:center;gap:24px}
.nav a{font-size:.8125rem;font-weight:600;color:var(--g600)}
.nav a:hover{color:var(--green)}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.menu-toggle span{display:block;width:22px;height:1.5px;background:var(--dark);margin:5px 0}

/* ===== HERO V3 — Warm Product Discovery ===== */
.hero3{
  padding:clamp(80px,10vw,110px) 0 clamp(48px,6vw,72px);
  background:var(--grad-warm);
  position:relative;overflow:hidden;
}
/* Soft organic blob decorations */
.hero3::before{
  content:'';position:absolute;top:-80px;right:-60px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,var(--mint) 0%,transparent 70%);
  opacity:.5;z-index:0;
}
.hero3::after{
  content:'';position:absolute;bottom:-120px;left:-80px;
  width:350px;height:350px;border-radius:50%;
  background:radial-gradient(circle,rgba(242,153,74,.1) 0%,transparent 70%);
  z-index:0;
}

.hero3__inner{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
}
.hero3__content{max-width:520px}
.hero3__catch{
  font-size:clamp(1.75rem,4.2vw,2.625rem);
  font-weight:900;line-height:1.35;
  margin-bottom:16px;
}
.hero3__catch em{
  font-style:normal;
  background:linear-gradient(transparent 60%,var(--mint) 60%);
  padding:0 4px;
}
.hero3__sub{
  font-size:clamp(.9375rem,1.2vw,1.0625rem);
  color:var(--g600);line-height:1.9;margin-bottom:28px;
}
.hero3__cta{display:flex;gap:12px;flex-wrap:wrap}

/* Product visual area */
.hero3__visual{
  position:relative;
  display:flex;justify-content:center;align-items:center;
  min-height:380px;
}
.hero3__kit{
  position:relative;z-index:2;
  border-radius:20px;overflow:hidden;
  box-shadow:0 20px 48px rgba(0,0,0,.1);
  max-width:320px;
  transform:rotate(2deg);
}
.hero3__phone{
  position:absolute;z-index:3;
  bottom:-20px;right:-30px;
  width:160px;
  border-radius:16px;overflow:hidden;
  box-shadow:0 12px 36px rgba(0,0,0,.15);
  border:3px solid var(--white);
  transform:rotate(-3deg);
}

/* Comparison table */
.cmp{width:100%;border-collapse:separate;border-spacing:0;font-size:.8125rem;line-height:1.5}
.cmp th{padding:12px 14px;font-weight:700;text-align:center;border-bottom:2px solid var(--g100);font-size:.75rem}
.cmp td{padding:12px 14px;text-align:center;border-bottom:1px solid var(--g100)}
.cmp .hl{background:var(--mint-l)}
.cmp .hl-head{background:var(--green);color:var(--white);border-radius:12px 12px 0 0;font-size:.875rem;font-weight:700}
.cmp tr:last-child .hl{border-radius:0 0 12px 12px}
.cmp .rl{text-align:left;font-weight:600;color:var(--g600)}
.cmp .yes{color:var(--green);font-weight:700}
.cmp .no{color:var(--g200)}

/* Steps with circle photos */
.step-circle{text-align:center}
.step-circle__img{
  width:160px;height:160px;border-radius:50%;overflow:hidden;
  margin:0 auto 16px;box-shadow:0 6px 20px rgba(0,0,0,.08);
  border:4px solid var(--white);
}
.step-circle__img img{width:100%;height:100%;object-fit:cover}
.step-circle__num{
  width:32px;height:32px;border-radius:50%;
  background:var(--green);color:var(--white);
  font-family:var(--fd);font-weight:800;font-size:.8125rem;
  display:flex;align-items:center;justify-content:center;
  margin:-16px auto 10px;position:relative;z-index:1;
  border:3px solid var(--bg);
}
.step-circle__title{font-weight:700;font-size:.9375rem;margin-bottom:4px}
.step-circle__desc{font-size:.75rem;color:var(--g400);line-height:1.5}

/* Pricing */
.price__num{font-family:var(--fd);font-size:clamp(2rem,4vw,2.5rem);font-weight:900;color:var(--green);line-height:1}
.price__unit{font-size:.75rem;color:var(--g400);margin:4px 0 16px}
.price__list{list-style:none;text-align:left;margin-bottom:24px}
.price__list li{padding:7px 0;font-size:.8125rem;border-bottom:1px solid var(--g100);padding-left:22px;position:relative;line-height:1.5}
.price__list li::before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:700;font-size:.75rem}

/* Form */
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:.8125rem;font-weight:600;margin-bottom:4px;color:var(--g600)}
.form-group .req{color:var(--coral);font-size:.625rem;margin-left:2px}
.fi{width:100%;padding:11px 14px;font-family:var(--ff);font-size:.9375rem;border:1.5px solid var(--g200);border-radius:10px;background:var(--white);transition:border-color .2s,box-shadow .2s}
.fi:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(27,94,75,.08)}
textarea.fi{resize:vertical;min-height:80px}

/* Footer */
.ft{background:var(--green-d);color:rgba(255,255,255,.6);padding:40px 0 20px}
.ft__in{max-width:var(--max);margin:0 auto;padding:0 clamp(16px,4vw,28px)}
.ft__top{display:flex;justify-content:space-between;gap:40px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.08)}
.ft__brand img{height:28px;filter:brightness(0) invert(1)}
.ft__links{display:flex;gap:16px;flex-wrap:wrap}
.ft__links a{color:rgba(255,255,255,.4);font-size:.6875rem}
.ft__links a:hover{color:var(--white)}
.ft__disc{font-size:.625rem;color:rgba(255,255,255,.2);line-height:1.7;max-width:680px;margin-bottom:16px}
.ft__copy{font-size:.625rem;color:rgba(255,255,255,.12);text-align:center}

/* Animations */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}

/* Responsive */
@media(max-width:1023px){
  .hero3__inner{grid-template-columns:1fr}
  .hero3__visual{min-height:auto;margin-top:32px}
  .g3{grid-template-columns:1fr 1fr}
  .g5{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:767px){
  .g2,.g3,.g5{grid-template-columns:1fr}
  .hero3__cta{flex-direction:column}
  .hero3__visual{display:none}
  .nav{display:none;flex-direction:column;position:absolute;top:60px;left:0;right:0;background:var(--white);padding:20px;box-shadow:0 8px 20px rgba(0,0,0,.08)}
  .nav.is-open{display:flex}
  .menu-toggle{display:block}
  .ft__top{flex-direction:column}
  .cmp{font-size:.6875rem}
  .cmp th,.cmp td{padding:8px 6px}
}
