:root { --navy:#102a43; --cyan:#18b7be; --cyan-dark:#087e87; --muted:#526777; --line:#dce7ed; --pale:#f4fafc; --gutter:clamp(24px,5vw,80px); --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:116px; }
body { margin:0; color:var(--navy); background:#fff; font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; font-size:16px; line-height:1.95; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { overflow-wrap:anywhere; font-feature-settings:"palt"; }
h2 { font-size:clamp(1.65rem,2.5vw,2.35rem); line-height:1.7; letter-spacing:.035em; }
h3 { font-size:1.25rem; line-height:1.7; }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:3px solid var(--cyan-dark); outline-offset:5px; }
.wrap { width:calc(100% - var(--gutter)*2); max-width:var(--max); margin-inline:auto; }
.section-space { padding-block:88px; }
.eyebrow { color:var(--cyan-dark); font:700 .875rem/1.5 Arial,sans-serif; letter-spacing:.13em; }
.section-label { font-size:.875rem; margin-top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:8px; left:16px; padding:8px 16px; background:var(--navy); color:#fff; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.svg-definitions { position:absolute; width:0; height:0; overflow:hidden; }
.line-icon { width:46px; height:46px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.mobile-break { display:none; }
#page-title:focus,#main:focus { outline:none; }
/* Equal side regions keep the primary links centered in the viewport. */
.site-header { position:sticky; top:0; z-index:20; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; min-height:98px; padding:12px var(--gutter); background:rgba(255,255,255,.98); border-bottom:1px solid #edf2f5; transition:box-shadow .2s; }
.site-header.is-scrolled { box-shadow:0 4px 20px #102a430b; }
.brand { display:block; width:218px; flex:none; line-height:1; }
.site-header .brand img { mix-blend-mode:multiply; }
.site-nav { grid-column:2/4; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; font-size:.875rem; font-weight:700; }
.nav-links { justify-self:center; display:flex; gap:8px; align-items:stretch; white-space:nowrap; }
.nav-links > a { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:9px 10px; border-radius:3px; transition:color .2s,background-color .2s,box-shadow .2s; }
.nav-links > a > span { font:600 .75rem/1.5 Arial,sans-serif; letter-spacing:.06em; margin-bottom:2px; }
.nav-links > a[aria-current="page"] { color:var(--cyan-dark); background:#e6f5f7; box-shadow:inset 0 -2px var(--cyan); }
.nav-contact { justify-self:end; display:flex; align-items:center; gap:24px; padding:11px 23px; color:#fff; background:var(--navy); border:1px solid var(--navy); border-radius:28px; transition:color .2s,background-color .2s,border-color .2s; }
.nav-contact[aria-current="page"] { color:var(--navy); background:var(--cyan); border-color:var(--cyan); }
.nav-links > a:focus-visible { color:#fff; background:var(--navy); }
.nav-contact:focus-visible,.button:focus-visible { color:var(--navy); background:var(--cyan); border-color:var(--cyan); }
.menu-toggle { display:none; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:52px; padding:13px 26px; color:#fff; background:var(--navy); border:1px solid var(--navy); border-radius:30px; font-size:.875rem; font-weight:700; line-height:1.7; transition:color .2s,background-color .2s,border-color .2s; }
.button-light { color:var(--navy); background:rgba(255,255,255,.96); border-color:#a7c1ce; }
.link-arrow { display:inline-block; flex:none; font-size:1.25rem; line-height:1; transition:transform .22s; }
.text-link { display:inline-flex; align-items:center; gap:24px; padding-block:7px; font-size:.875rem; font-weight:700; color:var(--navy); }
.text-link .link-arrow { display:grid; place-items:center; width:36px; height:36px; border:1px solid #b9d1da; border-radius:50%; transition:transform .2s,color .2s,background-color .2s; }
@media (hover:hover) {
  .nav-links > a:hover { color:#fff; background:var(--navy); }
  .nav-contact:hover,.button:hover { color:var(--navy); background:var(--cyan); border-color:var(--cyan); }
  .button-light:hover { color:#fff; background:var(--navy); border-color:var(--navy); }
  .nav-contact:hover .link-arrow,.button:hover .link-arrow { transform:translateX(4px); }
  .text-link:hover .link-arrow { color:#fff; background:var(--navy); transform:translateX(3px); }
}
.button:active,.nav-contact:active { transform:translateY(1px); }
/* Daylight scene with moving clouds, turbine blades and the walking family. */
.hero { overflow:hidden; }
.hero-inner { position:relative; min-height:654px; padding-block:67px 90px; }
.hero-copy { position:relative; z-index:3; width:710px; max-width:72%; }
.hero-copy .eyebrow { margin-bottom:24px; }
.hero h1 { font-family:Arial,Helvetica,sans-serif; font-size:clamp(2.6rem,3.6vw,3.3rem); font-weight:500; letter-spacing:-.04em; line-height:1.16; }
.hero-jp { margin-top:27px; font-size:clamp(1.3rem,2.1vw,1.8rem); font-weight:700; line-height:1.8; letter-spacing:.045em; }
.hero-description { margin-top:21px; font-size:1rem; line-height:1.95; font-weight:500; }
.hero-copy .button { margin-top:28px; }
.hero-art { position:absolute; inset:0 calc(var(--gutter)*-1); overflow:hidden; }
.city-scene { position:absolute; bottom:0; right:0; width:min(1120px,95vw); aspect-ratio:3/2; overflow:hidden; }
.city-day { width:100%; height:100%; object-fit:contain; }

.clouds { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.cloud { position:absolute; height:auto; max-width:none; opacity:.88; animation:cloud-travel 90s linear infinite; animation-play-state:paused; }
.cloud-one { width:52%; top:11%; left:-52%; animation-delay:-34s; }
.cloud-two { width:29%; top:22%; left:-29%; opacity:.72; animation-name:cloud-travel-far; animation-duration:126s; animation-delay:-83s; }
/* The generated rotor's actual hub is (627.5,722) in its 1254px square. */
.rotor { position:absolute; aspect-ratio:1; transform:translate(-50.04%,-57.58%); pointer-events:none; }
.rotor img { width:100%; height:100%; transform-origin:50.04% 57.58%; animation:rotor-turn 14s linear infinite; animation-play-state:paused; }
.rotor-large { left:88.802%; top:44.727%; width:15.12%; }
.rotor-small { left:82.227%; top:58.984%; width:6.9%; }
.rotor-small img { animation-duration:11s; animation-delay:-3s; }
.hero-art::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 16%,rgba(255,255,255,.72) 35%,rgba(255,255,255,0) 63%); pointer-events:none; }
.hero-art figcaption { position:absolute; bottom:54px; right:var(--gutter); z-index:2; padding:2px 7px; background:rgba(255,255,255,.88); color:var(--muted); font-size:.75rem; }
.motion-toggle { position:absolute; right:0; bottom:12px; z-index:4; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid #c8dce4; border-radius:50%; color:#425b6d; background:rgba(255,255,255,.9); line-height:1; cursor:pointer; }
.motion-toggle[hidden] { display:none; }
.motion-symbol { font-family:Arial,sans-serif; font-size:1.125rem; line-height:1; text-align:center; }
.hero.motion-ready .cloud,.hero.motion-ready .rotor img { animation-play-state:running; }
.hero:is(.motion-paused,.is-out-of-view,.page-hidden) .cloud,.hero:is(.motion-paused,.is-out-of-view,.page-hidden) .rotor img { animation-play-state:paused; }
@keyframes rotor-turn { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@keyframes cloud-travel { from { transform:translateX(0); } to { transform:translateX(300%); } }
@keyframes cloud-travel-far { from { transform:translateX(0); } to { transform:translateX(450%); } }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:38px; }
.section-heading .eyebrow { margin-bottom:13px; }
.section-heading > p { color:var(--muted); font-size:1rem; flex:none; padding-bottom:4px; }
.home-business { padding-top:53px; border-top:1px solid var(--line); }
.three-domains { font-family:Arial,sans-serif; font-weight:500; letter-spacing:-.025em; font-size:clamp(1.6rem,3vw,2.55rem); }
.three-domains span { padding-inline:.15em; color:var(--cyan); font-weight:400; }
.areas-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--line); }
.area-card { position:relative; display:flex; flex-direction:column; padding:28px 32px 33px; border-right:1px solid var(--line); transition:background-color .2s; }
.area-card:first-child { padding-left:0; }
.area-card:last-child { border-right:0; padding-right:0; }
.area-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.area-number { font:400 .875rem/1.5 Arial,sans-serif; letter-spacing:.12em; color:var(--muted); }
.area-top .line-icon { color:var(--cyan-dark); width:40px; height:40px; }
.area-card h3 { font:500 2.1rem/1.4 Arial,sans-serif; letter-spacing:-.015em; }
.area-jp { margin-top:8px; font-size:.9375rem; font-weight:700; }
.area-description { margin-top:17px; color:var(--muted); font-size:1rem; line-height:1.9; flex:1; }
.area-card > .link-arrow { align-self:end; margin-top:23px; color:var(--cyan-dark); }
@media (hover:hover) { .area-card:hover { background:#f3fafb; } .area-card:hover > .link-arrow { transform:translateX(4px); } }
.editorial-grid { display:grid; grid-template-columns:1fr 2.7fr; gap:70px; }
.home-about,.values,.access { background:var(--pale); border-block:1px solid #eaf2f5; }
.body-copy { color:#435b6b; margin-top:24px; line-height:2.05; }
.body-copy p + p { margin-top:21px; }
.home-about .text-link { margin-top:27px; }
.home-news { padding-block:64px 78px; background:var(--pale); color:var(--navy); }
.home-news .news-empty { color:var(--muted); border-color:var(--line); }
.home-news .section-title-row > span { color:var(--cyan-dark); }
.news-empty { border-block:1px solid var(--line); padding:33px 0; color:var(--muted); }
.news-empty p + p { margin-top:10px; }
.contact-band { padding-block:58px; background:#fff; border-top:1px solid var(--line); }
.contact-inner { display:flex; justify-content:space-between; align-items:center; gap:36px; }
.contact-inner .eyebrow { margin-bottom:14px; }
.contact-inner h2 { font-size:clamp(1.5rem,2.35vw,2rem); font-weight:600; letter-spacing:0; line-height:1.6; }
.contact-inner p:not(.eyebrow) { margin-top:14px; color:var(--muted); }
.contact-inner .button { min-width:225px; flex:none; }
.page-heading { padding-block:28px 48px; border-bottom:1px solid var(--line); }
.breadcrumb { display:flex; flex-wrap:wrap; gap:14px; font-size:.8125rem; color:var(--muted); margin-bottom:41px; }
.breadcrumb > a { text-decoration:underline; text-underline-offset:4px; }
.page-heading .eyebrow { margin-bottom:15px; }
.page-heading h1 { font-size:clamp(2.05rem,3.6vw,3.1rem); line-height:1.6; letter-spacing:.04em; }
.page-lead { margin-top:20px; color:var(--muted); max-width:800px; }
.area-jump { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding-block:32px; }
.area-jump > a { position:relative; padding:14px 34px 14px 0; border-bottom:1px solid #b5cbd6; font-size:.875rem; }
.area-jump > a > span:first-child { display:block; font:500 1.25rem/1.6 Arial,sans-serif; margin-bottom:2px; }
.area-jump > a > span:last-child { position:absolute; right:5px; top:28px; color:var(--cyan-dark); }
.area-jump > a:hover { color:var(--cyan-dark); }
.business-detail { display:grid; grid-template-columns:1fr 1.5fr; gap:92px; border-bottom:1px solid var(--line); }
.business-detail:last-child { border-bottom:0; }
.business-identity { position:relative; display:grid; grid-template-columns:minmax(0,1fr); column-gap:16px; align-items:baseline; align-content:start; }
.business-identity > .line-icon { float:right; color:var(--cyan-dark); width:52px; height:52px; margin-left:16px; }
.domain-name { margin-top:20px; font:500 clamp(2.7rem,4vw,3.5rem)/1.3 Arial,sans-serif; letter-spacing:-.035em; }
.business-identity h2 { font-size:1.3rem; margin-top:15px; letter-spacing:0; }
.business-body h3 { font-size:1.5rem; margin-bottom:19px; }
.business-body > p:not(.service-stage) { color:#435b6b; line-height:2.05; }
.service-list { margin:25px 0; list-style:none; padding:0; }
.service-list li { padding:11px 0 11px 18px; position:relative; border-top:1px solid var(--line); }
.service-list li:last-child { border-bottom:1px solid var(--line); }
.service-list li::before { content:""; position:absolute; left:0; top:25px; width:5px; height:5px; border-radius:50%; background:var(--cyan); }
.service-stage { display:inline-block; padding:5px 12px; font-size:.875rem; color:#25676e; background:#edf7f8; border-radius:3px; }
.business-body .text-link { display:flex; width:fit-content; margin-top:23px; }
.mission { padding-top:66px; }
.mission h2 { font-size:clamp(2rem,3.2vw,3rem); }
.mission .body-copy { max-width:710px; }
.values-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.values-grid article { padding:0 25px; border-right:1px solid var(--line); }
.values-grid article:first-child { padding-left:0; }
.values-grid article:last-child { border-right:0; padding-right:0; }
.values-grid .line-icon { margin-bottom:20px; color:var(--cyan-dark); }
.values-grid h3 { font-size:1.125rem; margin-bottom:14px; }
.values-grid p { color:var(--muted); }
.about-next { display:flex; justify-content:end; gap:60px; padding-block:45px; }
.company-info { padding-top:62px; }
.company-table { margin:0; }
.company-table > div { display:grid; grid-template-columns:124px minmax(0,1fr); gap:25px; padding-block:22px; border-top:1px solid var(--line); }
.company-table > div:last-child { border-bottom:1px solid var(--line); }
.company-table dt { font-size:.875rem; font-weight:700; padding-top:2px; text-align:center; align-self:center; }
.company-table dd { margin:0; color:#425b6d; overflow-wrap:anywhere; }
.access h3 { margin-bottom:19px; }
.access p:not(.eyebrow) { color:var(--muted); }
.access .text-link { margin-top:25px; }
.news-content { min-height:310px; padding-top:48px; }
.contact-page-grid { display:grid; grid-template-columns:1fr 1fr; gap:85px; padding-top:63px; }
.contact-page-grid h2 { margin-top:17px; }
.contact-topics { list-style:none; padding:0; margin:26px 0 0; }
.contact-topics li { padding-left:18px; position:relative; margin-top:8px; }
.contact-topics li::before { content:""; position:absolute; left:0; top:14px; width:5px; height:5px; border-radius:50%; background:var(--cyan); }
.contact-entry { padding:34px; background:var(--pale); border:1px solid var(--line); align-self:start; }
.contact-entry h3 { margin-top:18px; margin-bottom:16px; }
.contact-entry p:not(.eyebrow) { color:var(--muted); }
.contact-entry .button { margin-top:28px; width:100%; gap:16px; }
.contact-entry .contact-destination { font-size:.875rem; margin-top:13px; }
.privacy-link { display:inline-block; margin-top:25px; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; }
.privacy-content { max-width:900px; padding-bottom:90px; font-size:1rem; line-height:2; overflow-wrap:anywhere; }
.privacy-content section { margin-top:38px; padding-top:28px; border-top:1px solid var(--line,#dce6eb); }
.privacy-content h2 { font-size:clamp(1.125rem,2vw,1.375rem); line-height:1.6; margin-bottom:18px; font-weight:500; }
.privacy-content p + p { margin-top:16px; }
.privacy-content ul { padding-left:1.5em; margin:16px 0; }
.privacy-content li + li { margin-top:8px; }
.privacy-company { margin:0; }
.privacy-company > div { display:grid; grid-template-columns:5em 1fr; gap:16px; margin-top:12px; }
.privacy-company dt { font-weight:500; }
.privacy-company dd { margin:0; }
.policy-draft-note,.policy-preview-contact { padding:18px 22px; background:#f4fafc; font-size:.875rem; border-left:3px solid #18b7be; }
.policy-draft-note { margin-bottom:28px; }
.policy-preview-contact a { text-decoration:underline; text-underline-offset:4px; }
.site-footer { background:var(--navy); color:#fff; padding-block:39px 22px; }
.footer-main { display:flex; justify-content:space-between; align-items:center; gap:50px; padding-bottom:30px; }
.footer-brand { width:238px; }
.footer-brand img { mix-blend-mode:lighten; }
.footer-main p { margin-top:11px; font-size:.875rem; }
.footer-address { margin-top:0; font-size:.875rem; font-style:normal; line-height:1.8; color:#d3e0ea; }
.footer-nav { display:grid; grid-template-columns:repeat(3,auto); gap:12px 36px; font-size:.875rem; }
.footer-nav a:hover { color:var(--cyan); }
.footer-meta { display:flex; justify-content:space-between; align-items:center; gap:25px; padding-top:21px; border-top:1px solid #ffffff26; color:#d3e0ea; font-size:.8125rem; }
.footer-meta a:hover { text-decoration:underline; }
.footer-meta small { font:400 .75rem/1.5 Arial,sans-serif; }
.back-to-top { position:fixed; z-index:30; right:max(24px,env(safe-area-inset-right)); bottom:max(24px,env(safe-area-inset-bottom)); display:grid; place-items:center; width:49px; height:49px; color:#fff; background:var(--navy); border:1px solid #ffffff40; border-radius:6px; box-shadow:0 4px 15px #102a4324; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(9px); transition:opacity .2s,visibility .2s,transform .2s,background-color .2s,color .2s; }
.back-to-top.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.back-to-top svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s; }
.back-to-top:focus-visible { color:var(--navy); background:var(--cyan); }
@media (hover:hover) { .back-to-top:hover { color:var(--navy); background:var(--cyan); } .back-to-top:hover svg { transform:translateY(-3px); } }
@media (max-width:77.999rem) {
  .site-header { display:flex; justify-content:space-between; gap:24px; min-height:83px; padding-block:7px; }
  .brand { width:204px; }
  .menu-toggle { display:flex; align-items:center; gap:13px; min-height:44px; padding:9px 0 9px 12px; border:0; background:transparent; cursor:pointer; color:var(--navy); font-size:.875rem; }
  .menu-lines { width:23px; height:12px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; transition:transform .2s; }
  .menu-toggle[aria-expanded="true"] .menu-lines { transform:rotate(-20deg); }
  .site-nav { display:none; position:absolute; top:100%; left:0; right:0; padding:8px var(--gutter) 25px; background:#fff; box-shadow:0 12px 18px #102a430b; gap:0; align-items:stretch; max-height:calc(100dvh - 95px); overflow-y:auto; }
  .site-nav.is-open { display:flex; flex-direction:column; }
  .nav-links { flex-direction:column; align-items:stretch; gap:0; white-space:normal; }
  .nav-links > a { align-items:start; padding:12px 17px; border-top:1px solid var(--line); }
  .nav-links > a[aria-current="page"] { box-shadow:inset 3px 0 var(--cyan); }
  .nav-contact { justify-content:space-between; margin-top:10px; }
  .hero-inner { min-height:601px; padding-top:52px; }
  .hero-copy { max-width:79%; }
  .hero-art::after { background:linear-gradient(90deg,#fff,rgba(255,255,255,.95) 17%,rgba(255,255,255,.65) 43%,transparent 78%); }
  .area-card { padding-inline:25px; }
  .editorial-grid { gap:42px; }
  .business-detail { gap:55px; }
  .contact-page-grid { gap:45px; }
}
@media (max-width:820px) {
  html { scroll-padding-top:100px; }
  .section-space { padding-block:62px; }
  .hero-inner { min-height:580px; }
  .hero-copy { max-width:90%; }
  .hero h1 { font-size:clamp(2.35rem,5.9vw,3.1rem); }
  .hero-jp { font-size:1.35rem; }
  .city-scene { width:100vw; }
  .section-heading { align-items:start; flex-direction:column; gap:20px; margin-bottom:28px; }
  .section-heading > p br { display:none; }
  .three-domains { font-size:clamp(1.65rem,4.4vw,2.3rem); }
  .area-card { padding-inline:18px; }
  .area-card h3 { font-size:1.65rem; }
  .area-jp { font-size:.875rem; }
  .area-description { font-size:.9375rem; }
  .editorial-grid { grid-template-columns:1fr; gap:27px; }
  .desktop-break { display:none; }
  .values-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 0; }
  .values-grid article { padding-inline:23px; }
  .values-grid article:nth-child(odd) { padding-left:0; }
  .values-grid article:nth-child(even) { padding-right:0; border-right:0; }
  .business-detail { grid-template-columns:1fr 1.35fr; gap:38px; }
  .business-identity h2 { font-size:1.1rem; }
  .business-body h3 { font-size:1.25rem; }
  .contact-page-grid { grid-template-columns:1fr; gap:38px; }
  .contact-entry { max-width:620px; }
  .contact-inner { align-items:start; flex-direction:column; gap:27px; }
  .footer-main { align-items:start; gap:35px; }
  .footer-nav { grid-template-columns:repeat(2,auto); gap:12px 25px; }
}
@media (max-width:560px) {
  :root { --gutter:24px; }
  .mobile-break { display:block; }
  .site-header { min-height:76px; }
  .brand { width:177px; }
  .section-space { padding-block:48px; }
  .hero-inner { display:block; min-height:400px; padding-top:36px; padding-bottom:190px; }
  .hero-copy { width:100%; max-width:100%; order:0; }
  .hero-copy .eyebrow { font-size:.8125rem; margin-bottom:19px; }
  .hero h1 { font-size:clamp(1.375rem,7vw,2.2rem); line-height:1.2; letter-spacing:-.045em; }
  .hero-jp { font-size:1.2rem; margin-top:22px; letter-spacing:.025em; }
  .hero-description { margin-top:17px; font-size:.9375rem; }
  .hero-copy .button { margin-top:23px; }
  .hero-art { position:absolute; inset:0 -24px; width:auto; margin:0; padding:0; }
  .city-scene { position:absolute; width:calc(100% + 150px); right:0; bottom:28px; }
  .hero-art::after { display:block; background:linear-gradient(180deg,rgba(255,255,255,.66),rgba(255,255,255,.36) 36%,transparent 60%); }
  .hero-art figcaption { font-size:.75rem; right:17px; bottom:42px; }
  .motion-toggle { right:-5px; bottom:5px; }
  .home-business { padding-top:33px; }
  .three-domains { font-size:clamp(1.22rem,5.65vw,1.85rem); }
  .three-domains span { padding-inline:0; }
  .areas-grid { grid-template-columns:1fr; }
  .area-card,.area-card:first-child,.area-card:last-child { display:grid; grid-template-columns:1fr auto; gap:0 16px; border-right:0; border-bottom:1px solid var(--line); padding:24px 0; }
  .area-card:last-child { border-bottom:0; }
  .area-top { grid-column:2; grid-row:1/3; margin:0; }
  .area-number { display:none; }
  .area-card h3 { grid-column:1; font-size:1.9rem; }
  .area-jp { grid-column:1; font-size:.9375rem; margin-top:5px; }
  .area-description { grid-column:1/3; font-size:1rem; margin-top:14px; }
  .area-card > .link-arrow { grid-column:2; justify-self:end; margin-top:14px; }
  .home-about h2 { font-size:1.5rem; }
  .home-about .body-copy br { display:initial; }
  .news-empty { padding-block:25px; }
  .contact-band { padding-block:42px; }
  .contact-inner h2 { font-size:clamp(1rem,5vw,1.625rem); letter-spacing:0; }
  .page-heading { padding-block:21px 34px; }
  .breadcrumb { font-size:.8125rem; margin-bottom:30px; gap:10px; }
  .page-heading h1 { font-size:1.9rem; letter-spacing:.015em; }
  .page-lead { margin-top:17px; }
  .area-jump { gap:12px; padding-block:22px; }
  .area-jump > a { padding:9px 0 24px; font-size:.875rem; }
  .area-jump > a > span:first-child { font-size:1.1rem; }
  .area-jump > a > span:last-child { top:auto; bottom:0; right:0; }
  .business-detail { grid-template-columns:1fr; gap:24px; }
  .business-identity .area-number { display:inline; }
  .domain-name { margin-top:12px; font-size:2.7rem; }
  .business-identity h2 { font-size:1.25rem; margin-top:9px; }
  .business-body h3 { font-size:1.25rem; }
  .mission h2 { font-size:2rem; }
  .values-grid { grid-template-columns:1fr; gap:26px; }
  .values-grid article,.values-grid article:nth-child(odd),.values-grid article:nth-child(even) { position:relative; padding:0 0 25px 61px; border-right:0; border-bottom:1px solid var(--line); }
  .values-grid article:last-child { padding-bottom:0; border-bottom:0; }
  .values-grid .line-icon { position:absolute; left:0; top:1px; width:38px; height:38px; }
  .values-grid h3 { font-size:1.0625rem; margin-bottom:10px; }
  .about-next { flex-direction:column; align-items:start; gap:17px; }
  .company-table > div { grid-template-columns:80px minmax(0,1fr); gap:15px; padding-block:18px; }
  .company-table dd { font-size:.9375rem; }
  .news-content { min-height:270px; }
.contact-entry { padding:24px 20px; }
  .contact-entry .button { padding-inline:18px; }
  .contact-topics { font-size:.9375rem; }
  .footer-main { flex-direction:column; gap:29px; }
  .footer-brand { width:213px; }
  .footer-nav { gap:10px 34px; }
  .footer-meta { flex-direction:column; align-items:start; gap:15px; padding-bottom:36px; }
  .back-to-top { width:46px; height:46px; right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); }
}
/* Five complementary domains: one shared diagram and bilingual navigation. */
.business-concept { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,6vw,88px); align-items:center; }
.domain-wheel { position:relative; width:100%; max-width:480px; margin-inline:auto; }
.domain-wheel svg { display:block; width:100%; height:auto; overflow:visible; }
.domain-sector { fill:#edf6f8; stroke:#dcebee; stroke-width:1; transition:fill .18s,stroke .18s; }
.sector-number { font:500 32px Arial,sans-serif; fill:var(--navy); pointer-events:none; }
.sector-label { font-size:22px; font-weight:500; fill:var(--navy); pointer-events:none; }
.sector-label-long { font-size:17px; letter-spacing:-.015em; }
.wheel-center-copy { fill:var(--navy); font-size:20.25px; font-weight:400; pointer-events:none; }
.wheel-center-values { font-size:24.25px; font-weight:700; }
.domain-wheel a { outline:none; }
.domain-wheel a:is(:hover,:focus-visible,.is-active) .domain-sector { fill:var(--navy); stroke:var(--cyan); stroke-width:3; }
.domain-wheel a:is(:hover,:focus-visible,.is-active) .sector-number,.domain-wheel a:is(:hover,:focus-visible,.is-active) .sector-label { fill:#fff; }
.wheel-center { position:absolute; inset:35% 23%; display:flex; flex-direction:column; justify-content:center; text-align:center; pointer-events:none; }
.wheel-center > span { font:500 .75rem/1.5 Arial,sans-serif; letter-spacing:.08em; color:var(--cyan-dark); }
.wheel-center > strong { font-size:clamp(1.25rem,2.5vw,1.9rem); font-weight:500; margin-top:9px; white-space:nowrap; }
.domain-links { min-width:0; }
.domain-link { display:grid; grid-template-columns:minmax(0,1fr) 24px; align-items:center; gap:18px; padding:17px 12px; border-bottom:1px solid var(--line); transition:background .18s,color .18s; }
.domain-link:first-child { border-top:1px solid var(--line); }
.domain-index { font:500 1.5rem/1.5 Arial,sans-serif; color:var(--cyan-dark); }
.domain-label { display:flex; flex-direction:column; min-width:0; gap:3px; }
.domain-label > [lang="en"] { font:500 clamp(1.125rem,1.8vw,1.45rem)/1.4 Arial,sans-serif; overflow-wrap:normal; }
.domain-japanese { font-size:.9375rem; color:var(--muted); }
.domain-link > .link-arrow { color:var(--cyan-dark); }
.domain-link:is(:hover,:focus-visible,.is-active) { background:#e8f6f8; color:var(--cyan-dark); }
.business-overview { padding-block:38px 60px; border-bottom:1px solid var(--line); }
.business-detail { position:relative; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:clamp(35px,6vw,82px); padding-block:64px; }
.business-identity h2 { margin-top:0; }
.business-identity > .area-number { font-size:1.5rem; color:var(--cyan-dark); }
.home-about .about-section-title { font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.55; margin-top:14px; }
.home-about .about-statement { font-size:clamp(1.5rem,2.5vw,2.35rem); line-height:1.7; letter-spacing:.035em; }
.home-company .about-section-title { font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.55; margin-top:14px; }
.business-subtitle { font-size:1rem; color:var(--muted); margin-top:10px; }
.section-title-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 18px; font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.55; }
.section-title-row > span { color:var(--cyan-dark); font:500 .875rem/1.5 Arial,sans-serif; letter-spacing:.08em; white-space:nowrap; }
.home-about .editorial-grid,.home-company > .editorial-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
.home-about .editorial-grid > div:last-child,.home-company > .editorial-grid > div:last-child { width:100%; max-width:960px; justify-self:end; }
.home-company > .editorial-grid > div:last-child { justify-self:center; }
.home-business-details .business-identity h3 { margin-top:0; }
.home-business-details .business-body h4 { margin:0 0 19px; font-size:clamp(1.2rem,1.7vw,1.45rem); font-weight:500; line-height:1.7; }
.company-access { margin-top:36px; padding-top:30px; border-top:1px solid var(--line); text-align:center; }
.company-access h3 { margin-block:12px 16px; justify-content:center; }
.company-access p:not(.eyebrow) { color:var(--muted); }
.company-access .text-link { margin-top:20px; }
.nav-links > a[aria-current="location"] { color:var(--cyan-dark); background:#e6f5f7; box-shadow:inset 0 -2px var(--cyan); }
.nav-contact[aria-current="location"] { color:var(--navy); background:var(--cyan); border-color:var(--cyan); }
.business-identity .domain-name { display:block; margin:0; font:500 clamp(1.9rem,3vw,2.6rem)/1.3 Arial,sans-serif; letter-spacing:-.025em; overflow-wrap:normal; }
.business-identity .domain-jp { display:block; font-size:1rem; font-weight:500; margin-top:12px; }
.business-body h3 { font-size:clamp(1.2rem,1.7vw,1.45rem); font-weight:500; }
.business-detail:target { background:linear-gradient(90deg,#f1fafb,transparent 70%); }
.legacy-anchor { position:absolute; top:0; }
@media(max-width:700px) {
  .business-concept { grid-template-columns:1fr; gap:24px; }
  .domain-wheel { max-width:340px; }
  .wheel-center > strong { font-size:1.35rem; }
  .domain-label > [lang="en"] { font-size:1.25rem; }
  .domain-link { padding:16px 8px; gap:12px; }
  .business-detail { grid-template-columns:1fr; gap:24px; padding-block:42px; }
  .business-identity .area-number { display:inline; }
  .business-identity .domain-name { font-size:1.9rem; }
  .business-identity h2 { margin-top:0; }
  .business-overview { padding-block:24px 40px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }

  .cloud-one { transform:translateX(110%); }
  .cloud-two { transform:translateX(270%); }
  .motion-toggle { display:none; }
}

/* The family follows the path center, shrinking and slowing toward the left distance. */
.park-person { position:absolute; pointer-events:none; transform:translate(-50%,-100%); animation-play-state:paused; animation-timing-function:linear; animation-iteration-count:infinite; }
.park-family { width:16.5%; left:82%; top:95%; transform-origin:50% 100%; transform:translate(-50%,-100%) scale(.88); animation-name:family-route; animation-duration:60s; animation-delay:-14s; }
.person-cell { width:100%; overflow:hidden; }
.park-person img { display:block; width:400%; max-width:none; height:auto; animation:gait-frames .9s steps(4,end) infinite paused; }
.park-family img { animation-duration:1.6s; }
.park-family .person-cell { transform:translateY(4.67%) skewY(4deg); transform-origin:50% 100%; }
.hero.motion-ready .park-person,.hero.motion-ready .park-person img { animation-play-state:running; }
.hero:is(.motion-paused,.is-out-of-view,.page-hidden) .park-person,.hero:is(.motion-paused,.is-out-of-view,.page-hidden) .park-person img { animation-play-state:paused; }
@keyframes gait-frames { to { transform:translateX(-100%); } }

@keyframes family-route {
  0% { left:107%; top:97.6%; transform:translate(-50%,-100%) scale(1.03); opacity:0; }
  9% { left:97%; top:96.7%; transform:translate(-50%,-100%) scale(0.97); opacity:1; }
  22% { left:84%; top:95.25%; transform:translate(-50%,-100%) scale(0.92); opacity:1; }
  48% { left:65%; top:92.2%; transform:translate(-50%,-100%) scale(0.84); opacity:1; }
  72% { left:48%; top:89.4%; transform:translate(-50%,-100%) scale(0.68); opacity:1; }
  90% { left:35%; top:86.9%; transform:translate(-50%,-100%) scale(0.43); opacity:1; }
  100% { left:26%; top:86.5%; transform:translate(-50%,-100%) scale(0.26); opacity:0; }
}
@media (prefers-reduced-motion:reduce) {
  .hero .park-person,.hero .park-person img { animation:none!important; }
}

/* Japanese names lead; English supports identification in every business view. */
.business-detail { row-gap:28px; }
.sector-english { font:400 16px Arial,sans-serif; fill:var(--cyan-dark); pointer-events:none; }
.domain-wheel a:is(:hover,:focus-visible,.is-active) .sector-english { fill:#fff; }
.wheel-center > span { font-size:.875rem; color:var(--navy); letter-spacing:.045em; white-space:nowrap; }
.domain-japanese { font-size:1.25rem; font-weight:500; color:var(--navy); }
.domain-label > [lang="en"] { font-size:.875rem; color:var(--muted); }
.business-identity .domain-jp { font-size:clamp(1.7rem,2.6vw,2.15rem); line-height:1.4; margin:0; }
.business-identity .domain-name { font-size:.9375rem; line-height:1.5; letter-spacing:0; margin-top:10px; color:var(--cyan-dark); }
.business-switcher { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; padding-top:22px; border-top:1px solid var(--line); }
.business-return { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:var(--cyan-dark); font-size:.875rem; }
.business-switch-links { display:flex; flex-wrap:wrap; gap:6px; }
.business-switch-links a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:4px; font-size:.875rem; transition:background .18s,color .18s,border-color .18s; }
.business-switch-links a[aria-current] { color:white; background:var(--navy); border-color:var(--navy); }
.business-switch-links a:is(:hover,:focus-visible) { background:var(--cyan-dark); border-color:var(--cyan-dark); color:white; }
.business-return:is(:hover,:focus-visible) { text-decoration:underline; text-underline-offset:5px; }
@media(max-width:700px) {
  .business-switcher { gap:10px; padding-top:18px; }
  .business-switch-links { width:100%; }
  .business-switch-links a { padding-inline:12px; }
}

.wheel-center > .wheel-concept { font-family:inherit; font-size:clamp(1.05rem,1.8vw,1.4rem); line-height:1.65; letter-spacing:.025em; font-weight:500; }
.news-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.news-row { display:grid; grid-template-columns:150px minmax(0,1fr) 24px; align-items:center; gap:24px; padding:25px 12px; border-bottom:1px solid var(--line); transition:background .18s,color .18s; }
.news-row:hover,.news-row:focus-visible { background:#e3f3f6; color:var(--cyan-dark); }
.news-date { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; font:400 .875rem/1.6 Arial,sans-serif; color:var(--muted); }
.news-provisional { font:400 .75rem/1.5 sans-serif; border:1px solid #b9d7de; padding:1px 5px; border-radius:3px; }
.news-row-title { font-size:1rem; font-weight:500; }
.news-row > .link-arrow { color:var(--cyan-dark); }
.news-article { max-width:900px; padding-block:48px 90px; }
.article-date { display:block; font:400 .9375rem/1.6 Arial,sans-serif; color:var(--muted); margin-top:44px; }
.news-article h1 { font-size:clamp(1.6rem,3vw,2.25rem); font-weight:500; line-height:1.6; margin-top:16px; }
.news-draft-note { color:var(--muted); font-size:.875rem; background:var(--pale); border-left:3px solid var(--cyan); padding:10px 16px; margin-top:24px; }
.article-body { margin-top:36px; }
.article-body p + p { margin-top:24px; }
.article-return { display:flex; flex-wrap:wrap; gap:16px 32px; margin-top:48px; padding-top:24px; border-top:1px solid var(--line); }
@media(max-width:700px) {
 .news-row { grid-template-columns:minmax(0,1fr) 24px; gap:9px 16px; padding:20px 4px; }
 .news-date { grid-column:1 / -1; }
 .news-row-title { font-size:.9375rem; }
 .news-article { padding-top:32px; }
}
/* A calm, single-column inquiry form with explicit preview-only behavior. */
.page-contact .page-heading { padding-bottom:24px; }
.contact-form-section { max-width:860px; padding-block:18px 80px; }
.contact-form-heading h2 { font-size:clamp(1.25rem,2vw,1.5rem); font-weight:500; }
.contact-form-heading p { color:var(--muted); margin-top:10px; }
.form-preview-note { padding:14px 18px; margin-block:24px 28px; background:var(--pale); border-left:3px solid var(--cyan); font-size:.875rem; color:var(--muted); }
.form-required-guide { font-size:.875rem; color:var(--muted); margin-bottom:12px; }
.required-tag,.optional-tag { display:inline-block; margin-left:12px; font-size:.75rem; line-height:1.6; font-weight:400; vertical-align:middle; }
.required-tag { color:var(--cyan-dark); background:#e4f4f6; padding:1px 7px; border-radius:3px; }
.optional-tag { color:var(--muted); }
.form-required-guide .required-tag { margin-left:0; }
.form-field { margin:0; padding:24px 0; border:0; border-bottom:1px solid var(--line); min-width:0; }
.form-field > label,.form-field legend { display:block; font-size:1rem; font-weight:500; padding:0; margin-bottom:12px; }
.form-party legend { padding-top:24px; }
.radio-options { display:flex; gap:16px; }
.radio-options label { display:flex; align-items:center; gap:10px; min-height:46px; padding:8px 24px; border:1px solid var(--line); border-radius:4px; cursor:pointer; }
.radio-options label:has(input:checked) { border-color:var(--cyan-dark); background:var(--pale); }
.contact-form-section input[type=radio],.contact-form-section input[type=checkbox] { width:20px; height:20px; flex:none; accent-color:var(--cyan-dark); }
.form-field > input,.form-field > select,.form-field > textarea { display:block; width:100%; min-height:50px; padding:12px 14px; border:1px solid #aec2ce; border-radius:4px; background:#fff; color:var(--navy); font:inherit; font-size:1rem; line-height:1.6; }
.form-field > textarea { min-height:180px; resize:vertical; }
.form-field > select { padding-right:32px; }
.contact-form-section :is(input,select,textarea):focus-visible { outline:3px solid #b2e6e9; outline-offset:2px; border-color:var(--cyan-dark); }
.contact-form-section [aria-invalid=true] { border-color:#a63c38; }
.field-error { color:#a63c38; font-size:.875rem; margin-top:7px; }
.field-error:empty { display:none; }
.field-help { color:var(--muted); font-size:.875rem; margin-top:8px; }
.form-errors { color:#8d302e; background:#fff5f4; border-left:3px solid #a63c38; padding:12px 16px; margin-top:18px; font-size:.9375rem; }
.form-consent { margin-top:28px; }
.form-consent > label { display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
.form-consent input { margin-top:6px; }
.form-consent > a { display:inline-block; margin:8px 0 0 36px; color:var(--cyan-dark); font-size:.875rem; text-decoration:underline; text-underline-offset:4px; }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:30px; }
.form-actions .button { cursor:pointer; }
.form-actions .button:disabled { color:#627987; background:#e5edf1; border-color:#d3e0e7; cursor:not-allowed; transform:none; }
.form-actions p { font-size:.875rem; color:var(--muted); }
.inquiry-review h2 { font-size:1.5rem; }
.inquiry-review > p { margin-top:14px; color:var(--muted); }
.inquiry-review dl { margin-block:28px; }
.inquiry-review dl > div { display:grid; grid-template-columns:170px minmax(0,1fr); gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.inquiry-review dt { font-weight:500; }
.inquiry-review dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.existing-contact-link { margin-top:32px; padding-top:24px; border-top:1px solid var(--line); color:var(--muted); font-size:.875rem; }
.existing-contact-link a { color:var(--cyan-dark); text-decoration:underline; text-underline-offset:4px; }
.contact-form-section [hidden] { display:none!important; }
@media(max-width:560px) {
 .contact-form-section { padding-top:8px; }
 .form-field { padding-block:20px; }
 .form-actions { align-items:stretch; flex-direction:column; }
 .form-actions .button { justify-content:center; width:100%; }
 .inquiry-review dl > div { grid-template-columns:1fr; gap:5px; }
}

.wheel-center > .wheel-values { font-size:.875rem; color:var(--cyan-dark); letter-spacing:.12em; margin-bottom:8px; font-weight:600; }
.wheel-center > .wheel-concept { font-size:clamp(.875rem,1.45vw,1.125rem); line-height:1.7; letter-spacing:0; }

/* Original watercolor poses share a roof contact point at sheet y=589. */
.roof-cat { position:absolute; left:81.8%; top:78.95%; width:3%; aspect-ratio:600/725; transform:translate(-50%,-81.241379%); pointer-events:none; }
.cat-pose { position:absolute; inset:0; overflow:hidden; opacity:0; animation:cat-sleep 48s steps(1,end) -22s infinite paused; }
.cat-pose img { position:absolute; top:0; display:block; width:361.5%; max-width:none; height:auto; }
.cat-sleep { opacity:1; }
.cat-awake { animation-name:cat-awake; }
.cat-yawn { animation-name:cat-yawn; }
.cat-scratch { animation-name:cat-scratch; transform-origin:50% 81.241379%; }
.hero.motion-ready .cat-pose { animation-play-state:running; }
.hero:is(.motion-paused,.is-out-of-view,.page-hidden) .cat-pose { animation-play-state:paused; }
@keyframes cat-sleep { 0%,90% { opacity:1; } 70% { opacity:0; } 100% { opacity:1; } }
@keyframes cat-awake { 0%,73%,79%,90%,100% { opacity:0; } 70%,77%,85% { opacity:1; } }
@keyframes cat-yawn { 0%,77%,100% { opacity:0; } 73% { opacity:1; } }
@keyframes cat-scratch {
  0%,85%,100% { opacity:0; transform:rotate(0deg); }
  79%,80%,81%,82%,83%,84% { opacity:1; transform:rotate(0deg); }
  79.5%,80.5%,81.5%,82.5%,83.5%,84.5% { opacity:1; transform:rotate(-2deg); }
}
@media (prefers-reduced-motion:reduce) {
  .hero .cat-pose { animation:none!important; opacity:0; transform:none; }
  .hero .cat-sleep { opacity:1; }
}

/* A squirrel walks out from the right tree's roots, pauses, then returns.
   Original sprite pixels are cropped in CSS; all poses share ground y=560/724. */
.park-squirrel {
  --squirrel-cycle:40s;
  position:absolute; left:96.8%; top:73.5%; width:2.7%; aspect-ratio:760/724;
  transform:translate(-50%,-77.348066%); pointer-events:none;
  animation:squirrel-route var(--squirrel-cycle) linear infinite paused;
}
.squirrel-facing,.squirrel-running,.squirrel-bound,.squirrel-pose { position:absolute; inset:0; }
.squirrel-facing { animation:squirrel-direction var(--squirrel-cycle) steps(1,end) infinite paused; }
.squirrel-pose { overflow:hidden; opacity:0; }
.squirrel-pose img { position:absolute; display:block; width:285.789474%; max-width:none; height:auto; }
.squirrel-alert { opacity:1; animation:squirrel-alert var(--squirrel-cycle) steps(1,end) infinite paused; }
.squirrel-running { opacity:0; animation:squirrel-running var(--squirrel-cycle) steps(1,end) infinite paused; }
.squirrel-stride-a { opacity:1; animation:squirrel-stride-a .38s steps(1,end) infinite paused; }
.squirrel-stride-b { animation:squirrel-stride-b .38s steps(1,end) infinite paused; }
.squirrel-bound { animation:squirrel-bound .38s ease-in-out infinite paused; }
.hero.motion-ready .park-squirrel,.hero.motion-ready .park-squirrel * { animation-play-state:running; }
.hero:is(.motion-paused,.is-out-of-view,.page-hidden) .park-squirrel,
.hero:is(.motion-paused,.is-out-of-view,.page-hidden) .park-squirrel * { animation-play-state:paused; }
@keyframes squirrel-route {
  0%,10% { left:96.8%; top:73.5%; }
  18% { left:93.5%; top:74.2%; }
  30%,55% { left:88.8%; top:74.9%; }
  67% { left:93.5%; top:74.2%; }
  75%,100% { left:96.8%; top:73.5%; }
}
@keyframes squirrel-direction {
  0%,90%,100% { transform:scaleX(1); }
  53% { transform:scaleX(-1); }
}
@keyframes squirrel-alert {
  0%,30%,75%,100% { opacity:1; }
  10%,55% { opacity:0; }
}
@keyframes squirrel-running {
  0%,30%,75%,100% { opacity:0; }
  10%,55% { opacity:1; }
}
@keyframes squirrel-stride-a { 0%,100% { opacity:1; } 50% { opacity:0; } }
@keyframes squirrel-stride-b { 0%,100% { opacity:0; } 50% { opacity:1; } }
@keyframes squirrel-bound { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3%); } }
@media (prefers-reduced-motion:reduce) {
  .hero .park-squirrel,.hero .park-squirrel * { animation:none!important; }
  .hero .squirrel-facing,.hero .squirrel-bound { transform:none; }
  .hero .squirrel-pose,.hero .squirrel-running { opacity:0; }
  .hero .squirrel-alert { opacity:1; }
}

/* Electricity disclosure: a restrained document layout within the existing brand. */
.footer-policy-links { display:flex; flex-wrap:wrap; align-items:center; gap:10px 28px; font-size:.875rem; }
.disclosure { max-width:1040px; padding-bottom:80px; }
.disclosure-heading { padding-block:28px 38px; }
.disclosure-heading .eyebrow { margin-block:34px 14px; }
.disclosure-heading h1 { font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(1.8rem,3.2vw,2.7rem); font-weight:600; line-height:1.7; letter-spacing:.025em; }
.disclosure-heading h1 span { display:inline-block; max-width:100%; }
.disclosure-lead { margin-top:21px; color:var(--muted); line-height:1.95; }
.disclosure-date { margin-top:20px; color:var(--muted); font-size:.875rem; }
.disclosure-download { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:30px 34px; margin-bottom:46px; background:var(--pale); border:1px solid var(--line); border-top:3px solid var(--cyan); }
.disclosure-document-copy { min-width:0; }
.disclosure-file-type { color:var(--cyan-dark); font-size:.875rem; font-weight:700; letter-spacing:.06em; }
.disclosure-file-type span { margin-left:8px; padding:2px 6px; color:var(--navy); border:1px solid #b3cbd5; font:600 .75rem/1.5 Arial,sans-serif; }
.disclosure-download h2 { font-size:1.2rem; font-weight:600; line-height:1.7; margin-block:10px 6px; letter-spacing:0; }
.disclosure-document-copy > p:not(.disclosure-file-type) { color:var(--muted); font-size:.9375rem; line-height:1.8; }
.disclosure-document-copy > .disclosure-file-meta { margin-top:12px; font-size:.875rem; }
.disclosure-pdf-link { flex:none; gap:22px; border-radius:3px; }
.disclosure-pdf-link > span:first-child > span { margin-left:6px; font:600 .75rem/1.5 Arial,sans-serif; }
.disclosure-section { padding-block:30px 36px; border-top:1px solid var(--line); }
.disclosure-section h2 { margin-bottom:19px; font-size:1.35rem; font-weight:600; line-height:1.7; letter-spacing:.015em; }
.disclosure-section > p,.disclosure-policy dd { color:#435b6b; }
.disclosure-section p + p { margin-top:13px; }
.disclosure-policy { margin:0; }
.disclosure-policy > div { display:grid; grid-template-columns:140px 1fr; gap:24px; padding-block:18px; border-top:1px solid var(--line); }
.disclosure-policy > div:first-child { padding-top:0; border:0; }
.disclosure-policy > div:last-child { padding-bottom:0; }
.disclosure-policy dt { font-weight:600; }
.disclosure-policy dd { margin:0; }
.disclosure-policy strong { color:var(--navy); }
.disclosure-note { margin-top:23px; padding:21px 25px; background:#f6f8fa; border-left:3px solid #b2c3ce; color:#435b6b; font-size:.9375rem; line-height:1.95; }
.disclosure-note + .disclosure-return { margin-top:40px; }
.disclosure-return { padding-top:18px; border-top:1px solid var(--line); }
@media (max-width:900px) {
  .disclosure-download { flex-direction:column; align-items:flex-start; }
}
@media (max-width:600px) {
  .disclosure { padding-bottom:54px; }
  .disclosure-heading { padding-block:21px 30px; }
  .disclosure-heading .eyebrow { margin-top:27px; }
  .disclosure-heading h1 { font-size:clamp(1.45rem,6.1vw,1.85rem); letter-spacing:0; }
  .disclosure-heading .breadcrumb { font-size:.875rem; }
  .disclosure-download { padding:23px 20px; margin-bottom:32px; gap:20px; }
  .disclosure-download h2 { font-size:1.12rem; }
  .disclosure-pdf-link { width:100%; }
  .disclosure-section { padding-block:25px 30px; }
  .disclosure-section h2 { font-size:1.2rem; }
  .disclosure-policy > div { grid-template-columns:1fr; gap:7px; }
  .disclosure-note { padding:18px; }
  .footer-policy-links { flex-direction:column; align-items:flex-start; gap:9px; }
}

body.admin-bar .site-header { top:32px; }
.rezenergy-inquiry .wpcf7-list-item { margin:0 24px 0 0; }
.rezenergy-inquiry .wpcf7-list-item label { display:inline-flex; align-items:center; gap:10px; }
.rezenergy-inquiry .wpcf7-form-control-wrap { display:block; }
.rezenergy-inquiry .form-field :is(input:not([type=radio]):not([type=checkbox]),select,textarea) { display:block; width:100%; min-height:50px; padding:12px 14px; border:1px solid #aec2ce; border-radius:4px; background:#fff; color:var(--navy); font:inherit; font-size:1rem; line-height:1.6; }
.rezenergy-inquiry .form-field textarea { min-height:180px; resize:vertical; }
.rezenergy-inquiry .form-field select { padding-right:32px; }
.rezenergy-inquiry .form-field [aria-invalid=true] { border-color:#a63c38; }
.rezenergy-inquiry .form-party .wpcf7-form-control-wrap { display:inline-block; }
.rezenergy-inquiry .form-consent .wpcf7-list-item { margin:0; }
.rezenergy-inquiry .form-consent .wpcf7-list-item label { align-items:flex-start; }
.rezenergy-inquiry .form-consent input { margin-top:8px; flex:none; }
.rezenergy-inquiry .wpcf7-not-valid-tip { font-size:.875rem; }
.rezenergy-inquiry input.button { width:auto; cursor:pointer; }
.rezenergy-inquiry .wpcf7-response-output { margin:24px 0 0; padding:16px 20px; border-radius:8px; }
.rezenergy-inquiry.sent .wpcf7-response-output { display:none; }
.rezenergy-inquiry .form-actions p { margin:0; }
.rez-bot-field { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
@media (max-width:782px) { body.admin-bar .site-header { top:46px; } }
@media (max-width:600px) { body.admin-bar .site-header { top:0; } }
@media (max-width:400px) {
  .site-header .menu-toggle { flex-shrink:0; min-width:44px; padding:9px; gap:0; }
  .site-header .menu-lines { flex-shrink:0; }
  .site-header .menu-label { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
}
@media (max-width:359px) { .hero-jp { font-size:1rem; letter-spacing:0; } }
