/* ==========================================================================
   AGR Global — Corporate chrome (header / mega / drawer / footer)
   Phase 1 foundation — tokens + shared chrome only.
   ========================================================================== */

:root {
  /* Cool industrial light surfaces */
  --bg: #F5F6F7;
  --bg-secondary: #ECEFF2;
  --bg-tertiary: #F1F3F5;
  --bg-card: #FFFFFF;
  --bg-dark: #22313F;
  --bg-dark-2: #2B3D4F;
  --bg-dark-card: #31495C;
  --ink: #22313F;
  --ink-dark: #F3F5F7;
  --ink-soft: #5F6F7C;
  --ink-soft-dark: #C2CBD3;
  --line: #D5DBE0;
  --line-dark: #5A7083;
  /* Single AGR brand red — primary CTA / eyebrow / emphasis only */
  --red: #A3211B;
  --red-deep: #7C1712;
  --red-soft: #A3211B1a;
  --red-on-dark: #E9A79E;
  --cta-primary: var(--red);
  --cta-primary-hover: var(--red-deep);
  /* Link blue — text links only, never primary CTA fill */
  --accent-blue: #1A5FA8;
  --link: var(--accent-blue);
  --gold: #C8A84B;
  /* Sitewide interaction system */
  --agr-motion-fast: 160ms;
  --agr-motion-standard: 200ms;
  --agr-ease-standard: cubic-bezier(0.22, 1, 0.36, 1);
  --agr-card-lift: -2px;
  --agr-card-media-scale: 1.02;
  --agr-shadow-rest: 0 1px 2px rgba(34, 49, 63, 0.05);
  --agr-shadow-hover: 0 8px 22px rgba(34, 49, 63, 0.12);
  --agr-focus-ring: #A3211B;
  --f-display: 'Noto Sans JP', 'Barlow Condensed', sans-serif;
  --f-body: 'Noto Sans JP', sans-serif;
  --f-label: 'Barlow Condensed', 'Noto Sans JP', sans-serif;
  --maxw: 1360px;
  --gap-section: 152px;
  --radius: 3px;
  --border: 1px solid var(--line);
  --header-h: 92px;
}

body.agr-corp {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--f-body);
}

/* Skip link — visually hidden until keyboard focus (chrome always renders it) */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  background: var(--red);
  color: #fff;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--radius);
}
.skip-link:focus,
.skip-link:focus-visible {
  left: 16px;
  top: 16px;
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 32px;
}

