/* Shared reset, typography and layout. Hero/navigation and section styles live in their own files. */
:root{--forest:#184c3e;--ink:#000000;--mint:#edf5ef;--orange:#df782a;--muted:#000000;--line:#c9d9ce;--font:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;color:var(--ink);background:#fff;font:16px/1.9 var(--font);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure{margin:0}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;width:100%}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c56724;outline-offset:5px}
[hidden]{display:none !important}
.wrap{margin-inline:auto}
.skip{position:fixed;left:16px;top:-100px;z-index:100;background:var(--forest);color:#fff;padding:10px}
.skip:focus{top:12px}
.header{height:94px;padding:0 40px;display:flex;justify-content:space-between;align-items:center;gap:26px;background:white}
.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:700;line-height:1.5;white-space:nowrap}
.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.02em;margin-top:4px}
.header nav{display:flex;align-items:center;gap:36px;font-size:14px;font-weight:700}
.header nav>a:hover{color:var(--orange)}
.button{border:0;display:flex;align-items:center;justify-content:space-between;background:var(--orange);color:white;padding:18px 25px;font-size:17px;line-height:1.6;font-weight:700;border-radius:6px;min-height:63px;gap:35px;transition:background .15s}
.button:hover{background:#c66b25}
.button>span{font:27px/1 Arial}
.nav-cta{min-height:48px;padding:12px 21px;font-size:14px;gap:30px}
.menu-toggle{display:none}
h1{font-feature-settings:"palt";font-weight:800;letter-spacing:-.035em;font-size:clamp(48px,4.25vw,62px);line-height:1.4}
h1>span{display:block;white-space:nowrap}
form{display:grid;gap:18px}
form label{font-size:14px;font-weight:700;display:block}
form label>span{font-size:10px;color:#a35521;margin-left:8px}
input,select,textarea{display:block;border:1px solid #b3c4b8;background:white;border-radius:4px;width:100%;padding:10px 12px;margin-top:7px;color:var(--ink);font-size:16px}
textarea{resize:vertical}
form .button{width:100%}
.button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
@media (max-width:1150px){
.header{padding-inline:30px;height:88px}
.brand{font-size:19px}
.header nav{gap:27px}
}
@media (max-width:900px) and (min-width:561px){
.header{padding-inline:28px;height:84px}
.brand{font-size:17px;gap:9px}
.brand small{font-size:9px}
.header nav{gap:20px;font-size:12px}
.nav-cta{font-size:12px;padding-inline:17px;gap:20px}
}
@media (max-width:560px){
html{scroll-padding-top:80px}
.header{height:76px;padding:0 20px;position:relative;z-index:10;gap:14px}
.brand{font-size:16px;gap:9px}
.brand small{font-size:8px;margin-top:3px}
.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:36px;height:42px;padding:3px;border:0;background:none;color:var(--forest)}
.menu-toggle>span{width:23px;height:2px;background:var(--forest)}
.menu-toggle small{font:8px Arial;letter-spacing:.05em;margin-top:2px}
.header nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:12px 20px 20px;border-bottom:1px solid var(--line)}
.header nav.open{display:flex;flex-direction:column;gap:0;align-items:stretch}
.header nav.open>a{padding:16px 0;border-bottom:1px solid var(--line);font-size:15px}
.nav-cta{margin-top:15px;font-size:15px;min-height:53px}
form{gap:15px}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*{transition:none !important}
}
.bright-a{--font:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--forest:#00938e;--ink:#000000;--mint:#eef9f7;--orange:#ee8d37;--muted:#5c7164;--line:#c8e3df}
.bright-a :is(.menu-toggle small,.button>span){font-family:var(--font)}
.bright-a .brand small{font-size:10px}
@media (max-width:560px){
.bright-a .brand small{font-size:8px}
}
.bright-a .button:not(.bright-secondary):hover{background:#d97522}

/* Main content width; hero and header use their own 1200px containers. */
.bright-a .wrap{width:min(1100px,calc(100% - 48px))}
