/* Standalone shell for the reference DOM, followed by Siztec substitutions. */
:root {
  --tb-bg:#fafafa;
  --tb-text:#252a30;
  --tb-accent:#1b559c;
  --tb-main:#e8edf2;
  --tb-main-light:#f4f5f5;
  --tb-accent-deep:#344b62;
  --tb-content:1180px;
  --tb-edge:max(24px,calc((100vw - var(--swl-scrollbar_width,15px) - 1180px)/2));
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:88px}
body {margin:0;background:var(--tb-bg);color:var(--tb-text);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.9}
p,h1,h2,h3,figure,ul,ol {margin:0;padding:0}
a {color:inherit;text-decoration:none}
button {font:inherit;cursor:pointer}
img {display:block;max-width:100%;height:auto}
.wp-block-group__inner-container {display:contents}
.wp-block-columns {gap:var(--wp-column-gap,0)}
.wp-block-buttons {display:flex;flex-wrap:wrap;gap:16px}
.tb-section .tb-head__en {font-family:Arial,sans-serif;font-style:normal;font-weight:800;letter-spacing:-.02em}
.wp-block-button__link {display:inline-flex;align-items:center;justify-content:center;gap:28px;min-width:240px;min-height:64px;border:1px solid var(--tb-accent);padding:16px 28px;background:var(--tb-accent);color:#fff;font-size:15px;font-weight:700;line-height:1.6;transition:background .2s,color .2s}
.wp-block-button__link::after {content:'▶';font-size:12px;font-weight:400}
.wp-block-button__link:hover {background:#123e76;color:#fff}
.is-style-outline .wp-block-button__link {background:var(--tb-bg);border-color:var(--tb-text);color:var(--tb-text)}
.is-style-outline .wp-block-button__link:hover {background:var(--tb-text);color:#fff}
a:focus-visible,button:focus-visible {outline:3px solid var(--tb-accent);outline-offset:5px}
.skip-link {position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:12px 20px}
.skip-link:focus {top:12px}
/* Reference header: logo left, full-height CTA at the far right. */
.l-header {position:sticky;top:0;z-index:20;background:var(--tb-bg);border-bottom:1px solid var(--tb-line)}
.l-header__inner {display:flex;align-items:center;justify-content:space-between;min-height:86px;padding-left:32px}
.c-headLogo__link {display:flex;align-items:center;gap:12px;font-size:18px;letter-spacing:.04em;font-weight:700;white-space:nowrap}
.c-headLogo__link img {width:60px;height:48px;object-fit:contain}
.c-gnav {display:flex;align-items:stretch;list-style:none}
.c-gnav a {display:flex;align-items:center;justify-content:center;min-height:86px;padding:16px 20px;font-size:14px;font-weight:700;white-space:nowrap}
.c-gnav a:hover {color:var(--tb-accent)}
.c-gnav .tb-nav-cta a {background:var(--tb-accent);color:#fff;padding-inline:32px;gap:28px;transition:background 200ms ease}
.c-gnav .tb-nav-cta a:hover {background:#123e76;color:#fff}
.tb-nav-cta span {font-size:12px;font-weight:400}
.menu-toggle {display:none;width:44px;height:44px;border:0;background:transparent;padding:10px}
.menu-toggle span {display:block;height:1px;background:var(--tb-text);margin:7px 0}
/* HERO retains reference area, copy corner, type scale and button geometry. */
.tb-hero {left:0;width:100%;min-height:100svh}
.tb-hero .tb-hero-photo {object-position:50% 56%}
.tb-hero:after {background:rgba(17,25,34,.36)}
.hero-label {font-size:14px;font-weight:700;letter-spacing:.12em;margin-bottom:22px}
.tb-hero .tb-title {font-feature-settings:'palt';letter-spacing:.015em}
.tb-hero .is-style-outline .wp-block-button__link {background:rgba(255,255,255,.95)}
.tb-hero .is-style-outline .wp-block-button__link:hover {background:var(--tb-text);color:#fff}
/* Original 44em white copy plane, 170px overlap and right-bleeding photograph. */
.tb-philosophy .tb-philosophy-img {height:clamp(380px,36vw,520px);overflow:hidden}
.tb-philosophy .tb-philosophy-img img {height:100%;object-fit:cover;object-position:50% 70%}
/* Original service background strip + 1.6:1 / two-row photo grid. */
.tb-service .tb-service-name {font-size:24px;min-width:74%;letter-spacing:.03em;padding:20px 24px}
.tb-service-name small {display:block;font-size:13px;font-weight:400;line-height:1.8;letter-spacing:0;margin-top:8px}
.tech-number {font:14px/1 Arial,sans-serif;color:var(--tb-accent);margin-right:16px;vertical-align:middle}
.tb-service .tb-service-card:first-child img {object-position:45% center}
.tb-service .tb-service-card:hover img {transform:none}
.tb-service .tb-service-grid {grid-template-rows:repeat(2,minmax(0,1fr))}
.tb-service .tb-inner > .wp-block-group__inner-container > .wp-block-buttons {grid-area:5/1;justify-content:flex-end}
.tb-section .technology-extra {grid-area:4/1;display:grid;grid-template-columns:1fr 1.6fr;gap:0;min-height:220px;background:#fff}
.technology-extra figure {height:220px;overflow:hidden}
.tb-section .technology-extra img {height:100%;object-fit:cover;object-position:50% 45%}
.tb-section .extra-copy {padding:32px 48px;justify-content:center;gap:12px}
.tb-section .extra-copy h3 {font-size:25px}
.extra-copy>p {font-size:14px}
.tb-section .materials {grid-area:6/1;border-top:1px solid var(--tb-line);padding-top:24px;display:flex;flex-flow:row wrap;align-items:baseline;gap:16px 48px}
.materials>span {font-size:13px;color:var(--tb-text-sub)}
.materials>p {font-size:22px;font-weight:700}
.materials>p>span {font-weight:400;color:#a6aeb5;margin:0 16px}
.materials>small {width:100%;font-size:12px;color:var(--tb-text-sub)}
/* Reference-like step/row organization; ordered lists preserve the actual process. */
.tb-process {background:#f0f2f3}
.tb-section .process-intro {display:flex;justify-content:space-between;align-items:flex-start;gap:40px}
.tb-section .process-intro h3 {font-size:32px}
.process-intro p {font-size:15px}
.tb-section .process-row {border-top:1px solid #bdc5cb;padding-top:32px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px}
.process-label>span {font:12px Arial,sans-serif;letter-spacing:.12em;color:var(--tb-accent)}
.tb-section .process-label h3 {font-size:22px;margin-top:10px}
.process-flow {list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.process-flow li {position:relative;border-bottom:1px solid #a9b3bc;padding:0 0 24px}
.process-flow li:not(:last-child):after {content:'→';position:absolute;right:-25px;top:35px;color:#687888}
.process-flow li>span {display:block;color:var(--tb-accent);font:italic 28px/1.3 Arial,sans-serif;margin-bottom:14px}
.process-flow strong {font-size:16px;font-weight:600;line-height:1.8;display:block}
.titanium .process-flow {grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 32px}
.titanium .process-flow li:nth-child(4):after {content:'次の行へ ↙';font-size:10px;right:0;top:auto;bottom:-26px}
.titanium .process-flow li:nth-child(5):before {content:'続き';font-size:10px;position:absolute;top:-22px;color:#687888}
.tb-process .wp-block-buttons {justify-content:flex-end}
/* Equipment reuses the service grid. Photos are now deliberately large. */
.equipment-section .tb-inner {grid-template-rows:0 auto auto;padding-bottom:120px}
.equipment-section .tb-service-name {font-size:19px;min-width:65%}
.equipment-section .tb-service-card:first-child img {object-position:50% 50%}
/* Company: original 1.75:1 media and 64px overlap. */
.tb-company .tb-company-media img {object-position:44% 60%}
.tb-company .tb-company-card {padding:48px 44px}
/* News: original compact heading / date / category / title columns. */
.tb-news .wp-block-post {border-bottom:1px solid var(--tb-line);padding:20px 0}
.tb-news .wp-block-post:first-child {border-top:1px solid var(--tb-line)}
.wp-block-post-terms span {display:inline-block;background:var(--tb-accent);color:white;font-size:11px;line-height:1.6;padding:4px 10px;white-space:nowrap}
.tb-contact {background:var(--tb-main)}
.tb-section.tb-contact .tb-inner {display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px 48px}
.tb-contact .tb-head__tit {max-width:32em;letter-spacing:.05em}
.tb-contact .wp-block-button__link {min-width:320px;min-height:80px;font-size:18px}
.l-footer {padding-inline:var(--tb-edge)}
.l-footer .tb-footer {padding-block:48px 32px}
.l-footer .tb-footer__logo img {filter:none;height:50px;width:62px;background:#fff;padding:4px;object-fit:contain}
.l-footer__foot {padding:16px 0;text-align:center;font-size:11px}
.pagetop {position:fixed;right:24px;bottom:24px;display:grid;place-items:center;width:48px;height:48px;background:var(--tb-accent);color:#fff;z-index:9}
@media(max-width:1279px) {
 .c-headLogo__link {font-size:15px}
 .c-gnav a {padding-inline:12px;font-size:13px}
 .c-gnav .tb-nav-cta a {padding-inline:24px}
 .tb-section .process-row {grid-template-columns:180px minmax(0,1fr);gap:24px}
}
@media(max-width:959px) {
 html {scroll-padding-top:80px}
 .l-header__inner {min-height:70px;padding-inline:20px;flex-wrap:wrap}
 .c-headLogo__link {font-size:14px}
 .c-headLogo__link img {width:50px;height:40px}
 .menu-toggle:not([hidden]) {display:block}
 .enhanced #navigation {display:block;visibility:hidden;opacity:0;transform:translateY(-12px);pointer-events:none;transition:opacity 240ms ease,transform 240ms ease,visibility 0s linear 240ms;position:absolute;top:71px;right:0;width:88%;max-height:calc(100svh - 71px);overflow:auto;background:var(--tb-bg);padding:24px}
 .enhanced #navigation.is-open {visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto;transition-delay:0s}
 .c-gnav {flex-wrap:wrap}
 .enhanced .c-gnav {display:block}
 .c-gnav a {min-height:50px;justify-content:flex-start;border-bottom:1px solid var(--tb-line)}
 .c-gnav .tb-nav-cta a {margin-top:12px;min-height:64px;justify-content:space-between}
 .tb-company .tb-company-card {padding:36px 28px}
 .tb-section .process-intro {display:block}
 .process-intro p {margin-top:20px}
 .tb-section .process-row {grid-template-columns:1fr}
 .tb-news .wp-block-post {grid-template-columns:6.5em auto minmax(0,1fr)}
}
@media(max-width:767px) {
 :root {--tb-edge:20px;--tb-section-pad:64px}
 .tb-hero {min-height:min(600px,calc(100svh - 71px))}
 .tb-hero .tb-hero-photo {object-position:44% center}
 .tb-hero .tb-title {font-size:clamp(27px,7.6vw,40px)}
 .hero-label {font-size:12px;letter-spacing:.06em;margin-bottom:18px}
 .tb-hero .tb-note {font-size:14px}
 .pc-br {display:none}
 .tb-hero .wp-block-button__link {min-height:56px;min-width:240px;font-size:14px}
 .tb-philosophy .tb-philosophy-img {height:270px}
 .tb-philosophy .tb-philosophy-msg {font-size:clamp(22px,5.9vw,28px)}
 .tb-philosophy .tb-philosophy-sub {font-size:14px}
 .tb-section .tb-head__en {font-size:clamp(32px,8.5vw,48px);letter-spacing:-.035em}
 .tb-service .tb-service-grid {grid-template-rows:none}
 .tb-service .tb-service-name {font-size:22px;padding:16px 20px;min-width:85%}
 .tb-service-name small {font-size:12px}
 .tb-section .technology-extra {grid-template-columns:1fr}
 .technology-extra figure {height:180px}
 .tb-section .extra-copy {padding:24px 20px;gap:10px}
 .tb-section .extra-copy h3 {font-size:23px}
 .extra-copy>p {font-size:12px}
 .tb-section .materials {gap:16px}
 .materials>p {font-size:16px}
 .materials>p>span {margin:0 4px}
 .materials>small {font-size:11px}
 .tb-section .process-intro h3 {font-size:24px}
 .process-flow,.titanium .process-flow {grid-template-columns:1fr;gap:24px}
 .process-flow li {display:flex;align-items:center;gap:24px;padding-bottom:18px}
 .process-flow li>span {margin:0;font-size:24px;min-width:32px}
 .process-flow li:not(:last-child):after,.titanium .process-flow li:nth-child(4):after {content:'↓';left:8px;right:auto;top:auto;bottom:-25px;font-size:14px}
 .titanium .process-flow li:nth-child(5):before {display:none}
 .equipment-section .tb-inner {padding-bottom:64px}
 .equipment-section .tb-service-grid {grid-template-columns:1fr 1fr;gap:16px}
 .equipment-section .tb-service-card:first-child {grid-column:1/-1;aspect-ratio:4/3}
 .equipment-section .tb-service-card:not(:first-child) {aspect-ratio:3/4;overflow:visible}
 .equipment-section .tb-service-card:not(:first-child) .wp-block-image {bottom:48px}
 .equipment-section .tb-service-name {font-size:13px;padding:12px 8px;min-width:100%}
 .equipment-section .tb-service-card:first-child .tb-service-name {font-size:18px;min-width:80%;padding:16px}
 .tb-company .tb-company-card .tb-head__en {font-size:40px}
 .tb-news .wp-block-post {grid-template-columns:auto 1fr}
 .tb-news .wp-block-post-terms {justify-self:start}
 .tb-contact .wp-block-button__link {min-width:0;width:100%;font-size:16px;min-height:72px}
 .tb-contact .wp-block-buttons,.tb-contact .wp-block-button {width:100%}
 .l-footer .tb-footer__nav a {font-size:12px}
 .l-footer .tb-footer__nav {gap:16px}
 .pagetop {width:44px;height:44px;right:12px;bottom:12px}
}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Visual QA: keep complete phrases on small screens. */
@media(max-width:767px){
 .tb-hero .tb-note {font-size:13px;line-height:1.95}
 .tb-hero .tb-note>span {display:inline-block}
 #technology .tb-service-name {max-width:100%}
}

@media(max-width:767px){.tb-hero .wp-block-button__link{padding-inline:18px;gap:16px;white-space:nowrap;min-width:240px}}

/* CTA alignment and mobile menu feedback. */
.tb-hero .wp-block-button:first-child .wp-block-button__link {justify-content:flex-start;text-align:left}
.tb-hero .wp-block-button__link::after {margin-left:0}
.menu-toggle span {transition:transform 240ms ease}
.menu-toggle[aria-expanded="true"] span:first-child {transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:last-child {transform:translateY(-4px) rotate(-45deg)}

/* HERO triangles follow the final character directly. */
.tb-hero .wp-block-button__link {gap:8px}
