/* Shared public-site shell. Approved C layout:
   centered 1180px canvas, 32px desktop gutters and 20px mobile gutters.
   Keep editorial measure separate from the outer page/header width. */
body.portal-page, body.tools-page {
  --page-gutter: 32px;
  --container-max: 1180px;
  --shell-header-height: 68px;
}
body.portal-page {
  --bg: #111b2c; --surface: #1d2a3d; --surface-2: #243249;
  --paper: #e2e8f0; --paper-bright: #f1f3f7; --muted: #b5c0d0;
  --line: #ffffff1c; --line-soft: #ffffff12;
  --accent: #e7b18d; --accent-strong: #e7b18d; --accent-soft: #e7b18d15;
  background: #111b2c;
}
body:is(.portal-page,.tools-page) .container {
  width: calc(100% - var(--page-gutter) - var(--page-gutter));
  max-width: var(--container-max); margin-inline: auto;
}
body:is(.portal-page,.tools-page) .site-header {
  position: sticky; top: 0; z-index: 120; background: #111b2c;
  border-bottom: 1px solid #ffffff1c; backdrop-filter: blur(18px);
}
body:is(.portal-page,.tools-page) .header-inner {
  min-height: var(--shell-header-height); padding-block: 0;
  display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px;
}
body:is(.portal-page,.tools-page) .brand { color: #f1f3f7; font-size: 16px; font-weight: 800; letter-spacing: -.02em; line-height: 1; gap: 9px; flex: 0 0 auto; }
body:is(.portal-page,.tools-page) .brand-glyph { width: 10px; height: 10px; border-radius: 50%; transform: none; background: #e7b18d; box-shadow: none; }
body:is(.portal-page,.tools-page) .brand small { display: none; }
body:is(.portal-page,.tools-page) .nav { max-width: none; width: auto; margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 22px; }
body:is(.portal-page,.tools-page) .nav a { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 0; color: #b5c0d0; font-size: 12px; letter-spacing: .05em; border-bottom: 2px solid transparent; }
body:is(.portal-page,.tools-page) .nav a:hover, body:is(.portal-page,.tools-page) .nav a.active { color: #fff; border-color: #e7b18d; }
body:is(.portal-page,.tools-page) a:focus-visible { outline: 2px solid #e7b18d; outline-offset: 4px; }
body:is(.portal-page,.tools-page) [id] { scroll-margin-top: calc(var(--shell-header-height) + 24px); }
body:is(.portal-page,.tools-page) .site-footer { background: #111b2c; border-color: #ffffff1c; padding: 34px 0 40px; color: #b5c0d0; }
body:is(.portal-page,.tools-page) .footer-grid { grid-template-columns: 1fr 1.5fr; gap: 36px; }
body:is(.portal-page,.tools-page) .footer-brand strong { color: #f1f3f7; font-size: 20px; }
body:is(.portal-page,.tools-page) .footer-brand span { font-size: 14px; }
body:is(.portal-page,.tools-page) .footer-nav-group strong { color: #e7b18d; font-size: 12px; }
body:is(.portal-page,.tools-page) .footer-nav-group a { color: #b5c0d0; font-size: 14px; min-height: 32px; }
.portal-page .portal-hero-grid { width: calc(100% - var(--page-gutter) - var(--page-gutter)); max-width: var(--container-max); }
.portal-page .static-page { width: calc(100% - var(--page-gutter) - var(--page-gutter)); max-width: var(--container-max); padding: 48px 0 72px; }
.portal-page .static-page > * { max-width: 860px; }
.portal-page .static-page h1, .portal-page .update-detail-head h1 { max-width: 1040px; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.4; }
.portal-page .static-page p, .portal-page .static-page li { line-height: 1.95; overflow-wrap: anywhere; }
.portal-page .static-page h2 { margin-top: 36px; font-size: 22px; }
.portal-page .article-lead { color: var(--muted); font-size: 16px; }
.portal-page .update-detail { padding: 40px 0 72px; }
.portal-page .update-detail-head { padding: 28px 0 22px; }
.portal-page .update-detail-head .article-lead, .portal-page .update-detail-body { max-width: 860px; }
.portal-page .update-detail-body { font-size: 16px; }
.portal-page .update-detail-image { max-width: 1040px; margin-inline: 0; border-radius: 12px; overflow: hidden; }
.portal-page .update-detail-image img { width: 100%; height: auto; display: block; }
.portal-page .update-detail-actions { flex-wrap: wrap; gap: 16px 24px; }
.portal-page .updates-archive > .section { padding: 40px 0 72px; }
.portal-page .portal-update-item { padding-block: 20px; }
.portal-page .portal-update-item:hover { background: #ffffff05; }
.portal-page .portal-update-tag, .portal-page .update-detail-head .portal-update-tag[data-update-service] { color: #e7b18d; border-color: #e7b18d55; font-size: 12px; }
.portal-page .portal-update-item[data-update-service] .portal-update-tag { color: #e7b18d; border-color: #e7b18d55; }
.portal-page .portal-update-item { grid-template-columns: 150px 145px minmax(0, 1fr); }
.portal-page .portal-update-arrow { display: none; }
.portal-page .portal-update-summary { color: #b5c0d0; font-size: 14px; line-height: 1.7; }
.portal-page .update-archive-nav { background: #1d2a3d; border-radius: 12px; }
.portal-page .update-archive-nav strong { font-size: 12px; }
.portal-page .update-archive-nav a { font-size: 14px; }
.portal-page .update-archive-nav a:hover, .portal-page .update-archive-nav a[aria-current="page"] { background: #33445e; color: #fff; }
.portal-page .portal-update-item time, .portal-page .update-detail-head time { font-size: 13px; }
.portal-page .archive-button { background: #e7b18d; color: #111b2c; border-color: #e7b18d; font-size: 14px; }
.portal-page .archive-button:hover { background: #f3c8a9; }
.portal-page .about-maker, .portal-page .about-service-grid a { background: #1d2a3d; border-radius: 12px; }
.portal-page .policy-tabs a { background: #1d2a3d; color: #dbe5f0; border-color: #53647c; font-size: 14px; min-height: 44px; }
.portal-page .policy-tabs a:hover { background: #33445e; color: #fff; }
.portal-page .policy-tabs a[aria-current="page"] { background: #e7b18d; color: #111b2c; border-color: #e7b18d; }
.portal-page .about-service-grid a:hover { background: #27374e; }
.portal-page .about-service-grid small { font-size: 14px; }
.portal-page .about-service-grid span, .portal-page .about-maker-label { font-size: 12px; }
.portal-page .contact-form { background: #1d2a3d; border-radius: 12px; }
.portal-page .contact-field, .portal-page .contact-consent { color: #e2e8f0; font-size: 14px; }
.portal-page .contact-field small, .portal-page .contact-field em { color: #b5c0d0; font-size: 13px; }
.portal-page .contact-field input, .portal-page .contact-field select, .portal-page .contact-field textarea { background: #111b2c; color: #f1f3f7; border-color: #53647c; font-size: 16px; }
.portal-page .contact-field input:focus, .portal-page .contact-field select:focus, .portal-page .contact-field textarea:focus { outline: 2px solid #e7b18d; }
.portal-page .contact-success-dialog { background: #1d2a3d; color: #e2e8f0; }
.portal-page .contact-status[data-kind="success"] { color: #93e2bd; }
.portal-page .contact-status[data-kind="error"] { color: #ffb0a9; }
@media (max-width: 1000px) {
  body:is(.portal-page,.tools-page) .footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body.portal-page, body.tools-page { --page-gutter: 20px; --shell-header-height: 108px; }
  body:is(.portal-page,.tools-page) .header-inner { flex-direction: column; align-items: flex-start; justify-content: center; min-height: 108px; padding: 14px 0 8px; gap: 8px; }
  body:is(.portal-page,.tools-page) .nav { width: 100%; max-width: none; margin: 0; justify-content: space-between; gap: 6px 14px; }
  body:is(.portal-page,.tools-page) .nav a { min-height: 40px; padding: 7px 0; font-size: 12px; letter-spacing: .02em; }
  body:is(.portal-page,.tools-page) .footer-sitemap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-page .static-page { padding-block: 32px 52px; }
  .portal-page .update-detail { padding-block: 28px 52px; }
  .portal-page .updates-archive > .section { padding-block: 28px 52px; }
  .portal-page .portal-update-summary { white-space: normal; }
  .portal-page .portal-update-item { grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 10px 16px; padding-inline: 0; }
  .portal-page .portal-update-item time { grid-column: auto; }
  .portal-page .portal-update-tag { min-width: 0; }
  .portal-page .portal-update-copy { grid-column: 1 / -1; }
  body:is(.portal-page,.tools-page) .footer-grid { display: grid; gap: 28px; }
}
