/* GaTwork editorial refresh — shared across the static and React pages. */
:root {
  --font-jp: 'Noto Sans JP', system-ui, sans-serif;
  --font-en: 'Noto Sans JP', system-ui, sans-serif;
  --font-mono: 'Noto Sans JP', system-ui, sans-serif;
  --bg-0: #f8f7f4;
  --bg-1: #f1f2f0;
  --bg-2: #ffffff;
  --bg-3: #e8ecec;
  --bg-4: #dce3e4;
  --line-1: rgba(24, 47, 65, .08);
  --line-2: rgba(24, 47, 65, .15);
  --line-3: rgba(24, 47, 65, .26);
  --ink-1: #182f41;
  --ink-2: #405262;
  --ink-3: #586976;
  --ink-4: #697984;
  --accent: #244f78;
  --accent-deep: #183c5a;
  --accent-2: #35658b;
  --accent-soft: rgba(36, 79, 120, .08);
  --gold: #9f7850;
  --gold-2: #b99771;
  --coral: #b75b39;
  --coral-2: #9d462c;
  --fs-body: 17px;
  --fs-h1: 58px;
  --fs-h2: 46px;
  --fs-h3: 27px;
  --grad-hero: #f4f3ef;
  --grad-text: none;
  --navy: #182f41;
  --blue: #244f78;
  --blue2: #35658b;
  --ice: #f4f3ef;
  --ink: #182f41;
  --muted: #586976;
  --line: #dce2e4;
  --orange: #b75b39;
  --shadow: none;
}

