:root{--green:#00967D;--blue:#007AA9;--navy:#182d35;--text:#4d5c61;--line:#dfe9e7;--pale:#f5f8f7;--white:#fff;--max:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-height:1.9;letter-spacing:.03em}a{text-decoration:none;color:inherit}.header{height:88px;background:rgba(255,255,255,.97);position:fixed;top:0;left:0;right:0;z-index:50;border-bottom:1px solid rgba(0,0,0,.04);transform:translateY(-100%);opacity:0;transition:transform .8s cubic-bezier(.22,.61,.36,1),opacity .65s ease;pointer-events:none}.header.header-visible{transform:translateY(0);opacity:1;pointer-events:auto}.header-inner{max-width:var(--max);height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 25px}.brand{display:block;width:340px}.brand img{display:block;width:100%;height:auto}.nav{display:flex;align-items:center;gap:30px;font-size:12px;color:#24353b}.nav a{position:relative;padding:10px 0}.nav a:after{content:"";position:absolute;left:0;bottom:4px;width:0;height:1px;background:var(--green);transition:.3s}.nav a:hover:after{width:100%}.nav-contact{padding:10px 18px!important;color:#fff;background:var(--blue)}.nav-contact:after{display:none}.menu-btn{display:none;background:#fff;border:0;width:42px;height:42px;padding:5px;cursor:pointer;position:relative;z-index:100;flex:0 0 42px}.menu-btn span{display:block;height:1px;background:var(--navy);margin:7px 0}.hero{height:100vh;min-height:650px;position:relative;margin-top:0;overflow:hidden;background:#eef2f0}.hero-image{position:absolute;inset:0;background:url("hero.jpg") center center/cover no-repeat}.hero-copy{position:absolute;left:6%;top:8%;color:#fff;display:block}.hero-en{display:none}.hero-message{margin:0;font-size:clamp(26px,2.5vw,38px);font-weight:400;line-height:1.8;letter-spacing:.08em;text-align:left;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.28)}.hero-brand{position:absolute;left:6%;bottom:42px;color:#fff;font-family:"Brush Script MT","Segoe Script","Snell Roundhand","URW Chancery L",cursive;font-size:clamp(34px,3.6vw,50px);font-weight:300;letter-spacing:.02em;line-height:1;text-shadow:0 2px 10px rgba(0,0,0,.28);z-index:2;white-space:nowrap}
.hero-link{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:13px;letter-spacing:.2em;white-space:nowrap}.scroll-text{display:block}.scroll-arrow{display:block;margin-top:6px;font-size:25px;line-height:1;animation:scrollArrow 1.5s ease-in-out infinite}@keyframes scrollArrow{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
.section{padding:125px 0}.section-inner{max-width:var(--max);margin:auto;padding:0 25px}.section-label{margin:0 0 20px;color:var(--green);font-size:11px;font-weight:700;letter-spacing:.25em}.section h2{margin:0;color:var(--navy);font-size:clamp(32px,4.2vw,52px);font-weight:400;line-height:1.55}.section h2 em{font-style:normal;color:var(--green)}.concept{background:#fff}.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px}.text{padding-top:35px;max-width:650px}.text p{margin:0 0 24px}.text .lead{font-size:18px;color:var(--navy)}.service{background:var(--pale)}.section-title{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:60px}.section-title>p{max-width:350px;font-size:13px} .service-list{border-top:1px solid var(--line);position:relative;z-index:2}
.service-item{position:relative;z-index:3}
.service-preview{position:fixed;z-index:45;top:0;right:0;width:50vw;height:100vh;overflow:hidden;transform:translateX(100%);transition:transform .65s cubic-bezier(.22,.61,.36,1);pointer-events:none;background:#172f37}
.service-preview.is-visible{transform:translateX(0)}
.service-preview img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9)}
.service-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,43,47,.42),rgba(15,43,47,.08) 55%,rgba(0,0,0,.18))}
.service-preview-caption{position:absolute;left:42px;bottom:48px;z-index:2;color:#fff;display:flex;flex-direction:column;gap:5px;text-shadow:0 2px 10px rgba(0,0,0,.25)}
.service-preview-caption span{font-size:10px;letter-spacing:.22em;opacity:.85}
.service-preview-caption strong{font-size:26px;font-weight:400;letter-spacing:.08em}
.service-item{display:grid;grid-template-columns:70px 1fr 40px;gap:30px;padding:38px 0;border-bottom:1px solid var(--line);align-items:start;transition:.3s}.service-item:hover{padding-left:10px;padding-right:10px;background:#fff}.service-number{color:var(--green);font-size:13px}.service-en{margin:0;color:var(--blue);font-size:9px;letter-spacing:.2em}.service-item h3{margin:5px 0 12px;color:var(--navy);font-size:25px;font-weight:500}.service-item p:not(.service-en){margin:0;max-width:700px;font-size:13px}.service-item>span{color:var(--green);font-size:21px}.flow{background:linear-gradient(115deg,#f4f8f7,#f2f8fb)}.flow-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px}.flow-list{border-top:1px solid var(--line)}.flow-list>div{display:grid;grid-template-columns:60px 1fr;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.flow-list b{color:var(--green);font-size:13px}.flow-list h3{margin:0;color:var(--navy);font-size:18px;font-weight:500}.flow-list p{margin:2px 0 0;font-size:12px}.about{background:#fff}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px}.about-text{padding-top:30px}.about-text p{margin:0 0 25px}.company-profile{max-width:1110px;margin:90px auto 0;padding:0 25px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.company-profile>div{padding:25px 25px 25px 0;border-bottom:1px solid var(--line)}.company-profile span{display:block;color:var(--green);font-size:11px;margin-bottom:7px}.company-profile strong{font-size:13px;font-weight:500;color:var(--navy)}.company-profile small{font-size:10px}.message{background:#fff}.message-box{display:grid;grid-template-columns:.8fr 1fr;gap:100px;align-items:start}.message-text{padding-top:35px}.message-text p{margin:0 0 25px}.contact{padding:0 25px 125px;background:#fff}.contact-inner{max-width:1110px;margin:auto;padding:90px 50px;text-align:center;color:#fff;background:linear-gradient(120deg,var(--green),var(--blue));position:relative;overflow:hidden}.contact-inner:before{content:"";position:absolute;width:400px;height:400px;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-160px;top:-190px}.contact .section-label{color:#fff}.contact h2{color:#fff}.contact-inner>p:not(.section-label){font-size:13px}.contact-actions{display:flex;justify-content:center;gap:15px;margin-top:30px;flex-wrap:wrap}.contact-btn{display:inline-flex;align-items:center;gap:15px;padding:14px 24px;border:1px solid rgba(255,255,255,.6);color:#fff;font-size:12px;position:relative;z-index:1}.contact-btn.primary{background:#fff;color:var(--green)}.contact-btn strong{font-size:16px;font-weight:500}.contact-btn span{font-size:18px}.contact-inner small{display:block;margin-top:20px;font-size:10px;opacity:.85}.footer{padding:55px 25px 20px;background:#172f37;color:#fff}.footer-inner{max-width:1110px;margin:auto;display:flex;align-items:end;justify-content:space-between;gap:40px}.footer img{width:300px;max-width:100%;background:#fff}.footer nav{display:flex;gap:24px;font-size:10px;letter-spacing:.1em}.footer nav a:hover{color:#8fd4df}.copyright{max-width:1110px;margin:45px auto 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:9px;color:#8ca5ab;letter-spacing:.1em}
@media(max-width:900px){
.service-preview{display:none}.header{height:72px}.header-inner{padding:0 15px}.brand{width:calc(100% - 55px);max-width:230px;min-width:0}.brand img{max-width:100%}.nav{display:none;position:absolute;top:72px;left:0;right:0;padding:15px 25px 25px;background:#fff;flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--line)}.nav.open{display:flex}.nav a{width:100%;padding:11px 0}.nav-contact{width:auto!important;margin-top:8px}.menu-btn{display:block}.menu-btn span{transition:transform .25s,opacity .25s}.menu-btn.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-btn.active span:nth-child(2){opacity:0}.menu-btn.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav{z-index:90}.hero{height:100vh;min-height:700px;margin-top:0}.hero-copy{left:25px;top:8%;right:auto;width:auto;max-width:calc(100% - 50px)}.hero-message{font-size:24px;line-height:1.8;text-align:left}.hero-link{bottom:22px}.hero-brand{left:20px;bottom:58px;font-size:38px;font-weight:300}.section{padding:90px 0}.concept-grid,.flow-grid,.about-grid,.message-box{grid-template-columns:1fr;gap:35px}.text,.about-text,.message-text{padding-top:0}.section-title{display:block}.section-title>p{margin-top:25px}.company-profile{grid-template-columns:1fr;margin-top:65px}.service-item{grid-template-columns:45px 1fr 25px;gap:15px}.service-item h3{font-size:21px}.footer-inner{display:block}.footer nav{margin-top:30px;flex-wrap:wrap}.contact{padding:0 15px 90px}.contact-inner{padding:65px 20px}}
@media(max-width:600px){.container,.section-inner{padding-left:20px;padding-right:20px}.brand{width:220px}.hero{min-height:650px}.hero-image{background-position:center}.hero-copy{left:20px;top:7%;right:auto;width:calc(100% - 40px);max-width:none}.hero-message{font-size:20px;line-height:1.9;letter-spacing:.06em}.hero-link{bottom:20px}.scroll-arrow{font-size:20px}.service-item{padding:30px 0}.service-item>span{font-size:16px}.contact-actions{flex-direction:column}.contact-btn{justify-content:center}.footer{padding-left:20px;padding-right:20px}}

/* Service interaction: desktop */
.service .section-inner{position:relative;overflow:visible}
.service-stage{width:100%;transition:transform .65s cubic-bezier(.22,.61,.36,1)}
.service.service-preview-active .service-stage{transform:translateX(-16.666vw);}
.service-preview{width:33.333vw;}

@media(max-width:900px){
  .service.service-preview-active .service-stage{transform:none}
  .service-stage{width:100%}
  .service-preview{
    position:relative;
    top:auto;
    right:auto;
    width:100%;
    height:0;
    transform:translateY(80px);
    opacity:0;
    margin:0;
    overflow:hidden;
    transition:height .55s ease, opacity .5s ease, transform .75s cubic-bezier(.22,.61,.36,1);
    display:block;
  }
  /* The service block + image together fill one viewport below the fixed header. */
  .service-preview.is-visible{
    height:calc(100svh - 72px - var(--active-item-height, 180px));
    min-height:260px;
    max-height:calc(100svh - 72px - 120px);
    transform:translateY(0);
    opacity:1;
  }
  .service-preview img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .service-preview:after{background:linear-gradient(180deg,rgba(15,43,47,.05),rgba(15,43,47,.38))}
  .service-preview-caption{left:20px;bottom:24px}
  .service-preview-caption strong{font-size:20px}
  .service-item.is-selected{background:#fff}
  .service-preview{margin-top:0;margin-bottom:8px;border-radius:0}
}
