@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@300;400;500&display=swap");

:root{--ink:#17191b;--muted:#aaa;--line:#dedede;--white:#fdfdfc;--beige:#f8f4ec;--blue:#edf3f8;--header:86px}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-width:960px;color:var(--ink);background:var(--white);font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;font-weight:400;letter-spacing:.05em}a{color:inherit;text-decoration:none}ul{list-style:none}button{color:inherit;font:inherit}
.header{position:sticky;top:0;z-index:20;height:var(--header);padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:rgba(253,253,252,.96);border-bottom:1px solid rgba(0,0,0,.07)}.site-logo,.global-nav{font-family:"Helvetica Neue",Arial,sans-serif}.site-logo{font-size:19px;font-weight:500;letter-spacing:.3em;white-space:nowrap}.global-nav ul{display:flex;align-items:center;gap:clamp(30px,4vw,60px)}.global-nav a{position:relative;padding:32px 0;color:#737373;font-size:15px;letter-spacing:.1em;transition:color .25s}.global-nav a:after{content:"";position:absolute;right:0;bottom:24px;left:0;height:1px;background:#787878;transform:scaleX(0);transition:transform .25s}.global-nav a:hover{color:var(--ink)}.global-nav a:hover:after{transform:scaleX(1)}
.hero{position:relative;min-height:max(calc(100vh - var(--header)),680px);display:grid;place-items:center;color:#fff;background:linear-gradient(rgba(4,31,51,.16),rgba(4,31,51,.2)),url("../images/topsamune.png") center/cover no-repeat;overflow:hidden}.hero__content{margin-top:-5px;text-align:center}.eyebrow{color:#a8abb0;font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;letter-spacing:.42em}.eyebrow span{display:inline-flex;align-items:center;gap:12px}.eyebrow span:before,.eyebrow span:after{content:"";width:23px;height:1px;background:currentColor;opacity:.72}.eyebrow--light{color:rgba(255,255,255,.72)}.hero h1{margin-top:48px;font-size:clamp(45px,4.3vw,67px);font-weight:400;letter-spacing:.12em;text-shadow:0 2px 12px rgba(0,25,45,.16)}.ornament{position:relative;display:block;width:58px;height:1px;margin:42px auto;background:currentColor;color:#bbb}.ornament:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#376d91;border:1px solid currentColor;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 10px rgba(24,69,98,.2)}.ornament--light{color:rgba(255,255,255,.52)}.hero__lead{color:rgba(255,255,255,.88);font-size:18px;line-height:2.15}.hero__actions{margin-top:62px;display:flex;justify-content:center;gap:22px}.button{min-width:255px;padding:20px 30px;border-radius:12px;font-size:16px;letter-spacing:.1em;transition:background-color .35s ease}.button span,.text-link span{margin-left:12px;font-family:Arial,sans-serif}.button span{display:inline-block;transition:transform .35s ease}.button:hover span{transform:translateX(4px)}.button--solid{color:var(--ink);background:#fff;border:1px solid #fff}.button--solid:hover{background:rgba(255,255,255,.9)}.button--outline{color:#fff;border:1px solid rgba(255,255,255,.78)}.button--outline:hover{background:rgba(255,255,255,.14)}.scroll-guide{position:absolute;bottom:24px;left:50%;color:rgba(255,255,255,.72);font-family:Arial,sans-serif;font-size:11px;letter-spacing:.38em;transform:translateX(-50%)}.scroll-guide span{margin-left:7px;font-size:14px}
.section{scroll-margin-top:var(--header)}.mood{padding:150px 5% 145px;background:var(--white)}.section-heading{position:relative;z-index:2;text-align:center}.section-heading h2{margin-top:34px;font-size:32px;font-weight:400;letter-spacing:.12em;line-height:1.9}.section-heading>p:last-of-type{margin-top:20px;color:var(--muted);font-size:15px;line-height:2}.mood-grid{width:min(1160px,100%);margin:86px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.mood-card{--accent:#777;--soft:#f5f5f5;position:relative;height:255px;padding:42px;display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid #e1e1e1;border-radius:11px;box-shadow:0 2px 6px rgba(20,25,28,.025);transition:.35s}.mood-card:hover{background:var(--soft);border-color:var(--accent);transform:translateY(-3px)}.mood-card--yellow{--accent:#b07b16;--soft:#fff5d8}.mood-card--green{--accent:#55946b;--soft:#eaf5ee}.mood-card--pink{--accent:#c96f87;--soft:#fbeaf0}.mood-card--purple{--accent:#8477b2;--soft:#f0edfa}.mood-card--gray{--accent:#85857d;--soft:#f0f0ec}.mood-card--blue{--accent:#728db6;--soft:#ebf2fa}.mood-card__icon{width:78px;height:78px;display:grid;place-items:center;color:var(--accent);background:var(--soft);border-radius:50%;font-size:34px;line-height:1;transition:.35s}.mood-card:hover .mood-card__icon{background:rgba(255,255,255,.68)}.mood-card__icon--cup{font-size:27px}.mood-card__title{margin-top:26px;font-size:19px}.mood-card__description{margin-top:12px;color:#999b9f;font-size:15px}.mood-card__arrow{position:absolute;right:34px;bottom:36px;color:#bbb;font-family:Arial,sans-serif;transition:.3s}.mood-card:hover .mood-card__arrow{color:var(--accent);transform:translateX(5px)}
.diagnosis{position:relative;min-height:610px;padding:112px 5%;display:grid;place-items:center;background:var(--beige);overflow:hidden}.diagnosis .section-heading h2{margin-top:36px;font-size:29px;line-height:2}.diagnosis .section-heading>p:last-of-type{margin-top:32px}.text-link{display:inline-block;margin-top:62px;padding-bottom:8px;border-bottom:1px solid #aaa;font-size:15px;letter-spacing:.16em}.bubble{position:absolute;width:48px;height:48px;border:1px solid #dedbd4;border-radius:50%;opacity:.72}.bubble:before,.bubble:after{content:"";position:absolute;border:1px solid #dedbd4;border-radius:50%}.bubble:before{width:37px;height:37px;top:-7px;left:28px}.bubble:after{width:27px;height:27px;top:23px;left:44px}.bubble--top{top:70px;right:10%}.bubble--bottom{bottom:68px;left:10%;transform:scale(.72)}
.area{position:relative;min-height:560px;padding:98px 5% 105px;background:var(--blue);overflow:hidden}.area-map{position:absolute;top:70px;right:4%;width:min(46vw,620px);height:auto;fill:none;stroke:#cad7e2;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.62}.area-list{position:relative;z-index:2;margin:78px auto 0;display:flex;justify-content:center;gap:13px}.area-button{min-width:96px;height:53px;padding:0 27px;background:rgba(255,255,255,.88);border:1px solid #c9c9c5;border-radius:28px;cursor:pointer;font-size:15px;white-space:nowrap;transition:.25s}.area-button:hover,.area-button.is-active{color:#fff;background:#1d1e20;border-color:#1d1e20}.area-status{position:relative;z-index:2;margin-top:50px;color:#b2bac1;text-align:center;font-size:14px}.area-status span{display:block;width:47px;height:1px;margin:0 auto 25px;background:#aab8c5}
.area-button{display:inline-flex;align-items:center;justify-content:center}.area-all-link{position:relative;z-index:2;width:max-content;margin:50px auto 0;padding-bottom:7px;display:block;color:#7f8b95;border-bottom:1px solid rgba(127,139,149,.45);font-size:14px;letter-spacing:.1em;transition:color .3s ease}.area-all-link span{display:inline-block;margin-left:8px;transition:transform .35s ease-out}.area-all-link:hover{color:#536979}.area-all-link:hover span{transform:translateX(5px)}
.about{position:relative;min-height:790px;scroll-margin-top:var(--header);color:#fff;background:linear-gradient(90deg,rgba(1,23,40,.66),rgba(1,23,40,.37) 48%,rgba(1,23,40,.15)),url("../images/ABOUT_tokyo.png") 68% center/cover no-repeat}.about__content{width:min(1160px,90%);margin:0 auto;padding-top:105px}.about .eyebrow{text-align:left}.about h2{margin-top:56px;font-size:35px;font-weight:400;line-height:2;letter-spacing:.08em}.about__line{display:block;width:42px;height:1px;margin:48px 0 45px;background:rgba(255,255,255,.6)}.about__content>p:not(.eyebrow){margin-top:19px;color:rgba(255,255,255,.78);font-size:16px}.about__statement{margin-top:70px;color:rgba(255,255,255,.76);font-size:15px;line-height:2.3}
.footer{padding:56px 5% 42px;text-align:center;background:#faf9f6}.footer__logo{font-family:Arial,sans-serif;font-size:18px;font-weight:500;letter-spacing:.3em}.footer__tagline{margin-top:22px;color:#a8a8aa;font-size:14px;letter-spacing:.18em}.footer__copyright{margin-top:38px;padding-top:28px;color:#c2c2c4;border-top:1px solid #e1dfda;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.08em}
.ornament{background:transparent}.ornament:after{content:"✦";width:auto;height:auto;color:rgba(255,255,255,.62);background:transparent;border:0;border-radius:0;box-shadow:none;font-size:12px;line-height:1}
.text-link{position:relative}.text-link:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:1px;background:#888;transform:scaleX(0);transform-origin:left center;transition:transform .35s ease-out}.text-link:hover:after{transform:scaleX(1)}.text-link span{display:inline-block;transition:transform .35s ease-out}.text-link:hover span{transform:translateX(5px)}

/* Scroll motion */
.hero{isolation:isolate;background:none}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(4,31,51,.16),rgba(4,31,51,.2)),url("../images/topsamune.png") center/cover no-repeat;animation:heroZoom 9s ease-out both}.hero-reveal{opacity:0;transform:translateY(18px);animation:heroFade .75s ease-out forwards}.hero-reveal--1{animation-delay:.12s}.hero-reveal--2{animation-delay:.24s}.hero-reveal--3{animation-delay:.36s}.hero-reveal--4{animation-delay:.48s}.hero-reveal--5{animation-delay:.6s}
.reveal-ready [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .72s ease-out,transform .72s ease-out;transition-delay:var(--reveal-delay,0s)}.reveal-ready [data-reveal-subtle]{transform:translateY(15px);transition-duration:.8s}.reveal-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}.reveal-ready .mood-card.is-visible:hover{transform:translateY(-3px)}.reveal-ready .area-button.is-visible:hover{transform:translateY(-2px)}
.reveal-ready [data-map-reveal] path{stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 1.8s ease-out}.reveal-ready [data-map-reveal].is-visible path{stroke-dashoffset:0}.reveal-ready [data-map-reveal] path+path{transition-delay:.18s}
@keyframes heroFade{to{opacity:1;transform:translateY(0)}}@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.035)}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-reveal,.reveal-ready [data-reveal]{opacity:1;transform:none}.reveal-ready [data-map-reveal] path{stroke-dashoffset:0}}

/* AREAページと共通の、淡いブルーを基調にしたエリア選択UI */
.area-button{color:#6f6a66;background:#fff;border-color:#d9d9d5;font-size:14px;font-weight:400}
.area-button:hover{color:#455c70;background:#f7fafc;border-color:#bccbd8;transform:translateY(-1px)}
.reveal-ready .area-button.is-visible:hover{transform:translateY(-1px)}

/* PCの配置を保ち、狭い画面だけで切り替える。 */
.menu-toggle{display:none}
@media(max-width:959px){
  :root{--header:70px}
  body{min-width:320px}
  .header{padding:0 20px;background:#fdfdfc}
  .site-logo{font-size:15px}
  .menu-toggle{width:44px;height:44px;padding:5px;display:flex;flex-direction:column;justify-content:center;gap:7px;background:transparent;border:0;cursor:pointer}
  .menu-toggle span{display:block;width:100%;height:1px;background:#4d4946;transition:transform .3s,opacity .3s}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .global-nav{position:fixed;inset:var(--header) 0 0;padding:35px 20px;background:#fdfdfc;overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .3s,transform .3s,visibility .3s}
  .global-nav.is-open{visibility:visible;opacity:1;transform:translateY(0)}
  .global-nav ul{flex-direction:column;gap:6px}
  .global-nav a{display:block;padding:17px 10px;font-size:16px}
  .global-nav a:after{bottom:11px}
  .hero{min-height:max(calc(100svh - var(--header)),640px);padding:60px 24px 104px}
  .hero__content{width:100%;min-width:0;margin-top:0}
  .hero h1{margin-top:36px;font-size:clamp(36px,4.8vw,44px)}
  .hero__lead{font-size:16px}
  .hero__actions{margin-top:44px;gap:16px}
  .button{min-width:0;padding:18px 24px;font-size:15px}
  .mood{padding:95px 28px}
  .section-heading h2{font-size:28px}
  .mood-grid{margin-top:56px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .mood-card{padding:32px}
  .diagnosis{min-height:0;padding:85px 28px}
  .diagnosis .section-heading h2{font-size:26px}
  .area{min-height:0;padding:85px 28px}
  .area-list{flex-wrap:wrap;margin-top:48px}
  .area-map{width:620px;right:-160px}
  .about{min-height:0}
  .about__content{padding:80px 0}
  .about h2{font-size:30px}
}
@media(max-width:640px){
  .hero{padding:52px 20px 104px}
  .hero h1{font-size:clamp(25px,5.7vw,36px);letter-spacing:.1em}
  .hero__lead{font-size:14px}
  .ornament{margin:32px auto}
  .hero__actions{flex-direction:column;align-items:center;gap:14px;margin-top:36px}
  .hero__actions .button{width:min(100%,330px);min-height:44px;padding-top:16px;padding-bottom:16px}
  .mood{padding:76px 20px}
  .section-heading h2{font-size:25px}
  .section-heading>p:last-of-type{font-size:14px}
  .mood-grid{max-width:430px;grid-template-columns:1fr;gap:20px;margin-top:42px}
  .mood-card{height:auto;min-height:255px;padding:32px}
  .mood-card__description{padding-right:18px}
  .diagnosis,.area{padding:76px 20px}
  .diagnosis .section-heading h2{font-size:clamp(21px,4vw,25px)}
  .text-link{margin-top:42px}
  .area-list{gap:9px;margin-top:38px}
  .area-button{min-width:0;min-height:44px;height:auto;padding:10px 17px;font-size:13px}
  .area-all-link{max-width:100%;margin-top:38px}
  .about__content{width:calc(100% - 40px);padding:70px 0}
  .about h2{margin-top:38px;font-size:clamp(21px,4.8vw,28px)}
  .about__content>p:not(.eyebrow){font-size:14px;line-height:1.9}
  .about__line{margin:36px 0}
  .about__statement{margin-top:44px;font-size:14px}
  .footer{padding:48px 20px 36px}
  .footer__tagline{font-size:13px;letter-spacing:.1em}
  .reveal-ready [data-reveal]{transition-duration:.4s;transition-delay:0s}
}
