*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#17120e;background:#f7f4ef;font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;line-height:1.8}.site-header{height:70px;background:#090909;color:#fff;display:flex;align-items:center;gap:24px;padding:0 28px;position:sticky;top:0;z-index:50;border-bottom:1px solid #24211d}.brand{color:#fff;text-decoration:none;min-width:160px;line-height:1}.brand span{display:block;font-size:24px;letter-spacing:.14em}.brand small{display:block;font-size:9px;letter-spacing:.3em;margin-top:7px}.global-nav{display:flex;justify-content:center;align-items:center;gap:21px;flex:1}.global-nav a{color:#fff;text-decoration:none;font-size:10px;text-align:center;white-space:nowrap}.global-nav small{display:block;font-family:Arial,sans-serif;font-size:6px;letter-spacing:.14em;margin-top:2px;color:#bdb8b1}.header-actions{display:flex;align-items:center;gap:16px}.instagram{color:#fff;font-size:27px;text-decoration:none}.consult,.gold-btn{background:#b89255;color:#fff;text-decoration:none}.consult{padding:13px 20px;font-size:13px}.menu-btn{display:none;background:none;border:0;padding:4px}.menu-btn span{display:block;width:25px;height:1px;background:#fff;margin:6px 0}.hero{height:475px;position:relative;background:url("assets/hero.jpg") center center/cover no-repeat;color:#fff;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.25) 48%,rgba(0,0,0,.08) 100%)}.hero-copy{position:relative;z-index:2;padding:95px 0 0 49px;max-width:500px}.eyebrow{font-size:21px;letter-spacing:.11em;margin:0 0 10px}.hero h1{font-size:64px;letter-spacing:.12em;font-weight:400;line-height:1;margin:0}.salon{font-size:24px;letter-spacing:.22em;margin:14px 0 3px}.script{font-family:cursive;font-style:italic;color:#c8a067;font-size:24px;margin:0 0 6px}.lead{font-size:14px;letter-spacing:.04em}.gold-btn{display:inline-flex;justify-content:space-between;align-items:center;min-width:195px;margin-top:10px;padding:13px 18px}.news{background:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 50px;border-bottom:1px solid #ece7df;font-size:12px}.news div{display:flex;gap:25px;align-items:center}.news strong{letter-spacing:.14em}.news a{color:#6a625b;text-decoration:none}.intro{display:grid;grid-template-columns:1fr 1fr;min-height:330px;background:#fff}.intro-copy{position:relative;padding:48px 50px}.intro-copy h2{font-weight:400;font-size:26px;line-height:1.45;letter-spacing:.06em;margin:0 0 16px}.intro-copy p{font-size:13px;margin:10px 0}.ghost-script{position:absolute!important;right:35px;top:22px;font-family:cursive;font-size:52px!important;color:#d4c0a3;opacity:.25}.outline-btn{display:inline-flex;justify-content:space-between;min-width:195px;border:1px solid #a59a8d;color:#2e2924;text-decoration:none;padding:10px 16px;margin-top:8px;font-size:12px}.intro-photo{position:relative;min-height:330px;overflow:hidden}.intro-photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-copy{position:absolute;right:32px;bottom:56px;color:#fff;text-align:right;font-size:20px;letter-spacing:.12em;text-shadow:0 1px 8px #000}.photo-copy small{display:block;margin-top:16px;font-size:10px;letter-spacing:.22em}.features{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #eee8df;border-bottom:1px solid #eee8df;padding:28px 50px}.features article{display:grid;grid-template-columns:85px 1fr;gap:16px;padding:0 30px;border-right:1px solid #dfd7cc}.features article:first-child{padding-left:0}.features article:last-child{border-right:0}.feature-icon{font-size:47px;color:#c3a16b;display:flex;align-items:center;justify-content:center}.features .num{color:#b48a4c;font-size:12px}.features h3{font-family:Georgia,serif;font-size:12px;letter-spacing:.13em;margin:0}.features .jp{font-size:13px;margin:2px 0 10px}.features p{font-size:11px;margin:0}.flow{display:grid;grid-template-columns:280px 1fr;gap:28px;padding:35px 50px;background:#fff}.flow-head{border-left:1px solid #c3a16b;padding-left:24px}.flow-head>span{font-size:11px;letter-spacing:.15em;color:#9f7f4c}.flow-head h2{font-size:24px;font-weight:400;margin:3px 0}.flow-head p{font-size:12px}.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:center}.steps li{text-align:center;position:relative}.steps li:not(:last-child):after{content:"";position:absolute;top:45px;left:62%;width:76%;height:1px;background:#ddd}.steps b{font-size:10px;color:#a48251;font-weight:400;display:block}.steps i{font-style:normal;width:60px;height:60px;border:1px solid #d8d0c4;border-radius:50%;display:grid;place-items:center;margin:6px auto;color:#b28d53;font-size:26px;background:#fff;position:relative;z-index:2}.steps span{font-size:11px;line-height:1.5;display:block}.tohoku{height:200px;background:url("assets/tohoku.jpg") center/cover no-repeat;position:relative;color:#fff;padding:25px 50px;display:flex;align-items:center}.tohoku-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,18,35,.75),rgba(7,18,35,.2))}.tohoku-copy{position:relative;z-index:1}.tohoku-copy>span{font-size:12px;letter-spacing:.12em}.tohoku-copy h2{font-size:26px;font-weight:400;line-height:1.45;margin:3px 0}.tohoku-copy p{font-size:11px;margin:0}.area-badge{position:absolute;right:145px;z-index:2;width:110px;height:110px;border-radius:50%;background:rgba(183,143,76,.9);display:grid;place-items:center;text-align:center;line-height:1.6}.map{position:absolute;right:55px;z-index:2;width:75px;height:115px;border:1px solid rgba(255,255,255,.65);display:grid;place-items:center;color:#ead7ad;clip-path:polygon(46% 0,61% 8%,56% 24%,71% 34%,67% 47%,82% 60%,63% 71%,72% 85%,47% 100%,32% 85%,15% 72%,26% 57%,18% 38%,37% 26%);background:rgba(211,174,112,.5)}.dummy-sections{display:none}footer{height:70px;background:#090b0d;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;color:#fff}footer a{color:#fff;text-decoration:none;text-align:center;border-right:1px solid #575757;font-size:14px}footer a:last-child{border-right:0}

