.public-portal{margin:0;background:#f7f7f2;color:#192c25;font-family:Arial,"Noto Sans JP",sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}
.public-portal *{box-sizing:border-box}
.public-portal a{color:inherit;text-decoration:none}
.public-portal a:focus-visible,.portal-return:focus-visible{outline:3px solid #187652;outline-offset:6px}
.public-portal .portal-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 5vw;border-bottom:1px solid #ccd2c9}
.public-portal .wordmark{font-size:24px;font-weight:900;letter-spacing:-1.2px;line-height:1;display:inline-block}
.public-portal .wordmark span{display:block;font-size:11px;letter-spacing:3.2px;margin-top:6px}
.public-portal .portal-header nav{display:flex;gap:36px;align-items:center;font-size:13px;font-weight:bold}
.public-portal .portal-header nav a{padding:10px 0;border-bottom:2px solid transparent;transition:border-color .2s}
.public-portal .portal-header nav a:hover,.public-portal .portal-header nav a[aria-current]{border-color:#187652}
.public-portal .portal-intro{padding:60px 5vw 48px;animation:portal-enter .55s ease-out}
.public-portal .portal-intro p,.public-portal .feature-caption>p:first-child{font-size:12px;letter-spacing:.15em;font-weight:bold;margin:0 0 12px}
.public-portal .portal-intro h1{font-size:clamp(36px,6.5vw,96px);letter-spacing:-.045em;line-height:1.15;margin:0 0 22px;overflow-wrap:anywhere}
.public-portal .portal-intro div{font-size:14px;max-width:42em}
.public-portal .brand-feature{position:relative;height:490px;overflow:hidden;background:#26392e}
.public-portal .brand-feature>img{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}
.public-portal .brand-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,25,17,.8),transparent 85%);pointer-events:none}
.public-portal .feature-caption{position:absolute;z-index:1;left:5vw;bottom:50px;color:white}
.public-portal .feature-caption h2{font-size:clamp(32px,4.5vw,64px);letter-spacing:-.035em;line-height:1.1;margin:0 0 18px}
.public-portal .feature-caption p{font-size:14px}
.public-portal .feature-caption a{display:inline-block;margin-top:14px;padding:10px 0;border-bottom:1px solid #fff}
.public-portal .feature-caption a span,.public-portal .link-direction{display:inline-block;transition:transform .2s}
.public-portal .feature-caption a:hover span,.public-portal .brand-list a:hover .link-direction{transform:translateX(5px)}
.public-portal .category-links{display:grid;grid-template-columns:1fr 1fr;padding:64px 5vw 0;gap:5vw}
.public-portal .category-links>a{position:relative;border-top:1px solid #63776d;border-bottom:1px solid #63776d;padding:26px 36px 32px 0;transition:color .2s}
.public-portal .category-links>a:hover{color:#187652}
.public-portal .category-links span{font-size:11px;letter-spacing:.12em}
.public-portal .category-links h2{font-size:clamp(20px,2.3vw,32px);margin:16px 0 0}
.public-portal .category-links b{position:absolute;right:0;bottom:30px;font-size:25px}
.public-portal .all-link{padding:36px 5vw 70px;text-align:right;font-size:14px}
.public-portal .directory{padding:12px 5vw 64px}
.public-portal .section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid #63776d;padding:16px 0}
.public-portal .section-heading h2{font-size:20px;margin:0}
.public-portal .section-heading>span{font-size:10px;letter-spacing:.12em;white-space:nowrap}
.public-portal .brand-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;padding:0;margin:0;list-style:none}
.public-portal .brand-list a{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #ccd2c9;padding:23px 0;font-weight:bold;font-size:17px;overflow-wrap:anywhere}
.public-portal .brand-list a:hover{color:#187652}
.public-portal .portal-footer{padding:44px 5vw 28px;background:#192c25;color:#f7f7f2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px}
.public-portal .portal-footer>div{display:flex;gap:30px;font-size:13px}
.public-portal .portal-footer>p{flex-basis:100%;font-size:10px;opacity:.75;margin:10px 0 0}
.public-portal .sr-only,.public-portal .skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.public-portal .skip-link:focus{display:block;padding:12px}
.portal-return{display:block;padding:10px 4vw;background:#192c25;color:white!important;text-decoration:none;font:12px/1.5 Arial,sans-serif}
.portal-return:hover{text-decoration:underline}
@keyframes portal-enter{from{opacity:0;transform:translateY(10px)}
to{opacity:1;transform:none}
}
@media(max-width:650px){.public-portal .portal-header{padding:20px 5vw;gap:12px}
.public-portal .wordmark{font-size:20px}
.public-portal .wordmark span{font-size:9px;letter-spacing:2.6px}
.public-portal .portal-header nav{gap:15px;font-size:11px}
.public-portal .portal-intro{padding:38px 5vw 32px}
.public-portal .portal-intro h1{font-size:36px}
.public-portal .portal-intro div{font-size:13px}
.public-portal .brand-feature{height:380px}
.public-portal .brand-feature>img{object-position:60% center}
.public-portal .brand-feature:after{background:linear-gradient(0deg,rgba(10,25,17,.85),transparent 90%)}
.public-portal .feature-caption{bottom:30px}
.public-portal .feature-caption h2{font-size:36px}
.public-portal .category-links{grid-template-columns:1fr;gap:24px;padding-top:35px}
.public-portal .all-link{padding-bottom:44px}
.public-portal .brand-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.public-portal .brand-list a{font-size:14px;padding:20px 0}
.public-portal .section-heading h2{font-size:16px}
.public-portal .directory{padding-bottom:40px}
.public-portal .portal-footer>div{flex-direction:column;gap:12px}
.public-portal .portal-footer{align-items:flex-start}
.public-portal .section-heading{align-items:center}
}
@media(prefers-reduced-motion:reduce){.public-portal *{animation:none!important;transition:none!important}
}
