/* ============================================================
   vlam ladies — women.vlamhair.com
   HIGH-TONE COLOR SPECIALIST — vivid / holographic / 派手め
   ============================================================ */

:root{
  --bg:       #fbfaff;
  --bg-2:     #f2eefc;
  --ink:      #16131f;
  --ink-2:    #2a2436;
  --ink-soft: #6a6280;
  --line:     #e8e2f4;
  --white:    #ffffff;

  --pink:   #ff3d9a;
  --violet: #8b5cf6;
  --blue:   #34c6ff;
  --peach:  #ffb37a;

  --holo: linear-gradient(115deg,#a9c4ff 0%,#c6a4ff 26%,#ff9ed6 52%,#ffc69e 74%,#9ff0ff 100%);
  --holo-soft: linear-gradient(115deg,#d8e3ff,#e7d6ff,#ffd6ee,#ffe7d2,#d6f6ff);
  --grad-cta: linear-gradient(100deg,#ff3d9a,#8b5cf6 60%,#34c6ff);

  --serif:'Playfair Display', serif;
  --disp:'Unbounded', sans-serif;
  --sans:'Zen Kaku Gothic New','Noto Sans JP', sans-serif;
  --maxw:1240px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body{
  font-family:var(--sans); background:var(--bg); color:var(--ink);
  line-height:1.85; font-weight:400; overflow-x:hidden; letter-spacing:.01em;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.wrap{ width:90%; max-width:var(--maxw); margin-inline:auto; }

/* gradient text */
.holo-text{
  background:var(--holo); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  background-size:200% 100%; animation:holoShift 9s ease-in-out infinite;
}
@keyframes holoShift{ 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }

.eyebrow{
  display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--disp); font-weight:500; font-size:.66rem;
  letter-spacing:.34em; text-transform:uppercase;
}
.eyebrow::before{ content:""; width:30px; height:6px; border-radius:6px; background:var(--holo); }

.btn{
  display:inline-flex; align-items:center; gap:.6em; cursor:pointer;
  font-family:var(--disp); font-weight:500; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;
  padding:1.05em 2.2em; border-radius:999px; color:#fff; background:var(--grad-cta);
  background-size:160% 100%; border:0; transition:.45s cubic-bezier(.2,.7,.3,1);
  box-shadow:0 14px 34px -14px rgba(139,92,246,.7);
}
.btn:hover{ background-position:100% 0; transform:translateY(-3px); box-shadow:0 20px 44px -16px rgba(255,61,154,.6); }
.btn svg{ width:16px; height:16px; }
.btn--ghost{
  background:transparent; color:var(--ink); border:1.5px solid transparent;
  background-image:linear-gradient(var(--bg),var(--bg)),var(--holo);
  background-origin:border-box; background-clip:padding-box,border-box; box-shadow:none;
}
.btn--ghost:hover{ transform:translateY(-3px); }
.btn--light{ background:#fff; color:var(--ink); box-shadow:0 14px 34px -14px rgba(0,0,0,.3); }

/* ---------- HEADER ---------- */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:60; display:flex; align-items:center; justify-content:space-between;
  padding:1.3rem 5%; transition:.45s ease;
}
.hdr.scrolled{ background:rgba(251,250,255,.8); backdrop-filter:blur(16px) saturate(1.4); padding:.85rem 5%; border-bottom:1px solid var(--line); }
.brand{ display:flex; flex-direction:column; line-height:1; }
.brand__main{ font-family:var(--disp); font-weight:600; font-size:1.35rem; letter-spacing:.02em; }
.brand__main b{ font-weight:600; }
.brand__main .lad{ font-size:.6em; letter-spacing:.2em; }
.brand__sub{ font-size:.54rem; letter-spacing:.32em; text-transform:uppercase; color:var(--ink-soft); margin-top:.45em; font-family:var(--disp); }
.nav{ display:flex; align-items:center; gap:2rem; }
.nav a{ font-family:var(--disp); font-weight:400; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; position:relative; }
.nav a:not(.nav__cta)::after{ content:""; position:absolute; left:0; bottom:-7px; width:0; height:3px; border-radius:3px; background:var(--holo); transition:.35s; }
.nav a:not(.nav__cta):hover::after{ width:100%; }
.nav__cta{ padding:.7em 1.5em; border-radius:999px; color:#fff; background:var(--grad-cta); background-size:160% 100%; }
.nav__cta:hover{ background-position:100% 0; }
.burger{ display:none; flex-direction:column; gap:6px; background:none; border:0; cursor:pointer; }
.burger span{ width:26px; height:2px; border-radius:2px; background:var(--ink); transition:.3s; }

/* ---------- HERO ---------- */
.hero{ position:relative; min-height:100vh; display:flex; align-items:center; padding:9rem 5% 4rem; overflow:hidden; }
.hero__orbs{ position:absolute; inset:0; z-index:0; filter:blur(60px); opacity:.85; pointer-events:none; }
.hero__orbs i{ position:absolute; border-radius:50%; display:block; mix-blend-mode:multiply; animation:float 14s ease-in-out infinite; }
.hero__orbs i:nth-child(1){ width:46vw; height:46vw; left:-8vw; top:-6vw; background:radial-gradient(circle,#ffb3df,transparent 70%); }
.hero__orbs i:nth-child(2){ width:40vw; height:40vw; right:-6vw; top:2vw; background:radial-gradient(circle,#bfa4ff,transparent 70%); animation-delay:-4s; }
.hero__orbs i:nth-child(3){ width:34vw; height:34vw; right:14vw; bottom:-10vw; background:radial-gradient(circle,#a4e8ff,transparent 70%); animation-delay:-8s; }
@keyframes float{ 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(3%,4%) scale(1.08)} 66%{transform:translate(-3%,-3%) scale(.95)} }
.hero__grid{ position:relative; z-index:1; width:100%; max-width:var(--maxw); margin-inline:auto; display:grid; grid-template-columns:1.02fr .98fr; gap:3.5rem; align-items:center; }
.hero__copy .eyebrow{ margin-bottom:1.4rem; }
.hero__title{ font-family:var(--disp); font-weight:700; font-size:clamp(2.7rem,6.2vw,5rem); line-height:1.02; letter-spacing:-.01em; margin-bottom:1.5rem; }
.hero__title .jp{ font-family:var(--sans); font-weight:700; display:block; }
.hero__lead{ font-size:1.02rem; line-height:2.05; color:var(--ink-2); max-width:30em; margin-bottom:2.4rem; }
.hero__lead b{ font-weight:700; }
.hero__actions{ display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.hero__media{ position:relative; }
.hero__frame{
  aspect-ratio:4/5; border-radius:230px 230px 18px 18px; padding:8px; background:var(--holo); background-size:200% 200%;
  animation:holoShift 9s ease-in-out infinite; box-shadow:0 50px 90px -40px rgba(139,92,246,.55);
}
.hero__img{
  width:100%; height:100%; border-radius:224px 224px 12px 12px; overflow:hidden;
  background:linear-gradient(160deg,#fff,#f0eafb); background-size:cover; background-position:center;
}
.hero__img[data-src]{ background-image: var(--img); }
.hero__badge{
  position:absolute; left:-22px; bottom:42px; background:#fff; padding:1rem 1.4rem; border-radius:16px; text-align:center;
  box-shadow:0 26px 54px -22px rgba(139,92,246,.5);
}
.hero__badge .n{ font-family:var(--disp); font-weight:700; font-size:1.8rem; line-height:1; }
.hero__badge .l{ font-family:var(--disp); font-size:.56rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-top:.45em; }

/* ---------- RIBBON ---------- */
.ribbon{ background:var(--ink); color:#fff; padding:1.05rem 0; overflow:hidden; }
.ribbon__track{ display:flex; gap:2rem; white-space:nowrap; animation:slide 30s linear infinite; }
.ribbon__track span{ font-family:var(--disp); font-weight:500; font-size:1rem; letter-spacing:.08em; text-transform:uppercase; }
.ribbon__track .dot{ background:var(--holo); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ---------- SECTION SHELL ---------- */
.sec{ padding:7rem 0; position:relative; }
.sec__head{ text-align:center; max-width:46em; margin:0 auto 3.6rem; display:flex; flex-direction:column; align-items:center; gap:1.1rem; }
.sec__title{ font-family:var(--disp); font-weight:700; font-size:clamp(2rem,4.4vw,3.3rem); line-height:1.08; }
.sec__title .jp{ font-family:var(--sans); }
.sec__desc{ color:var(--ink-soft); line-height:2; }

/* ---------- COLOR SHOWCASE (star) ---------- */
.color{ background:var(--ink); color:#fff; overflow:hidden; }
.color::before{ content:""; position:absolute; inset:0; background:var(--holo); opacity:.14; }
.color .wrap{ position:relative; z-index:1; }
.color .sec__title{ color:#fff; }
.color .sec__desc{ color:rgba(255,255,255,.7); }
.color__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.ccard{
  position:relative; border-radius:18px; padding:1.8rem 1.6rem 1.7rem; min-height:200px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end; transition:.4s;
}
.ccard::before{ content:""; position:absolute; inset:0; opacity:.5; transition:.4s; }
.ccard:nth-child(1)::before{ background:radial-gradient(120% 120% at 100% 0,#ffd9ec,transparent 60%); }
.ccard:nth-child(2)::before{ background:radial-gradient(120% 120% at 100% 0,#e7d6ff,transparent 60%); }
.ccard:nth-child(3)::before{ background:radial-gradient(120% 120% at 100% 0,#d4f1ff,transparent 60%); }
.ccard:nth-child(4)::before{ background:radial-gradient(120% 120% at 100% 0,#ffe6cf,transparent 60%); }
.ccard:nth-child(5)::before{ background:radial-gradient(120% 120% at 100% 0,#ffd4e8,transparent 60%); }
.ccard:nth-child(6)::before{ background:radial-gradient(120% 120% at 100% 0,#dcd6ff,transparent 60%); }
.ccard:hover{ transform:translateY(-6px); border-color:rgba(255,255,255,.25); }
.ccard__n{ position:relative; font-family:var(--disp); font-weight:600; font-size:.7rem; letter-spacing:.2em; color:rgba(255,255,255,.55); }
.ccard__t{ position:relative; font-family:var(--disp); font-weight:600; font-size:1.5rem; margin:.5rem 0 .4rem; }
.ccard__d{ position:relative; font-size:.84rem; color:rgba(255,255,255,.72); line-height:1.7; }
.color__note{ position:relative; z-index:1; text-align:center; margin-top:2.6rem; color:rgba(255,255,255,.85); font-size:.92rem; }
.color__note b{ color:#fff; }

/* ---------- CONCEPT ---------- */
.concept{ background:var(--bg-2); }
.concept__grid{ display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.concept__media{ position:relative; aspect-ratio:3/4; border-radius:20px; padding:7px; background:var(--holo); background-size:200% 200%; animation:holoShift 10s ease-in-out infinite; box-shadow:0 40px 80px -50px rgba(139,92,246,.5); }
.concept__media span{ display:block; width:100%; height:100%; border-radius:14px; background:linear-gradient(160deg,#fff,#efe9fb); background-size:cover; background-position:center; }
.concept__media span[data-src]{ background-image:var(--img); }
.concept__body .eyebrow{ margin-bottom:1.3rem; }
.concept__body h2{ font-family:var(--disp); font-weight:700; font-size:clamp(1.7rem,3.4vw,2.6rem); line-height:1.2; margin-bottom:1.4rem; }
.concept__body p{ color:var(--ink-2); margin-bottom:1.2rem; line-height:2.05; }
.concept__points{ list-style:none; margin-top:1.8rem; display:grid; gap:.9rem; }
.concept__points li{ display:flex; gap:1rem; align-items:flex-start; font-size:.95rem; }
.concept__points .mk{ font-family:var(--disp); font-weight:700; font-size:1.05rem; background:var(--holo); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* ---------- MENU ---------- */
.menu__cats{ display:grid; grid-template-columns:repeat(2,1fr); gap:2.4rem 3.6rem; }
.menu__cat{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:1.8rem 1.8rem 1.6rem; }
.menu__cat--hot{ border:0; background:var(--ink); color:#fff; position:relative; overflow:hidden; }
.menu__cat--hot::before{ content:""; position:absolute; inset:0; background:var(--holo); opacity:.16; }
.menu__cat--hot > *{ position:relative; z-index:1; }
.menu__cat h3{ font-family:var(--disp); font-weight:600; font-size:1.25rem; padding-bottom:.7rem; margin-bottom:1rem; border-bottom:1px solid var(--line); display:flex; align-items:baseline; justify-content:space-between; }
.menu__cat--hot h3{ border-color:rgba(255,255,255,.18); }
.menu__cat h3 small{ font-family:var(--sans); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-weight:400; }
.menu__cat--hot h3 small{ color:rgba(255,255,255,.6); }
.menu__cat h3 .badge{ font-family:var(--disp); font-size:.55rem; letter-spacing:.14em; padding:.35em .8em; border-radius:999px; background:var(--holo); color:#16131f; -webkit-text-fill-color:#16131f; }
.menu__row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.5rem 0; }
.menu__row .nm{ font-size:.95rem; }
.menu__row .nm small{ display:block; color:var(--ink-soft); font-size:.74rem; }
.menu__cat--hot .menu__row .nm small{ color:rgba(255,255,255,.55); }
.menu__row .pr{ font-family:var(--disp); font-weight:600; font-size:1.05rem; white-space:nowrap; }
.menu__note{ text-align:center; margin-top:2.4rem; font-size:.84rem; color:var(--ink-soft); }
.menu__note a{ background:var(--holo); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; font-weight:700; }

/* ---------- GALLERY ---------- */
.gallery{ background:var(--bg-2); }
.gallery__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.gallery__item{ position:relative; aspect-ratio:3/4; border-radius:14px; overflow:hidden; background:linear-gradient(160deg,#f6f1ff,#ffeaf6); }
.gallery__item[data-src]{ background-image:var(--img); background-size:cover; background-position:center; }
.gallery__item span{ position:absolute; left:0; right:0; bottom:0; padding:.9rem 1rem; font-family:var(--disp); font-weight:500; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:linear-gradient(transparent,rgba(22,19,31,.6)); }

/* ---------- STYLISTS ---------- */
.stylists__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2.2rem; max-width:880px; margin-inline:auto; }
.scard{ background:#fff; border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:0 30px 60px -48px rgba(139,92,246,.4); }
.scard__img{ aspect-ratio:1/1; background:linear-gradient(160deg,#f6f1ff,#ffeaf6); }
.scard__img[data-src]{ background-image:var(--img); background-size:cover; background-position:center top; }
.scard__body{ padding:1.5rem 1.8rem 2rem; }
.scard__role{ font-family:var(--disp); font-weight:500; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; background:var(--holo); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.scard__name{ font-family:var(--disp); font-weight:700; font-size:1.8rem; margin:.25rem 0 .8rem; }
.scard__txt{ font-size:.85rem; color:var(--ink-soft); line-height:1.9; }

/* ---------- ACCESS ---------- */
.access{ background:var(--ink); color:#fff; overflow:hidden; }
.access::before{ content:""; position:absolute; inset:0; background:var(--holo); opacity:.12; }
.access .wrap{ position:relative; z-index:1; }
.access .sec__title{ color:#fff; }
.access__grid{ display:grid; grid-template-columns:1fr 1fr; gap:3.2rem; align-items:center; }
.access__info dl{ display:grid; grid-template-columns:auto 1fr; gap:.9rem 1.6rem; margin-bottom:1.8rem; }
.access__info dt{ font-family:var(--disp); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; padding-top:.4em; background:var(--holo); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.access__info dd{ font-size:.98rem; line-height:1.7; }
.access__info dd a{ color:#fff; border-bottom:1px solid rgba(255,255,255,.4); }
.access__map{ aspect-ratio:4/3; border-radius:16px; overflow:hidden; border:1px solid rgba(255,255,255,.14); }
.access__map iframe{ width:100%; height:100%; border:0; filter:grayscale(.2) contrast(1.05); }

/* ---------- FOOTER ---------- */
.foot{ background:var(--bg); padding:4.5rem 0 2.4rem; }
.foot__cross{ background:var(--ink); color:#fff; border-radius:18px; padding:1.4rem 1.8rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:2.6rem; flex-wrap:wrap; position:relative; overflow:hidden; }
.foot__cross::before{ content:""; position:absolute; inset:0; background:var(--holo); opacity:.16; }
.foot__cross > *{ position:relative; z-index:1; }
.foot__cross b{ font-family:var(--disp); font-weight:600; }
.foot__grid{ display:flex; justify-content:space-between; gap:3rem; flex-wrap:wrap; margin-bottom:2.6rem; }
.foot__brand .brand__main{ font-size:1.8rem; }
.foot__brand p{ font-size:.84rem; color:var(--ink-soft); margin-top:1rem; max-width:24em; }
.foot__links{ display:flex; gap:3.5rem; flex-wrap:wrap; }
.foot__col h4{ font-family:var(--disp); font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; margin-bottom:1rem; background:var(--holo); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.foot__col a{ display:block; font-size:.88rem; color:var(--ink-soft); padding:.3em 0; }
.foot__col a:hover{ color:var(--ink); }
.foot__btm{ display:flex; justify-content:space-between; padding-top:1.8rem; border-top:1px solid var(--line); font-size:.74rem; color:var(--ink-soft); flex-wrap:wrap; gap:.6rem; }

/* ---------- REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:.9s cubic-bezier(.2,.7,.3,1); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .nav{ display:none; }
  .burger{ display:flex; }
  .hero__grid,.concept__grid,.access__grid{ grid-template-columns:1fr; gap:2.6rem; }
  .hero__media{ order:-1; max-width:400px; margin-inline:auto; }
  .color__grid,.menu__cats,.gallery__grid,.stylists__grid{ grid-template-columns:1fr; }
  .color__grid,.gallery__grid{ grid-template-columns:1fr 1fr; }
  .nav-open .nav{ display:flex; position:fixed; inset:0; background:var(--bg); flex-direction:column; justify-content:center; gap:1.8rem; z-index:55; }
}
@media(max-width:560px){
  .gallery__grid,.color__grid{ grid-template-columns:1fr 1fr; gap:.7rem; }
  .sec{ padding:4.6rem 0; }
  .hero{ padding-top:7rem; }
}