@media(max-width:900px){.site-header{height:64px;padding:0 16px}.brand{min-width:auto}.brand span{font-size:19px}.global-nav,.header-actions{display:none}.menu-btn{display:block;margin-left:auto}.site-header.open .global-nav{display:flex;position:absolute;left:0;right:0;top:64px;flex-direction:column;align-items:stretch;background:#0b0b0b;padding:10px 18px 20px;gap:0}.site-header.open .global-nav a{padding:11px 0;border-bottom:1px solid #222}.hero{height:520px;background-position:60% center}.hero-copy{padding:85px 24px 0}.eyebrow{font-size:16px}.hero h1{font-size:43px}.salon{font-size:18px}.script{font-size:21px}.news{padding:12px 20px}.news div span:last-child{display:none}.intro{grid-template-columns:1fr}.intro-copy{padding:38px 24px}.intro-photo{min-height:300px}.features{grid-template-columns:1fr;padding:0 24px}.features article{border-right:0;border-bottom:1px solid #eee8df;padding:25px 0!important}.flow{grid-template-columns:1fr;padding:35px 24px}.steps{grid-template-columns:repeat(4,1fr);row-gap:25px}.steps li:after{display:none}.tohoku{padding:25px 24px;height:240px}.area-badge{right:25px;bottom:20px;width:90px;height:90px;font-size:13px}.map{display:none}footer{height:auto;grid-template-columns:1fr}footer a{padding:18px;border-right:0;border-bottom:1px solid #383838}}
@media(max-width:520px){.news a{display:none}.hero h1{font-size:37px}.intro-copy h2{font-size:22px}.photo-copy{font-size:17px;right:18px}.steps{grid-template-columns:repeat(2,1fr)}}


.document-link{font-family:inherit;background:#fff;cursor:pointer}
.documents-modal{display:none;position:fixed;inset:0;z-index:1000;padding:28px;overflow:auto}
.documents-modal.is-open{display:flex;align-items:flex-start;justify-content:center}
.documents-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(4px)}
.documents-dialog{position:relative;z-index:1;width:min(920px,96vw);margin:auto;padding:10px}
.documents-dialog img{display:block;width:100%;height:auto;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.documents-close{position:fixed;top:18px;right:22px;z-index:2;width:46px;height:46px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(10,10,10,.75);color:#fff;font-size:30px;line-height:1;cursor:pointer}
body.modal-open{overflow:hidden}
@media(max-width:520px){.documents-modal{padding:58px 8px 18px}.documents-dialog{width:100%;padding:0}.documents-close{top:10px;right:10px}}


.footer-form-link{appearance:none;border:0;background:none;color:#fff;font:inherit;text-align:center;border-right:1px solid #575757;cursor:pointer}
.contact-modal{display:none;position:fixed;inset:0;z-index:1100;padding:28px;overflow:auto}
.contact-modal.is-open{display:flex;align-items:flex-start;justify-content:center}
.contact-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.9);backdrop-filter:blur(5px)}
.contact-dialog{position:relative;z-index:1;width:min(700px,96vw);margin:auto;background:#f8f5f0;border:1px solid #b89255;box-shadow:0 24px 70px rgba(0,0,0,.55);padding:36px}
.contact-heading span{font-family:Georgia,serif;letter-spacing:.2em;color:#a57b3f;font-size:12px}
.contact-heading h2{font-weight:400;font-size:28px;margin:4px 0 6px}
.contact-heading p{font-size:13px;color:#5f554b;margin:0 0 24px}
.contact-close{position:absolute;top:10px;right:12px;width:40px;height:40px;border:1px solid #b89255;border-radius:50%;background:#111;color:#fff;font-size:26px;line-height:1;cursor:pointer}
#contact-form{display:grid;gap:18px}
#contact-form label,#contact-form legend{font-size:14px;letter-spacing:.03em}
#contact-form input[type="text"],#contact-form input[type="number"],#contact-form select,#contact-form textarea{width:100%;margin-top:6px;border:1px solid #cfc4b4;background:#fff;padding:12px 13px;font:inherit;color:#211b17}
#contact-form fieldset{border:0;padding:0;margin:0}
.radio-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:8px}
.radio-row label{display:flex;gap:6px;align-items:center}
.contact-submit{border:0;background:#b89255;color:#fff;padding:14px 18px;font:inherit;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.contact-note{font-size:11px;color:#7d746a;text-align:center;margin:0}
body.contact-open{overflow:hidden}
@media(max-width:900px){.footer-form-link{padding:18px;border-right:0;border-bottom:1px solid #383838}}
@media(max-width:520px){.contact-modal{padding:12px}.contact-dialog{padding:28px 18px 22px}.contact-heading h2{font-size:23px}.radio-row{gap:12px;flex-direction:column}}


/* v7 requested navigation and original top-page visual */
.nav-link-button{
  appearance:none;border:0;background:none;color:#fff;text-decoration:none;
  font:inherit;font-size:10px;text-align:center;white-space:nowrap;cursor:pointer;padding:0
}
.nav-link-button small{
  display:block;font-family:Arial,sans-serif;font-size:6px;letter-spacing:.14em;
  margin-top:2px;color:#bdb8b1
}
.line-header{
  color:#fff;text-decoration:none;font-family:Arial,sans-serif;font-weight:600;
  font-size:11px;letter-spacing:.08em;border:1px solid #fff;border-radius:5px;
  padding:6px 8px
}
.header-actions .consult{
  border:0;font-family:inherit;cursor:pointer
}
.hero.hero-original{
  position:relative;
  height:auto;
  aspect-ratio:1024 / 475;
  background:url("assets/hero.jpg") center center / 100% 100% no-repeat;
  color:#fff;
  overflow:hidden;
}
.hero-original .hero-contact-hitarea{
  position:absolute;
  left:4.8%;
  top:72.5%;
  width:19.2%;
  height:10.5%;
  border:0;
  background:transparent;
  cursor:pointer;
}
@media(max-width:900px){
  .site-header.open .nav-link-button{
    padding:11px 0;border-bottom:1px solid #222;text-align:center
  }
  .hero.hero-original{
    height:auto;
    min-height:0;
    aspect-ratio:1024 / 475;
    background-position:center;
    background-size:100% 100%;
  }
}
@media(max-width:520px){
  .hero.hero-original{
    aspect-ratio:1024 / 475;
  }
}

/* v8: initial mockup assets already include their typography; prevent duplicate overlays */
.intro-photo .photo-copy{display:none!important}
.tohoku.tohoku-original{
  height:auto;
  aspect-ratio:1024 / 200;
  padding:0;
  display:block;
  background:url("assets/tohoku.jpg") center center / 100% 100% no-repeat;
}
.tohoku-original .tohoku-shade,.tohoku-original .tohoku-copy,.tohoku-original .area-badge,.tohoku-original .map{display:none!important}
@media(max-width:900px){
  .tohoku.tohoku-original{height:auto;aspect-ratio:1024 / 200;padding:0;background-size:100% 100%;}
}


/* v9: approved Tohoku banner shown as a single image, with no HTML text overlays */
.tohoku.tohoku-image-only{
  height:auto;
  min-height:0;
  padding:0;
  display:block;
  background:none;
  position:relative;
  overflow:hidden;
}
.tohoku.tohoku-image-only img{
  display:block;
  width:100%;
  height:auto;
}
.tohoku-image-only .tohoku-shade,
.tohoku-image-only .tohoku-copy,
.tohoku-image-only .area-badge,
.tohoku-image-only .map{
  display:none !important;
}
@media(max-width:900px){
  .tohoku.tohoku-image-only{height:auto;padding:0}
  .tohoku.tohoku-image-only img{width:100%;height:auto}
}


/* v10: approved initial-style service icons and flow section */
.service-flow-image{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
  overflow:hidden;
}
.service-flow-image img{
  display:block;
  width:100%;
  height:auto;
}
@media(max-width:900px){
  .service-flow-image img{
    width:100%;
    height:auto;
  }
}


/* v12: clickable "詳しく見る" area on the approved service-flow image */
.service-flow-image{position:relative}
.flow-detail-hitarea{
  position:absolute;
  left:5.8%;
  bottom:4.5%;
  width:17.5%;
  height:12%;
  display:block;
  z-index:5;
  cursor:pointer;
  background:transparent;
}
@media(max-width:900px){
  .flow-detail-hitarea{
    left:5.8%;
    bottom:4.5%;
    width:17.5%;
    height:12%;
  }
}


/* v14: required-documents link beside both IGNITION-about links */
.required-docs-btn{margin-left:10px}
@media(max-width:600px){
  .required-docs-btn{margin-left:0;margin-top:10px}
}


/* v15: top-banner 「無料相談はこちら」 opens the contact form */
.hero.hero-original{position:relative}
.hero-original .hero-contact-hitarea{
  position:absolute;
  left:4.75%;
  top:72.2%;
  width:19.4%;
  height:10.8%;
  display:block;
  z-index:20;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  cursor:pointer;
}

/* v16: exact clickable area for top-banner 「無料相談はこちら」 */
.hero.hero-original{position:relative}
.hero-original .hero-contact-hitarea{
  position:absolute !important;
  left:4.3% !important;
  top:71.0% !important;
  width:20.8% !important;
  height:12.5% !important;
  z-index:50 !important;
  display:block !important;
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  cursor:pointer !important;
}

/* v17: align clickable cursor area exactly over the visible hero consultation button */
.hero-original .hero-contact-hitarea{
  left:4.88% !important;
  top:87.16% !important;
  width:19.14% !important;
  height:8.42% !important;
}
