:root{
  --navy:#071a33;
  --navy2:#0c315f;
  --blue:#0b5eb7;
  --blue2:#287fcf;
  --sky:#e8f3ff;
  --ink:#142234;
  --muted:#607184;
  --line:#dbe5ef;
  --bg:#f5f9fd;
  --white:#fff;
  --shadow:0 18px 48px rgba(7,26,51,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:#fff;line-height:1.75}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(1180px,calc(100% - 40px));margin:auto}
.topbar{background:linear-gradient(90deg,#06162a,#0a2342);color:#dbeaff;font-size:13px}
.topbar .wrap{display:flex;justify-content:flex-end;gap:24px;padding:7px 0}
.header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-bottom:1px solid rgba(219,229,239,.95)}
.nav{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand{display:flex;align-items:center;gap:18px;min-width:0}
.brand-logo{width:300px;height:auto;object-fit:contain;flex:0 1 auto}
.brand-name{font-size:17px;font-weight:750;letter-spacing:.02em;white-space:nowrap;color:#12243a}
.brand-name small{display:block;font-size:10px;color:#6d7e92;font-weight:600;letter-spacing:.14em;margin-top:1px}
.links{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:700;white-space:nowrap}
.links a{transition:.18s}
.links a:hover{color:var(--blue)}
.lang-switch{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:7px 11px;border:1px solid #b9cce0;border-radius:999px;color:#0b5eb7!important;font-size:12px;letter-spacing:.04em;background:#fff}
.lang-switch:hover{background:#eef6ff!important}
.mobile-lang{display:none}
.cta{padding:13px 20px;border-radius:10px;background:linear-gradient(135deg,#0b5eb7,#064a96);color:white!important;box-shadow:0 10px 24px rgba(11,94,183,.24)}
.cta:hover{filter:brightness(1.05)}
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fbfdff 0%,#eff6fd 52%,#f8fbff 100%);border-bottom:1px solid var(--line)}
.hero:before{content:"";position:absolute;inset:auto -12% -34% -12%;height:64%;background:
 radial-gradient(ellipse at 20% 100%,rgba(40,127,207,.13),transparent 44%),
 radial-gradient(ellipse at 75% 100%,rgba(11,94,183,.12),transparent 48%);pointer-events:none}
.hero:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-180px;top:-210px;background:radial-gradient(circle,rgba(49,142,223,.20),rgba(49,142,223,0) 68%);pointer-events:none}
.hero .wrap{position:relative;z-index:1;min-height:590px;display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:70px;padding:76px 0}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:800;letter-spacing:.12em;color:var(--blue);text-transform:uppercase}
.eyebrow:before{content:"";width:28px;height:2px;background:var(--blue)}
h1{font-size:clamp(40px,5.2vw,68px);line-height:1.16;letter-spacing:-.04em;margin:17px 0 23px;color:#071a33}
.hero h1 span{color:var(--blue)}
.lead{font-size:19px;color:#45596e;max-width:720px;margin:0 0 31px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 21px;border-radius:9px;font-weight:800;border:1px solid var(--blue);transition:.2s}
.btn.primary{background:linear-gradient(135deg,#0b5eb7,#064a96);color:white;box-shadow:0 10px 24px rgba(11,94,183,.18)}
.btn.primary:hover{filter:brightness(1.06)}
.btn.secondary{background:white;color:var(--blue)}
.btn.secondary:hover{background:#f4f9ff}
.hero-panel{background:rgba(255,255,255,.90);border:1px solid rgba(255,255,255,.96);border-radius:21px;padding:27px;box-shadow:var(--shadow)}
.hero-panel .label{font-size:12px;color:var(--blue);font-weight:800;letter-spacing:.12em;margin-bottom:13px}
.flow{display:grid;gap:10px}
.flow-item{padding:15px 16px;border-radius:12px;background:#fbfdff;border:1px solid #e4edf6;display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center}
.flow-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eaf4ff;color:var(--blue);font-weight:900}
.flow-item b{display:block;color:#0b2545}
.flow-item span{font-size:13px;color:var(--muted)}
section{padding:88px 0}
.section-head{max-width:770px;margin-bottom:36px}
.section-head h2{font-size:clamp(30px,4vw,44px);line-height:1.25;color:#092341;margin:10px 0 15px;letter-spacing:-.02em}
.section-head p{color:var(--muted);font-size:17px;margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:white;border:1px solid var(--line);border-radius:15px;padding:27px;box-shadow:0 7px 26px rgba(7,26,51,.05)}
.card .icon{width:46px;height:46px;border-radius:11px;background:#eaf4ff;color:var(--blue);display:grid;place-items:center;font-weight:900;margin-bottom:18px}
.card h3{font-size:20px;color:#0a2748;margin:0 0 10px}.card p{margin:0;color:var(--muted);font-size:15px}
.band{background:linear-gradient(135deg,#071a33,#0b2d56);color:white}
.band .section-head h2{color:white}.band .section-head p{color:#c9d8e8}
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.step{border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:18px;background:rgba(255,255,255,.055)}
.step b{display:block;color:#74b9ff;font-size:12px;letter-spacing:.1em;margin-bottom:8px}.step strong{display:block;font-size:16px;margin-bottom:6px}.step span{font-size:13px;color:#cad6e3}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.statbox{background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:34px}
.statrow{display:grid;grid-template-columns:1fr auto;gap:24px;padding:15px 0;border-bottom:1px solid var(--line)}
.statrow:last-child{border-bottom:0}.statrow b{color:#0a2748}.statrow span{color:var(--blue);font-weight:850}
.notice{background:#eef6ff;border-left:4px solid var(--blue);padding:18px 20px;border-radius:8px;color:#365b7e}
.page-hero{background:linear-gradient(135deg,#f8fbff,#eaf3fc);border-bottom:1px solid var(--line)}
.page-hero .wrap{padding:72px 0}.page-hero h1{font-size:44px;margin-bottom:10px}.page-hero p{max-width:720px;color:var(--muted);font-size:17px}
.prose{max-width:840px}.prose h2{color:#0a2748;font-size:28px;margin-top:40px}.prose h3{color:#0a2748;margin-top:28px}.prose p,.prose li{color:#405166}.prose ul{padding-left:1.2em}
.table{width:100%;border-collapse:collapse;background:white;border:1px solid var(--line)}
.table th,.table td{padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.table th{width:28%;background:#f5f9fd;color:#0a2748}
.contact-box{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-card{border:1px solid var(--line);border-radius:14px;padding:26px;background:#fff}.contact-card small{color:var(--muted)}.contact-card strong{display:block;color:#0a2748;font-size:22px;margin:4px 0}
.contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.contact-actions .btn{border:0;cursor:pointer;font:inherit}.copy-status{grid-column:1/-1;min-height:1.5em;margin:0;color:#16723d;font-weight:700}
.inquiry-panel{margin-top:54px;padding:38px;border:1px solid var(--line);border-radius:18px;background:#f8fbfe}.inquiry-panel .section-head{margin-bottom:26px}.inquiry-panel .section-head h2{font-size:32px}.inquiry-form{max-width:920px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{display:grid;gap:7px;font-weight:700;color:#18314e}.form-grid label.full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #bdccda;border-radius:8px;background:#fff;padding:13px 14px;color:var(--ink);font:inherit;line-height:1.45}.form-grid textarea{resize:vertical;min-height:180px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:3px solid rgba(11,94,183,.14);border-color:var(--blue)}.required-mark{display:inline-block;border-radius:4px;background:#b42318;color:#fff;padding:1px 6px;font-size:11px;line-height:1.6;vertical-align:2px}.privacy-check{display:flex;align-items:flex-start;gap:10px;margin:24px 0 18px;color:#334a62}.privacy-check input{width:20px;height:20px;margin-top:3px}.privacy-check a{color:var(--blue);text-decoration:underline}.submit-btn{border:0;cursor:pointer;font:inherit}.form-note{color:var(--muted);font-size:13px}.spam-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.en-heading{font-size:.55em;color:var(--muted);font-weight:600;margin-left:8px}.profile{margin:20px 0 42px;padding:28px;border:1px solid var(--line);border-radius:16px;background:#f8fbfe}.profile h3{margin:0 0 22px;color:#0a2748;font-size:24px}.profile h3 span{font-size:15px;color:var(--muted);font-weight:600;margin-left:8px}.career{display:grid;gap:0}.career-row{display:grid;grid-template-columns:128px 1fr;gap:22px;padding:17px 0;border-top:1px solid var(--line)}.career-row:first-child{border-top:0}.career-row time{font-weight:800;color:var(--blue)}.career-row strong{display:block;color:#0a2748}.career-row p{margin:5px 0 2px}.career-row small{display:block;color:var(--muted);line-height:1.55;margin-top:4px}
.footer{background:#061527;color:#c7d4e2;padding:50px 0 24px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:40px}.footer h3{color:white;margin-top:0}.footer a{display:block;margin:7px 0;font-size:14px}.footer small{color:#91a6ba}.copyright{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:20px;font-size:12px;color:#91a6ba}
.result-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:var(--bg)}.result-card{width:min(660px,100%);padding:40px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);text-align:center}.result-card img{width:290px;margin:0 auto 24px}.result-card h1{font-size:34px;margin:0 0 16px}.result-card p{color:#405166;margin:0 0 28px}.result-card.success{border-top:5px solid #18794e}.result-card.error{border-top:5px solid #b42318}
.mobile-toggle{display:none}
@media(max-width:1240px){.brand-logo{width:245px}.brand-name{display:none}.links{gap:18px}}
@media(max-width:860px){.topbar{display:none}.nav{min-height:78px}.brand-logo{width:230px}.links{display:none}.mobile-lang{display:inline-flex;margin-left:auto}.mobile-toggle{display:block;font-weight:750;background:white;border:1px solid #cdd9e5;border-radius:8px;padding:8px 10px;color:#0a2748}.links .lang-switch{display:none}.hero .wrap{grid-template-columns:1fr;gap:34px;min-height:auto;padding:56px 0}.hero-panel{max-width:620px}.cards{grid-template-columns:1fr}.process{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.contact-box{grid-template-columns:1fr}.table th{width:36%}}
@media(max-width:860px){.form-grid{grid-template-columns:1fr}.form-grid label.full{grid-column:auto}.inquiry-panel{padding:26px}}
@media(max-width:560px){.wrap{width:min(100% - 28px,1180px)}.nav{min-height:68px;gap:8px}.mobile-lang{min-width:auto;padding:6px 9px;font-size:11px}.brand-logo{width:185px}.hero .wrap{padding:44px 0}.lead{font-size:16px}section{padding:64px 0}.process{grid-template-columns:1fr}.page-hero .wrap{padding:52px 0}.page-hero h1{font-size:36px}.table,.table tbody,.table tr,.table th,.table td{display:block;width:100%}.table th{border-bottom:0;padding-bottom:6px}.table td{padding-top:6px}.hero-actions .btn{width:100%}}
@media(max-width:560px){.career-row{grid-template-columns:1fr;gap:5px}.profile{padding:21px}.profile h3 span{display:block;margin:3px 0 0}}

/* v7: lighting-control message, savings and business experience */
.hero h1{font-size:clamp(39px,4.7vw,64px)}
.hero .lead strong{color:#092341;font-size:1.08em}
.saving-panel{background:linear-gradient(145deg,rgba(5,38,78,.97),rgba(8,87,105,.94));color:#fff;border-radius:22px;padding:34px;box-shadow:0 20px 58px rgba(7,26,51,.22)}
.saving-label{font-size:14px;font-weight:800;letter-spacing:.12em;color:#bfead8}
.saving-number{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin:12px 0 14px}
.saving-number strong{font-size:clamp(48px,5vw,72px);line-height:1;color:#fff}
.saving-number span{font-size:27px;color:#91d7bd}
.saving-number small{font-size:14px;font-weight:800;color:#d9f4ea}
.saving-panel p{font-size:17px;line-height:1.7;margin:0;color:#effaf6}
.saving-note{border-top:1px solid rgba(255,255,255,.2);margin-top:18px;padding-top:14px;font-size:11px;color:#c5dbd5;line-height:1.55}
.control-section{background:#fff}
.control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.control-card{border:1px solid #cfe1ed;border-radius:16px;padding:27px;background:linear-gradient(180deg,#fff,#f6fbff)}
.control-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#e7f6ef;color:#147051;font-size:18px;font-weight:900;margin-bottom:17px}
.control-card h3{margin:0 0 8px;color:#0a2748;font-size:21px}
.control-card p{margin:0;color:var(--muted);font-size:15px}
.benefits-section{background:#f4f8f4}
.benefits-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.benefit-card{background:#fff;border:1px solid #dce8df;border-radius:15px;padding:23px 20px;box-shadow:0 7px 24px rgba(17,75,51,.05)}
.benefit-mark{color:#20815c;font-size:12px;font-weight:900;letter-spacing:.1em;margin-bottom:12px}
.benefit-card h3{font-size:17px;line-height:1.45;color:#123d32;margin:0 0 9px}
.benefit-card p{font-size:14px;color:#60746d;margin:0}
.record-section{background:#eef5fb}
.energy-domains{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.energy-domains div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:21px}
.energy-domains b{display:block;color:#0b5eb7;font-size:20px;margin-bottom:4px}
.energy-domains span{color:var(--muted);font-size:14px}
.service-cards{grid-template-columns:repeat(4,1fr)}
.company-record{margin:0 0 40px;padding:32px 36px;background:linear-gradient(135deg,#eef6ff,#f3faf6);border-left:5px solid #167958;border-radius:13px}
.company-record h2{color:#092341;font-size:30px;line-height:1.35;margin:10px 0 12px}
.company-record p{color:#40576a;font-size:17px;margin:0;max-width:920px}
@media(max-width:1050px){.benefits-grid{grid-template-columns:repeat(3,1fr)}.service-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.control-grid{grid-template-columns:1fr}.benefits-grid{grid-template-columns:1fr 1fr}.saving-panel{max-width:620px}.energy-domains{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.benefits-grid,.energy-domains,.service-cards{grid-template-columns:1fr}.company-record{padding:24px}.company-record h2{font-size:25px}.saving-panel{padding:27px}.saving-number strong{font-size:48px}}

/* v8: credibility statement and issue checklist */
.trust-line{display:inline-block;margin:0 0 24px;padding:9px 13px;border-left:4px solid #167958;background:rgba(255,255,255,.83);color:#163d34;font-size:14px;font-weight:800;border-radius:0 7px 7px 0}
.issues-section{padding:58px 0;background:#fff;border-bottom:1px solid var(--line)}
.issues-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:54px;align-items:start}
.issues-layout .section-head{margin-bottom:0}
.issues-layout .section-head h2{font-size:clamp(28px,3.5vw,40px)}
.issues-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.issues-list div{display:flex;gap:11px;align-items:flex-start;padding:15px 17px;background:#f7faf8;border:1px solid #dbe8df;border-radius:10px;color:#26463b;font-weight:700;line-height:1.55}
.issues-list div:last-child{grid-column:1/-1}
.issues-list span{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#2d8a65;color:#fff;font-size:14px;font-weight:900;margin-top:1px}
@media(max-width:860px){.issues-layout{grid-template-columns:1fr;gap:26px}.issues-list{grid-template-columns:1fr}.issues-list div:last-child{grid-column:auto}}

/* v9: complete detail-page journeys */
.wide-prose{max-width:none}
.second-result{background:linear-gradient(135deg,#071a33,#0b4560);color:#fff}
.second-result h2{color:#fff;font-size:clamp(30px,4vw,44px);line-height:1.35;margin:12px 0}
.second-result h2 strong{font-size:1.25em;color:#8de0bd}
.second-result p{color:#d9e8ec;font-size:17px;margin:0 0 12px}
.second-result small{color:#a9c4cb}
.suitable-places{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.15);border-radius:17px;padding:28px}
.suitable-places h3{margin:0 0 18px;color:#fff;font-size:22px}
.suitable-places>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.suitable-places span{padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.1);color:#e9f3f5;font-weight:700;font-size:14px}
.mini-process{display:grid;gap:10px}
.mini-process>div{display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:center;padding:15px 18px;border:1px solid var(--line);border-radius:11px;background:#f8fbfe}
.mini-process b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e6f2ff;color:var(--blue)}
.mini-process strong{display:block;color:#0a2748}.mini-process span{color:var(--muted);font-size:14px}
.service-flow-section{background:#f4f8fb}
.service-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
.service-flow>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px}
.service-flow b{color:var(--blue);font-size:13px;letter-spacing:.1em}
.service-flow h3{color:#0a2748;font-size:18px;margin:8px 0}.service-flow p{color:var(--muted);font-size:14px;margin:0}
.next-cta{padding:64px 0;background:linear-gradient(135deg,#eaf5ff,#eef8f2)}
.next-cta .wrap{display:grid;grid-template-columns:1.35fr .65fr;gap:48px;align-items:center}
.next-cta h2{font-size:clamp(28px,3.6vw,41px);line-height:1.3;color:#092341;margin:10px 0 12px}
.next-cta p{color:var(--muted);font-size:16px;margin:0}
.next-actions{display:grid;gap:11px}.next-actions .btn{width:100%}
@media(max-width:900px){.service-flow{grid-template-columns:1fr 1fr}.next-cta .wrap{grid-template-columns:1fr}.next-actions{max-width:450px}}
@media(max-width:560px){.suitable-places>div,.service-flow{grid-template-columns:1fr}}

/* v10: flyer-like hero hierarchy */
.hero-shift{margin-top:20px;color:#334f6c;font-size:clamp(18px,2vw,25px);font-weight:750;letter-spacing:.01em}
.hero h1{margin:2px 0 16px;color:#0b5eb7;font-size:clamp(45px,5.5vw,72px);line-height:1.16;letter-spacing:-.045em}
.hero-key{margin:0 0 12px;color:#071a33;font-size:clamp(22px,2.6vw,32px);font-weight:900;line-height:1.45;letter-spacing:-.02em}
.second-energy-label{display:inline-flex;align-items:center;margin:0 0 15px;padding:7px 13px;border-radius:999px;background:#e4f5eb;color:#126344;font-size:15px;font-weight:900;letter-spacing:.03em}
.hero .lead{font-size:17px;margin-bottom:18px}
@media(max-width:560px){.hero-shift{margin-top:16px}.hero h1{font-size:43px}.hero-key{font-size:23px}.second-energy-label{font-size:13px}}

/* v11: second-energy-first hierarchy */
.parent-message{margin-top:18px;line-height:1.12;color:#071a33}
.parent-message span{display:block;font-size:clamp(20px,2.2vw,27px);font-weight:800}
.parent-message strong{display:block;font-size:clamp(46px,5.5vw,68px);letter-spacing:-.045em;color:#126344}
.solution-intro{display:inline-block;margin:14px 0 5px;padding:5px 10px;background:rgba(255,255,255,.78);border-radius:6px;color:#36536e;font-size:15px;font-weight:800}
.hero-shift{margin-top:6px;font-size:clamp(17px,1.8vw,22px)}
.hero h1{font-size:clamp(38px,4.5vw,56px);margin:0 0 10px}
.hero-key{font-size:clamp(23px,2.8vw,34px)}
.trust-line{display:block;width:fit-content;max-width:100%;font-size:18px;line-height:1.55;padding:12px 16px;border-left-width:5px}
@media(max-width:560px){.parent-message strong{font-size:44px}.hero h1{font-size:39px}.trust-line{font-size:15px}}

/* v3: photographic city + greenery hero */
.hero{
  background:
    linear-gradient(90deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.82) 39%, rgba(240,248,255,.34) 62%, rgba(237,247,255,.14) 100%),
    url('city-green.jpg') center center / cover no-repeat;
  border-bottom:1px solid var(--line);
}
.hero:before{
  inset:0;
  height:auto;
  background:linear-gradient(180deg,rgba(232,245,255,.10),rgba(255,255,255,.02) 58%,rgba(2,51,90,.03));
}
.hero:after{display:none}
.hero .wrap{min-height:610px}
.hero-panel{background:rgba(255,255,255,.94);box-shadow:0 20px 58px rgba(7,26,51,.16)}
.hero .lead{color:#2f455d;font-weight:500}
@media(max-width:860px){
  .hero{background-position:58% center;background-image:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,251,255,.79)),url('city-green.jpg')}
}