html { scroll-padding-top: 90px; }
body { background: #f8f7f4; color: #182f41; }
#hero-bg-fixed { display: none !important; }
#pre-hero { background: linear-gradient(90deg, rgba(248,247,244,.96) 0%, rgba(248,247,244,.94) 58%, rgba(248,247,244,.12) 100%), url('../assets/editorial-hero.jpg') 68% center / cover no-repeat !important; }
#pre-hero h1 { max-width: 700px !important; font-size: clamp(36px, 4.6vw, 60px) !important; }
#pre-hero p { max-width: 660px !important; }
body, .page { font-family: var(--font-jp); }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #a15b35; outline-offset: 3px; }

/* React-built corporate pages */
.page { background: var(--bg-0) !important; font-size: 17px; line-height: 1.8; }
.page header { background: rgba(255,255,255,.97) !important; backdrop-filter: none !important; box-shadow: none !important; padding: 11px clamp(20px, 4vw, 64px) !important; }
.page .gt-nav-desktop { gap: 0 !important; }
.page .gt-nav-desktop a { padding: 12px 9px !important; font-size: 13px !important; }
.page .gt-nav-desktop a span[style*="position: absolute"] { display: none; }
.page .gt-nav-cta-desktop { margin-left: 10px !important; }
.page .gt-btn { border-radius: 4px !important; padding: 13px 19px !important; box-shadow: none !important; font-size: 14px !important; font-weight: 700; }
.page .gt-btn:hover { transform: translateY(-1px); }
.page .gt-btn.coral { background: var(--accent) !important; }
.page .gt-btn.coral:hover { background: var(--accent-deep) !important; }
.page .h-display { background: none !important; -webkit-text-fill-color: currentColor !important; color: var(--ink-1) !important; font-family: var(--font-jp) !important; font-weight: 700 !important; letter-spacing: -.045em !important; line-height: 1.2 !important; }
.page h2.h-display { font-size: clamp(30px, 4vw, 50px) !important; }
.page .sec-eyebrow { color: var(--accent) !important; font-family: var(--font-jp) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .05em !important; text-transform: none !important; }
.page .sec-eyebrow::before { background: var(--accent); width: 20px; }
.page .ai-pill { border-color: #d5dedf; background: #fff !important; color: var(--ink-2); font-family: var(--font-jp); font-size: 11px; }
.page .ai-pill .dot { box-shadow: none; animation: none; background: var(--accent); }
.page > section { padding-left: max(24px, calc((100vw - 1160px)/2)) !important; padding-right: max(24px, calc((100vw - 1160px)/2)) !important; }
.page section [style*="box-shadow"] { box-shadow: none !important; }
.page section [style*="radial-gradient"] { background-image: none !important; }
.page footer { background: #192f3e !important; }

/* Home: clear message beside one editorial image. */
.gt-home-hero { background: #f4f3ef !important; min-height: 610px !important; border-bottom: 1px solid #dce2e4; }
.gt-home-hero > svg { display: none; }
.gt-home-hero > div[aria-hidden="true"] { left: 57% !important; right: 0 !important; width: 43% !important; opacity: 1 !important; }
.gt-home-hero > div[aria-hidden="true"] > svg { display: none !important; }
.gt-home-hero > div[aria-hidden="true"] > div[aria-hidden="true"] { background-position: 69% center !important; opacity: 1 !important; filter: none !important; transform: none !important; }
.gt-home-hero::after { content: 'イメージ写真'; position: absolute; right: 20px; bottom: 18px; z-index: 4; padding: 2px 8px; background: rgba(255,255,255,.84); color: var(--ink-3); font-size: 11px; }
.gt-home-hero > div:last-child { max-width: 60% !important; padding: 62px 26px 70px max(24px, calc((100vw - 1160px)/2)) !important; }
.gt-home-hero h1 { font-size: clamp(36px, 4.6vw, 60px) !important; max-width: 720px; line-height: 1.3 !important; }
.gt-home-hero h1 span { -webkit-text-fill-color: var(--accent) !important; }
.gt-home-hero .mono { display: none !important; }
.gt-home-hero [style*="gt-caret"] { display: none !important; }
.gt-home-hero > div:last-child > div:nth-child(3) > div { margin-top: 28px !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; backdrop-filter: none !important; }
.gt-home-hero > div:last-child > div:nth-child(3) > div > div:nth-child(2) { font-size: clamp(18px, 2vw, 24px) !important; font-weight: 700 !important; }
.gt-home-hero > div:last-child > div:nth-child(3) > div > div:nth-child(3) { font-size: 15px !important; line-height: 1.85 !important; }
.gt-home-hero > div:last-child > div:last-child { margin-top: 28px !important; }
.gt-home-hero + section { padding-top: 20px !important; padding-bottom: 20px !important; background: #fff !important; }
.gt-home-hero + section > div { overflow: visible !important; -webkit-mask-image: none !important; }
.gt-home-hero + section > div > div { width: auto !important; display: flex !important; flex-wrap: wrap !important; gap: 8px 18px !important; animation: none !important; }
.gt-home-hero + section > div > div > span { font-size: 12px !important; font-weight: 600 !important; color: var(--ink-3) !important; letter-spacing: 0 !important; }
.gt-home-hero + section > div > div > span:nth-child(n+9) { display: none; }
.gt-home-hero + section > div > div > span span { color: #a5b4be !important; }

/* Shared section heroes: Japanese headline and plain surfaces. */
.page .gt-hero-sec { min-height: 0 !important; padding-top: 66px !important; padding-bottom: 70px !important; background: #f4f3ef !important; border-bottom: 1px solid #dce2e4; }
.page .gt-hero-sec > div[aria-hidden="true"], .page .gt-hero-sec > svg { display: none !important; }
.page .gt-hero-sec > div:last-child { max-width: 1160px !important; }
.page .gt-hero-sec .h-display { font-size: clamp(16px, 1.8vw, 21px) !important; font-weight: 600 !important; letter-spacing: 0 !important; color: #657480 !important; margin: 0 !important; }
.page .gt-hero-sec .h-display span { display: inline !important; -webkit-text-fill-color: inherit !important; color: inherit !important; }
.page .gt-hero-sec .h-display span + span::before { content: ' '; }
.page .gt-hero-sec h1:not(.h-display) { margin: 14px 0 0 !important; max-width: 800px; font-size: clamp(32px, 4.1vw, 52px) !important; line-height: 1.4 !important; letter-spacing: -.035em; color: var(--ink-1); text-wrap: balance; }
body[data-page="service"] .gt-hero-sec h1 { font-size: clamp(32px, 3.4vw, 44px) !important; }
.page .gt-hero-sec h1 + p { margin-top: 18px !important; max-width: 730px !important; font-size: 16px !important; line-height: 1.9 !important; }
body[data-page="service"] .gt-hero-sec { min-height: 475px !important; }
body[data-page="service"] .gt-hero-sec::after { content: ''; position: absolute; top: 54px; right: max(24px, calc((100vw - 1160px)/2)); width: min(35vw, 410px); height: calc(100% - 108px); background: url('../assets/editorial-team.jpg?v=20261017b') center/cover no-repeat; border-radius: 4px; }
body[data-page="service"] .gt-hero-sec::before { content: 'イメージ写真'; position: absolute; right: max(32px, calc((100vw - 1160px)/2 + 8px)); bottom: 62px; z-index: 4; padding: 2px 8px; background: rgba(255,255,255,.84); color: var(--ink-3); font-size: 11px; }
body[data-page="service"] .gt-hero-sec > div:last-child { max-width: 61% !important; }

/* Static pages: product, news and AI-search. */
.site-header { box-shadow: none; border-bottom-color: #dce2e4; }
.header-inner { height: 72px; }
.nav .nav-contact, .btn-orange { background: var(--accent); border-radius: 4px; }
.nav .nav-contact:hover, .btn-orange:hover { background: var(--accent-deep); }
.btn { border-radius: 4px; box-shadow: none !important; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--accent); }
.btn-primary:hover { background: var(--accent-deep); }
.btn-outline { border-color: #a5b4be; color: var(--accent); }
.breadcrumb { padding-block: 18px; }
.hero, .ais-hero { background: #f4f3ef !important; border-bottom-color: #dce2e4; }
.hero::before { display: none; }
.hero-grid { gap: 50px; padding: 58px 0 72px; grid-template-columns: 1.08fr .92fr; }
.hero h1 { font-size: clamp(38px, 4.6vw, 62px); line-height: 1.25; }
.hero h1 em { color: var(--accent); }
.hero .lead { font-size: 20px; line-height: 1.65; }
.hero .sublead { line-height: 1.9; }
.product-photo { margin: 0; }
.product-photo img { display: block; width: 100%; height: 400px; object-fit: cover; object-position: 62% center; border-radius: 4px; }
.product-photo figcaption { margin-top: 10px; color: var(--muted); font-size: 12px; text-align: right; }
.page-jump { background: #fff; border-bottom: 1px solid var(--line); }
.page-jump .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; padding-block: 15px; }
.page-jump a { color: var(--ink); font-weight: 700; font-size: 13px; text-decoration: none; border-bottom: 1px solid transparent; }
.page-jump a:hover { color: var(--accent); border-color: currentColor; }
.section { padding: 72px 0; }
.section.alt { background: #fff; }
.section-head { max-width: 740px; margin-bottom: 32px; }
.section-head p { line-height: 1.85; }
.eyeline, .eyebrow { color: var(--accent); font-family: var(--font-jp); letter-spacing: .06em; text-transform: none; font-weight: 700; }
.card, .flow-step, .cost, .caution > div, .ais-card, .ais-steps article, .ais-figure { background: #fff; border-color: #dce2e4; border-radius: 5px; box-shadow: none; }
.card, .cost { padding: 26px; }
.flow-step:not(:last-child)::after { color: var(--accent); }
.card-icon { font-family: var(--font-jp); font-size: 13px; font-weight: 700; }
.card p, .flow-step p, .cost p, .caution p, .ais-card p, .ais-steps p { line-height: 1.85; }
.notice, .ais-note { background: #eef2f1; border-left-color: var(--accent); border-radius: 0 4px 4px 0; }
.spec th { background: #f0f2f0; }
.usage-notice { border-radius: 5px; border-left-color: var(--accent); }
.download-panel { background: #193c58; border-radius: 5px; }
.download-panel .btn { color: #193c58; }
.ais-hero-inner { padding: 58px 0 70px; }
.ais-hero h1 { font-size: clamp(36px, 4.3vw, 58px); }
.ais-figure { padding: 25px; }
.contact-strip { background: #f4f3ef; }
.site-footer { background: #192f3e; }
.news-main { background: #fff; }
.article { max-width: 760px; }
.article h1 { font-size: clamp(30px, 4vw, 48px); line-height: 1.35; }
.article h2 { font-size: clamp(21px, 2.4vw, 27px); margin-top: 48px; }
.article p, .article li { line-height: 1.95; }

@media (max-width: 1040px) {
  .gt-home-hero > div[aria-hidden="true"] { left: 62% !important; width: 38% !important; }
  .gt-home-hero > div:last-child { max-width: 66% !important; }
  body[data-page="service"] .gt-hero-sec > div:last-child { max-width: 62% !important; }
}
@media (max-width: 800px) {
  #pre-hero { background: #f4f3ef !important; }
  .gt-home-hero { display: flex; flex-direction: column; min-height: 0 !important; }
  .gt-home-hero > div:last-child { order: 1; max-width: none !important; padding: 38px 24px 50px !important; }
  .gt-home-hero > div[aria-hidden="true"] { position: relative !important; order: 2; left: 0 !important; width: 100% !important; height: 280px !important; }
  .page .gt-home-hero h1.h-display { font-size: clamp(28px, 6.5vw, 42px) !important; text-wrap: balance; }
  body[data-page="service"] .gt-hero-sec { min-height: 0 !important; }
  body[data-page="service"] .gt-hero-sec::after { display: none; }
  body[data-page="service"] .gt-hero-sec::before { display: none; }
  body[data-page="service"] .gt-hero-sec > div:last-child { max-width: 100% !important; }
  .hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .product-photo img { height: 320px; }
}
@media (max-width: 720px) {
  :root { --fs-body: 16px; --fs-h1: 40px; --fs-h2: 32px; --fs-h3: 23px; }
  .header-inner { height: auto; min-height: 69px; }
  .page { font-size: 16px; }
  .page > section { padding-left: 20px !important; padding-right: 20px !important; }
  .page .gt-hero-sec { padding-top: 38px !important; padding-bottom: 48px !important; }
  .page .gt-hero-sec h1:not(.h-display) { font-size: clamp(28px, 7vw, 38px) !important; }
  .page .gt-hero-sec .h-display { font-size: 15px !important; }
  .gt-home-hero > div:last-child { padding: 34px 20px 42px !important; }
  .gt-home-hero > div[aria-hidden="true"] { height: 230px !important; }
  .hero-grid { padding: 38px 0 50px; }
  .hero h1 { font-size: clamp(34px, 8vw, 46px); }
  .section { padding: 56px 0; }
  .article { width: min(100% - 36px, 760px); }
  .page-jump .wrap { gap: 8px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