.corp-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 15.5px;
  padding: 15px 26px;
  border-radius: var(--radius);
  border: 1.4px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  white-space: nowrap;
}
.corp-btn--primary {
  background: var(--cta-primary, var(--red));
  border-color: var(--cta-primary, var(--red));
  color: #fff;
}
.corp-btn--primary:hover {
  background: var(--cta-primary-hover, var(--red-deep));
  border-color: var(--cta-primary-hover, var(--red-deep));
}
.corp-btn--ghost {
  background: transparent;
  border-color: var(--line-dark, #5A7083);
  color: var(--ink);
}
.corp-btn--ghost:hover { background: var(--bg-secondary); border-color: var(--ink); }
.corp-btn--onDark { border-color: rgba(90,112,131,0.85); color: var(--ink-dark); }
.corp-btn--onDark:hover { background: rgba(243,245,247,0.08); border-color: var(--ink-dark); }
.corp-btn--small { padding: 11px 18px; font-size: 13.5px; }

.corp-text-link {
  color: var(--link, var(--accent-blue));
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.corp-text-link:hover { color: var(--red); }
.corp-text-link::after { content: "→"; transition: transform .15s ease; }
.corp-text-link:hover::after { transform: translateX(3px); }

.corp-eyebrow {
  font-family: var(--f-label);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 14px;
  color: var(--red);
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.corp-eyebrow::before { content: ""; width: 28px; height: 1.5px; background: var(--red); display: inline-block; }
.corp-eyebrow--onDark { color: #E9A79E; }
.corp-eyebrow--onDark::before { background: #E9A79E; }

.corp-evidence {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-label);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 11px 6px 9px;
  border-radius: 2px;
  border: 1.3px solid var(--red);
  line-height: 1;
}
.corp-evidence::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1.3px solid var(--red); }
.corp-evidence--case { background: var(--red); color: #fff; }
.corp-evidence--case::before { background: #fff; }
.corp-evidence--application { background: var(--red-soft); color: var(--red); }
.corp-evidence--application::before { background: var(--red); }
.corp-evidence--validation { background: transparent; color: var(--red); }
.corp-evidence--validation::before { background: var(--red-soft); }
.corp-evidence--onDark { color: #E9A79E; border-color: #E9A79E; }
.corp-evidence--onDark::before { border-color: #E9A79E; background: transparent; }

.corp-evidence-note { font-size: 13px; color: var(--ink-soft); display: inline-flex; align-items: center; gap: 8px; }
.corp-evidence-note b { color: var(--red); font-weight: 700; }

/* ---- Header ---- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  /* Header is de facto light at the top of the homepage (legacy layout.css
     body padding pushes the hero below it), so the light surface is the
     always-on state — dark text stays readable in every scroll state. */
  background: rgba(250, 249, 245, 0.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  transition: background .25s ease, border-color .25s ease, backdrop-filter .25s ease;
}
.site-header[data-scrolled="true"],
body:not(.agr-corp-home) .site-header {
  background: rgba(250,249,245,0.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.site-header[data-scrolled="true"] .nav-link,
.site-header[data-scrolled="true"] .logo,
.site-header[data-scrolled="true"] .header-cta .corp-btn--ghost,
body:not(.agr-corp-home) .site-header .nav-link,
body:not(.agr-corp-home) .site-header .logo,
body:not(.agr-corp-home) .site-header .header-cta .corp-btn--ghost {
  color: var(--ink);
}
.site-header[data-scrolled="true"] .hamburger,
body:not(.agr-corp-home) .site-header .hamburger {
  border-color: var(--line);
}
.site-header[data-scrolled="true"] .hamburger span,
.site-header[data-scrolled="true"] .hamburger span::before,
.site-header[data-scrolled="true"] .hamburger span::after,
body:not(.agr-corp-home) .site-header .hamburger span,
body:not(.agr-corp-home) .site-header .hamburger span::before,
body:not(.agr-corp-home) .site-header .hamburger span::after {
  background: var(--ink);
}

.header-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 32px;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.site-header .logo,
.site-header .nav-logo {
  font-family: var(--f-label);
  font-weight: 700;
  font-size: 23px;
  letter-spacing: 0.02em;
  text-decoration: none;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 12px;
  transition: color .2s ease;
}
.site-header .logo-mark {
  width: 36px;
  height: 36px;
  border: 2px solid currentColor;
  display: grid;
  place-items: center;
  font-size: 13px;
  font-weight: 800;
  color: var(--red);
  background: rgba(255,255,255,0.06);
  flex-shrink: 0;
}
.site-header .logo small {
  display: block;
  font-family: var(--f-body);
  font-weight: 400;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  opacity: 0.7;
  text-transform: uppercase;
}
.site-header .nav-logo-image {
  height: 36px;
  width: auto;
  display: block;
}
.site-header .nav-logo-text {
  color: inherit !important;
}

.primary-nav > ul {
  list-style: none;
  display: flex;
  gap: 2px;
  margin: 0;
  padding: 0;
  align-items: center;
}
.primary-nav .nav-item { position: relative; }
/* 製品: text link + caret toggle sit side by side inside one nav-item */
.nav-item--products {
  display: flex;
  align-items: center;
}
.nav-item--apps,
.nav-item--cases {
  display: flex;
  align-items: center;
}
.nav-item--apps > .nav-link,
.nav-item--cases > .nav-link {
  padding-right: 4px;
}
.nav-dd-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-left: 2px;
  background: none;
  border: none;
  border-radius: var(--radius);
  color: var(--ink);
  cursor: pointer;
  font-family: inherit;
  transition: background .15s ease;
}
.nav-dd-toggle:hover {
  background: var(--bg-secondary);
}
.nav-dd-toggle[aria-expanded="true"] .caret {
  transform: rotate(225deg);
  margin-top: 3px;
}
.site-header .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 12px 14px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  color: var(--ink);
  border-radius: var(--radius);
  transition: color .2s ease, background .15s ease;
  background: none;
  border: none;
  font-family: inherit;
  cursor: pointer;
}
.site-header .nav-link:hover,
.site-header .nav-link[aria-expanded="true"],
.site-header .nav-link.is-active {
  background: var(--bg-secondary);
  color: var(--ink);
}
.site-header[data-scrolled="true"] .nav-link:hover,
.site-header[data-scrolled="true"] .nav-link[aria-expanded="true"],
.site-header[data-scrolled="true"] .nav-link.is-active,
body:not(.agr-corp-home) .site-header .nav-link:hover,
body:not(.agr-corp-home) .site-header .nav-link[aria-expanded="true"],
body:not(.agr-corp-home) .site-header .nav-link.is-active {
  background: var(--bg-secondary);
}
.caret {
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px;
  transition: transform .15s ease;
}
.nav-link[aria-expanded="true"] .caret {
  transform: rotate(225deg);
  margin-top: 3px;
}

.header-cta {
  display: flex;
  align-items: center;
  gap: 12px;
}
.header-cta .corp-btn--ghost { color: var(--ink); }

.hamburger {
  display: none;
  width: 44px;
  height: 44px;
  border: 1.4px solid var(--line);
  background: transparent;
  border-radius: var(--radius);
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.hamburger span,
.hamburger span::before,
.hamburger span::after {
  content: "";
  display: block;
  width: 19px;
  height: 1.5px;
  background: var(--ink);
  position: relative;
}
.hamburger span::before { position: absolute; top: -6px; }
.hamburger span::after { position: absolute; top: 6px; }

/* Mega menu */
.mega {
  position: fixed;
  top: calc(var(--header-h) + 14px);
  left: 50vw;
  transform: translateX(-50%);
  width: min(1040px, 92vw);
  background: var(--bg);
  border: var(--border);
  border-radius: var(--radius);
  box-shadow: 0 24px 54px rgba(20,18,10,0.16);
  padding: 34px;
  display: none;
  z-index: 50;
  color: var(--ink);
}
/* Hover bridge — keep the pointer inside the menu while crossing the gap */
.mega::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}
.mega[data-open="true"] { display: block; }
.nav-item--products:hover .mega,
.nav-item--products:focus-within .mega { display: block; }
.mega-grid { display: grid; grid-template-columns: 1fr; gap: 0; }
.mega-products-wide {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 20px;
}
.mega-sub {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--ink-soft);
  text-align: left;
  line-height: 1.55;
}
.mega li a { justify-content: flex-start; align-items: flex-start; }
.mega li a .mega-sub { text-align: left; }
.mega-pillar-label {
  font-family: var(--f-label);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.mega-pillar-label b {
  color: var(--ink);
  display: block;
  font-size: 15.5px;
  letter-spacing: 0;
  text-transform: none;
  margin-top: 5px;
  font-weight: 700;
}
.mega ul { list-style: none; margin: 0; padding: 0; display: block; }
.mega li a {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 2px;
  padding: 13px 14px;
  text-decoration: none;
  color: var(--ink);
  border-radius: var(--radius);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  word-break: keep-all;
  overflow-wrap: normal;
}
.mega li a:hover { background: var(--bg-secondary); }
.mega-foot {
  grid-column: 1 / -1;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  gap: 12px;
  flex-wrap: wrap;
}
.mega-foot a { text-decoration: none; color: var(--link, var(--accent-blue)); font-weight: 600; }
.mega-foot a:hover { color: var(--red); }
.mega-foot__links {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* Compact numbered dropdown (技術情報 — proven JP nav pattern) */
.nav-dd {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 280px;
  width: max(280px, min(340px, 88vw));
  background: var(--bg);
  border: var(--border);
  border-radius: var(--radius);
  box-shadow: var(--agr-shadow-hover, 0 16px 40px rgba(28, 27, 22, 0.16));
  padding: 8px;
  display: none;
  z-index: 50;
  color: var(--ink);
}
.nav-dd[data-open="true"] { display: block; }
.nav-item--apps:hover > .nav-dd,
.nav-item--apps:focus-within > .nav-dd,
.nav-item--cases:hover > .nav-dd,
.nav-item--cases:focus-within > .nav-dd { display: block; }
/* Hover bridge — keep the pointer inside the dropdown while crossing the gap */
.nav-item--apps > .nav-dd::before,
.nav-item--cases > .nav-dd::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}
.nav-dd__foot {
  margin-top: 6px;
  padding: 10px 12px 6px;
  border-top: 1px solid var(--line);
}
.nav-dd__foot a {
  display: block;
  text-decoration: none;
  color: var(--link, var(--accent-blue));
  font-weight: 700;
  font-size: 13px;
}
.nav-dd__foot a:hover { color: var(--red); }
.nav-dd__item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--radius);
  text-decoration: none;
  color: inherit;
  border: 1px solid transparent;
  transition:
    transform var(--agr-motion-fast, 160ms) var(--agr-ease-standard, cubic-bezier(0.22, 1, 0.36, 1)),
    box-shadow var(--agr-motion-fast, 160ms) var(--agr-ease-standard, cubic-bezier(0.22, 1, 0.36, 1)),
    border-color var(--agr-motion-fast, 160ms) var(--agr-ease-standard, cubic-bezier(0.22, 1, 0.36, 1)),
    background-color var(--agr-motion-fast, 160ms) var(--agr-ease-standard, cubic-bezier(0.22, 1, 0.36, 1));
}
.nav-dd__item:hover {
  background: var(--bg-secondary);
  border-color: rgba(28, 27, 22, 0.14);
  transform: translateY(var(--agr-card-lift, -4px));
  box-shadow: var(--agr-shadow-rest, 0 6px 18px rgba(28, 27, 22, 0.08));
}
.nav-dd__item:focus-visible {
  outline: 2px solid var(--agr-focus-ring, #A3211B);
  outline-offset: 2px;
}
.nav-dd__num {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  color: var(--ink-soft);
  margin-top: 3px;
  flex-shrink: 0;
}
.nav-dd__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.nav-dd__title {
  font-weight: 700;
  font-size: 13.5px;
  color: var(--ink);
  line-height: 1.3;
}
.nav-dd__sub {
  font-size: 11.5px;
  color: var(--ink-soft);
  line-height: 1.45;
}
.d-panel-dd {
  list-style: none;
  margin: 0;
  padding: 0;
}
.d-panel-dd a {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 11px;
  text-decoration: none;
  color: var(--ink);
  border-radius: var(--radius);
  border: 1px solid transparent;
  transition:
    background-color var(--agr-motion-fast, 160ms) var(--agr-ease-standard, cubic-bezier(0.22, 1, 0.36, 1)),
    border-color var(--agr-motion-fast, 160ms) var(--agr-ease-standard, cubic-bezier(0.22, 1, 0.36, 1));
}
.d-panel-dd a:hover {
  background: var(--bg-secondary);
  border-color: rgba(28, 27, 22, 0.12);
}
.d-panel-dd a:focus-visible {
  outline: 2px solid var(--agr-focus-ring, #A3211B);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .nav-dd__item,
  .d-panel-dd a {
    transition: none;
  }
  .nav-dd__item:hover {
    transform: none;
  }
}

/* Page offset under fixed header (non-home) */
body:not(.agr-corp-home) main#main-content {
  padding-top: var(--header-h);
}

/* ---- Mobile drawer ---- */
.drawer-scrim {
  position: fixed;
  inset: 0;
  background: rgba(20,18,10,0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
  z-index: 199;
}
.drawer-scrim[data-open="true"] { opacity: 1; pointer-events: auto; }
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: min(380px, 88vw);
  background: var(--bg);
  z-index: 200;
  transform: translateX(100%);
  transition: transform .28s ease;
  overflow-y: auto;
  border-left: var(--border);
}
.drawer[data-open="true"] { transform: translateX(0); }
.drawer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 22px 24px;
  border-bottom: var(--border);
}
.drawer-close {
  width: 38px;
  height: 38px;
  border: var(--border);
  background: none;
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 17px;
}
.drawer-nav { padding: 10px 14px 34px; }
.d-item { border-bottom: 1px solid var(--line); }
.d-item > button,
.d-item > a {
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  font-family: inherit;
  font-size: 16.5px;
  font-weight: 500;
  color: var(--ink);
  padding: 18px 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  text-decoration: none;
}
.d-panel { max-height: 0; overflow: hidden; transition: max-height .22s ease; }
.d-panel[data-open="true"] { max-height: 900px; }
.d-panel-inner { padding: 0 10px 20px; }
.d-pillar-title {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 16px 0 9px;
}
.d-panel ul { list-style: none; margin: 0 0 9px; padding: 0; }
.d-panel a {
  display: block;
  padding: 10px 11px;
  font-size: 15.5px;
  text-decoration: none;
  color: var(--ink);
  border-radius: var(--radius);
}
.d-panel a:hover { background: var(--bg-secondary); }
.d-panel-hub {
  font-weight: 700;
  color: var(--link, var(--accent-blue)) !important;
}
.drawer-foot {
  padding: 22px;
  border-top: var(--border);
  display: flex;
  flex-direction: column;
  gap: 11px;
}

/* ---- Corporate footer (does not alter .site-footer--product-first) ---- */
.site-footer.corp-footer {
  background: var(--bg-dark);
  color: var(--ink-soft-dark);
  padding: 40px 0 32px;
}
.site-footer.corp-footer .footer-grid,
.site-footer.corp-footer .footer-grid--restore {
  display: grid;
  grid-template-columns: 1.45fr 1.1fr 1fr 1.05fr;
  gap: 36px;
  align-items: start;
  padding-top: 28px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line-dark);
}
.site-footer.corp-footer .footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.site-footer.corp-footer .footer-brand .footer-logo {
  display: inline-flex;
  align-items: center;
  margin: 0 0 12px;
  line-height: 0;
}
.site-footer.corp-footer .footer-brand .footer-logo-image {
  max-height: 28px;
}
.site-footer.corp-footer .footer-brand .footer-heading {
  margin: 0 0 6px;
  line-height: 1.3;
}
.site-footer.corp-footer .footer-col .footer-heading {
  font-family: var(--f-label);
  font-size: 12.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-dark);
  margin: 0 0 16px;
  font-weight: 700;
}
.site-footer.corp-footer .footer-pillar-label {
  margin: 14px 0 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #E9A79E;
}
.site-footer.corp-footer .footer-pillar-label:first-of-type {
  margin-top: 0;
}
.site-footer.corp-footer .footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.site-footer.corp-footer .footer-col a {
  text-decoration: none;
  color: var(--ink-soft-dark);
  font-size: 14px;
  transition: color 180ms ease, transform 180ms ease;
}
.site-footer.corp-footer .footer-col a:hover {
  color: var(--ink-dark);
  transform: translateX(2px);
}
.site-footer.corp-footer .footer-col a:focus-visible {
  outline: 2px solid #E9A79E;
  outline-offset: 2px;
}
.site-footer.corp-footer .footer-brand-desc {
  font-size: 13.5px;
  color: var(--ink-soft-dark);
  max-width: 34ch;
  margin: 12px 0 0;
  line-height: 1.7;
}
.site-footer.corp-footer .footer-market-line {
  margin: 0 0 10px;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: #C8A84B;
  line-height: 1.45;
}
.site-footer.corp-footer .footer-legal-name {
  color: rgba(194, 203, 211, 0.7);
  font-size: 11.5px;
  margin: 8px 0 0;
}
.site-footer.corp-footer .footer-contact-list {
  list-style: none;
  margin: 16px 0 14px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13.5px;
}
.site-footer.corp-footer .footer-contact-list a {
  color: var(--ink-dark);
}
.site-footer.corp-footer .footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}
.site-footer.corp-footer .fsi-yt {
  background: #FF0000;
  color: #fff;
}
.site-footer.corp-footer .footer-inquiry-btn {
  margin-top: 18px;
  background: rgba(233, 167, 158, 0.14);
  border: 1px solid rgba(233, 167, 158, 0.45);
  color: #E9A79E;
  border-radius: 2px;
}
.site-footer.corp-footer .footer-inquiry-btn:hover {
  background: rgba(233, 167, 158, 0.24);
  color: #fff;
}
.site-footer.corp-footer .footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 24px;
  font-size: 12.5px;
  flex-wrap: wrap;
  gap: 12px;
}
.site-footer.corp-footer .footer-bottom .legal {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.site-footer.corp-footer .footer-bottom a {
  text-decoration: none;
  color: var(--ink-soft-dark);
}
.site-footer.corp-footer .footer-bottom a:hover {
  color: var(--ink-dark);
}
.site-footer.corp-footer .footer-copy { margin: 0; color: var(--ink-soft-dark); }

@media (max-width: 1100px) {
  .site-footer.corp-footer .footer-grid--restore {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 720px) {
  .site-footer.corp-footer .footer-grid--restore {
    grid-template-columns: 1fr;
  }
  .site-footer.corp-footer {
    padding: 56px 0 28px;
  }
}

/* Reveal — production main.js uses .visible */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 580ms cubic-bezier(0.22, 1, 0.36, 1), transform 580ms cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.visible,
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

@media (max-width: 1100px) {
  .primary-nav { display: none; }
  .hamburger { display: inline-flex; }
}

@media (max-width: 720px) {
  :root { --header-h: 76px; }
  .header-inner { height: var(--header-h); }
  .site-footer.corp-footer .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 420px) {
  .site-footer.corp-footer .footer-grid { grid-template-columns: 1fr; }
}

/* AGR Global mobile chrome polish 2026-09-04 */
@media (max-width: 380px) {
  .header-inner { padding: 0 12px; gap: 8px; }
  .site-header .nav-logo-image { height: 30px; }
  .header-cta { gap: 8px; }
  .header-cta .corp-btn--primary { padding: 11px 14px; font-size: 14px; }
  .hamburger { width: 40px; height: 40px; flex: 0 0 40px; }
}
@media (max-width: 360px) {
  #inquiry-os-online-inquiry .ios-fab {
    right: max(10px, env(safe-area-inset-right)) !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
  }
}

/* AGR Global prelaunch mobile header fix 2026-09-05 */
@media (max-width: 720px) {
  .header-cta .corp-btn--primary { display: none; }
  .header-cta { margin-left: auto; flex: 0 0 auto; }
  .hamburger { flex: 0 0 44px; }
}
