/* =========================================================
   Fictional hair salon sample site
   ========================================================= */
:root{
  --pink:#d96b82;
  --pink-soft:#e89aa9;
  --pink-pale:#fbe9ec;
  --pink-bg:#fdf2f3;
  --cream:#fbf4e2;
  --gold:#f0b429;
  --gold-dark:#d99e15;
  --text:#444;
  --text-light:#777;
  --line:#eadce0;
  --maxw:1120px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --sparkle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cpath d='M60 8C64 41 79 56 112 60C79 64 64 79 60 112C56 79 41 64 8 60C41 56 56 41 60 8Z' fill='none' stroke='%23f0b429' stroke-width='1.4'/%3E%3Cpath d='M28 18C30 32 37 39 51 41C37 43 30 50 28 64C26 50 19 43 5 41C19 39 26 32 28 18Z' fill='none' stroke='%23e89aa9' stroke-width='1.3'/%3E%3Ccircle cx='103' cy='25' r='2.5' fill='%23f0b429'/%3E%3Ccircle cx='18' cy='96' r='2' fill='%23e89aa9'/%3E%3C/svg%3E");
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans JP",sans-serif;
  color:var(--text);
  line-height:1.9;
  font-weight:400;
  background:#fff;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
main,section,.hero__inner,.hero__text{min-width:0}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button,input,textarea{font:inherit}
p,h1,h2,h3,blockquote,dd,dt,li{overflow-wrap:anywhere}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

.loader{position:fixed;inset:0;z-index:9999;pointer-events:none}
.loader__curtain{position:absolute;top:0;bottom:0;width:50%;background:var(--pink);transition:transform 1.1s var(--ease) .4s}
.loader__curtain--left{left:0}
.loader__curtain--right{right:0}
.loader__logo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:"Parisienne",cursive;color:#fff;font-size:clamp(30px,6vw,56px);transition:opacity .5s .2s}
.loaded .loader__curtain--left{transform:translateX(-100%)}
.loaded .loader__curtain--right{transform:translateX(100%)}
.loaded .loader__logo{opacity:0}
.loaded .loader{transition:visibility 0s 1.5s;visibility:hidden}

.btn,.btn-outline,.btn-pink,.btn-gold{
  display:inline-flex;align-items:center;justify-content:center;gap:.8em;border-radius:999px;
  font-weight:500;letter-spacing:.04em;transition:.3s var(--ease);text-align:center;line-height:1.4;
}
.btn{padding:16px 38px;font-size:.95rem}
.btn--primary,.btn-pink{background:var(--pink);color:#fff}
.btn--primary:hover,.btn-pink:hover{background:#c75a72;transform:translateY(-2px)}
.btn--outline,.btn-outline{background:#fff;color:var(--pink);border:1.5px solid var(--pink-soft)}
.btn--outline:hover,.btn-outline:hover{background:var(--pink-pale)}
.btn-gold,.btn--yellow{background:var(--gold);color:#fff}
.btn-gold:hover,.btn--yellow:hover{background:var(--gold-dark);transform:translateY(-2px)}
.btn-outline{padding:14px 30px;font-size:.95rem}
.btn-pink{padding:13px 30px;font-size:.9rem}
.btn-pink--wide{width:100%;padding:15px 24px}

.fade{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease) var(--d,0s),transform 1s var(--ease) var(--d,0s)}
.fade.is-in{opacity:1;transform:none}

.header{
  position:fixed;top:0;left:0;width:100%;z-index:1000;display:flex;align-items:center;gap:22px;
  padding:12px 40px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);transition:.4s;overflow:hidden;
}
.header__logo{display:flex;flex-direction:column;line-height:1.2;white-space:nowrap;position:relative;z-index:2}
.header__logo-main{font-family:"Cormorant Garamond",serif;font-size:1.5rem;color:var(--pink);letter-spacing:.06em}
.header__logo-sub{font-size:.7rem;letter-spacing:.18em;color:var(--text-light)}
.header__lead{font-size:.85rem;font-weight:500;margin-right:auto;letter-spacing:.04em;position:relative;z-index:2}
.header__actions{display:flex;align-items:center;gap:14px;position:relative;z-index:2}
.header__cta,.header__tel{display:flex;flex-direction:column;align-items:center;color:#fff;border-radius:999px;padding:8px 24px;line-height:1.3;transition:.3s;white-space:nowrap}
.header__cta{background:var(--gold)}
.header__cta:hover{background:var(--gold-dark)}
.header__tel{background:var(--pink)}
.header__tel:hover{background:#c75a72}
.header__cta strong,.header__tel strong{font-size:.82rem;font-weight:600;letter-spacing:.02em}
.header__cta small,.header__tel small{font-size:.6rem;opacity:.95}
.hamburger{position:relative;width:54px;height:54px;border-radius:50%;background:#fff;border:1px solid var(--pink-pale);cursor:pointer;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:.3s;z-index:1100}
.hamburger span{display:block;width:20px;height:1.5px;background:var(--pink);transition:.35s var(--ease)}
.hamburger em{position:absolute;bottom:7px;font-size:.5rem;letter-spacing:.1em;color:var(--pink);font-style:normal}
.hamburger.is-open{background:var(--pink);border-color:var(--pink)}
.hamburger.is-open span{background:#fff}
.hamburger.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hamburger.is-open span:nth-child(2){opacity:0}
.hamburger.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.hamburger.is-open em{color:#fff}
.deco{position:absolute;pointer-events:none;background:var(--sparkle) center/contain no-repeat;z-index:1}
.deco--h-shear{width:48px;height:48px;top:2px;left:30%;opacity:.42}
.deco--h-comb{width:64px;height:64px;bottom:-16px;left:41%;opacity:.28;transform:rotate(18deg)}
.deco--f-shear{width:92px;height:92px;top:28px;right:7%;opacity:.35}
.deco--f-comb{width:120px;height:120px;left:4%;bottom:20px;opacity:.3;transform:rotate(-16deg)}
.deco--f-curl{width:72px;height:72px;left:8%;top:58px;opacity:.26}

.navmenu{
  position:fixed;inset:0;z-index:1050;background:linear-gradient(135deg,#fdf2f3,#fbe9ec);
  display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.5s var(--ease);
}
.navmenu.is-open{opacity:1;visibility:visible}
.navmenu__list{text-align:center}
.navmenu__list li{overflow:hidden}
.navmenu__list a{display:block;padding:.55em 0;font-size:clamp(20px,3.4vw,28px);font-weight:500;transform:translateY(110%);transition:transform .6s var(--ease)}
.navmenu__list a span{display:block;font-family:"Cormorant Garamond",serif;font-size:15px;color:var(--pink-soft);letter-spacing:.1em}
.navmenu.is-open .navmenu__list a{transform:none}
.navmenu.is-open li:nth-child(1) a{transition-delay:.15s}
.navmenu.is-open li:nth-child(2) a{transition-delay:.22s}
.navmenu.is-open li:nth-child(3) a{transition-delay:.29s}
.navmenu.is-open li:nth-child(4) a{transition-delay:.36s}
.navmenu.is-open li:nth-child(5) a{transition-delay:.43s}
.navmenu.is-open li:nth-child(6) a{transition-delay:.5s}
.navmenu.is-open li:nth-child(7) a{transition-delay:.57s}

.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:150px 0 110px;overflow:hidden;background:linear-gradient(155deg,var(--pink-pale) 0%,#fef0f3 42%,#fff 100%)}
.hero__blob{position:absolute;border-radius:50%;pointer-events:none;z-index:0}
.hero__blob--1{width:440px;height:440px;top:-130px;left:-120px;background:radial-gradient(circle at 35% 35%,rgba(232,154,169,.42),rgba(232,154,169,0) 70%);animation:floaty 9s ease-in-out infinite}
.hero__blob--2{width:320px;height:320px;bottom:-90px;left:34%;background:radial-gradient(circle at 50% 50%,rgba(240,180,41,.16),rgba(240,180,41,0) 70%);animation:floaty 12s ease-in-out infinite reverse}
.hero__visual{position:absolute;top:0;right:0;bottom:0;width:54%;max-width:920px;z-index:1;animation:heroImg 1.3s cubic-bezier(.22,1,.36,1) both}
.hero__visual img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:46% 0 0 46% / 58% 0 0 42%;-webkit-mask-image:linear-gradient(95deg,transparent 0,#000 22%);mask-image:linear-gradient(95deg,transparent 0,#000 22%);animation:heroKen 22s ease-in-out 1.4s infinite alternate}
.hero__inner{position:relative;z-index:3;width:100%;max-width:1280px;margin:0 auto;padding:0 40px}
.hero__text{max-width:600px;position:relative}
.hero__text::before{content:"";position:absolute;top:-30px;left:-10px;width:50px;height:50px;background:var(--sparkle) center/contain no-repeat;animation:sparkleTwinkle 3.4s ease-in-out infinite;pointer-events:none}
.hero__text>*{animation:fadeUp .9s ease both}
.hero__brand{font-family:"Parisienne",cursive;font-size:clamp(2.3rem,4.2vw,3.4rem);color:var(--pink-soft);margin-bottom:2px;line-height:1.1;animation-delay:.1s}
.hero__title{font-size:clamp(2.4rem,4.1vw,3.7rem);font-weight:500;line-height:1.45;letter-spacing:.03em;color:#3d3d3d;margin-bottom:18px;animation-delay:.25s}
.hero__names{margin:0 0 26px;font-weight:500;font-size:clamp(.78rem,1.5vw,1.1rem);letter-spacing:.03em;line-height:1.8;color:#3d3d3d}
.hero__amp{font-family:"Cormorant Garamond",serif;color:var(--gold-dark);font-size:1.55em;margin:0 .45em;vertical-align:-.08em}
.hero__lead{font-size:1rem;line-height:2.1;color:var(--text-light);margin-bottom:40px;max-width:460px;animation-delay:.4s}
.hero__btns{display:flex;gap:18px;flex-wrap:wrap;animation-delay:.55s}
.hero__english{position:absolute;bottom:24px;left:40px;z-index:2;font-family:"Cormorant Garamond",serif;font-size:clamp(3rem,6.5vw,5rem);color:var(--pink-soft);opacity:.22;letter-spacing:.06em;white-space:nowrap}
.hero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:12px;font-family:"Cormorant Garamond",serif;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--pink)}
.hero__scroll::after{content:"";width:1px;height:48px;background:linear-gradient(var(--pink-soft),rgba(232,154,169,0));animation:scrollLine 1.8s ease-in-out infinite;transform-origin:top}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes heroImg{from{opacity:0;transform:translateX(40px) scale(1.04)}to{opacity:1;transform:none}}
@keyframes heroKen{from{transform:scale(1)}to{transform:scale(1.08)}}
@keyframes scrollLine{0%{transform:scaleY(0);opacity:0}45%{opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes sparkleTwinkle{0%,100%{opacity:.9;transform:translateY(-50%) scale(1) rotate(0)}50%{opacity:.45;transform:translateY(-50%) scale(.82) rotate(8deg)}}

.section{padding:96px 0}
.section--tint{background:var(--pink-bg)}
.sec-head{text-align:center;margin-bottom:58px}
.sec-head__en{font-family:"Cormorant Garamond",serif;font-size:clamp(46px,8vw,86px);font-weight:400;color:var(--pink);letter-spacing:.08em;line-height:1}
.sec-head__ja{font-size:1.05rem;font-weight:500;letter-spacing:.14em;margin-top:8px;color:#444}
.sec-head__text{max-width:720px;margin:22px auto 0;font-size:.92rem;color:var(--text-light);line-height:2}
.info{position:relative;background:var(--pink-bg);padding:80px 20px 120px}
.info__inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px}
.info__head{display:flex;align-items:baseline;gap:18px;border-bottom:1px solid var(--pink-soft);padding-bottom:14px;margin-bottom:8px}
.info__en{font-family:"Cormorant Garamond",serif;font-size:2.6rem;color:var(--pink);line-height:1;letter-spacing:.06em}
.info__ja{font-size:1rem;letter-spacing:.16em;font-weight:500}
.info__item a{display:block;position:relative;padding:20px 36px 20px 0;border-bottom:1px solid var(--pink-pale)}
.info__item a:hover .info__title{color:var(--pink)}
.info__meta{display:flex;align-items:center;gap:14px;margin-bottom:.2em}
.info__meta time{font-family:"Cormorant Garamond",serif;font-size:1rem;color:var(--text-light);letter-spacing:.04em}
.info__cat{font-size:.72rem;border:1px solid var(--pink-soft);color:var(--pink);border-radius:999px;padding:3px 16px}
.info__title{font-size:.92rem;transition:.3s}
.info__arrow{position:absolute;right:4px;top:50%;transform:translateY(-50%);color:var(--pink)}
.info__more{display:inline-flex;align-items:center;gap:2.5em;font-size:.88rem;color:var(--text);border-bottom:1px solid var(--pink-soft);padding:6px 4px;margin-top:14px;transition:.3s}
.wave{position:absolute;left:0;width:100%;height:80px;display:block}
.wave--bottom{bottom:-1px}

.about{position:relative;background:#fff;padding:90px 20px 120px;overflow:hidden}
.about__inner{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about__media{position:relative}
.about__photo{width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;box-shadow:0 30px 70px rgba(217,107,130,.26)}
.about__photo img{width:100%;height:100%;object-fit:cover}
.about__headline{position:relative;display:inline-block;margin-bottom:1.4em}
.about__headline::after{content:"";position:absolute;top:-18px;right:-46px;width:54px;height:54px;background:var(--sparkle) center/contain no-repeat;animation:sparkleTwinkle 3.4s ease-in-out infinite .8s}
.about__title{font-family:"Cormorant Garamond",serif;font-size:clamp(58px,9vw,116px);font-weight:400;color:var(--pink);line-height:1;letter-spacing:.08em}
.about__subtitle{font-size:.95rem;color:var(--text);letter-spacing:.14em;margin-top:.3em;font-weight:500}
.about__lead{font-size:clamp(20px,2.4vw,26px);font-weight:500;line-height:1.7;margin-bottom:1em;letter-spacing:.04em;color:#3d3d3d}
.about__txt{font-size:.92rem;color:var(--text-light);margin-bottom:2em;line-height:2}
.about__cards{max-width:var(--maxw);margin:84px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:42px}
.about-card{position:relative}
.about-card__img{position:relative;border-radius:14px 14px 14px 78px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 24px 52px rgba(217,107,130,.22)}
.about-card__img img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}
.about-card:hover .about-card__img img{transform:scale(1.05)}
.about-card__num{position:absolute;top:-40px;left:-12px;z-index:2;font-family:"Cormorant Garamond",serif;font-size:clamp(4.4rem,7vw,6.6rem);font-weight:500;color:var(--pink-soft);line-height:1;text-shadow:0 2px 10px rgba(255,255,255,.7)}
.about-card__title{position:relative;font-size:1.05rem;font-weight:700;color:#3d3d3d;margin:1.3em 0 .5em;padding-bottom:.55em;letter-spacing:.03em;line-height:1.5}
.about-card__title::after{content:"";position:absolute;left:0;bottom:0;width:48px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--pink),var(--pink-soft))}
.about-card__text{font-size:.85rem;color:var(--text-light);line-height:1.95}

.service{background:#fff;padding:90px 20px 110px}
.service__headline{text-align:center;margin-bottom:62px}
.service__title-en{position:relative;display:inline-block;font-family:"Cormorant Garamond",serif;font-size:clamp(66px,13vw,140px);font-weight:400;color:var(--pink-soft);line-height:1;letter-spacing:.08em}
.service__title-en::before,.service__title-en::after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:clamp(46px,7vw,96px);height:clamp(46px,7vw,96px);background:var(--sparkle) center/contain no-repeat;pointer-events:none;animation:sparkleTwinkle 3.4s ease-in-out infinite}
.service__title-en::before{left:clamp(-118px,-9vw,-66px)}
.service__title-en::after{right:clamp(-118px,-9vw,-66px);animation-delay:1.7s}
.service__subtitle{font-size:clamp(19px,2.4vw,24px);font-weight:700;margin-top:.1em;color:#3d3d3d;letter-spacing:.06em}
.service__desc-lead{max-width:680px;margin:18px auto 0;font-size:.92rem;color:var(--text-light)}
.service__wrap{max-width:var(--maxw);margin:0 auto;display:flex;flex-direction:column;gap:112px;counter-reset:svc}
.service__item{display:grid;grid-template-columns:1fr 1.15fr;gap:96px;align-items:center;counter-increment:svc;position:relative}
.service__item--reverse{grid-template-columns:1.15fr 1fr}
.service__label{font-family:"Cormorant Garamond",serif;letter-spacing:.18em;color:var(--pink);font-size:.8rem;font-weight:600}
.service__name{font-size:clamp(24px,3.2vw,36px);font-weight:500;letter-spacing:.04em;margin:.3em 0 .4em;color:#3d3d3d;line-height:1.4}
.service__copy{color:#3d3d3d;font-weight:700;font-size:1rem;margin-bottom:.7em;letter-spacing:.02em}
.service__copy em{font-style:normal;background:linear-gradient(transparent 65%,var(--pink-pale) 65%);padding:0 2px}
.service__txt{font-size:.9rem;color:var(--text);margin-bottom:1.4em;line-height:1.95}
.service__txt strong{font-weight:700;color:var(--pink)}
.service__highlight{background:var(--pink-bg);border-radius:14px;padding:18px 22px;margin-bottom:1.6em}
.service__highlight-title{font-size:.88rem;font-weight:700;color:var(--pink);margin-bottom:10px;letter-spacing:.04em;display:flex;align-items:center;gap:8px}
.service__highlight ul{display:flex;flex-direction:column;gap:5px}
.service__highlight li{font-size:.84rem;color:var(--text);padding-left:14px;position:relative}
.service__highlight li::before{content:"・";position:absolute;left:0;color:var(--pink)}
.service__price{font-size:.86rem;color:var(--text);margin:-.4em 0 1.4em;letter-spacing:.02em}
.service__price strong{color:var(--pink);font-weight:700;font-size:1.05em}
.service__btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.service__image{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 28px 60px rgba(217,107,130,.22)}
.service__image::before{content:"0" counter(svc);position:absolute;z-index:3;top:10px;left:20px;font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(64px,7vw,112px);line-height:1;color:#fff;opacity:.95;text-shadow:0 4px 20px rgba(150,68,90,.45);pointer-events:none}
.service__item--reverse .service__image::before{left:auto;right:20px}
.service__image::after{content:"";position:absolute;inset:14px;border-radius:12px;border:1px solid rgba(255,255,255,.6);pointer-events:none;z-index:2}
.service__image img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}
.service__item:hover .service__image img{transform:scale(1.04)}

.voice{background:var(--pink-bg);padding:90px 20px 110px}
.voice__headline{text-align:center;margin-bottom:50px}
.voice__title{font-family:"Cormorant Garamond",serif;font-size:clamp(66px,13vw,128px);font-weight:400;color:var(--pink);line-height:1;letter-spacing:.08em}
.voice__subtitle{font-size:1.05rem;font-weight:500;margin-top:.2em;letter-spacing:.06em}
.voice__grid{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:28px}
.voice-card{position:relative;flex:1 1 300px;max-width:420px;background:#fff;border-radius:16px;padding:46px 28px 28px;box-shadow:0 12px 30px rgba(217,107,130,.1)}
.voice-card__mark{position:absolute;top:12px;left:22px;font-family:"Cormorant Garamond",serif;font-size:3.4rem;color:var(--pink-pale);line-height:1}
.voice-card blockquote{font-size:.88rem;line-height:1.95;color:var(--text);margin-bottom:1.2em;position:relative;z-index:1}
.voice-card figcaption{font-size:.8rem;color:var(--pink);font-weight:600;letter-spacing:.04em;text-align:right}

.access{background:#fff;padding:90px 20px 110px}
.access__headline{text-align:center;margin-bottom:50px}
.access__title{font-family:"Cormorant Garamond",serif;font-size:clamp(66px,13vw,128px);font-weight:400;color:var(--pink);line-height:1;letter-spacing:.08em}
.access__subtitle{font-size:1.05rem;font-weight:500;margin-top:.2em;letter-spacing:.06em}
.access__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:36px}
.access-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 14px 36px rgba(217,107,130,.12);border:1px solid var(--pink-pale)}
.access-card__img{aspect-ratio:16/9;overflow:hidden}
.access-card__img img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}
.access-card:hover .access-card__img img{transform:scale(1.04)}
.access-card__body{padding:24px 28px 30px}
.access-card__name{font-size:1.15rem;font-weight:700;color:var(--pink);margin-bottom:.7em;letter-spacing:.04em}
.access-card dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:.85rem;line-height:1.7}
.access-card dt{font-weight:700;color:var(--text);letter-spacing:.04em}
.access-card dd{color:var(--text-light)}

.footer{position:relative;overflow:hidden;background:var(--cream);padding:0 0 30px}
.footer__inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:0 20px}
.footer__cta-band{text-align:center;padding:70px 0 60px}
.footer__cta-en{font-family:"Cormorant Garamond",serif;font-size:clamp(52px,9vw,108px);font-weight:400;color:var(--pink);line-height:1;letter-spacing:.08em}
.footer__cta-ja{font-size:1.15rem;font-weight:700;letter-spacing:.1em;margin:.2em 0 1.2em;color:#3d3d3d}
.footer__cta-lead{font-size:1.05rem;font-weight:500;margin-bottom:1.4em;letter-spacing:.04em}
.contact-form{max-width:820px;margin:0 auto 22px;text-align:left;background:rgba(255,255,255,.72);border:1px solid #ece1c4;border-radius:16px;padding:26px;box-shadow:0 14px 34px rgba(217,107,130,.1)}
.contact-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form__field{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:700;color:var(--pink);letter-spacing:.04em}
.contact-form__field--wide{grid-column:1/-1}
.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--pink-pale);border-radius:10px;background:#fff;padding:12px 14px;font:inherit;font-size:.95rem;color:var(--text);outline:none;transition:.25s var(--ease)}
.contact-form textarea{resize:vertical;min-height:130px}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--pink-soft);box-shadow:0 0 0 4px rgba(232,154,169,.18)}
.contact-form__submit{display:flex;width:min(260px,100%);border:0;margin:20px auto 0;cursor:pointer;font-family:inherit}
.footer__tel-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;max-width:760px;margin:0 auto}
.footer__row{display:grid;grid-template-columns:auto 1.3fr 1fr;gap:46px;align-items:center;padding:40px 0;border-top:1px solid #ece1c4}
.footer__brand{display:flex;flex-direction:column;line-height:1.5}
.footer__brand-main{font-family:"Cormorant Garamond",serif;font-size:1.7rem;color:var(--pink);letter-spacing:.06em}
.footer__brand-sub{font-size:.72rem;letter-spacing:.18em;color:var(--text-light)}
.footer__access dl{margin-bottom:1em}
.footer__access dt{font-size:.84rem;font-weight:700;color:var(--pink);letter-spacing:.04em;margin-bottom:.2em}
.footer__access dd{font-size:.8rem;color:var(--text-light);line-height:1.8}
.footer__map{height:210px;border-radius:10px}
.ph{position:relative;background:repeating-linear-gradient(45deg,#f3e6df 0 16px,#eddcd2 16px 32px);display:flex;align-items:center;justify-content:center;overflow:hidden}
.ph::after{content:attr(data-ph);font-size:13px;letter-spacing:.1em;color:#a98c7c;background:rgba(255,255,255,.75);padding:.3em 1em;border-radius:999px}
.footer__credit{display:flex;justify-content:flex-end;align-items:center;gap:40px;padding-top:18px;border-top:1px solid #ece1c4;font-size:.72rem;color:var(--text-light)}
.footer__txlink a:hover{color:var(--pink)}
.footer__sns a{font-family:"Cormorant Garamond",serif;letter-spacing:.08em;color:var(--pink);border-bottom:1px solid var(--pink-soft);padding-bottom:2px;transition:.3s}
.footer__sns a:hover{color:var(--gold-dark)}
.pagetop{position:fixed;right:24px;bottom:24px;z-index:900;width:52px;height:52px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;opacity:0;transform:translateY(20px);transition:.4s;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.pagetop.is-show{opacity:1;transform:none}
.pagetop:hover{background:var(--gold-dark);transform:translateY(-4px)}

.page-hero{position:relative;padding:172px 24px 72px;text-align:center;overflow:hidden;background:linear-gradient(160deg,var(--pink-pale) 0%,#fef0f3 55%,#fff 100%)}
.page-hero::after{content:"";position:absolute;right:5%;bottom:-16px;width:110px;height:110px;background:var(--sparkle) center/contain no-repeat;opacity:.35}
.page-hero__en{font-family:"Parisienne",cursive;font-size:2rem;color:var(--pink-soft);margin-bottom:2px;line-height:1.1}
.page-hero__title{font-size:2.3rem;font-weight:500;letter-spacing:.04em;color:#3d3d3d;line-height:1.5;margin-bottom:22px}
.page-hero__lead{max-width:760px;margin:0 auto;font-size:.95rem;color:var(--text-light);line-height:2}
.page-hero__en,.page-hero__title,.page-hero__lead{position:relative;z-index:1}
.crumb{max-width:1080px;margin:0 auto;padding:18px 24px 0;font-size:.76rem;color:var(--text-light)}
.crumb a{color:var(--pink)}
.crumb i{font-style:normal;margin:0 8px;color:var(--pink-soft)}
.prose{max-width:840px;margin:0 auto}
.prose p{font-size:.93rem;line-height:2.05;margin-bottom:1.2em;color:var(--text)}
.prose p:last-child{margin-bottom:0}
.wide-img{max-width:1080px;margin:0 auto;border-radius:18px;overflow:hidden;aspect-ratio:16/7}
.wide-img img{width:100%;height:100%;object-fit:cover;display:block}
.checklist{max-width:840px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:14px 32px}
.checklist li{position:relative;padding-left:28px;font-size:.9rem;color:var(--text);line-height:1.75}
.checklist li::before{content:"\2713";position:absolute;left:0;color:var(--pink);font-weight:700}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.feature{background:#fff;border:1px solid var(--pink-pale);border-radius:18px;padding:30px 26px}
.section--tint .feature{background:#fff}
.feature__num{font-family:"Cormorant Garamond",serif;font-size:1.6rem;color:var(--pink);font-weight:600;display:block;margin-bottom:8px;line-height:1}
.feature__title{font-size:1.02rem;font-weight:700;color:#3d3d3d;margin-bottom:10px;line-height:1.5}
.feature__text{font-size:.85rem;color:var(--text-light);line-height:1.95}
.table-wrap{overflow-x:auto;max-width:980px;margin:0 auto}
.compare{width:100%;border-collapse:collapse;min-width:660px;font-size:.86rem;background:#fff}
.compare th,.compare td{padding:13px 16px;border-bottom:1px solid var(--pink-pale);text-align:center}
.compare thead th{background:var(--pink);color:#fff;font-weight:600;letter-spacing:.04em}
.compare tbody th{background:var(--pink-bg);color:var(--pink);font-weight:700;text-align:left;white-space:nowrap}
.compare td strong{color:var(--pink)}
.detail{max-width:880px;margin:0 auto 40px;padding:34px 38px;border:1px solid var(--pink-pale);border-radius:20px;background:#fff}
.detail:last-of-type{margin-bottom:0}
.detail__name{font-size:1.35rem;font-weight:700;color:#3d3d3d;letter-spacing:.02em;margin-bottom:4px}
.detail__name span{display:block;font-size:.82rem;color:var(--pink);font-weight:500;margin-top:4px}
.detail__text{font-size:.9rem;line-height:2;color:var(--text);margin:14px 0}
.detail__spec{font-size:.84rem;color:var(--text-light);background:var(--pink-bg);border-radius:12px;padding:14px 18px;line-height:1.95;margin-bottom:14px}
.detail__spec b{color:var(--pink)}
.detail__price{font-size:.9rem;color:var(--text);margin-bottom:16px}
.detail__price strong{color:var(--pink);font-size:1.2rem;font-family:"Cormorant Garamond",serif}
.tags-label{font-size:.78rem;color:var(--text-light);font-weight:700;margin-bottom:8px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{font-size:.76rem;color:var(--pink);background:var(--pink-pale);border-radius:999px;padding:4px 14px}
.flow{max-width:740px;margin:0 auto;counter-reset:flow}
.flow__step{position:relative;padding:0 0 34px 64px}
.flow__step:last-child{padding-bottom:0}
.flow__step:not(:last-child)::before{content:"";position:absolute;left:21px;top:10px;bottom:0;width:1px;background:var(--pink-pale)}
.flow__step::after{counter-increment:flow;content:counter(flow);position:absolute;left:0;top:0;width:44px;height:44px;border-radius:50%;background:var(--pink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Cormorant Garamond",serif;font-size:1.1rem;font-weight:600}
.flow__title{font-size:1rem;font-weight:700;color:#3d3d3d;margin-bottom:6px;padding-top:8px}
.flow__text{font-size:.86rem;color:var(--text-light);line-height:1.95}
.classes{display:grid;grid-template-columns:1fr;gap:22px;max-width:880px;margin:0 auto}
.class-card{background:#fff;border:1px solid var(--pink-pale);border-radius:20px;padding:32px 34px}
.class-card__title{font-size:1.25rem;font-weight:700;color:#3d3d3d;margin-bottom:6px}
.class-card__target{font-size:.8rem;color:var(--pink);font-weight:700;margin-bottom:14px;letter-spacing:.03em}
.class-card__text{font-size:.9rem;line-height:2;color:var(--text);margin-bottom:14px}
.class-card__rec{font-size:.84rem;color:var(--text-light);background:var(--pink-bg);border-radius:12px;padding:12px 16px;line-height:1.8}
.pricing{max-width:840px;margin:0 auto}
.pricing__block{background:#fff;border-radius:18px;padding:26px 30px;margin-bottom:20px;border:1px solid var(--pink-pale)}
.pricing__head{font-size:1.05rem;font-weight:700;color:var(--pink);margin-bottom:14px;border-bottom:1px solid var(--pink-pale);padding-bottom:10px}
.pricing dl{display:grid;grid-template-columns:auto 1fr;gap:9px 22px;font-size:.88rem}
.pricing dt{color:var(--text-light);white-space:nowrap}
.pricing dd{color:var(--text)}
.pricing__note{font-size:.76rem;color:var(--text-light);margin-top:12px}
.quotes{max-width:860px;margin:0 auto}
.quotes__group{margin-bottom:38px}
.quotes__label{font-size:.95rem;font-weight:700;color:var(--pink);margin-bottom:16px;letter-spacing:.04em}
.quote{background:var(--pink-bg);border-radius:16px;padding:22px 26px;margin-bottom:14px;font-size:.88rem;line-height:2;color:var(--text)}
.quote cite{display:block;margin-top:8px;font-style:normal;font-size:.78rem;color:var(--text-light)}
.faq{max-width:820px;margin:0 auto}
.faq__item{border-bottom:1px solid var(--pink-pale);padding:20px 2px}
.faq__q{font-size:.95rem;font-weight:700;color:#3d3d3d;display:flex;gap:12px;align-items:flex-start}
.faq__q::before{content:"Q";font-family:"Cormorant Garamond",serif;color:var(--pink);font-size:1.15rem;line-height:1.3}
.faq__a{font-size:.88rem;color:var(--text-light);line-height:2;display:flex;gap:12px;margin-top:10px;align-items:flex-start}
.faq__a::before{content:"A";font-family:"Cormorant Garamond",serif;color:var(--pink-soft);font-size:1.15rem;line-height:1.3}
.note{max-width:820px;margin:24px auto 0;background:var(--cream);border-radius:14px;padding:16px 22px;font-size:.84rem;color:var(--text-light);line-height:1.9}
.cta-band{position:relative;text-align:center;background:var(--pink-bg);padding:74px 24px}
.cta-band h2{font-size:1.5rem;font-weight:500;color:#3d3d3d;margin-bottom:10px;letter-spacing:.04em}
.cta-band p{font-size:.9rem;color:var(--text-light);margin-bottom:28px}
.cta-band__btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:48px}
.tabs a{font-size:.82rem;color:var(--text-light);border:1px solid var(--pink-pale);border-radius:999px;padding:7px 20px;transition:.2s;background:#fff}
.tabs a:hover{color:var(--pink);border-color:var(--pink-soft)}
.tabs a.is-active{background:var(--pink);color:#fff;border-color:var(--pink)}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 30px}
.blog-card{display:flex;flex-direction:column}
.blog-card__thumb{border-radius:14px;overflow:hidden;aspect-ratio:16/10;margin-bottom:16px}
.blog-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:.6s}
.blog-card:hover .blog-card__thumb img{transform:scale(1.05)}
.blog-card__meta{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.blog-card__cat{font-size:.7rem;color:var(--pink);border:1px solid var(--pink-soft);border-radius:999px;padding:2px 12px}
.blog-card__date{font-family:"Cormorant Garamond",serif;font-size:.92rem;color:var(--text-light);letter-spacing:.04em}
.blog-card__title{font-size:1.02rem;font-weight:700;color:#3d3d3d;line-height:1.6;margin-bottom:8px}
.blog-card__excerpt{font-size:.82rem;color:var(--text-light);line-height:1.9}
.pager{display:flex;justify-content:center;gap:8px;margin-top:56px}
.pager span,.pager a{min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-family:"Cormorant Garamond",serif;font-size:.95rem;border:1px solid var(--pink-pale);color:var(--text-light);transition:.2s}
.pager .is-active{background:var(--pink);color:#fff;border-color:var(--pink)}
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.staff-card{background:#fff;border:1px solid var(--pink-pale);border-radius:18px;overflow:hidden;box-shadow:0 12px 30px rgba(217,107,130,.08)}
.staff-card__img{aspect-ratio:4/5;overflow:hidden}
.staff-card__img img{width:100%;height:100%;object-fit:cover}
.staff-card__body{padding:24px 24px 28px}
.staff-card__role{font-family:"Cormorant Garamond",serif;color:var(--pink);letter-spacing:.12em;font-size:.78rem}
.staff-card__name{font-size:1.22rem;font-weight:700;color:#3d3d3d;margin:.2em 0 .6em}
.staff-card__text{font-size:.85rem;color:var(--text-light);line-height:1.95}

@media(max-width:1160px){
  .hero{min-height:auto;flex-direction:column;align-items:center;padding:140px 0 100px;text-align:center}
  .hero__inner{order:1;padding:0 24px}
  .hero__text{max-width:560px;margin:0 auto}
  .hero__lead{margin-left:auto;margin-right:auto}
  .hero__btns{justify-content:center}
  .hero__visual{position:static;order:2;width:100%;max-width:480px;margin:44px auto 0;height:auto;aspect-ratio:4/5;animation:none}
  .hero__visual img{border-radius:240px 240px 28px 28px;object-position:center;-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent);mask-image:linear-gradient(180deg,#000 82%,transparent)}
  .hero__english{order:3;position:static;text-align:center;margin:24px auto 0;left:auto;font-size:2.4rem}
  .hero__scroll{display:none}
}
@media(max-width:1024px){
  .header{padding:10px 20px;gap:14px}
  .header__lead{display:none}
  .info__inner{gap:36px}
  .about__inner{gap:48px}
  .service__item{gap:36px}
  .footer__row{grid-template-columns:1fr;gap:28px;text-align:center}
  .footer__access dl{text-align:center}
}
@media(max-width:768px){
  .header__cta,.header__tel{display:none}
  .header__logo-main{font-size:1.2rem}
  .info__inner{grid-template-columns:1fr;gap:48px}
  .about__inner{grid-template-columns:1fr;gap:30px}
  .about__media{max-width:360px;margin:0 auto}
  .about__cards,.features,.staff-grid{grid-template-columns:1fr;gap:36px;margin-top:50px}
  .voice__grid{flex-direction:column;align-items:center}
  .service__item,.service__item--reverse{grid-template-columns:1fr}
  .service__item--reverse .service__image{order:-1}
  .service__image::before{font-size:clamp(54px,13vw,84px);left:14px;right:auto}
  .service__item--reverse .service__image::before{left:14px;right:auto}
  .about-card__img{aspect-ratio:4/3}
  .access__grid,.checklist{grid-template-columns:1fr}
  .footer__credit{flex-direction:column;gap:10px;justify-content:center}
  .footer__tel-btns{flex-direction:column}
  .contact-form{padding:22px 18px}
  .contact-form__grid{grid-template-columns:1fr}
  .btn-gold,.btn-pink--wide{width:100%}
  .blog-grid{grid-template-columns:1fr}
  .wide-img{aspect-ratio:4/3}
  .pricing dl{grid-template-columns:1fr;gap:4px}
}
@media(max-width:600px){
  .service__title-en::before,.service__title-en::after,.about__headline::after{display:none}
  .deco--h-shear,.deco--h-comb,.deco--f-curl{display:none}
}
@media(max-width:520px){
  .hero__inner{padding:0 22px}
  .hero__text{width:calc(100vw - 44px);max-width:calc(100vw - 44px)}
  .hero__brand{font-size:1.75rem;white-space:normal;overflow-wrap:anywhere}
  .hero__title{font-size:2.1rem}
  .hero__names{white-space:normal;font-size:.82rem}
  .hero__lead{width:calc(100vw - 44px);max-width:calc(100vw - 44px);font-size:.92rem;line-height:2;word-break:break-all}
  .page-hero{padding:140px 22px 56px}
  .page-hero__title{font-size:1.85rem}
  .detail,.class-card,.pricing__block{padding:26px 22px}
  .cta-band__btns,.service__btns,.hero__btns{flex-direction:column}
  .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .fade{opacity:1;transform:none}
}
