@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,500;0,600;0,700;1,600&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');

:root { --ink:#171716; --paper:#f2efe8; --orange:#ef592f; --line:#cbc5ba; --muted:#6e6a63; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Noto Sans JP",sans-serif; -webkit-font-smoothing:antialiased; }
body { line-break:strict; }
h1,h2,h3,h4 { word-break:keep-all; overflow-wrap:anywhere; }
@supports (word-break:auto-phrase) { h1,h2,h3,h4 { word-break:auto-phrase; } }
.button,.site-nav a,.header-cta { word-break:keep-all; overflow-wrap:normal; }
a { color:inherit; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.form-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-group-error { margin:14px 0 0!important; color:#a42e22!important; font-size:16px!important; font-weight:700!important; }
[data-form-status].is-ready { background:#3e5970!important; }
[data-form-status].is-sending { background:#78622d!important; }
[data-form-status].is-success { background:#356650!important; }
[data-form-status].is-error { background:#8b342b!important; }
.skip-link { position:fixed; top:-60px; left:12px; z-index:10; padding:10px 16px; background:#fff; }
.skip-link:focus { top:12px; }
.site-header { height:86px; display:flex; align-items:center; gap:48px; padding:0 clamp(24px,5vw,76px); background:var(--paper); border-bottom:1px solid var(--line); }
.wordmark { width:142px; text-decoration:none; font-family:"Barlow Condensed",sans-serif; line-height:.8; letter-spacing:.05em; }
.wordmark span,.wordmark strong { display:block; }
.wordmark span { font-size:16px; }
.wordmark strong { margin-top:7px; font-size:24px; }
.site-nav { display:flex; gap:32px; margin-left:auto; }
.site-nav a { position:relative; font-size:16px; font-weight:600; text-decoration:none; }
.site-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:2px; background:var(--orange); transition:right .25s; }
.site-nav a:hover::after,.site-nav a:focus-visible::after { right:0; }
.header-cta { display:flex; gap:24px; align-items:center; align-self:stretch; padding:0 28px; color:#fff; background:var(--ink); font-size:16px; font-weight:600; text-decoration:none; }
.hero { min-height:720px; position:relative; display:grid; align-items:center; overflow:hidden; padding:90px clamp(24px,7vw,108px); color:#fff; background:#20201f; isolation:isolate; }
.hero-carousel,.hero-slides,.hero-slide,.hero-shade { position:absolute; inset:0; }
.hero-carousel { z-index:0; }
.hero-slide { margin:0; opacity:0; visibility:hidden; transition:opacity 1.1s ease,visibility 1.1s; }
.hero-slide.is-active { opacity:1; visibility:visible; }
.hero-slide img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.82) contrast(1.05); }
.hero-slide figcaption { position:absolute; right:5%; bottom:42px; z-index:3; color:rgba(255,255,255,.8); font:500 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.hero-shade { z-index:2; pointer-events:none; background:linear-gradient(90deg,rgba(12,12,11,.94) 0%,rgba(12,12,11,.82) 31%,rgba(12,12,11,.22) 64%,rgba(12,12,11,.18) 100%),linear-gradient(0deg,rgba(0,0,0,.46),transparent 42%); }
.hero-copy { position:relative; z-index:3; width:min(780px,62vw); padding:36px 48px 40px 0; }
.hero-copy::before { content:""; position:absolute; z-index:-1; top:0; right:0; bottom:0; left:-18vw; background:rgba(20,20,19,.28); border-right:1px solid rgba(255,255,255,.18); backdrop-filter:blur(3px); }
.celtic-lockup { display:inline-flex; flex-direction:column; align-items:flex-start; gap:5px; margin-bottom:20px; text-decoration:none; }
.celtic-lockup img { display:block; width:190px; height:auto; }
.celtic-lockup span { padding-left:3px; color:#c9c6c0; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.15em; }
.kicker { display:flex; align-items:center; gap:10px; margin:0 0 24px; font-family:"Barlow Condensed",sans-serif; font-size:16px; font-weight:600; letter-spacing:.14em; }
.kicker span { width:26px; height:2px; background:var(--orange); }
.hero h1,.section h2,.about h2,.contact-band h2 { margin:0; font-family:"Barlow Condensed","Noto Sans JP",sans-serif; font-weight:600; letter-spacing:-.025em; line-height:1.05; }
.hero h1 { font-size:clamp(54px,5.4vw,86px); }
.hero h1 em { color:var(--orange); font-style:italic; }
.hero-line { display:inline-block; white-space:nowrap; }
.hero-lead { max-width:640px; margin:30px 0 0; color:#eeeae3; font-size:16px; line-height:1.9; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:38px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:42px; min-width:250px; padding:17px 20px; border:1px solid transparent; font-size:16px; font-weight:600; text-decoration:none; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:#fff; background:var(--orange); }
.text-link { font-size:16px; text-underline-offset:6px; }
.hero-caption { position:absolute; right:5%; top:52px; z-index:3; margin:0; color:#aaa69e; font:500 16px/1.6 "Barlow Condensed",sans-serif; letter-spacing:.12em; text-align:right; }
.hero-controls { position:absolute; left:clamp(24px,7vw,108px); bottom:34px; z-index:5; display:flex; align-items:center; gap:12px; }
.hero-arrow,.hero-pause,.hero-dots button { appearance:none; border:0; color:#fff; background:transparent; cursor:pointer; }
.hero-arrow { width:36px; height:36px; border:1px solid rgba(255,255,255,.45); font-size:16px; }
.hero-dots { display:flex; gap:8px; align-items:center; padding:0 3px; }
.hero-dots button { width:22px; height:2px; padding:0; background:rgba(255,255,255,.38); transition:width .25s,background .25s; }
.hero-dots button.is-active { width:42px; background:var(--orange); }
.hero-pause { margin-left:5px; padding:8px 0; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.trust-strip { display:grid; grid-template-columns:repeat(3,1fr); max-width:1120px; margin:-1px auto 0; border:1px solid var(--line); border-top:0; }
.trust-strip p { display:grid; grid-template-columns:auto 1fr; margin:0; padding:26px 32px; color:var(--muted); font-size:16px; line-height:1.7; }
.trust-strip p+p { border-left:1px solid var(--line); }
.trust-strip strong { grid-row:1/3; margin-right:20px; color:var(--orange); font:600 26px "Barlow Condensed",sans-serif; }
.trust-strip span { color:var(--ink); font-size:16px; font-weight:700; }
.section { max-width:1200px; margin:auto; padding:130px 40px; }
.kicker-dark { color:var(--muted); }
.section h2,.about h2 { font-size:clamp(46px,5vw,72px); }
.services { display:grid; grid-template-columns:minmax(300px,.75fr) minmax(500px,1.25fr); gap:90px; }
.section-heading>p:last-child { max-width:430px; margin:30px 0 0; color:#514e49; font-size:16px; line-height:1.9; }
.service-list { border-top:1px solid var(--line); }
.service-card { display:grid; grid-template-columns:36px 86px 1fr; gap:18px; position:relative; min-height:210px; padding:36px 0; border-bottom:1px solid var(--line); }
.card-number,.card-label { margin:0; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.card-number { color:var(--orange); }
.service-icon { display:grid; place-items:center; width:64px; height:64px; color:#fff; background:var(--orange); border-radius:50%; font:600 16px "Barlow Condensed",sans-serif; box-shadow:inset 0 0 0 7px rgba(255,255,255,.22); }
.service-icon-brake,.service-icon-parts { color:var(--ink); background:#d5d0c6; }
.service-card h3 { margin:9px 0 12px; font-size:22px; }
.service-card div p:last-child { margin:0; color:#514e49; font-size:16px; line-height:1.8; }
.service-card>a { grid-column:3; justify-self:end; margin-top:2px; font-size:16px; font-weight:600; text-underline-offset:5px; }
.service-card>a span { margin-left:7px; color:var(--orange); }
.project-feature { display:grid; grid-template-columns:minmax(220px,.55fr) minmax(420px,1fr); gap:40px 90px; position:relative; overflow:hidden; padding:86px max(40px,calc((100vw - 1120px)/2)); color:#fff; background:#171716; }
.project-feature::after { content:"H4"; position:absolute; right:-24px; bottom:-92px; color:rgba(255,255,255,.035); font:700 330px/1 "Barlow Condensed",sans-serif; pointer-events:none; }
.project-feature .kicker { color:#aaa69f; }
.project-feature-logo { display:block; width:min(190px,100%); margin-top:34px; background:#fff; border:1px solid #4f4c47; }
.project-feature-logo img { display:block; width:100%; height:auto; }
.project-feature-status { margin:20px 0 0; color:var(--orange); font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.project-feature-copy { position:relative; z-index:1; max-width:650px; }
.project-feature-name { margin:0 0 17px; color:var(--orange); font:600 16px "Barlow Condensed","Noto Sans JP",sans-serif; letter-spacing:.12em; }
.project-feature h2 { margin:0; font:600 clamp(42px,4.5vw,66px)/1.1 "Barlow Condensed","Noto Sans JP",sans-serif; letter-spacing:-.035em; }
.project-feature-copy>p:not(.project-feature-name) { margin:28px 0 30px; color:#d4d0c9; font-size:16px; line-height:1.9; }
.project-feature-copy>a { font-size:16px; font-weight:700; text-underline-offset:6px; }
.project-feature-copy>a span { margin-left:8px; color:var(--orange); }
.project-feature-tags { grid-column:2; display:flex; flex-wrap:wrap; gap:8px; position:relative; z-index:1; }
.project-feature-tags span { padding:8px 12px; border:1px solid #4f4c47; color:#aaa69f; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.08em; }
.store { border-top:1px solid var(--line); }
.store-heading { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:80px; }
.store-heading>p { max-width:500px; margin:0 0 8px; color:#514e49; font-size:16px; line-height:1.9; }
.product-preview { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:54px 0 26px; }
.product-card { display:flex; flex-direction:column; min-width:0; color:var(--ink); background:#e7e3dc; text-decoration:none; transition:transform .25s ease,box-shadow .25s ease; }
.product-card:hover { transform:translateY(-4px); box-shadow:0 14px 34px rgba(30,29,27,.13); }
.product-card:focus-visible { outline:3px solid var(--orange); outline-offset:3px; }
.product-visual { position:relative; display:block; aspect-ratio:1.5; overflow:hidden; background:#cbc7c0; }
.product-visual img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.product-card:hover .product-visual img { transform:scale(1.025); }
.product-card-copy { display:flex; flex:1; flex-direction:column; padding:24px 22px 22px; }
.product-card-category { margin-bottom:13px; color:#706b64; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.product-card-copy strong { font-size:17px; line-height:1.65; overflow-wrap:anywhere; }
.product-card-meta { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-top:auto; padding-top:26px; border-top:1px solid #cbc5bb; font-size:16px; }
.product-card-meta>span:first-child { font:600 24px "Barlow Condensed","Noto Sans JP",sans-serif; }
.product-card-meta>span:last-child { color:#5e5a54; font-size:16px; font-weight:700; white-space:nowrap; }
.button-dark { color:#fff; background:var(--ink); }
.about { display:grid; grid-template-columns:1fr 1fr; gap:100px; padding:120px max(40px,calc((100vw - 1120px)/2)); color:#fff; background:#252422; }
.about-copy { padding-top:47px; }
.about-copy>p { max-width:560px; margin:0 0 22px; color:#e0dcd5; font-size:16px; line-height:1.9; }
.about-copy .company { margin-top:42px; color:var(--orange); font-size:16px; font-weight:700; letter-spacing:.08em; }
.contact-band { padding:100px 40px; text-align:center; background:var(--orange); }
.contact-band .kicker { justify-content:center; }
.contact-band .kicker span { background:var(--ink); }
.contact-band h2 { font-size:clamp(46px,6vw,82px); }
.contact-band-lead { margin:24px auto 0; font-size:16px; line-height:1.8; }
.contact-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); max-width:1180px; margin:42px auto 0; border-top:1px solid rgba(23,23,22,.35); border-left:1px solid rgba(23,23,22,.35); text-align:left; }
.contact-options a { position:relative; display:flex; min-width:0; min-height:150px; flex-direction:column; padding:24px; border-right:1px solid rgba(23,23,22,.35); border-bottom:1px solid rgba(23,23,22,.35); text-decoration:none; transition:color .2s ease,background .2s ease; }
.contact-options a:hover { color:var(--paper); background:var(--ink); }
.contact-options strong { padding-right:26px; font-size:16px; line-height:1.5; }
.contact-options span { margin-top:10px; font-size:16px; line-height:1.6; }
.contact-options b { position:absolute; top:22px; right:22px; font-size:18px; }
.button-light { margin-top:35px; background:var(--paper); }
.site-footer { display:grid; grid-template-columns:1fr auto auto; align-items:end; gap:44px; padding:48px max(24px,5vw); color:#aaa69f; background:#171716; font:500 16px "Barlow Condensed",sans-serif; letter-spacing:.1em; }
.wordmark-footer { color:#fff; }
.site-footer p { margin:0; }
.language-switcher { position:fixed; right:18px; bottom:18px; z-index:100; display:flex; align-items:center; gap:5px; padding:6px; border:1px solid rgba(23,23,22,.18); border-radius:99px; background:rgba(242,239,232,.92); box-shadow:0 8px 25px rgba(23,23,22,.15); backdrop-filter:blur(10px); }
.language-switcher a { display:grid; min-width:38px; height:34px; padding:0 9px; border-radius:99px; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.05em; text-decoration:none; place-items:center; }
.language-switcher a.is-current { color:#fff; background:var(--orange); }
.language-switcher a:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }

@media (max-width:820px) {
  .site-header { height:70px; padding:0 20px; }
  .site-nav { display:none; }
  .header-cta { margin-left:auto; padding:0 16px; }
  .hero { min-height:720px; align-items:end; padding:84px 24px 142px; }
  .hero h1 { font-size:clamp(34px,10vw,52px); }
  .hero-slide img { object-position:60% center; }
  .hero-shade { background:linear-gradient(0deg,rgba(10,10,9,.96) 0%,rgba(10,10,9,.8) 43%,rgba(10,10,9,.15) 78%); }
  .hero-copy { width:100%; padding:34px 0 0; }
  .hero-copy::before { display:none; }
  .celtic-lockup { margin-bottom:16px; }
  .celtic-lockup img { width:155px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-controls { left:24px; bottom:36px; }
  .hero-slide figcaption { display:none; }
  .hero-caption { top:28px; right:24px; }
  .trust-strip { grid-template-columns:1fr; margin:0; border-left:0; border-right:0; }
  .trust-strip p+p { border-left:0; border-top:1px solid var(--line); }
  .section { padding:88px 24px; }
  .services { grid-template-columns:1fr; gap:60px; }
  .project-feature { grid-template-columns:1fr; gap:36px; padding:78px 24px; }
  .project-feature-logo { width:150px; margin-top:26px; }
  .project-feature-status { margin-top:16px; }
  .project-feature-tags { grid-column:1; }
  .service-card { grid-template-columns:30px 70px 1fr; }
  .service-card>a { position:static; grid-column:3; }
  .store-heading,.about { grid-template-columns:1fr; gap:50px; }
  .product-preview { grid-template-columns:1fr; }
  .about { padding:88px 24px; }
  .about-copy { padding:0; }
  .contact-band { padding:82px 24px; }
  .contact-options { grid-template-columns:1fr 1fr; }
  .contact-options a { min-height:132px; }
  .site-footer { grid-template-columns:1fr; align-items:start; }
  .language-switcher { right:12px; bottom:12px; }
}

@media (max-width:480px) {
  .header-cta { font-size:0; gap:0; }.header-cta span { font-size:16px; }
  .wordmark { width:125px; }.wordmark strong { font-size:21px; }
  .hero-lead { font-size:16px; }
  .service-card { grid-template-columns:28px 1fr; }.service-icon { display:none; }.service-card>a { grid-column:2; }
  .contact-options { grid-template-columns:1fr; }
  .contact-options a { min-height:0; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
