* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); } a { color:inherit; text-decoration:none; } button,input,textarea,select { font:inherit; }
.route-container { width:min(1180px,calc(100% - 48px)); margin:0 auto; } .route-header { position:sticky; top:0; z-index:5; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); } .route-header-inner { min-height:76px; display:flex; align-items:center; gap:30px; } .route-brand { width:174px; flex:0 0 auto; } .route-brand img { display:block; width:100%; } nav { display:flex; align-items:center; gap:24px; color:#53617c; font-size:13px; font-weight:700; } nav a:hover, nav a[aria-current="page"] { color:var(--blue); } .route-cta { margin-left:auto; display:inline-flex; gap:8px; align-items:center; color:#fff; background:var(--blue); padding:10px 15px; border-radius:8px; font-weight:700; font-size:13px; } .route-cta span { color:var(--orange); }
.route-hero { background:linear-gradient(110deg,var(--navy) 0%,var(--blue) 67%,var(--blue-2) 100%); color:#fff; padding:44px 0 48px; } .route-hero .eyebrow { color:var(--white); border-left:3px solid var(--orange); padding-left:12px; font-size:12px; font-weight:800; } .route-hero h1 {
  text-wrap: balance; max-width:760px; margin:14px 0 18px; font-size:40px; line-height:1.25; } .route-hero p { max-width:650px; margin:0; color:rgba(255,255,255,.9); font-size:16px; } .route-main { padding:40px 0 64px; } .route-grid { display:grid; grid-template-columns:280px minmax(0,1fr); gap:28px; } .route-sidebar { align-self:start; position:sticky; top:104px; padding:20px; background:#fff; border:1px solid var(--line); border-radius:8px; } .route-sidebar b { display:block; color:var(--blue); margin-bottom:12px; } .route-sidebar a { display:block; padding:9px 0; color:var(--muted); border-bottom:1px solid var(--line); } .route-sidebar a:last-child { border-bottom:0; } .route-sidebar a:hover { color:var(--blue); }
.section-label { color:var(--blue); font-size:12px; font-weight:800; } h2 { margin:8px 0 14px; color:var(--navy); font-size:32px; line-height:1.375; } h3 { margin:0 0 8px; color:var(--navy); font-size:19px; } .lead { color:var(--muted); max-width:720px; } .cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:30px; } .card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:22px; } .card p { margin:0; color:var(--muted); } .card .index { color:var(--blue); font-weight:800; font-size:12px; margin-bottom:16px; } .card-link { display:inline-flex; margin-top:18px; color:var(--blue); font-weight:700; font-size:13px; } .card-link:hover { color:var(--blue-2); text-decoration:underline; text-underline-offset:3px; }
.content-table { width:100%; margin-top:28px; border-collapse:collapse; background:#fff; border:1px solid var(--line); } .content-table th,.content-table td { padding:15px 16px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; } .content-table th { color:var(--muted); font-size:12px; } .status { display:inline-block; padding:2px 8px; border-radius:8px; color:var(--blue); background:var(--paper); font-size:12px; }
.detail-panel { background:#fff; border:1px solid var(--line); border-radius:8px; padding:30px; margin-top:28px; } .detail-panel p { color:var(--muted); } .process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:30px; border-top:2px solid var(--navy); } .process div { padding:18px 20px 0 0; border-right:1px solid var(--line); } .process div:not(:first-child) { padding-left:20px; } .process div:last-child { border-right:0; } .process small { display:block; color:var(--blue); font-weight:800; margin-bottom:12px; }
.content-title-link { color:var(--navy); } .content-title-link:hover { color:var(--blue); }
.service-card-meta { margin-top:18px; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.7; } .service-card-meta b { display:block; color:var(--navy); margin-bottom:3px; }
.content-detail { background:#fff; border:1px solid var(--line); border-radius:8px; padding:0; border:0; border-radius:0; background:transparent; } .detail-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:24px; } .back-link { color:var(--muted); font-size:13px; } .back-link:hover { color:var(--blue); } .detail-cover { display:block; width:100%; max-height:360px; object-fit:cover; border-radius:8px; margin-bottom:28px; } .detail-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin:24px 0 34px; } .detail-meta div { background:var(--paper); padding:16px; } .detail-meta span { display:block; color:var(--muted); font-size:12px; margin-bottom:5px; } .detail-meta b { color:var(--navy); } .detail-copy { max-width:760px; } .detail-copy h2 { margin-top:30px; font-size:25px; } .detail-copy p { color:var(--muted); line-height:1.9; } .detail-actions { display:flex; flex-wrap:wrap; gap:20px; margin-top:24px; }
.route-form { max-width:720px; padding:28px; background:#fff; border:1px solid var(--line); border-radius:8px; margin-top:28px; } .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; } .route-form label { display:grid; gap:5px; color:var(--muted); font-size:12px; } .route-form input,.route-form select,.route-form textarea { width:100%; min-width:0; border:1px solid var(--muted); border-radius:8px; padding:10px 11px; outline:none; } .route-form textarea { min-height:120px; resize:vertical; } .route-form input:focus,.route-form select:focus,.route-form textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(36,75,190,.14); } .full { grid-column:1 / -1; } .route-form button { min-height:48px; margin-top:16px; border:0; border-radius:8px; padding:11px 17px; background:var(--blue); color:#fff; font-weight:700; cursor:pointer; } .route-feedback { display:block; margin-top:10px; color:var(--muted); }
.route-cta:hover,.route-form button:hover { background:var(--blue-2); }
.route-cta:active,.route-form button:active { background:var(--navy); }
.route-form button:disabled { background:var(--line); color:var(--muted); cursor:not-allowed; }
.route-form button[aria-busy="true"]:disabled { cursor:wait; }
.route-form label { font-size:14px; line-height:22px; }
.route-form input,.route-form select,.route-form textarea { font-size:16px; line-height:26px; }
.route-form input:disabled,.route-form select:disabled,.route-form textarea:disabled { background:var(--paper); color:var(--muted); cursor:not-allowed; }
.route-form input:user-invalid,.route-form select:user-invalid,.route-form textarea:user-invalid,.route-form [aria-invalid="true"] { border-style:dashed; outline:2px solid var(--ink); outline-offset:2px; }
.route-footer { color:#dce6ff; background:var(--navy); padding:42px 0 0; } .route-footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:28px; padding-bottom:36px; } .route-footer img { width:178px; filter:brightness(0) invert(1); } .route-footer p { color:#b7c8f0; } .route-footer b { display:block; color:#fff; margin-bottom:10px; } .route-footer a,.route-footer span { display:block; color:#b7c8f0; margin:5px 0; font-size:13px; } .route-footer a:hover { color:#fff; } .route-footer .footer-record-link span { display:inline; margin:0; } .route-legal { padding:18px 0; border-top:1px solid rgba(255,255,255,.16); color:#9db2e5; font-size:12px; text-align:center; } .route-legal-main { display:flex; justify-content:center; flex-wrap:wrap; gap:0; } .route-legal-main > * { display:inline-block; margin:0 10px; } .route-legal-main > * + *::before { content:"·"; margin-right:20px; color:rgba(255,255,255,.28); } .route-legal .footer-copyright-en { display:block; margin-top:4px; }
@media (max-width:850px) { .route-header-inner { gap:16px; } nav { display:none; } .route-grid { grid-template-columns:1fr; } .route-sidebar { position:static; } .cards { grid-template-columns:1fr 1fr; } .process { grid-template-columns:1fr 1fr; } .process div:nth-child(2) { border-right:0; } .process div:nth-child(n+3) { border-top:1px solid var(--line); } .route-footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .route-container { width:min(100% - 32px,1180px); } .route-brand { width:145px; } .route-cta { padding:8px 10px; font-size:12px; } .route-hero { padding:32px 0 36px; } .route-hero h1 { font-size:32px; } .route-main { padding:28px 0 48px; } .cards,.form-grid { grid-template-columns:1fr; } .full { grid-column:auto; } .process { grid-template-columns:1fr 1fr; } .process div,.process div:not(:first-child) { padding:15px 10px 0 0; } .process div:nth-child(even) { padding-left:10px; border-right:0; } .detail-meta { grid-template-columns:1fr; } .detail-toolbar { align-items:flex-start; flex-direction:column; } .route-footer-grid { grid-template-columns:1fr 1fr; gap:25px 16px; } }
.route-form .consultation-consent { display:flex; align-items:flex-start; gap:10px; }
.route-form .consultation-consent input[type=checkbox] { width:16px; height:16px; flex:0 0 16px; margin:3px 0 0; }
.route-form .consultation-consent span { min-width:0; }
.route-form .consultation-consent a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.directory-controls { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:24px 0 16px; min-height:44px; }
.directory-controls p { margin:0; min-width:0; color:var(--muted); font-size:14px; line-height:24px; }
.directory-refresh { padding:0; }
.directory-refresh:hover:not(:disabled) { border-color:var(--blue); background:var(--paper); }
.directory-refresh:active:not(:disabled) { background:var(--line); }
.directory-refresh:disabled { cursor:wait; opacity:.55; }
.directory-refresh-icon { display:block; width:18px; height:18px; background:currentColor; mask:url('/assets/icons/rotate-ccw.svg') center/contain no-repeat; }
.public-directory .cards { margin-top:0; }
.public-directory .detail-panel { margin-top:0; }
.directory-table-scroll { overflow-x:auto; max-width:100%; }
.directory-table-scroll:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.directory-table-scroll .content-table { margin-top:0; min-width:640px; table-layout:fixed; }
.directory-table-scroll th:first-child { width:44%; }
.detail-meta > div { min-width:0; overflow-wrap:anywhere; }
.directory-table-scroll th,.directory-table-scroll td { overflow-wrap:anywhere; }
.directory-state { min-height:180px; padding:32px 24px; display:flex; flex-direction:column; justify-content:center; align-items:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.directory-state h3 { font-size:20px; line-height:30px; }
.directory-state p { margin:0; color:var(--muted); font-size:14px; line-height:24px; }
.directory-loading { width:120px; height:4px; border-left:32px solid var(--blue); border-radius:8px; background:var(--line); }
.detail-controls { margin:12px auto; }
.policy-copy { max-width:880px; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--ink); font-size:16px; line-height:1.9; }
.article-body { white-space:pre-wrap; overflow-wrap:anywhere; min-width:0; max-width:880px; margin:28px 0 36px; color:var(--ink); font-size:16px; line-height:28px; }
.article-body a { text-decoration:underline; text-underline-offset:3px; }
.training-content { margin:28px 0; min-width:0; }
.product-content,.product-entry { margin:28px 0; min-width:0; }
.product-copy { white-space:pre-wrap; overflow-wrap:anywhere; line-height:28px; }
.product-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.product-gallery figure { margin:0; min-width:0; }
.product-gallery a { display:block; background:var(--paper); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.product-gallery img { display:block; width:100%; height:auto; aspect-ratio:8/5; object-fit:contain; }
.product-gallery figcaption { padding:10px 0; overflow-wrap:anywhere; line-height:24px; }
.product-gallery a:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
@media (max-width:640px) { .product-gallery { grid-template-columns:minmax(0,1fr); gap:16px; } }
.product-release-history { margin:28px 0; min-width:0; }
.product-release-history ol { padding:0; list-style:none; }
.product-release-history li { border-top:1px solid var(--line); padding:20px 0; overflow-wrap:anywhere; }
.release-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:12px; }
.release-heading h3 { font-size:20px; margin:0; }
.release-heading time { font-size:14px; color:var(--muted); }
.release-assets { margin-top:16px; }
.release-assets h4 { margin:0 0 8px; font-size:15px; }
.release-assets li { align-items:center; gap:16px; }
.release-assets .card-link { flex:none; }
.release-assets small { display:block; color:var(--muted); margin-top:3px; }
.training-copy { white-space:pre-wrap; overflow-wrap:anywhere; line-height:28px; }
.training-faq details { border-bottom:1px solid var(--line); padding:16px 0; min-width:0; }
.training-faq summary { cursor:pointer; overflow-wrap:anywhere; font-weight:600; line-height:26px; }
.training-faq summary:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.route-form fieldset { border:0; margin:0; padding:0; min-width:0; }
.contact-information { margin-top:40px; border-top:1px solid var(--line); padding-top:24px; scroll-margin-top:100px; }
.contact-information h2 { font-size:24px; line-height:32px; }
.contact-fields { margin:16px 0 0; }
.contact-fields > div { display:grid; grid-template-columns:88px minmax(0,1fr); gap:16px; padding:12px 0; border-bottom:1px solid var(--line); }
.contact-fields dt { color:var(--muted); font-size:14px; line-height:26px; }
.contact-fields dd { margin:0; min-width:0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:16px; line-height:26px; }
.contact-fields a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.contact-fields a:hover { color:var(--blue-2); }
#consultation { scroll-margin-top:100px; }
.detail-state-links { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 24px; }
.public-detail .directory-state h2 { max-width:100%; font-size:24px; line-height:32px; text-wrap:balance; }
.route-sidebar a[aria-current="page"] { color:var(--blue); font-weight:700; border-left:3px solid var(--orange); padding-left:12px; }

@media (min-width:851px) and (max-width:1100px) { .route-grid .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:850px) { .route-sidebar { padding:16px 0; border:0; border-radius:0; background:transparent; display:flex; flex-wrap:wrap; gap:4px 20px; border-bottom:1px solid var(--line); } .route-sidebar b { flex-basis:100%; margin-bottom:4px; } .route-sidebar a { border-bottom:0; padding:8px 0; } }
@media (max-width:560px) { .detail-panel,.route-form { padding:20px 16px; } .route-hero p { font-size:15px; line-height:26px; } }
