:root{
  --blue:#1676d2;
  --blue-deep:#0b4f9e;
  --navy:#123c78;
  --sky:#eaf7ff;
  --sky-2:#d7efff;
  --yellow:#ffd31f;
  --yellow-deep:#efbb00;
  --cream:#fbf5e9;
  --cream-2:#f7efe0;
  --ink:#252525;
  --muted:#5a6470;
  --line:#dbe9f5;
  --white:#fff;
  --shadow:0 14px 34px rgba(28,85,148,.10);
  --radius:26px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}
.content-wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}

/* Header: code-native navigation and CTA. Only the logo itself remains an image. */
.site-header{position:relative;z-index:50;background:#fff;border-bottom:1px solid rgba(18,60,120,.05)}
.header-inner{width:min(1440px,calc(100% - 56px));height:104px;margin:0 auto;display:flex;align-items:center;gap:30px}
.brand{width:305px;flex:none;line-height:0}
.brand img{width:100%;height:auto}
.desktop-nav{margin-left:auto;display:flex;align-items:center;gap:42px;font-size:15px;font-weight:700;white-space:nowrap}
.desktop-nav a{position:relative;padding:10px 0;color:#202020}
.desktop-nav a.active{color:var(--blue)}
.desktop-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:3px;border-radius:999px;background:var(--blue)}
.desktop-nav a:hover{color:var(--blue)}
.header-contact{margin-left:6px;min-width:182px;height:56px;padding:0 24px;border-radius:999px;background:var(--yellow);display:flex;align-items:center;justify-content:center;gap:10px;font-size:16px;font-weight:800;box-shadow:0 8px 20px rgba(239,187,0,.12);transition:transform .18s ease,box-shadow .18s ease}
.header-contact:hover{transform:translateY(-1px);box-shadow:0 11px 25px rgba(239,187,0,.18)}
.mail-icon{width:17px;height:13px;border:2px solid currentColor;border-radius:2px;position:relative;display:inline-block}
.mail-icon:after{content:"";position:absolute;left:2px;right:2px;top:0;height:7px;border-bottom:2px solid currentColor;transform:skewY(-28deg) rotate(0deg);opacity:.95}
.menu-button,.mobile-menu{display:none}

/* Hero: the approved headline + coastal illustration is one raster main visual.
   Navigation, descriptive copy and CTA buttons remain HTML/CSS. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.hero{position:relative;overflow:hidden;background:#fff}
.hero-stage{position:relative;width:min(1440px,calc(100% - 56px));margin:0 auto;line-height:0}
.hero-main-picture{display:block;width:100%}
.hero-main{display:block;width:100%;height:auto;max-width:none;object-fit:contain;image-rendering:auto}
.hero-overlay-copy{position:absolute;z-index:2;left:7.5%;bottom:5.6%;line-height:1.75}
.hero-description{margin:0 0 20px;color:#1f2328;font-size:17px;font-weight:600;line-height:1.9;letter-spacing:.01em}
.hero-actions{display:flex;gap:24px;align-items:center}
.hero-btn{min-width:225px;height:54px;padding:0 28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-size:16px;font-weight:800;line-height:1;transition:transform .18s ease,box-shadow .18s ease}
.hero-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(25,85,145,.13)}
.hero-btn-blue{color:#fff;background:#1676d2}
.hero-btn-yellow{color:#202020;background:var(--yellow)}

/* Service cards: code-native cards/text/links. Only the three circular pictograms are images. */
.service-showcase{position:relative;overflow:hidden;background:var(--cream);padding:32px 0 0}
.service-showcase:before{content:"";position:absolute;left:-6%;right:-6%;top:-62px;height:88px;background:#fff;border-radius:0 0 50% 50%/0 0 100% 100%}
.showcase-inner{position:relative;z-index:2;width:min(1240px,calc(100% - 64px))}
.showcase-title{text-align:center;margin-bottom:34px}
.showcase-title h2{margin:0;color:#252525;font-size:25px;line-height:1.35;font-weight:800}
.showcase-wave{display:block;width:62px;height:10px;margin:6px auto 0;position:relative}
.showcase-wave:before,.showcase-wave:after{content:"";position:absolute;top:3px;width:30px;height:6px;border-top:3px solid var(--blue);border-radius:50%}
.showcase-wave:before{left:1px;transform:rotate(4deg)}
.showcase-wave:after{right:1px;transform:rotate(-4deg)}
.showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-bottom:46px}
.showcase-card{position:relative;min-height:268px;padding:30px 30px 62px;background:#fff;border:1px solid #e6edf4;border-radius:18px;box-shadow:0 9px 24px rgba(28,85,148,.07)}
.showcase-no{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;width:52px;height:48px;background:var(--yellow);font-size:15px;font-weight:800;border-radius:18px 0 18px 0}
.showcase-head{display:flex;align-items:center;gap:17px;padding-left:14px;margin-bottom:18px}
.showcase-head img{width:74px;height:74px;flex:none;object-fit:contain;border-radius:50%}
.showcase-label{margin:0 0 5px;color:var(--blue);font-size:14px;font-weight:800;line-height:1.35}
.showcase-card h3{margin:0;color:#222;font-size:22px;line-height:1.38;letter-spacing:.005em}
.showcase-copy{margin:0;padding-left:14px;color:#303942;font-size:16px;line-height:1.8;font-weight:500}
.showcase-link{position:absolute;left:44px;bottom:24px;color:var(--blue);font-size:15px;font-weight:800}
.showcase-link span{margin-left:7px}
.showcase-dots{position:absolute;z-index:1;width:94px;height:94px;background-image:radial-gradient(circle,var(--yellow) 2.6px,transparent 2.7px);background-size:16px 16px;opacity:.9}
.showcase-dots-left{left:24px;top:100px}
.showcase-dots-right{right:24px;top:16px}
.service-ocean{position:relative;height:112px;background:linear-gradient(180deg,#e7f6ff 0%,#eaf7ff 46%,#d4edff 100%);overflow:hidden}
.service-ocean:before{content:"";position:absolute;left:-4%;right:-4%;bottom:-80px;height:142px;background:#2e8de8;border-radius:50% 50% 0 0/100% 100% 0 0}
.service-ocean:after{content:"";position:absolute;left:-5%;right:-5%;bottom:-91px;height:140px;background:#6bb4ef;border-radius:48% 52% 0 0/100% 100% 0 0;opacity:.82}
.fish{position:absolute;z-index:2;width:20px;height:9px;background:var(--blue);border-radius:60% 45% 45% 60%;opacity:.9}
.fish:after{content:"";position:absolute;right:-7px;top:1px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:8px solid currentColor;color:inherit}
.fish.f1{left:20%;top:43px}.fish.f2{left:60%;top:32px;transform:scale(.85)}.fish.f3{left:78%;top:67px;transform:scale(.78)}
.fish.yellow{background:var(--yellow);color:var(--yellow)}
.seaweed{position:absolute;z-index:2;bottom:2px;width:15px;height:54px;border-radius:99px;background:#71c98d}
.seaweed:before,.seaweed:after{content:"";position:absolute;bottom:0;width:15px;height:54px;border-radius:99px;background:#80d49a}
.seaweed:before{left:-10px;transform:rotate(-13deg)}.seaweed:after{right:-10px;transform:rotate(13deg)}
.sw1{left:29%}.sw2{left:31.5%;transform:scale(.8)}

/* Existing lower sections: unchanged content and visual system. */
.services-detail{position:relative;background:#fff;padding:104px 0 0;overflow:hidden}
.ocean-wave-top{position:absolute;top:0;left:0;width:100%;height:50px;background:linear-gradient(180deg,#dff2ff 0,#f8fcff 100%)}
.ocean-wave-top:after{content:"";position:absolute;left:-4%;right:-4%;top:-34px;height:76px;background:#65b2f1;border-radius:50%}
.section-kicker{margin:0 0 8px;color:var(--blue);font-weight:800;font-size:13px;letter-spacing:.13em}
h2{margin:0;color:#222;font-size:clamp(34px,4.1vw,58px);line-height:1.35;letter-spacing:.01em}
.section-intro{max-width:830px;margin:18px 0 0;color:#454f59;font-size:18px;line-height:1.9}
.service-detail{padding:88px 0;border-top:1px solid #eff3f7}
.service-blue{margin-top:54px;background:linear-gradient(180deg,#f7fcff 0,#edf8ff 100%);border-top:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}
.service-heading-row{display:flex;align-items:center;gap:20px;margin-bottom:22px}
.service-heading-row img{width:86px;height:86px;object-fit:contain;flex:none}
.service-label{margin:0 0 3px;color:var(--blue);font-size:15px;font-weight:800}
.service-copy h3{margin:0;font-size:clamp(30px,3vw,44px);line-height:1.35;color:#222}
.service-catch{font-weight:800;color:var(--navy);font-size:21px!important}
.service-copy>p{margin:12px 0 0;color:#414b55;font-size:18px}
.service-points{display:grid;gap:14px}
.point-box{background:#fff;border:1px solid #dcecf9;border-radius:22px;padding:22px 24px;box-shadow:var(--shadow)}
.point-box strong{display:block;color:var(--navy);font-size:17px;margin-bottom:5px}
.point-box span{display:block;color:#59646e;font-size:15px}
.tag-board{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.tag-board span{display:flex;align-items:center;min-height:70px;padding:16px 20px;border-radius:18px;background:#fff;border:1px solid #dcecf9;box-shadow:var(--shadow);color:var(--navy);font-weight:700}
.about{padding:104px 0;background:var(--cream)}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:46px}
.principle{position:relative;padding:31px 28px 30px;border-radius:24px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.principle:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-35px;bottom:-35px;background:var(--sky-2)}
.principle .num{display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;border-radius:50%;background:var(--yellow);font-weight:800;margin-bottom:18px}
.principle h3{margin:0 0 10px;color:var(--navy);font-size:23px}
.principle p{margin:0;color:#59646e}
.area{padding:82px 0;background:#fff}
.area-box{min-height:340px;display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center;padding:44px 52px;border-radius:32px;background:linear-gradient(135deg,#eef9ff 0,#dff3ff 100%);overflow:hidden}
.area-box p:not(.section-kicker){max-width:650px;color:#4d5964;font-size:17px}
.area-mark{position:relative;min-height:230px}
.area-mark .sun{position:absolute;width:76px;height:76px;border-radius:50%;background:var(--yellow);right:18%;top:12px}
.hill{position:absolute;bottom:34px;border-radius:50% 50% 0 0/100% 100% 0 0;transform-origin:bottom center}
.hill.h1{left:7%;width:86%;height:128px;background:#8fd3c5}
.hill.h2{left:24%;width:72%;height:104px;background:#4fb5bc}
.hill.h3{left:42%;width:58%;height:79px;background:#2389c9}
.sea-line{position:absolute;left:4%;right:0;height:9px;border-radius:999px;background:#fff;opacity:.92}
.sea-line.s1{bottom:15px}.sea-line.s2{bottom:-4px;width:74%;left:20%}
.flow{padding:96px 0;background:#fff}
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.flow-step{padding:26px 22px 28px;border:1px solid #dfeaf4;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(37,82,130,.07)}
.flow-step>span{display:inline-flex;width:48px;height:48px;border-radius:50%;align-items:center;justify-content:center;background:var(--yellow);font-weight:800}
.flow-step h3{margin:17px 0 9px;color:var(--navy);font-size:20px}
.flow-step p{margin:0;color:#5e6871;font-size:15px}
.contact{padding:88px 0 100px;background:#f8fbfe}
.contact-box{display:grid;grid-template-columns:1fr auto;gap:38px;align-items:center;padding:48px 54px;border:1px solid #cfe5f7;border-radius:32px;background:linear-gradient(135deg,#eaf7ff 0,#f5fbff 100%)}
.contact-box h2{font-size:clamp(30px,3.5vw,50px)}
.contact-box>div>p:last-child{margin:16px 0 0;color:#53606b;font-size:16px}
.contact-cta{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-width:260px;padding:20px 27px;border-radius:999px;background:var(--yellow);font-weight:800;box-shadow:0 10px 24px rgba(225,177,0,.18);white-space:nowrap;transition:transform .18s ease}
.contact-cta:hover{transform:translateY(-2px)}
.footer{border-top:1px solid #e5edf4;background:#fff;padding:34px 0 40px}
.footer-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.footer strong{font-size:18px}.footer p{margin:5px 0 0;color:#65707a;font-size:14px}.footer small{color:#8b949d}

@media (max-width:1180px){
  .header-inner{width:min(100% - 36px,1440px);gap:20px}.brand{width:260px}.desktop-nav{gap:24px;font-size:14px}.header-contact{min-width:160px;padding:0 18px}
  .hero-stage{width:min(100% - 36px,1440px)}
  .hero-overlay-copy{left:7.2%;bottom:4.8%}
  .hero-description{font-size:16px;margin-bottom:16px}
  .hero-btn{min-width:200px;height:50px;font-size:15px}
}

@media (max-width:900px){
  .site-header{position:sticky;top:0;background:rgba(255,255,255,.98);backdrop-filter:blur(8px)}
  .header-inner{height:72px;width:calc(100% - 28px)}
  .brand{width:min(64vw,290px)}
  .desktop-nav,.header-contact{display:none}
  .menu-button{margin-left:auto;width:44px;height:44px;border:0;border-radius:12px;background:#fff;display:grid;place-content:center;gap:5px;padding:0;box-shadow:0 3px 12px rgba(0,0,0,.06)}
  .menu-button span{display:block;width:23px;height:2px;background:var(--navy);border-radius:10px}
  .mobile-menu{position:fixed;z-index:49;top:72px;left:0;right:0;padding:14px 20px 24px;background:#fff;border-bottom:1px solid #e8eef4;box-shadow:0 18px 30px rgba(14,58,105,.12)}
  .mobile-menu:not([hidden]){display:block}
  .mobile-menu a{display:block;padding:11px 6px;border-bottom:1px solid #eef2f5;font-weight:700}
  .mobile-menu-contact{margin-top:12px!important;text-align:center;border:0!important;border-radius:999px;background:var(--yellow)}
  .hero-stage{width:calc(100% - 24px);padding-bottom:28px}
  .hero-overlay-copy{position:static;padding:20px 4px 0;line-height:1.75}
  .hero-description{font-size:15px;line-height:1.85;margin-bottom:18px}
  .hero-description br{display:none}
  .hero-actions{gap:10px}
  .hero-btn{min-width:0;flex:1;height:50px;padding:0 14px;font-size:14px;gap:9px}
  .content-wrap{width:min(100% - 30px,1180px)}
  .service-showcase{padding-top:28px}
  .showcase-title{margin-bottom:22px}.showcase-title h2{font-size:25px}
  .showcase-grid{grid-template-columns:1fr;gap:14px;padding-bottom:34px}
  .showcase-card{min-height:220px;padding:25px 20px 58px}
  .showcase-head{padding-left:22px;gap:14px;margin-bottom:14px}.showcase-head img{width:68px;height:68px}.showcase-card h3{font-size:23px}.showcase-label{font-size:13px}.showcase-copy{padding-left:22px;font-size:15px}.showcase-link{left:42px;bottom:18px}
  .showcase-dots{width:70px;height:70px;background-size:14px 14px}.service-ocean{height:82px}
  .services-detail{padding-top:82px}.section-intro{font-size:16px}.split{grid-template-columns:1fr;gap:30px}.service-detail{padding:66px 0}.service-blue{margin-top:38px}.service-heading-row{align-items:flex-start;gap:14px}.service-heading-row img{width:68px;height:68px}.service-copy h3{font-size:30px}.service-catch{font-size:18px!important}.service-copy>p{font-size:16px}.tag-board{grid-template-columns:1fr 1fr;gap:10px}.tag-board span{min-height:58px;padding:13px 14px;font-size:14px}.about{padding:76px 0}.principles{grid-template-columns:1fr;gap:14px;margin-top:30px}.area{padding:62px 0}.area-box{grid-template-columns:1fr;padding:30px 24px;min-height:0}.area-mark{min-height:190px}.flow{padding:72px 0}.flow-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}.flow-step{padding:20px 16px}.contact{padding:62px 0 72px}.contact-box{grid-template-columns:1fr;padding:30px 22px;gap:24px}.contact-cta{width:100%;min-width:0}.footer-inner{align-items:flex-start;flex-direction:column}
}

@media (max-width:520px){
  .brand{width:min(70vw,275px)}
  .hero-actions{flex-direction:column}.hero-btn{width:100%;flex:none}
  .showcase-card{min-height:218px}.showcase-head{padding-left:18px}.showcase-copy{padding-left:18px}.showcase-link{left:38px}.showcase-card h3{font-size:21px}
  h2{font-size:31px}.tag-board{grid-template-columns:1fr}.flow-grid{grid-template-columns:1fr}.area-mark{min-height:160px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.header-contact,.hero-btn,.contact-cta{transition:none}}
