@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@900&display=swap");

/* =========================================================
   SimGoya HP v0.2 - style.css
   - 黒基調 + オレンジアクセント
   - 画像差し替えは assets/js/site-data.js の images を優先
   - 主要文言差し替えは assets/js/site-data.js の text/list/pricing/gallery を優先
   ========================================================= */

:root{
  --bg0:#070a0d;
  --bg1:#0b1118;

  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.68);
  --line:rgba(255,255,255,.10);

  --accent:#F39800;
  --accent2:rgba(243,152,0,.65);
  --accent-hover:#FFB21F;

  --radius:18px;
  --radius2:22px;

  --shadow: 0 18px 50px rgba(0,0,0,.55);
  --shadow2: 0 10px 26px rgba(0,0,0,.40);

  --max:1200px;
  --header-h:96px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  color:var(--text);
  font-family: system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  background:
    radial-gradient(1100px 520px at 70% -10%, rgba(80,170,255,.10), transparent 60%),
    radial-gradient(900px 520px at 20% -10%, rgba(255,255,255,.06), transparent 60%),
    linear-gradient(180deg, var(--bg0) 0%, var(--bg1) 100%);
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }

.container{
  width:min(var(--max), calc(100% - 48px));
  margin:0 auto;
}

/* ---------- Header ---------- */
.header{
  position: sticky;
  top: 0;
  z-index: 20;
  height: var(--header-h);
  backdrop-filter: blur(14px);
  background: linear-gradient(180deg, rgba(10,14,18,.90), rgba(8,12,16,.72));
  border-bottom: 1px solid rgba(255,255,255,.07);
}

.header-inner{
  height:100%;
  display:flex;
  align-items:center;
  gap:18px;
}

.brand{
  display:flex;
  align-items:center;
  padding-left:20px;
  min-width:220px;
}

.brand img{
  height:56px;
  width:auto;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.6));
  transition:height .32s ease, max-height .32s ease, transform .32s ease, opacity .24s ease, filter .32s ease;
  will-change:height, max-height, transform;
}

.nav{
  flex:1;
  display:flex;
  align-items:center;
  gap:14px;
  justify-content:center;
}

.nav a{
  display:inline-flex;
  align-items:center;
  padding:10px 12px;
  border-radius:999px;
  color:rgba(255,255,255,.82);
  font-size:14px;
  letter-spacing:.02em;
  border:1px solid transparent;
  transition:.18s ease;
}

.nav a:hover{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.10);
  color:rgba(255,255,255,.95);
}

.nav a.active,
.nav a.is-active{
  background:rgba(243,152,0,.12);
  border-color:rgba(243,152,0,.38);
  color:rgba(255,255,255,.95);
}

.header-ctas{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:flex-end;
  padding-right:18px;
  min-width:320px;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.90);
  font-size:14px;
  letter-spacing:.02em;
  transition:.18s ease;
  box-shadow: 0 10px 24px rgba(0,0,0,.26);
}

.btn:hover{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.18);
  transform:translateY(-1px);
}

.btn.primary{
  border-color:rgba(243,152,0,.55);
  background: linear-gradient(180deg, rgba(243,152,0,.22), rgba(243,152,0,.10));
  box-shadow: 0 16px 34px rgba(243,152,0,.10), 0 10px 24px rgba(0,0,0,.30);
}

.btn.primary:hover{
  border-color:rgba(243,152,0,.70);
  background: linear-gradient(180deg, rgba(243,152,0,.28), rgba(243,152,0,.12));
}

.inline-actions{
  margin-top:14px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height: calc(100vh - var(--header-h));
  display:grid;
  place-items:center;
  overflow:hidden;
}

.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.45), rgba(0,0,0,.20)),
    linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.55)),
    var(--hero-bg, url("../img/hero.jpg")) center/cover no-repeat;
  filter: brightness(1.10) contrast(1.05) saturate(1.05);
  transform: scale(1.02);
}

.hero::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(900px 420px at 50% 45%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(1000px 520px at 30% 10%, rgba(255,255,255,.06), transparent 60%);
  pointer-events:none;
}

.hero-inner{
  position:relative;
  width:min(1100px, calc(100% - 48px));
  text-align:center;
  padding:40px 0 70px;
}

.hero-title{
  margin:0 0 16px;
  font-size: clamp(44px, 6.2vw, 86px);
  letter-spacing:.02em;
  line-height:1.05;
  text-shadow: 0 18px 50px rgba(0,0,0,.65);
}

.hero-sub{
  margin:0 auto 22px;
  max-width:880px;
  color:rgba(255,255,255,.84);
  font-size:15px;
  line-height:1.8;
  text-shadow: 0 14px 38px rgba(0,0,0,.55);
}

.hero-actions{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:16px;
}

/* ---------- Common text helpers ---------- */
.section{
  padding:86px 0;
  border-top: 1px solid rgba(255,255,255,.06);
}

.h2{
  margin:0 0 14px;
  font-size:28px;
  letter-spacing:.02em;
}

.p{
  margin:0;
  color:var(--muted);
  line-height:1.9;
}

.small-note{
  margin-top:14px;
  color: rgba(255,255,255,.72);
  font-size:14px;
  line-height:1.9;
}

/* ---------- Layout utilities ---------- */
.grid-two,
.grid-three{
  display:grid;
  gap:18px;
}

.grid-two{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-three{ grid-template-columns: repeat(3, minmax(0, 1fr)); }

.card-list{
  margin: 10px 0 0;
  padding-left: 18px;
  line-height:1.9;
  color: rgba(255,255,255,.80);
}

.card-image{
  margin-top:12px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
}

.card-image img{
  width:100%;
  aspect-ratio: 16 / 10;
  object-fit:cover;
}

/* ---------- About ---------- */
.about-grid{
  display:grid;
  grid-template-columns: 1.05fr 1fr;
  gap:28px;
  align-items:start;
}

.about-photo{
  border-radius: var(--radius2);
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
  box-shadow: var(--shadow);
}

.about-photo img{
  width:100%;
  height:auto;
  display:block;
}

.about-bullets{
  margin: 18px 0 0;
  padding: 0;
  list-style:none;
  display:grid;
  gap:10px;
}

.about-bullets li{
  padding:12px 14px;
  border-radius:14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  line-height:1.7;
  color: rgba(255,255,255,.86);
}

/* ---------- Site Menu (cards) ---------- */
.site-menu{
  margin-top:18px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:18px;
}

.menu-card{
  position:relative;
  border-radius: var(--radius2);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  box-shadow: var(--shadow2);
  padding: 20px 18px;
  min-height: 142px;
  overflow:hidden;
  transition:.18s ease;
}

.menu-card::before{
  content:"";
  position:absolute; inset:0;
  background: var(--card-bg, var(--hover-image, none));
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.03);
  transition: .22s ease;
}

.menu-card::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.68));
  opacity: 0;
  transition: .22s ease;
}

.menu-card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.14);
}

.menu-card:hover::before{ opacity: .80; }
.menu-card:hover::after{ opacity: 1; }

.mc-title{
  position:relative;
  margin:0 0 10px;
  font-size:20px;
  letter-spacing:.02em;
  color: rgba(255,255,255,.92);
}

.mc-desc{
  position:relative;
  margin:0;
  color: rgba(255,255,255,.74);
  line-height:1.8;
  font-size:14px;
}

/* ---------- Topics / Price ---------- */
.topics-head{
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap:18px;
  margin-bottom:14px;
}

.topics-note{
  color: rgba(255,255,255,.60);
  font-size:13px;
}

.topics,
.price-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.topics-item{
  display:flex;
  gap:14px;
  align-items:center;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
}

.topics-date{
  font-variant-numeric: tabular-nums;
  color: rgba(255,255,255,.62);
  width:140px;
  flex: 0 0 auto;
  font-size:13px;
}

.topics-title{
  flex:1;
  color: rgba(255,255,255,.88);
  line-height:1.6;
}

.topics-link{
  color: rgba(255,255,255,.90);
  text-decoration:none;
  border-bottom: 1px solid rgba(255,255,255,.22);
  padding-bottom:1px;
}

.topics-link:hover{ border-bottom-color: rgba(243,152,0,.70); }

/* ---------- Footer ---------- */
footer{
  padding:34px 0 46px;
  border-top: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.55);
  font-size:13px;
}

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  :root{ --header-h: 88px; }

  .brand{ min-width:150px; padding-left:18px; }
  .brand img{ height:52px; }

  .header-ctas{ min-width:220px; padding-right:12px; }

  .nav{ justify-content:center; gap:8px; }
  .nav a{ padding:8px 10px; font-size:13px; }

  .about-grid,
  .grid-two,
  .grid-three{ grid-template-columns: 1fr; }

  .site-menu{ grid-template-columns: 1fr; }
}

@media (max-width: 640px){
  .container{ width:min(var(--max), calc(100% - 28px)); }
  .header{ height:auto; min-height: var(--header-h); }
  .header-inner{ gap:10px; flex-wrap:wrap; padding:10px 0; }
  .header-ctas{ display:none; }
  .brand{ min-width:auto; padding-left:0; }
  .nav{ order:3; width:100%; overflow:auto; justify-content:flex-start; padding-bottom:4px; }
  .nav a{ white-space:nowrap; }

  .hero{ min-height: 70vh; }
  .hero-inner{ padding:32px 0 56px; }
  .hero-title{ font-size: clamp(38px, 12vw, 58px); }
  .hero-sub{ font-size:14px; }

  .section{ padding:62px 0; }
  .topics-head{ flex-direction:column; align-items:flex-start; gap:6px; }
  .topics-item{ flex-direction:column; align-items:flex-start; }
  .topics-date{ width:auto; }
}

/* =========================================================
   SimGoya HP v0.3 - HOME service redesign
   - 3サービス優先順位：筐体制作 → 施設利用 → 出張イベント
   - 東京オデッセイ風の横流れカード
   - → アイコンはホバー/フォーカス時に黄色化して右へスライド
   ========================================================= */

.hero-v03 .hero-inner{
  text-align:left;
  max-width:1120px;
}

.hero-kicker,
.section-kicker{
  margin:0 0 12px;
  color:rgba(255,177,35,.86);
  font-weight:800;
  letter-spacing:.14em;
  font-size:12px;
  text-transform:uppercase;
}

.hero-v03 .hero-title{
  max-width:900px;
}

.hero-v03 .hero-sub{
  margin-left:0;
  max-width:760px;
}

.hero-v03 .hero-actions{
  justify-content:flex-start;
}

.section-head{
  margin-bottom:24px;
}

.split-head{
  display:grid;
  grid-template-columns: minmax(0, .86fr) minmax(280px, .6fr);
  gap:24px;
  align-items:end;
}

.section-lead{
  margin:0;
  color:var(--muted);
  line-height:1.9;
  font-size:14px;
}

.service-flow-section{
  padding-top:72px;
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,0));
}

.service-flow{
  display:flex;
  gap:18px;
  overflow-x:auto;
  padding:4px 2px 18px;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
}

.feature-slide{
  position:relative;
  display:block;
  flex:0 0 min(760px, 78vw);
  min-height:360px;
  border-radius:28px;
  overflow:hidden;
  scroll-snap-align:start;
  border:1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(90deg, rgba(0,0,0,.22), rgba(0,0,0,.32)),
    var(--card-bg, none) center/cover no-repeat;
  box-shadow:0 22px 70px rgba(0,0,0,.55);
  transform:translateZ(0);
  transition:transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}

.feature-slide::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.20), rgba(0,0,0,.42));
  z-index:0;
}

.feature-slide::after{
  content:"";
  position:absolute;
  top:0;
  right:-10%;
  width:58%;
  height:100%;
  background:
    linear-gradient(180deg, rgba(5,9,13,.96), rgba(8,10,16,.90)),
    radial-gradient(360px 300px at 0% 50%, rgba(255,177,35,.16), transparent 65%);
  clip-path:polygon(14% 0, 100% 0, 100% 100%, 0 100%);
  z-index:1;
  transition:width .24s ease, background .24s ease;
}

.feature-slide:hover,
.feature-slide:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(255,177,35,.42);
  box-shadow:0 28px 80px rgba(0,0,0,.62), 0 0 0 1px rgba(255,177,35,.10) inset;
  outline:none;
}

.feature-slide:hover::after,
.feature-slide:focus-visible::after{
  width:62%;
}

.feature-index{
  position:absolute;
  left:22px;
  top:20px;
  z-index:2;
  color:rgba(255,255,255,.72);
  font-size:13px;
  font-weight:800;
  letter-spacing:.18em;
}

.feature-outline{
  position:absolute;
  z-index:2;
  right:68px;
  top:54px;
  max-width:390px;
  color:transparent;
  -webkit-text-stroke:1px rgba(60,184,255,.72);
  text-stroke:1px rgba(60,184,255,.72);
  font-size:clamp(46px, 6vw, 88px);
  line-height:.92;
  font-weight:900;
  letter-spacing:-.04em;
  opacity:.82;
  pointer-events:none;
}

.feature-body{
  position:absolute;
  z-index:3;
  right:68px;
  bottom:54px;
  width:min(390px, 48%);
  display:grid;
  gap:14px;
}

.feature-label{
  color:rgba(255,255,255,.96);
  font-size:clamp(22px, 2.2vw, 32px);
  line-height:1.3;
  font-weight:900;
  letter-spacing:.03em;
  text-shadow:0 12px 32px rgba(0,0,0,.50);
}

.feature-copy{
  color:rgba(255,255,255,.76);
  line-height:1.75;
  font-size:15px;
  text-shadow:0 12px 32px rgba(0,0,0,.50);
}

.link-arrow{
  position:absolute;
  z-index:4;
  right:28px;
  bottom:58px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#101418;
  font-size:26px;
  font-weight:900;
  line-height:1;
  transition:transform .22s ease, background .22s ease, color .22s ease, box-shadow .22s ease;
  box-shadow:0 12px 28px rgba(0,0,0,.30);
}

.feature-slide:hover .link-arrow,
.feature-slide:focus-visible .link-arrow,
.text-link-arrow:hover span,
.text-link-arrow:focus-visible span{
  transform:translateX(10px);
  background:var(--accent-hover);
  color:#111;
  box-shadow:0 12px 30px rgba(255,178,31,.22), 0 10px 26px rgba(0,0,0,.35);
}

.feature-section{
  position:relative;
}

.feature-grid{
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(0, 1fr);
  gap:42px;
  align-items:center;
}

.feature-grid.reverse{
  grid-template-columns:minmax(0, 1fr) minmax(0, .9fr);
}

.feature-visual{
  min-height:430px;
  border-radius:30px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.30)),
    var(--card-bg, none) center/cover no-repeat;
  box-shadow:var(--shadow);
}

.feature-content .large{
  font-size:clamp(30px, 4.1vw, 54px);
  line-height:1.16;
  margin-bottom:18px;
}

.point-list{
  margin:24px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:12px;
}

.point-list li{
  position:relative;
  padding:14px 16px 14px 42px;
  border-radius:16px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.84);
  line-height:1.7;
}

.point-list li::before{
  content:"";
  position:absolute;
  left:16px;
  top:22px;
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--accent-hover);
  box-shadow:0 0 0 5px rgba(255,178,31,.12);
}

.software-note,
.mini-card,
.company-card{
  margin-top:22px;
  padding:20px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  box-shadow:var(--shadow2);
}

.software-note h3,
.mini-card h3{
  margin:0 0 8px;
  font-size:18px;
}

.software-note p,
.mini-card p{
  margin:0;
  color:rgba(255,255,255,.76);
  line-height:1.8;
}

.mini-card-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:22px;
}

.text-link-arrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.92);
  font-weight:800;
  letter-spacing:.02em;
}

.text-link-arrow span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.92);
  transition:transform .22s ease, background .22s ease, color .22s ease, box-shadow .22s ease;
}

.company-grid{
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(300px, .8fr);
  gap:28px;
  align-items:start;
}

.company-card{
  margin-top:0;
}

.company-card dl{
  margin:0;
  display:grid;
  gap:14px;
}

.company-card div{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:14px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.company-card div:last-child{
  padding-bottom:0;
  border-bottom:0;
}

.company-card dt{
  color:rgba(255,177,35,.88);
  font-weight:800;
}

.company-card dd{
  margin:0;
  color:rgba(255,255,255,.82);
  line-height:1.75;
}

@media (max-width: 980px){
  .split-head,
  .feature-grid,
  .feature-grid.reverse,
  .company-grid{
    grid-template-columns:1fr;
  }

  .feature-slide{
    flex-basis:min(640px, 88vw);
    min-height:340px;
  }

  .feature-slide::after{
    width:72%;
  }

  .feature-outline,
  .feature-body{
    right:52px;
  }

  .feature-body{
    width:min(360px, 54%);
  }

  .feature-visual{
    min-height:320px;
  }
}

@media (max-width: 640px){
  .hero-v03 .hero-inner{
    text-align:left;
  }

  .hero-v03 .hero-actions{
    justify-content:flex-start;
  }

  .service-flow{
    margin-left:-14px;
    margin-right:-14px;
    padding-left:14px;
    padding-right:14px;
  }

  .feature-slide{
    flex-basis:88vw;
    min-height:420px;
  }

  .feature-slide::after{
    top:auto;
    right:0;
    bottom:0;
    width:100%;
    height:58%;
    clip-path:polygon(0 10%, 100% 0, 100% 100%, 0 100%);
  }

  .feature-slide:hover::after,
  .feature-slide:focus-visible::after{
    width:100%;
  }

  .feature-outline{
    left:18px;
    right:18px;
    top:72px;
    font-size:54px;
  }

  .feature-body{
    left:18px;
    right:78px;
    bottom:28px;
    width:auto;
  }

  .link-arrow{
    right:20px;
    bottom:32px;
    width:44px;
    height:44px;
  }

  .mini-card-grid{
    grid-template-columns:1fr;
  }

  .company-card div{
    grid-template-columns:1fr;
    gap:6px;
  }
}


/* =========================================================
   SimGoya HP v0.4 - HERO overlay slider
   - 大型ヒーロー上に3サービスカードを重ねる
   - 横スライド可能、PCではオーバーレイ / SPでは下側に自然配置
   ========================================================= */

.hero-v04{
  min-height: calc(100vh - var(--header-h));
}

.hero-v04 .hero-inner.hero-stage{
  min-height: calc(100vh - var(--header-h));
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:34px;
  padding:44px 0 24px;
}

.hero-copy-block{
  padding-top:36px;
  max-width:900px;
}

.hero-service-overlay{
  position:relative;
  z-index:2;
  margin-top:auto;
  padding:24px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(7,11,16,.60), rgba(7,11,16,.82));
  backdrop-filter: blur(10px);
  box-shadow:0 24px 64px rgba(0,0,0,.36);
}

.hero-service-head{
  display:grid;
  grid-template-columns:minmax(0, .72fr) minmax(280px, .72fr);
  gap:22px;
  align-items:end;
  margin-bottom:18px;
}

.hero-service-title{
  margin:0;
  font-size:28px;
  letter-spacing:.02em;
}

.hero-service-lead{
  margin:0;
  color:rgba(255,255,255,.74);
  line-height:1.8;
  font-size:14px;
}

.hero-service-flow{
  gap:16px;
  padding:2px 2px 4px;
}

.hero-service-flow .feature-slide{
  flex:0 0 min(420px, 38vw);
  min-height:250px;
  border-radius:24px;
}

.hero-service-flow .feature-slide::before{
  background:linear-gradient(90deg, rgba(0,0,0,.24), rgba(0,0,0,.46));
}

.hero-service-flow .feature-slide::after{
  right:0;
  width:72%;
  background:
    linear-gradient(180deg, rgba(5,9,13,.96), rgba(9,13,18,.92)),
    radial-gradient(300px 240px at 0% 50%, rgba(255,177,35,.12), transparent 68%);
  clip-path:polygon(18% 0, 100% 0, 100% 100%, 0 100%);
}

.hero-service-flow .feature-outline{
  right:56px;
  top:28px;
  max-width:240px;
  font-size:clamp(42px, 4vw, 64px);
}

.hero-service-flow .feature-body{
  right:56px;
  bottom:28px;
  width:min(260px, 58%);
  gap:10px;
}

.hero-service-flow .feature-label{
  font-size:clamp(22px, 1.8vw, 28px);
}

.hero-service-flow .feature-copy{
  font-size:14px;
  line-height:1.7;
}

.hero-service-flow .link-arrow{
  right:20px;
  bottom:26px;
  width:46px;
  height:46px;
}

@media (max-width: 1100px){
  .hero-v04 .hero-inner.hero-stage{
    padding-bottom:20px;
  }

  .hero-service-head{
    grid-template-columns:1fr;
    align-items:start;
  }

  .hero-service-flow .feature-slide{
    flex-basis:min(390px, 62vw);
  }
}

@media (max-width: 820px){
  .hero-v04{
    min-height:auto;
  }

  .hero-v04 .hero-inner.hero-stage{
    min-height:auto;
    padding:34px 0 18px;
    gap:22px;
  }

  .hero-copy-block{
    padding-top:10px;
  }

  .hero-service-overlay{
    padding:18px;
    border-radius:22px;
  }

  .hero-service-flow .feature-slide{
    flex-basis:74vw;
    min-height:230px;
  }
}

@media (max-width: 640px){
  .hero-v04 .hero-inner.hero-stage{
    padding:24px 0 12px;
  }

  .hero-copy-block{
    padding-top:0;
  }

  .hero-service-overlay{
    padding:16px 14px 14px;
    border-radius:20px;
  }

  .hero-service-title{
    font-size:22px;
  }

  .hero-service-flow{
    margin-left:-6px;
    margin-right:-6px;
    padding-left:6px;
    padding-right:6px;
  }

  .hero-service-flow .feature-slide{
    flex-basis:82vw;
    min-height:245px;
  }

  .hero-service-flow .feature-slide::after{
    top:auto;
    right:0;
    bottom:0;
    width:100%;
    height:64%;
    clip-path:polygon(0 14%, 100% 0, 100% 100%, 0 100%);
  }

  .hero-service-flow .feature-outline{
    left:16px;
    right:16px;
    top:44px;
    max-width:none;
    font-size:44px;
  }

  .hero-service-flow .feature-body{
    left:16px;
    right:68px;
    bottom:18px;
    width:auto;
  }

  .hero-service-flow .link-arrow{
    right:16px;
    bottom:18px;
  }
}


/* =========================================================
   SimGoya HP v0.5 - HERO layer slider
   - v0.4のサービスカード型を上書き
   - 大型ヒーロー背景の上に、透明な1枚レイヤーを重ねる
   - 各項目は同じ横幅で横スライド
   ========================================================= */

.hero-v04 .hero-inner.hero-stage{
  justify-content:space-between;
  gap:32px;
  padding:48px 0 30px;
}

.hero-copy-block{
  position:relative;
  z-index:3;
  max-width:920px;
  padding-top:34px;
}

.hero-service-overlay,
.hero-service-head,
.hero-service-flow{
  display:none !important;
}

.hero-service-layer{
  position:relative;
  z-index:3;
  width:100%;
  border-radius:30px;
  border:1px solid rgba(255,255,255,.14);
  background:
    linear-gradient(180deg, rgba(5,8,12,.34), rgba(5,8,12,.54)),
    linear-gradient(90deg, rgba(255,177,35,.10), transparent 24%, transparent 76%, rgba(60,184,255,.08));
  backdrop-filter: blur(5px);
  box-shadow:0 26px 80px rgba(0,0,0,.42);
  overflow:hidden;
}

.hero-service-layer::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.42), transparent 20%, transparent 72%, rgba(0,0,0,.50)),
    radial-gradient(580px 210px at 28% 48%, rgba(255,255,255,.08), transparent 68%);
  pointer-events:none;
  z-index:1;
}

.hero-service-layer::after{
  content:"";
  position:absolute;
  top:0;
  right:-10%;
  width:52%;
  height:100%;
  background:linear-gradient(180deg, rgba(5,9,14,.88), rgba(5,9,14,.70));
  clip-path:polygon(18% 0, 100% 0, 100% 100%, 0 100%);
  pointer-events:none;
  z-index:1;
}

.hero-service-track{
  position:relative;
  z-index:2;
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,177,35,.60) rgba(255,255,255,.12);
}

.hero-service-track::-webkit-scrollbar{ height:8px; }
.hero-service-track::-webkit-scrollbar-track{ background:rgba(255,255,255,.10); }
.hero-service-track::-webkit-scrollbar-thumb{ background:rgba(255,177,35,.70); border-radius:999px; }

.hero-service-panel{
  position:relative;
  flex:0 0 100%;
  min-height:260px;
  display:grid;
  grid-template-columns:130px minmax(0, 1fr) auto;
  gap:34px;
  align-items:center;
  padding:34px 54px;
  scroll-snap-align:start;
  overflow:hidden;
  transition:background .22s ease;
}

.hero-service-panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.14), transparent 42%, rgba(0,0,0,.24)),
    linear-gradient(115deg, rgba(255,177,35,.10) 0 12%, transparent 12% 100%);
  opacity:.78;
  transition:opacity .22s ease;
  pointer-events:none;
}

.hero-service-panel:hover,
.hero-service-panel:focus-visible{
  background:rgba(255,255,255,.035);
  outline:none;
}

.hero-service-panel:hover::before,
.hero-service-panel:focus-visible::before{
  opacity:1;
}

.hero-panel-index{
  position:relative;
  z-index:2;
  align-self:start;
  color:rgba(255,177,35,.94);
  font-size:16px;
  font-weight:900;
  letter-spacing:.22em;
}

.hero-panel-outline{
  position:relative;
  z-index:2;
  color:transparent;
  -webkit-text-stroke:1px rgba(60,184,255,.76);
  text-stroke:1px rgba(60,184,255,.76);
  font-size:clamp(58px, 7vw, 112px);
  line-height:.88;
  font-weight:900;
  letter-spacing:-.055em;
  white-space:nowrap;
  opacity:.82;
}

.hero-panel-body{
  position:relative;
  z-index:2;
  display:grid;
  gap:12px;
  min-width:360px;
  max-width:520px;
}

.hero-panel-label{
  color:rgba(255,255,255,.96);
  font-size:clamp(26px, 3vw, 44px);
  line-height:1.18;
  font-weight:950;
  letter-spacing:.02em;
  text-shadow:0 12px 34px rgba(0,0,0,.56);
}

.hero-panel-copy{
  color:rgba(255,255,255,.78);
  font-size:16px;
  line-height:1.8;
  text-shadow:0 12px 34px rgba(0,0,0,.56);
}

.hero-panel-arrow{
  position:relative;
  z-index:3;
  right:auto;
  bottom:auto;
  width:56px;
  height:56px;
  font-size:30px;
}

.hero-service-panel:hover .hero-panel-arrow,
.hero-service-panel:focus-visible .hero-panel-arrow{
  transform:translateX(12px);
  background:var(--accent-hover);
  color:#111;
  box-shadow:0 12px 30px rgba(255,178,31,.24), 0 10px 26px rgba(0,0,0,.35);
}

@media (max-width: 980px){
  .hero-service-panel{
    grid-template-columns:72px 1fr auto;
    gap:20px;
    min-height:230px;
    padding:28px 34px;
  }

  .hero-panel-body{
    min-width:0;
  }

  .hero-panel-outline{
    position:absolute;
    left:108px;
    top:26px;
    font-size:70px;
    opacity:.46;
  }

  .hero-panel-label{
    margin-top:58px;
  }
}

@media (max-width: 640px){
  .hero-v04 .hero-inner.hero-stage{
    padding:26px 0 14px;
    gap:22px;
  }

  .hero-service-layer{
    border-radius:22px;
  }

  .hero-service-layer::after{
    width:72%;
    opacity:.82;
  }

  .hero-service-panel{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "index arrow"
      "body arrow";
    gap:14px 16px;
    min-height:250px;
    padding:24px 20px;
  }

  .hero-panel-index{
    grid-area:index;
  }

  .hero-panel-outline{
    left:20px;
    top:54px;
    max-width:calc(100% - 40px);
    font-size:56px;
    overflow:hidden;
  }

  .hero-panel-body{
    grid-area:body;
    align-self:end;
    padding-top:66px;
  }

  .hero-panel-label{
    margin-top:0;
    font-size:28px;
  }

  .hero-panel-copy{
    font-size:14px;
  }

  .hero-panel-arrow{
    grid-area:arrow;
    align-self:end;
    width:48px;
    height:48px;
  }
}


/* =========================================================
   SimGoya HP v0.6 - sticky hero / overlay scroll / animated zoom
   - ヘッダーを透過固定
   - ヒーロー背景を固定的に見せ、下のセクションが重なっていく
   - ロゴはヒーロー表示中は大きく、スクロールで縮小
   - ヒーロー背景と各ビジュアル画像をゆっくりズーム
   - サービスレイヤーのスクロールバー表示は消す
   ========================================================= */

:root{
  --header-h: 92px;
  --header-h-small: 76px;
}

body{
  overflow-x:hidden;
}

.header{
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:var(--header-h);
  background:linear-gradient(180deg, rgba(6,10,15,.34), rgba(6,10,15,.18));
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:height .28s ease, background .28s ease, border-color .28s ease, backdrop-filter .28s ease;
}

body.is-scrolled .header{
  height:var(--header-h-small);
  background:linear-gradient(180deg, rgba(6,10,15,.88), rgba(6,10,15,.72));
  border-bottom-color:rgba(255,255,255,.10);
}

.header-inner{
  transition:gap .28s ease;
}

.brand img{
  height:72px;
  transition:height .28s ease, transform .28s ease, filter .28s ease;
}

body.is-scrolled .brand img{
  height:50px;
  transform:translateY(-1px);
}

.nav a{
  text-shadow:0 6px 18px rgba(0,0,0,.28);
}

main{
  position:relative;
  z-index:1;
}

.hero-v06{
  position:sticky;
  top:0;
  z-index:0;
  min-height:100vh;
}

.hero-v06::before{
  animation: heroSlowZoom 18s ease-in-out infinite alternate;
  transform-origin:center center;
  background-attachment:scroll;
}

.hero-v06 .hero-inner.hero-stage{
  min-height:100vh;
  padding-top:calc(var(--header-h) + 38px);
  padding-bottom:32px;
}

.hero-v06 .hero-copy-block{
  max-width:920px;
}

.hero-v06 .hero-title{
  max-width:980px;
}

.hero-service-layer{
  border-radius:34px;
  background:linear-gradient(180deg, rgba(7,11,16,.34), rgba(7,11,16,.20));
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(4px);
  box-shadow:0 26px 70px rgba(0,0,0,.22);
}

.hero-service-layer::before{
  opacity:.7;
}

.hero-service-layer::after{
  opacity:.72;
}

.hero-service-track{
  scrollbar-width:none;
  -ms-overflow-style:none;
}

.hero-service-track::-webkit-scrollbar{
  display:none;
}

.hero-service-panel{
  min-height:250px;
}

.hero-service-panel::before{
  background:
    linear-gradient(90deg, rgba(0,0,0,.10), transparent 40%, rgba(0,0,0,.18)),
    linear-gradient(115deg, rgba(255,177,35,.08) 0 10%, transparent 10% 100%);
}

.after-hero-overlap{
  margin-top:-90px;
  padding-top:150px;
  position:relative;
  z-index:4;
  border-top:none;
}

.after-hero-overlap::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(7,10,14,.12), rgba(7,10,14,.92) 22%, rgba(10,14,20,.98) 100%);
  border-top-left-radius:30px;
  border-top-right-radius:30px;
  z-index:-1;
}

.feature-section,
.company-section,
.topics-section,
.section{
  position:relative;
  z-index:4;
}

.feature-section:not(.after-hero-overlap),
.company-section,
.topics-section{
  background:linear-gradient(180deg, rgba(7,10,14,.98), rgba(10,14,20,.98));
}

.feature-visual{
  position:relative;
  background:none;
}

.feature-visual::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.30)),
    var(--card-bg, none) center/cover no-repeat;
  animation: visualSlowZoom 18s ease-in-out infinite alternate;
  transform-origin:center center;
}

.feature-visual > *{
  position:relative;
  z-index:1;
}

@keyframes heroSlowZoom{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.09); }
}

@keyframes visualSlowZoom{
  0%{ transform:scale(1.01); }
  100%{ transform:scale(1.08); }
}

@media (max-width: 1100px){
  .hero-v06 .hero-inner.hero-stage{
    padding-top:calc(var(--header-h) + 28px);
  }
}

@media (max-width: 820px){
  .header{
    height:auto;
    min-height:var(--header-h-small);
  }

  body.is-scrolled .header{
    height:auto;
  }

  .brand img,
  body.is-scrolled .brand img{
    height:56px;
  }

  .hero-v06{
    position:relative;
    top:auto;
  }

  .hero-v06 .hero-inner.hero-stage{
    min-height:auto;
    padding-top:calc(var(--header-h-small) + 28px);
  }

  .after-hero-overlap{
    margin-top:-40px;
    padding-top:92px;
  }

  .after-hero-overlap::before{
    border-top-left-radius:24px;
    border-top-right-radius:24px;
  }
}

@media (max-width: 640px){
  :root{
    --header-h: 84px;
    --header-h-small: 74px;
  }

  .hero-v06 .hero-inner.hero-stage{
    padding-top:calc(var(--header-h) + 20px);
  }

  .after-hero-overlap{
    margin-top:-24px;
    padding-top:72px;
  }
}


/* =========================================================
   SimGoya HP v0.7 - transparent minimal header
   - 右端の重複お問い合わせボタンを削除
   - HOMEのオレンジ枠active表示を廃止
   - メニューを小さく、背景帯を完全透明化
   ========================================================= */

.header,
body.is-scrolled .header{
  background:transparent !important;
  border-bottom:0 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:none !important;
}

.header{
  pointer-events:none;
}

.header-inner,
.brand,
.nav{
  pointer-events:auto;
}

.header-inner{
  justify-content:center;
  gap:20px;
}

.brand{
  min-width:190px;
  padding-left:0;
}

.brand img{
  height:64px;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.72));
}

body.is-scrolled .brand img{
  height:46px;
}

.nav{
  flex:0 1 auto;
  justify-content:center;
  gap:8px;
}

.nav a{
  padding:6px 8px;
  border-radius:0;
  border:0 !important;
  background:transparent !important;
  color:rgba(255,255,255,.82);
  font-size:12px;
  line-height:1.25;
  letter-spacing:.02em;
  text-shadow:0 3px 14px rgba(0,0,0,.82), 0 1px 2px rgba(0,0,0,.72);
  box-shadow:none !important;
}

.nav a.active,
.nav a.is-active,
.nav a:hover,
.nav a:focus-visible{
  border:0 !important;
  background:transparent !important;
  color:rgba(255,177,35,.96);
  outline:none;
}

.nav a::after{
  content:"";
  display:block;
  width:0;
  height:1px;
  margin-top:4px;
  background:rgba(255,177,35,.88);
  transition:width .18s ease;
}

.nav a:hover::after,
.nav a:focus-visible::after{
  width:100%;
}

.header-ctas{
  display:none !important;
}

.hero-v06 .hero-inner.hero-stage{
  padding-top:calc(var(--header-h) + 30px);
}

@media (max-width: 980px){
  .header-inner{
    justify-content:flex-start;
    gap:12px;
  }

  .brand{
    min-width:150px;
  }

  .brand img,
  body.is-scrolled .brand img{
    height:50px;
  }

  .nav{
    gap:4px;
    overflow:auto;
    justify-content:flex-start;
    scrollbar-width:none;
  }

  .nav::-webkit-scrollbar{
    display:none;
  }

  .nav a{
    white-space:nowrap;
    font-size:11px;
    padding:6px 7px;
  }
}

@media (max-width: 640px){
  .header{
    min-height:auto;
  }

  .header-inner{
    padding:10px 0 6px;
    flex-wrap:wrap;
  }

  .brand img,
  body.is-scrolled .brand img{
    height:46px;
  }

  .nav{
    order:3;
    width:100%;
    padding-bottom:2px;
  }
}


/* =========================================================
   SimGoya HP v0.8 - simpler top / left logo / right nav / no hero slider
   ========================================================= */

.header,
body.is-scrolled .header{
  background:transparent !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}

.header{
  pointer-events:none;
}

.header-inner,
.brand,
.nav{
  pointer-events:auto;
}

.header-inner{
  justify-content:space-between !important;
  align-items:flex-start;
  gap:16px;
  padding-top:18px;
}

.brand{
  min-width:0;
  flex:0 0 auto;
}

.brand img{
  height:96px;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.72));
}

body.is-scrolled .brand img{
  height:58px;
}

.nav{
  flex:0 1 auto;
  justify-content:flex-end !important;
  align-items:flex-start;
  gap:18px;
  margin-left:auto;
  flex-wrap:nowrap;
  white-space:nowrap;
}

.nav a{
  padding:2px 0 !important;
  border:0 !important;
  background:transparent !important;
  color:rgba(255,255,255,.88);
  font-size:14px;
  line-height:1.2;
  letter-spacing:.01em;
  white-space:nowrap;
  text-shadow:0 3px 14px rgba(0,0,0,.88), 0 1px 2px rgba(0,0,0,.75);
}

.nav a::after{
  display:none !important;
}

.nav a.active,
.nav a.is-active{
  color:rgba(255,255,255,.88) !important;
}

.nav a:hover,
.nav a:focus-visible{
  color:rgba(255,177,35,.98) !important;
  outline:none;
}

.hero-v06 .hero-inner.hero-stage{
  justify-content:flex-start;
  padding-top:calc(var(--header-h) + 84px);
  padding-bottom:88px;
}

.hero-copy-simple{
  max-width:980px;
}

.hero-title-split{
  display:block;
  margin:0 0 18px;
  line-height:.98;
}

.hero-title-line{
  display:block;
}

.hero-title-line1{
  max-width:9.5ch;
}

.hero-title-line2{
  margin-left:3.05ch;
}

.hero-sub{
  max-width:760px;
}

.hero-actions,
.hero-service-layer,
.hero-service-track,
.hero-service-panel,
.hero-panel-index,
.hero-panel-outline,
.hero-panel-body,
.hero-panel-arrow{
  display:none !important;
}

.after-hero-overlap{
  margin-top:-140px;
  padding-top:170px;
}

@media (max-width: 1100px){
  .brand img{
    height:82px;
  }

  body.is-scrolled .brand img{
    height:54px;
  }

  .nav{
    gap:14px;
  }

  .nav a{
    font-size:13px;
  }

  .hero-v06 .hero-inner.hero-stage{
    padding-top:calc(var(--header-h) + 72px);
  }
}

@media (max-width: 820px){
  .header-inner{
    padding-top:12px;
    align-items:flex-start;
  }

  .brand img,
  body.is-scrolled .brand img{
    height:64px;
  }

  .nav{
    gap:12px;
    overflow:auto;
    max-width:calc(100vw - 180px);
    scrollbar-width:none;
  }

  .nav::-webkit-scrollbar{ display:none; }

  .nav a{
    font-size:12px;
  }

  .hero-v06 .hero-inner.hero-stage{
    padding-top:calc(var(--header-h-small) + 58px);
    padding-bottom:60px;
  }

  .hero-title-line2{
    margin-left:2.4ch;
  }

  .after-hero-overlap{
    margin-top:-90px;
    padding-top:118px;
  }
}

@media (max-width: 640px){
  .header-inner{
    padding-top:10px;
    flex-wrap:wrap;
    gap:10px;
  }

  .brand img,
  body.is-scrolled .brand img{
    height:56px;
  }

  .nav{
    max-width:100%;
    width:100%;
    order:3;
    gap:10px;
    justify-content:flex-start !important;
  }

  .nav a{
    font-size:11px;
  }

  .hero-v06 .hero-inner.hero-stage{
    padding-top:calc(var(--header-h) + 44px);
    padding-bottom:44px;
  }

  .hero-title-line2{
    margin-left:1.8ch;
  }

  .after-hero-overlap{
    margin-top:-50px;
    padding-top:84px;
  }
}


/* =========================================================
   SimGoya HP v0.9 - HERO title font / fixed line breaks
   - 「Simに乗る」で必ず1行
   - 「という選択肢。」を2行目に固定
   - Noto Serif JP Black相当を使用
   ========================================================= */

.hero-title-split{
  font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-weight:900 !important;
  letter-spacing:.015em;
  line-height:1.08 !important;
  max-width:none !important;
  width:max-content;
  min-width:min(100%, 980px);
  text-shadow:0 18px 52px rgba(0,0,0,.70);
}

.hero-title-line{
  display:block;
  white-space:nowrap;
  overflow:visible;
}

.hero-title-line1{
  max-width:none !important;
}

.hero-title-line2{
  margin-left:2.85em !important;
}

.hero-copy-simple{
  max-width:none !important;
}

@media (max-width: 1100px){
  .hero-title-split{
    font-size:clamp(48px, 8.1vw, 86px) !important;
    min-width:0;
    width:100%;
  }

  .hero-title-line2{
    margin-left:2.35em !important;
  }
}

@media (max-width: 820px){
  .hero-title-split{
    font-size:clamp(42px, 10vw, 72px) !important;
  }

  .hero-title-line2{
    margin-left:1.75em !important;
  }
}

@media (max-width: 640px){
  .hero-title-split{
    font-size:clamp(34px, 11vw, 54px) !important;
    line-height:1.12 !important;
  }

  .hero-title-line2{
    margin-left:.95em !important;
  }
}

@media (max-width: 420px){
  .hero-title-split{
    font-size:clamp(30px, 10.5vw, 42px) !important;
  }

  .hero-title-line2{
    margin-left:.55em !important;
  }
}


/* =========================================================
   SimGoya HP v1.0 - hero slideshow / simpler home showcases
   ========================================================= */

.hero-v10{
  overflow:hidden;
}

.hero-v10::before,
.hero-v10::after{
  display:none !important;
}

.hero-bg-stack{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}

.hero-slide-bg{
  position:absolute;
  inset:0;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  opacity:0;
  transform:scale(1.03);
  animation:heroCrossfadeZoom 22s ease-in-out infinite;
}

.hero-slide-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(5,8,12,.28), rgba(5,8,12,.52)),
    radial-gradient(ellipse at center, rgba(12,18,28,.18) 0%, rgba(5,8,12,.52) 72%, rgba(5,8,12,.78) 100%);
}

.hero-slide-bg-a{ animation-delay:0s; }
.hero-slide-bg-b{ animation-delay:11s; }

@keyframes heroCrossfadeZoom{
  0%{ opacity:0; transform:scale(1.03); }
  8%{ opacity:1; }
  42%{ opacity:1; transform:scale(1.11); }
  50%{ opacity:0; transform:scale(1.13); }
  100%{ opacity:0; transform:scale(1.13); }
}

.hero-v10 .hero-inner.hero-stage{
  position:relative;
  z-index:1;
}

.hero-copy-v10{
  max-width:1040px;
  padding-top:24px;
}

.hero-copy-v10 .hero-title-split{
  margin-bottom:22px;
}

.hero-copy-v10 .hero-title-line1,
.hero-copy-v10 .hero-title-line2{
  white-space:nowrap;
}

.hero-copy-v10 .hero-title-line1{
  max-width:none;
}

.hero-copy-v10 .hero-title-line2{
  margin-left:2.55ch;
}

.hero-copy-v10 .hero-sub{
  max-width:780px;
  text-shadow:0 6px 20px rgba(0,0,0,.52);
}

.hero-kicker{
  display:none !important;
}

.service-showcase-section{
  padding:40px 0;
  background:linear-gradient(180deg, rgba(7,10,14,.98), rgba(10,14,20,.98));
}

.service-showcase{
  position:relative;
  display:block;
  min-height:420px;
  text-decoration:none;
  color:inherit;
}

.showcase-image{
  position:relative;
  width:min(76%, 980px);
  min-height:420px;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  clip-path:polygon(0 0, 88% 0, 100% 100%, 0 100%);
  overflow:hidden;
  isolation:isolate;
}

.showcase-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.32)),
    linear-gradient(90deg, rgba(0,0,0,.12), transparent 44%);
  z-index:1;
}

.showcase-image::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  transform:scale(1.02);
  animation:showcaseImageZoom 17s ease-in-out infinite alternate;
  z-index:0;
}

@keyframes showcaseImageZoom{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.08); }
}

.showcase-copy{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:min(44%, 520px);
  padding:42px 40px 40px;
  border-radius:0 26px 26px 0;
  background:linear-gradient(180deg, rgba(4,8,12,.84), rgba(6,10,15,.88));
  backdrop-filter:blur(4px);
  box-shadow:0 22px 64px rgba(0,0,0,.36);
}

.service-showcase.reverse .showcase-image{
  margin-left:auto;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 12% 100%);
}

.service-showcase.reverse .showcase-copy{
  left:0;
  right:auto;
  border-radius:26px 0 0 26px;
}

.showcase-tag{
  margin:0 0 14px;
  color:rgba(255,255,255,.72);
  font-size:clamp(30px, 4.2vw, 58px);
  font-weight:800;
  letter-spacing:.02em;
  line-height:1;
}

.showcase-title{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(28px, 2.8vw, 48px);
  line-height:1.16;
}

.showcase-body{
  margin:0;
  color:rgba(255,255,255,.82);
  line-height:1.9;
}

.showcase-note{
  margin:16px 0 0;
  color:rgba(255,177,35,.92);
  font-size:13px;
  letter-spacing:.08em;
}

.showcase-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:20px;
  color:#fff;
  font-weight:700;
}

.showcase-link span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  background:#fff;
  color:#0b1118;
  transition:transform .22s ease, background .22s ease, color .22s ease;
}

.service-showcase:hover .showcase-link span,
.service-showcase:focus-visible .showcase-link span{
  background:var(--accent);
  color:#111;
  transform:translateX(6px);
}

.service-showcase:hover .showcase-copy,
.service-showcase:focus-visible .showcase-copy{
  box-shadow:0 28px 72px rgba(0,0,0,.42);
}

.point-list,
.software-note,
.mini-card-grid,
.inline-actions{
  /* HOMEトップではshowcase形式へ寄せるため、旧要素は表示しない */
}

@media (max-width: 1100px){
  .service-showcase{ min-height:380px; }
  .showcase-image{ width:min(78%, 100%); min-height:380px; }
  .showcase-copy{ width:min(48%, 460px); padding:34px 30px; }
  .showcase-tag{ font-size:clamp(28px, 4vw, 48px); }
}

@media (max-width: 820px){
  .hero-copy-v10 .hero-title-line2{ margin-left:1.75ch; }
  .service-showcase,
  .showcase-image{ min-height:auto; }
  .showcase-image{
    width:100%;
    aspect-ratio: 4 / 3;
    clip-path:polygon(0 0, 90% 0, 100% 100%, 0 100%);
  }
  .service-showcase.reverse .showcase-image{
    clip-path:polygon(0 0, 100% 0, 100% 100%, 10% 100%);
  }
  .showcase-copy{
    position:relative;
    top:auto;
    right:auto;
    left:auto;
    transform:none;
    width:min(92%, 680px);
    margin:-72px 0 0 auto;
    border-radius:22px;
  }
  .service-showcase.reverse .showcase-copy{
    margin:-72px auto 0 0;
    border-radius:22px;
  }
}

@media (max-width: 640px){
  .hero-copy-v10 .hero-title-line2{ margin-left:0; }
  .hero-copy-v10 .hero-title-line1,
  .hero-copy-v10 .hero-title-line2{
    white-space:normal;
  }
  .showcase-copy{
    width:100%;
    margin-top:-34px;
    padding:24px 20px 22px;
  }
  .showcase-tag{ font-size:26px; }
  .showcase-title{ font-size:26px; }
}


/* =========================================================
   SimGoya HP v1.1 - smoother hero crossfade / trapezoid text-over-image
   ========================================================= */

.hero-slide-bg{
  opacity:0;
  transform:scale(1.02);
  transition:opacity 1.6s ease-in-out;
  animation:none !important;
}

.hero-slide-bg.is-active{
  opacity:1;
  animation:heroSlideZoom 9s ease-out forwards;
}

.hero-slide-bg::after{
  background:
    linear-gradient(180deg, rgba(5,8,12,.16), rgba(5,8,12,.34)),
    radial-gradient(ellipse at center, rgba(12,18,28,.10) 0%, rgba(5,8,12,.22) 70%, rgba(5,8,12,.38) 100%);
}

@keyframes heroSlideZoom{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.10); }
}

.hero-copy-v10{
  padding-top:40px;
}

.hero-copy-v10 .hero-sub{
  max-width:720px;
}

.service-showcase-section{
  padding:56px 0;
}

.service-showcase{
  position:relative;
  min-height:500px;
  background:linear-gradient(180deg, rgba(6,10,14,.98), rgba(8,12,18,.98));
  border-radius:0;
  overflow:hidden;
}

.service-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(4,8,12,.08), rgba(4,8,12,.44) 58%, rgba(4,8,12,.82) 100%);
  z-index:0;
}

.showcase-image{
  position:absolute;
  left:0;
  top:24px;
  bottom:24px;
  width:72%;
  min-height:auto;
  clip-path:polygon(0 0, 86% 0, 100% 100%, 0 100%);
  z-index:1;
}

.showcase-image::before{
  background:
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.18)),
    linear-gradient(90deg, rgba(0,0,0,.08), transparent 46%);
}

.showcase-image::after{
  animation:showcaseImageZoom 18s ease-in-out infinite alternate;
}

.showcase-copy{
  position:absolute;
  right:5.2%;
  top:50%;
  transform:translateY(-50%);
  width:min(38%, 500px);
  padding:22px 18px 22px 0;
  background:transparent;
  box-shadow:none;
  z-index:2;
}

.showcase-copy::before{
  content:"";
  position:absolute;
  right:-34px;
  top:-34px;
  width:min(80vw, 560px);
  height:calc(100% + 68px);
  border:1px solid rgba(74,166,255,.42);
  clip-path:polygon(32% 0, 100% 0, 74% 100%, 0 100%);
  z-index:-1;
  opacity:.9;
}

.showcase-tag{
  margin:0 0 14px;
  color:rgba(255,255,255,.84);
  font-size:clamp(52px, 5vw, 72px);
  font-weight:800;
  letter-spacing:.01em;
  line-height:.94;
}

.showcase-title{
  margin:0 0 16px;
  color:#fff;
  font-size:clamp(26px, 2.3vw, 44px);
  line-height:1.22;
}

.showcase-body{
  margin:0;
  color:rgba(255,255,255,.84);
  line-height:1.9;
  font-size:18px;
  max-width:26em;
}

.showcase-link{
  margin-top:22px;
}

.showcase-link span{
  width:48px;
  height:48px;
}

.service-showcase.reverse .showcase-image,
.service-showcase.reverse .showcase-copy,
.service-showcase.reverse .showcase-copy::before{
  all:unset;
}
/* reverse classが残っても同じ見せ方に寄せる */
.service-showcase.reverse{ position:relative; }
.service-showcase.reverse .showcase-image{
  position:absolute;
  left:0;
  top:24px;
  bottom:24px;
  width:72%;
  clip-path:polygon(0 0, 86% 0, 100% 100%, 0 100%);
  overflow:hidden;
  isolation:isolate;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  z-index:1;
}
.service-showcase.reverse .showcase-image::before,
.service-showcase.reverse .showcase-image::after{
  content:"";
  position:absolute;
  inset:0;
}
.service-showcase.reverse .showcase-image::before{
  background:linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.18)), linear-gradient(90deg, rgba(0,0,0,.08), transparent 46%);
  z-index:1;
}
.service-showcase.reverse .showcase-image::after{
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  transform:scale(1.02);
  animation:showcaseImageZoom 18s ease-in-out infinite alternate;
  z-index:0;
}
.service-showcase.reverse .showcase-copy{
  position:absolute;
  right:5.2%;
  top:50%;
  transform:translateY(-50%);
  width:min(38%, 500px);
  padding:22px 18px 22px 0;
  background:transparent;
  box-shadow:none;
  z-index:2;
}
.service-showcase.reverse .showcase-copy::before{
  content:"";
  position:absolute;
  right:-34px;
  top:-34px;
  width:min(80vw, 560px);
  height:calc(100% + 68px);
  border:1px solid rgba(74,166,255,.42);
  clip-path:polygon(32% 0, 100% 0, 74% 100%, 0 100%);
  z-index:-1;
  opacity:.9;
}

@media (max-width: 1100px){
  .service-showcase{ min-height:440px; }
  .showcase-image,
  .service-showcase.reverse .showcase-image{ width:74%; }
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{ width:min(40%, 430px); right:4%; }
  .showcase-tag{ font-size:clamp(42px, 5vw, 60px); }
  .showcase-body{ font-size:16px; }
}

@media (max-width: 820px){
  .service-showcase{ min-height:auto; }
  .service-showcase::before{ background:linear-gradient(180deg, rgba(4,8,12,.08), rgba(4,8,12,.84)); }
  .showcase-image,
  .service-showcase.reverse .showcase-image{
    position:relative;
    left:auto;
    top:auto;
    bottom:auto;
    width:100%;
    aspect-ratio: 4 / 3;
    clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%);
  }
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{
    position:absolute;
    left:24px;
    right:24px;
    bottom:22px;
    top:auto;
    transform:none;
    width:auto;
    padding:0;
  }
  .showcase-copy::before,
  .service-showcase.reverse .showcase-copy::before{
    right:-18px;
    top:-20px;
    width:calc(100% + 36px);
    height:calc(100% + 38px);
  }
  .showcase-tag{ font-size:38px; }
  .showcase-title{ font-size:26px; }
  .showcase-body{ font-size:15px; line-height:1.7; }
}

@media (max-width: 640px){
  .hero-copy-v10{ padding-top:24px; }
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{ left:16px; right:16px; bottom:16px; }
  .showcase-tag{ font-size:30px; }
  .showcase-title{ font-size:22px; }
  .showcase-body{ font-size:14px; }
  .showcase-link{ margin-top:16px; }
}


/* =========================================================
   SimGoya HP v1.2 - solid navy showcase / link-only hover / company unified
   ========================================================= */

.service-showcase-section,
.company-showcase-section,
.topics-section,
.company-section{
  background:#07101b !important;
}

.service-showcase-section{
  padding:56px 0 52px;
}

.service-showcase{
  position:relative;
  min-height:500px;
  background:#07101b !important;
  border-radius:0;
  overflow:hidden;
}

.service-showcase::before,
.service-showcase::after,
.showcase-copy::after{
  display:none !important;
  content:none !important;
}

.showcase-image,
.service-showcase.reverse .showcase-image{
  position:absolute;
  left:0;
  top:24px;
  bottom:24px;
  width:72%;
  clip-path:polygon(0 0, 86% 0, 100% 100%, 0 100%);
  overflow:hidden;
  isolation:isolate;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  z-index:1;
}

.showcase-image::before,
.service-showcase.reverse .showcase-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.16));
  z-index:1;
}

.showcase-image::after,
.service-showcase.reverse .showcase-image::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  transform:scale(1.02);
  animation:showcaseImageZoom 18s ease-in-out infinite alternate;
  z-index:0;
}

.showcase-copy,
.service-showcase.reverse .showcase-copy{
  position:absolute;
  right:3.6%;
  top:50%;
  transform:translateY(-50%);
  width:min(40%, 510px);
  padding:14px 12px 22px 0;
  background:transparent !important;
  box-shadow:none !important;
  z-index:2;
}

.showcase-copy::before,
.service-showcase.reverse .showcase-copy::before{
  content:"";
  position:absolute;
  right:-18px;
  top:-26px;
  width:min(85vw, 610px);
  height:calc(100% + 110px);
  background:#07101b;
  clip-path:polygon(34% 0, 100% 0, 76% 100%, 0 100%);
  z-index:-2;
  opacity:1;
  border:none;
}

/* 白ラインを境界線として扱う */
.showcase-copy .showcase-tag::before,
.showcase-copy .showcase-link::after{
  content:"";
  position:absolute;
  left:0;
  height:1px;
  background:rgba(255,255,255,.72);
}

.showcase-tag{
  position:relative;
  margin:0 0 18px;
  padding-top:22px;
  color:#ffffff;
  font-size:clamp(52px, 5vw, 72px);
  font-weight:800;
  letter-spacing:.01em;
  line-height:.94;
}

.showcase-tag::before{
  top:0;
  width:min(86%, 420px);
}

.showcase-title{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(26px, 2.3vw, 44px);
  line-height:1.22;
}

.showcase-body{
  margin:0;
  color:rgba(255,255,255,.86);
  line-height:1.9;
  font-size:18px;
  max-width:26em;
}

.showcase-meta{
  margin-top:14px;
}

.showcase-meta p{
  margin:0 0 6px;
  color:rgba(255,255,255,.72);
  font-size:14px;
  line-height:1.7;
}

.showcase-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin-top:26px;
  color:#fff;
  font-weight:700;
  text-decoration:none;
}

.showcase-link::after{
  bottom:-22px;
  width:min(168%, 340px);
}

.showcase-link span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:999px;
  background:#fff;
  color:#0b1118;
  transition:transform .22s ease, background .22s ease, color .22s ease;
}

/* 反応は詳しく見るリンクの上だけ */
.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--accent);
  color:#111;
  transform:translateX(6px);
}

.showcase-link:hover,
.showcase-link:focus-visible{
  color:#fff;
  outline:none;
}

/* ホバーで全体反応しないように上書き */
.service-showcase:hover .showcase-link span,
.service-showcase:focus-visible .showcase-link span,
.service-showcase:hover .showcase-copy,
.service-showcase:focus-visible .showcase-copy{
  background:inherit;
  color:inherit;
  transform:translateY(-50%);
  box-shadow:none !important;
}

.company-showcase .showcase-copy::before,
.company-showcase .showcase-tag::before,
.company-showcase .showcase-link::after{
  background:#07101b;
}
.company-showcase .showcase-tag::before,
.company-showcase .showcase-link::after{
  background:rgba(255,255,255,.72);
}

.topics-section{
  border-top:none !important;
}

@media (max-width: 1100px){
  .showcase-image,
  .service-showcase.reverse .showcase-image{ width:74%; }
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{ width:min(41%, 440px); }
  .showcase-body{ font-size:16px; }
}

@media (max-width: 820px){
  .service-showcase{ min-height:auto; }
  .showcase-image,
  .service-showcase.reverse .showcase-image{
    position:relative;
    left:auto;
    top:auto;
    bottom:auto;
    width:100%;
    aspect-ratio:4 / 3;
  }
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{
    position:absolute;
    left:20px;
    right:20px;
    bottom:18px;
    top:auto;
    transform:none;
    width:auto;
    padding:0;
  }
  .showcase-copy::before,
  .service-showcase.reverse .showcase-copy::before{
    right:-14px;
    top:-18px;
    width:calc(100% + 28px);
    height:calc(100% + 82px);
  }
  .showcase-tag{ font-size:38px; }
  .showcase-title{ font-size:26px; }
  .showcase-body{ font-size:15px; line-height:1.7; }
  .showcase-link::after{ width:calc(100% + 120px); bottom:-16px; }
}

@media (max-width: 640px){
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{ left:16px; right:16px; bottom:16px; }
  .showcase-tag{ font-size:30px; padding-top:16px; }
  .showcase-title{ font-size:22px; }
  .showcase-body{ font-size:14px; }
  .showcase-link{ margin-top:18px; }
  .showcase-link::after{ width:calc(100% + 84px); }
}


/* =========================================================
   SimGoya HP v1.3 - flat black section background / white guide lines / link-only orange arrow
   - 大型ヒーロー以外は添付2枚目寄せの黒に近い単色背景
   - 余計な紺パネル、斜め背景、透過感を消す
   - 白ラインを上下に伸ばし、構成線として使う
   - 「詳しく見る →」に乗った時だけ、矢印がオレンジ化して右へ動く
   ========================================================= */

:root{
  --flat-section-bg:#05090e;
  --flat-section-line:rgba(255,255,255,.74);
}

/* 大型ヒーロー以外の面は単色 */
body,
main,
.section,
.service-showcase-section,
.company-showcase-section,
.company-section,
.topics-section,
footer{
  background:var(--flat-section-bg) !important;
}

/* セクション間の線・帯感を消す */
.section,
.service-showcase-section,
.company-showcase-section,
.topics-section{
  border-top:0 !important;
  box-shadow:none !important;
}

.service-showcase-section{
  padding:60px 0 58px !important;
}

/* 各項目ごとの背景色・透過・枠を消す */
.service-showcase{
  position:relative;
  min-height:500px;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:visible !important;
  box-shadow:none !important;
}

.service-showcase::before,
.service-showcase::after,
.showcase-copy::before,
.showcase-copy::after,
.service-showcase.reverse .showcase-copy::before,
.service-showcase.reverse .showcase-copy::after{
  display:none !important;
  content:none !important;
}

/* 台形画像だけを置く */
.showcase-image,
.service-showcase.reverse .showcase-image{
  position:absolute !important;
  left:0 !important;
  top:18px !important;
  bottom:18px !important;
  width:72% !important;
  min-height:auto !important;
  clip-path:polygon(0 0, 86% 0, 100% 100%, 0 100%) !important;
  overflow:hidden !important;
  isolation:isolate;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  z-index:1 !important;
  border:0 !important;
  box-shadow:none !important;
}

.showcase-image::before,
.service-showcase.reverse .showcase-image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  background:linear-gradient(90deg, rgba(0,0,0,.12), rgba(0,0,0,.02) 52%, rgba(0,0,0,.24)) !important;
  z-index:1 !important;
}

.showcase-image::after,
.service-showcase.reverse .showcase-image::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  transform:scale(1.02);
  animation:showcaseImageZoom 18s ease-in-out infinite alternate;
  z-index:0 !important;
}

/* 文字は単色背景上に直接置く */
.showcase-copy,
.service-showcase.reverse .showcase-copy{
  position:absolute !important;
  right:3.2% !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:min(40%, 520px) !important;
  padding:0 0 0 0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  z-index:2 !important;
}

/* 白ライン：上側と下側に長く引く */
.showcase-copy .showcase-tag{
  position:relative;
  margin:0 0 20px !important;
  padding-top:34px !important;
  color:#fff !important;
  font-size:clamp(52px, 5vw, 74px) !important;
  font-weight:800 !important;
  line-height:.94 !important;
  letter-spacing:.01em !important;
}

.showcase-copy .showcase-tag::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:min(100%, 440px) !important;
  height:1px !important;
  background:var(--flat-section-line) !important;
}

.showcase-title{
  margin:0 0 18px !important;
  color:#fff !important;
  font-size:clamp(26px, 2.25vw, 44px) !important;
  line-height:1.22 !important;
}

.showcase-body{
  margin:0 !important;
  color:rgba(255,255,255,.86) !important;
  line-height:1.9 !important;
  font-size:18px !important;
  max-width:26em !important;
}

.showcase-meta{
  margin-top:14px !important;
}

.showcase-meta p{
  margin:0 0 6px !important;
  color:rgba(255,255,255,.72) !important;
  font-size:14px !important;
  line-height:1.7 !important;
}

/* 詳しく見るだけが反応する */
.showcase-link{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:14px !important;
  margin-top:28px !important;
  color:#fff !important;
  font-weight:700 !important;
  text-decoration:none !important;
  background:transparent !important;
  transform:none !important;
}

.showcase-link::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  bottom:-28px !important;
  width:min(170%, 360px) !important;
  height:1px !important;
  background:var(--flat-section-line) !important;
}

.showcase-link span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  height:48px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#07101b !important;
  transform:none !important;
  transition:transform .22s ease, background .22s ease, color .22s ease !important;
}

/* セクション全体hoverでは絶対に動かさない */
.service-showcase:hover .showcase-link span,
.service-showcase:focus-visible .showcase-link span{
  background:#fff !important;
  color:#07101b !important;
  transform:none !important;
}

/* リンクそのものに乗った時だけ、オレンジ化 + 右移動 */
.service-showcase .showcase-link:hover span,
.service-showcase .showcase-link:focus-visible span,
.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--accent) !important;
  color:#111 !important;
  transform:translateX(8px) !important;
}

.service-showcase .showcase-link:hover,
.service-showcase .showcase-link:focus-visible,
.showcase-link:hover,
.showcase-link:focus-visible{
  color:#fff !important;
  outline:none !important;
}

/* 旧hoverで文字パネルが反応する指定を無効化 */
.service-showcase:hover .showcase-copy,
.service-showcase:focus-visible .showcase-copy,
.service-showcase:hover,
.service-showcase:focus-visible{
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
  outline:none !important;
}

.service-showcase:hover .showcase-copy,
.service-showcase:focus-visible .showcase-copy{
  transform:translateY(-50%) !important;
}

/* topicsも単色面に合わせる */
.topics-section{
  padding-top:72px !important;
}

/* responsive */
@media (max-width: 1100px){
  .showcase-image,
  .service-showcase.reverse .showcase-image{
    width:74% !important;
  }

  .showcase-copy,
  .service-showcase.reverse .showcase-copy{
    width:min(41%, 440px) !important;
    right:3% !important;
  }

  .showcase-body{
    font-size:16px !important;
  }
}

@media (max-width: 820px){
  .service-showcase{
    min-height:auto !important;
  }

  .showcase-image,
  .service-showcase.reverse .showcase-image{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%) !important;
  }

  .showcase-copy,
  .service-showcase.reverse .showcase-copy{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:100% !important;
    padding:28px 4px 24px !important;
  }

  .service-showcase:hover .showcase-copy,
  .service-showcase:focus-visible .showcase-copy{
    transform:none !important;
  }

  .showcase-copy .showcase-tag{
    font-size:38px !important;
  }

  .showcase-title{
    font-size:26px !important;
  }

  .showcase-body{
    font-size:15px !important;
    line-height:1.7 !important;
  }

  .showcase-link::after{
    width:calc(100% + 120px) !important;
    bottom:-18px !important;
  }
}

@media (max-width: 640px){
  .service-showcase-section{
    padding:44px 0 42px !important;
  }

  .showcase-copy .showcase-tag{
    font-size:30px !important;
    padding-top:18px !important;
  }

  .showcase-title{
    font-size:22px !important;
  }

  .showcase-body{
    font-size:14px !important;
  }

  .showcase-link{
    margin-top:20px !important;
  }

  .showcase-link::after{
    width:calc(100% + 80px) !important;
  }
}

/* =========================================================
   SimGoya HP v1.4 - final flat black background / lower white line only
   - 大型ヒーロー以外は黒系単色へ統一
   - セクション境界線・余計なグラデーションを除去
   - 白ラインは下側のみを境界線として使用
   - 詳しく見る→ のみホバーでオレンジ化＋右移動
   ========================================================= */

:root{
  --sg-flat-bg:#05090d;
  --sg-line:rgba(255,255,255,.78);
}

html,
body{
  background:var(--sg-flat-bg) !important;
}

main,
footer,
.section,
.feature-section,
.company-section,
.topics-section,
.service-showcase-section,
.company-showcase-section,
.after-hero-overlap,
.after-hero-overlap::before{
  background:var(--sg-flat-bg) !important;
  background-image:none !important;
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}

.section::before,
.section::after,
.feature-section::before,
.feature-section::after,
.service-showcase-section::before,
.service-showcase-section::after,
.company-showcase-section::before,
.company-showcase-section::after,
.topics-section::before,
.topics-section::after{
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}

.service-showcase-section{
  padding:58px 0 68px !important;
}

.service-showcase{
  position:relative !important;
  min-height:500px !important;
  background:var(--sg-flat-bg) !important;
  background-image:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.service-showcase::before,
.service-showcase::after,
.showcase-copy::before,
.showcase-copy::after,
.service-showcase.reverse::before,
.service-showcase.reverse::after,
.service-showcase.reverse .showcase-copy::before,
.service-showcase.reverse .showcase-copy::after{
  content:none !important;
  display:none !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}

.showcase-image,
.service-showcase.reverse .showcase-image{
  position:absolute !important;
  left:0 !important;
  top:20px !important;
  bottom:20px !important;
  width:72% !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  clip-path:polygon(0 0, 86% 0, 100% 100%, 0 100%) !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  border:0 !important;
  box-shadow:none !important;
  z-index:1 !important;
}

.showcase-image::before,
.service-showcase.reverse .showcase-image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  background:linear-gradient(180deg, rgba(0,0,0,.03), rgba(0,0,0,.18)) !important;
  z-index:1 !important;
}

.showcase-image::after,
.service-showcase.reverse .showcase-image::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  transform:scale(1.02);
  animation:showcaseImageZoom 18s ease-in-out infinite alternate;
  z-index:0 !important;
}

.showcase-copy,
.service-showcase.reverse .showcase-copy{
  position:absolute !important;
  right:3.8% !important;
  left:auto !important;
  top:50% !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  width:min(40%, 520px) !important;
  padding:0 !important;
  background:transparent !important;
  background-image:none !important;
  border:0 !important;
  box-shadow:none !important;
  z-index:2 !important;
}

.showcase-tag{
  position:relative !important;
  margin:0 0 18px !important;
  padding:0 !important;
  color:#fff !important;
  font-size:clamp(52px, 5vw, 72px) !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  line-height:.94 !important;
}

.showcase-tag::before,
.showcase-tag::after,
.showcase-copy .showcase-tag::before,
.showcase-copy .showcase-tag::after{
  content:none !important;
  display:none !important;
}

.showcase-title{
  margin:0 0 18px !important;
  color:#fff !important;
  font-size:clamp(26px, 2.3vw, 44px) !important;
  line-height:1.22 !important;
  text-shadow:none !important;
}

.showcase-body{
  margin:0 !important;
  color:rgba(255,255,255,.84) !important;
  line-height:1.9 !important;
  font-size:18px !important;
  max-width:27em !important;
}

.showcase-meta p{
  color:rgba(255,255,255,.72) !important;
}

/* 下側の白線だけを境界線として使う */
.service-showcase .showcase-bottom-line{
  display:none;
}

.service-showcase::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:2% !important;
  bottom:-24px !important;
  width:min(72%, 1000px) !important;
  height:1px !important;
  background:var(--sg-line) !important;
  border:0 !important;
  box-shadow:none !important;
  z-index:3 !important;
}

.showcase-link{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:14px !important;
  margin-top:26px !important;
  color:#fff !important;
  font-weight:700 !important;
  text-decoration:none !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.showcase-link::before,
.showcase-link::after,
.showcase-copy .showcase-link::before,
.showcase-copy .showcase-link::after{
  content:none !important;
  display:none !important;
}

.showcase-link span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  height:48px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#0b1118 !important;
  transform:translateX(0) !important;
  transition:transform .22s ease, background .22s ease, color .22s ease, box-shadow .22s ease !important;
  box-shadow:none !important;
}

.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--accent) !important;
  color:#111 !important;
  transform:translateX(8px) !important;
  box-shadow:0 10px 24px rgba(243,152,0,.24) !important;
}

.service-showcase:hover .showcase-link span,
.service-showcase:focus-visible .showcase-link span{
  background:#fff !important;
  color:#0b1118 !important;
  transform:translateX(0) !important;
  box-shadow:none !important;
}

.service-showcase .showcase-link:hover span,
.service-showcase .showcase-link:focus-visible span{
  background:var(--accent) !important;
  color:#111 !important;
  transform:translateX(8px) !important;
  box-shadow:0 10px 24px rgba(243,152,0,.24) !important;
}

.service-showcase:hover .showcase-copy,
.service-showcase:focus-visible .showcase-copy{
  transform:translateY(-50%) !important;
  box-shadow:none !important;
  background:transparent !important;
}

.topics-section,
footer{
  background:var(--sg-flat-bg) !important;
  border-top:0 !important;
}

@media (max-width:1100px){
  .showcase-image,
  .service-showcase.reverse .showcase-image{ width:74% !important; }
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{ width:min(41%, 440px) !important; right:4% !important; }
  .showcase-body{ font-size:16px !important; }
  .service-showcase::after{ width:74% !important; }
}

@media (max-width:820px){
  .service-showcase{ min-height:auto !important; }
  .showcase-image,
  .service-showcase.reverse .showcase-image{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    aspect-ratio:4 / 3 !important;
  }
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{
    position:absolute !important;
    left:20px !important;
    right:20px !important;
    bottom:18px !important;
    top:auto !important;
    transform:none !important;
    width:auto !important;
  }
  .service-showcase:hover .showcase-copy,
  .service-showcase:focus-visible .showcase-copy{ transform:none !important; }
  .showcase-tag{ font-size:38px !important; }
  .showcase-title{ font-size:26px !important; }
  .showcase-body{ font-size:15px !important; line-height:1.7 !important; }
  .service-showcase::after{ left:0 !important; width:100% !important; bottom:-20px !important; }
}

@media (max-width:640px){
  .showcase-copy,
  .service-showcase.reverse .showcase-copy{ left:16px !important; right:16px !important; bottom:16px !important; }
  .showcase-tag{ font-size:30px !important; }
  .showcase-title{ font-size:22px !important; }
  .showcase-body{ font-size:14px !important; }
  .showcase-link{ margin-top:18px !important; }
}


/* =========================================================
   SimGoya HP v1.5 - exact dark flat sections / bottom line only / alternating layout
   ========================================================= */
:root{
  --section-flat-bg:#020405;
  --section-line:rgba(255,255,255,.78);
  --arrow-accent:var(--accent-hover);
}

html, body,
main,
.section,
.service-showcase-section,
.company-showcase-section,
.topics-section,
footer{
  background:var(--section-flat-bg) !important;
}

.section,
.service-showcase-section,
.company-showcase-section,
.topics-section,
footer,
.after-hero-overlap,
.after-hero-overlap::before{
  border:none !important;
  box-shadow:none !important;
  background-image:none !important;
}

.after-hero-overlap{
  margin-top:-110px;
  padding-top:150px;
  background:var(--section-flat-bg) !important;
}

.service-showcase-section{
  padding:54px 0 34px !important;
}

.service-showcase{
  position:relative;
  min-height:560px;
  background:transparent !important;
  overflow:visible !important;
  isolation:isolate;
}

.service-showcase,
.service-showcase *{
  box-sizing:border-box;
}

.service-showcase::before,
.service-showcase::after,
.showcase-copy::before,
.showcase-copy::after,
.showcase-tag::before,
.showcase-tag::after,
.showcase-link::before{
  display:none !important;
  content:none !important;
}

.showcase-image,
.service-showcase.reverse .showcase-image,
.service-showcase.alt-layout .showcase-image{
  position:absolute;
  left:0;
  right:auto;
  top:26px;
  bottom:42px;
  width:70%;
  min-height:auto;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  clip-path:polygon(0 0, 88% 0, 100% 100%, 0 100%);
  overflow:hidden;
  isolation:isolate;
  z-index:1;
}

.service-showcase.alt-layout .showcase-image{
  left:auto;
  right:0;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 12% 100%);
}

.showcase-image::before,
.service-showcase.reverse .showcase-image::before,
.service-showcase.alt-layout .showcase-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.18));
  z-index:1;
}

.showcase-image::after,
.service-showcase.reverse .showcase-image::after,
.service-showcase.alt-layout .showcase-image::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  transform:scale(1.04);
  transform-origin:center center;
  animation:showcaseImageZoomStrong 18s ease-in-out infinite alternate;
  z-index:0;
}

@keyframes showcaseImageZoomStrong{
  0%{ transform:scale(1.04); }
  100%{ transform:scale(1.12); }
}

.showcase-copy,
.service-showcase.reverse .showcase-copy,
.service-showcase.alt-layout .showcase-copy{
  position:absolute;
  top:50%;
  right:2.5%;
  left:auto;
  transform:translateY(-50%);
  width:min(39%, 500px);
  padding:0 0 54px 0;
  background:transparent !important;
  box-shadow:none !important;
  z-index:2;
}

.service-showcase.alt-layout .showcase-copy{
  right:auto;
  left:4.5%;
}

.showcase-copy .showcase-bottom-line{
  display:none;
}

.showcase-copy::marker{ content:''; }

/* 下側の白線のみを境界線として使用 */
.showcase-copy{
  border-bottom:none !important;
}

.showcase-copy::after{
  display:block !important;
  content:"" !important;
  position:absolute;
  bottom:0;
  left:-150%;
  width:245%;
  height:1px;
  background:var(--section-line) !important;
}

.service-showcase.alt-layout .showcase-copy::after{
  left:auto;
  right:-150%;
  width:245%;
}

.showcase-tag{
  margin:0 0 16px;
  padding:0;
  color:#fff !important;
  font-size:clamp(58px, 5.1vw, 82px);
  font-weight:800;
  letter-spacing:.01em;
  line-height:.96;
}

.showcase-title{
  margin:0 0 20px;
  color:#fff !important;
  font-size:clamp(28px, 2.3vw, 46px);
  line-height:1.18;
}

.showcase-body{
  margin:0;
  color:rgba(255,255,255,.86) !important;
  font-size:18px;
  line-height:1.95;
  max-width:26em;
}

.showcase-meta{
  margin-top:14px;
}

.showcase-meta p{
  margin:0 0 7px;
  color:rgba(255,255,255,.74) !important;
  font-size:14px;
  line-height:1.7;
}

.showcase-link{
  display:inline-flex !important;
  align-items:center;
  gap:14px;
  margin-top:28px;
  color:#fff !important;
  font-weight:700;
  text-decoration:none !important;
}

.showcase-link span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:999px;
  background:#fff !important;
  color:#111 !important;
  transform:translateX(0) translateY(0) !important;
  transition:transform .22s ease, background .22s ease, color .22s ease !important;
}

.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--arrow-accent) !important;
  color:#111 !important;
  transform:translateX(7px) translateY(0) !important;
}

.showcase-link:hover,
.showcase-link:focus-visible{
  color:#fff !important;
  outline:none;
}

/* 旧hoverの残りを殺す */
.service-showcase:hover .showcase-link span,
.service-showcase:focus-within .showcase-link span{
  background:#fff;
  color:#111;
  transform:translateX(0) translateY(0);
}
.service-showcase .showcase-link:hover span,
.service-showcase .showcase-link:focus-visible span{
  background:var(--arrow-accent) !important;
  color:#111 !important;
  transform:translateX(7px) translateY(0) !important;
}

.topics-section{
  padding-top:54px;
  border-top:none !important;
}

@media (max-width: 1100px){
  .service-showcase{ min-height:500px; }
  .showcase-image,
  .service-showcase.alt-layout .showcase-image{ width:69%; }
  .showcase-copy,
  .service-showcase.alt-layout .showcase-copy{ width:min(40%, 440px); }
  .showcase-tag{ font-size:clamp(48px, 4.7vw, 68px); }
  .showcase-body{ font-size:16px; }
}

@media (max-width: 820px){
  .after-hero-overlap{ margin-top:-70px; padding-top:100px; }
  .service-showcase{ min-height:auto; padding-bottom:24px; }
  .showcase-image,
  .service-showcase.alt-layout .showcase-image{
    position:relative;
    left:auto;
    right:auto;
    top:0;
    bottom:auto;
    width:100%;
    aspect-ratio:4 / 3;
    clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%);
  }
  .service-showcase.alt-layout .showcase-image{
    clip-path:polygon(0 0, 100% 0, 100% 100%, 8% 100%);
  }
  .showcase-copy,
  .service-showcase.alt-layout .showcase-copy{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    transform:none;
    width:100%;
    margin-top:18px;
    padding:0 0 26px 0;
  }
  .showcase-copy::after,
  .service-showcase.alt-layout .showcase-copy::after{
    left:0;
    right:auto;
    width:100%;
  }
  .showcase-tag{ font-size:42px; }
  .showcase-title{ font-size:28px; }
  .showcase-body{ font-size:15px; line-height:1.75; }
}

@media (max-width: 640px){
  .service-showcase-section{ padding:38px 0 26px !important; }
  .showcase-tag{ font-size:32px; }
  .showcase-title{ font-size:23px; }
  .showcase-body{ font-size:14px; }
}


/* =========================================================
   SimGoya HP v1.6 - stronger hero zoom / bottom line below photo / true alternating layout
   ========================================================= */
:root{
  --section-flat-bg:#020405;
  --section-line:rgba(255,255,255,.82);
  --section-gap-bottom:26px;
}

html, body, main,
.section,
.service-showcase-section,
.company-showcase-section,
.topics-section,
footer,
.container,
.service-showcase{
  background-color:var(--section-flat-bg) !important;
  background-image:none !important;
}

.service-showcase-section,
.company-showcase-section{
  padding:48px 0 28px !important;
}

/* HERO: always zoom while crossfading */
.hero-bg-stack{ background:#000 !important; }
.hero-slide-bg{
  opacity:0 !important;
  transform:scale(1.02) !important;
  transition:opacity 1.2s ease-in-out !important;
  animation:none !important;
  will-change:transform, opacity;
}
.hero-slide-bg.is-active{
  opacity:1 !important;
  animation:heroSlideZoomStrong 9s linear forwards !important;
}
.hero-slide-bg::after{
  background:
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.28)),
    radial-gradient(ellipse at center, rgba(0,0,0,.04) 0%, rgba(0,0,0,.18) 70%, rgba(0,0,0,.34) 100%) !important;
}
@keyframes heroSlideZoomStrong{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.14); }
}

/* section card layout */
.service-showcase{
  position:relative;
  min-height:560px !important;
  overflow:visible !important;
}

/* remove old lines / shapes */
.service-showcase::before,
.showcase-copy::before,
.showcase-tag::before,
.showcase-tag::after,
.showcase-link::before,
.showcase-link::after,
.showcase-copy::after{
  display:none !important;
  content:none !important;
}

/* bottom boundary line only, below photo */
.service-showcase::after{
  content:"" !important;
  display:block !important;
  position:absolute;
  left:2%;
  right:2%;
  bottom:0;
  height:1px;
  background:var(--section-line) !important;
  z-index:0;
}

.showcase-image,
.service-showcase.alt-layout .showcase-image{
  position:absolute !important;
  top:22px !important;
  bottom:var(--section-gap-bottom) !important;
  width:67% !important;
  min-height:auto !important;
  overflow:hidden !important;
  background-color:#000 !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  z-index:1 !important;
}
.showcase-image{ left:2% !important; right:auto !important; clip-path:polygon(0 0, 87% 0, 100% 100%, 0 100%) !important; }
.service-showcase.alt-layout .showcase-image{ right:2% !important; left:auto !important; clip-path:polygon(0 0, 100% 0, 100% 100%, 13% 100%) !important; }

.showcase-image::before,
.service-showcase.alt-layout .showcase-image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.16)) !important;
  z-index:1 !important;
}
.showcase-image::after,
.service-showcase.alt-layout .showcase-image::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  transform:scale(1.03) !important;
  animation:showcaseImageZoomStrongV16 14s ease-in-out infinite alternate !important;
  z-index:0 !important;
  will-change:transform;
}
@keyframes showcaseImageZoomStrongV16{
  0%{ transform:scale(1.03); }
  100%{ transform:scale(1.14); }
}

/* copy positions truly alternate */
.showcase-copy,
.service-showcase.alt-layout .showcase-copy{
  position:absolute !important;
  top:50% !important;
  width:min(36%, 470px) !important;
  padding:0 0 42px 0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:translateY(-50%) !important;
  z-index:2 !important;
}
.showcase-copy{ right:4.5% !important; left:auto !important; text-align:left !important; }
.service-showcase.alt-layout .showcase-copy{ left:4.5% !important; right:auto !important; text-align:left !important; }

.showcase-tag{
  margin:0 0 18px !important;
  color:#fff !important;
  font-size:clamp(56px, 4.8vw, 80px) !important;
  font-weight:800 !important;
  line-height:.94 !important;
  letter-spacing:.01em !important;
}
.showcase-title{
  margin:0 0 20px !important;
  color:#fff !important;
  font-size:clamp(28px, 2.2vw, 44px) !important;
  line-height:1.2 !important;
}
.showcase-body{ color:rgba(255,255,255,.86) !important; font-size:18px !important; line-height:1.9 !important; }
.showcase-meta p{ color:rgba(255,255,255,.74) !important; }

.showcase-link{
  display:inline-flex !important;
  align-items:center !important;
  gap:14px !important;
  margin-top:26px !important;
  color:#fff !important;
  text-decoration:none !important;
}
.showcase-link span{
  width:48px !important;
  height:48px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#111 !important;
  transform:translateX(0) !important;
  transition:transform .22s ease, background .22s ease, color .22s ease !important;
}
.service-showcase:hover .showcase-link span,
.service-showcase:focus-within .showcase-link span{
  background:#fff !important;
  color:#111 !important;
  transform:translateX(0) !important;
}
.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--accent-hover) !important;
  color:#111 !important;
  transform:translateX(7px) !important;
}

@media (max-width: 1100px){
  .service-showcase{ min-height:500px !important; }
  .showcase-image,
  .service-showcase.alt-layout .showcase-image{ width:66% !important; }
  .showcase-copy,
  .service-showcase.alt-layout .showcase-copy{ width:min(37%, 420px) !important; }
  .showcase-tag{ font-size:clamp(48px, 4.6vw, 66px) !important; }
  .showcase-body{ font-size:16px !important; }
}

@media (max-width: 820px){
  .service-showcase-section{ padding:38px 0 22px !important; }
  .service-showcase{ min-height:auto !important; }
  .showcase-image,
  .service-showcase.alt-layout .showcase-image{
    position:relative !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    bottom:auto !important;
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%) !important;
  }
  .service-showcase.alt-layout .showcase-image{ clip-path:polygon(0 0, 100% 0, 100% 100%, 8% 100%) !important; }
  .showcase-copy,
  .service-showcase.alt-layout .showcase-copy{
    position:relative !important;
    top:auto !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    margin-top:18px !important;
    transform:none !important;
    padding:0 0 22px 0 !important;
  }
  .service-showcase::after{ left:0 !important; right:0 !important; }
}


/* =========================================================
   SimGoya HP v1.7 - hero container fix / link arrow hover fix
   ========================================================= */

/* v1.6で .container に背景色が当たり、ヒーロー中央に黒い矩形が出たため解除 */
.container,
.header .container,
.hero .container,
.hero-v10 .container,
.hero-v10 .hero-inner,
.hero-v10 .hero-stage,
.hero-copy-block,
.hero-copy-simple,
.hero-copy-v10{
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}

/* ヒーロー背景は画像レイヤーだけで描画 */
.hero-v10{
  background:#000 !important;
}
.hero-bg-stack,
.hero-slide-bg{
  background-color:#000 !important;
}
.hero-slide-bg{
  background-size:cover !important;
  background-position:center center !important;
}
.hero-slide-bg.is-active{
  opacity:1 !important;
  animation:heroSlideZoomStrongV17 9s linear forwards !important;
}
@keyframes heroSlideZoomStrongV17{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.13); }
}

/* 矢印は詳しく見るリンク自体に乗った時だけ反応 */
.showcase-link,
.showcase-link:link,
.showcase-link:visited{
  color:#fff !important;
  text-decoration:none !important;
}

.showcase-link span{
  background:#fff !important;
  color:#111 !important;
  transform:translate3d(0,0,0) !important;
  transition:transform .22s ease, background-color .22s ease, color .22s ease !important;
}

.service-showcase:hover .showcase-link span,
.service-showcase:focus-within .showcase-link span,
.showcase-copy:hover .showcase-link span{
  background:#fff !important;
  color:#111 !important;
  transform:translate3d(0,0,0) !important;
}

.showcase-link:hover span,
.showcase-link:focus-visible span,
.showcase-link:hover > span,
.showcase-link:focus-visible > span{
  background:var(--accent-hover) !important;
  background-color:var(--accent-hover) !important;
  color:#111 !important;
  transform:translate3d(8px,0,0) !important;
}

.showcase-link:hover,
.showcase-link:focus-visible{
  color:#fff !important;
  outline:none !important;
}


/* =========================================================
   SimGoya HP v1.7 - hero centering / english lines / arrow hover fix
   ========================================================= */
.hero .container,
.hero-inner.container,
.hero-stage,
.hero-inner,
.hero-copy-block,
.hero-copy-simple,
.hero-copy-v10{
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}

.hero-inner.container.hero-stage{
  max-width:1360px !important;
}

.hero-copy-v10{
  width:min(100%, 1120px) !important;
  margin:0 auto !important;
  padding-top:14vh !important;
  text-align:center !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
}

.hero-copy-v10 .hero-title-split{
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  text-align:center !important;
  margin:0 auto 22px !important;
}
.hero-copy-v10 .hero-title-line1,
.hero-copy-v10 .hero-title-line2{
  display:block !important;
  margin:0 !important;
  text-align:center !important;
  line-height:.95 !important;
}
.hero-copy-v10 .hero-title-line1{
  font-size:clamp(86px, 8vw, 146px) !important;
}
.hero-copy-v10 .hero-title-line2{
  font-size:clamp(72px, 6.8vw, 126px) !important;
}
.hero-copy-v10 .hero-sub{
  max-width:920px !important;
  margin:0 auto 10px !important;
  font-size:22px !important;
  line-height:1.8 !important;
  text-align:center !important;
  white-space:pre-line !important;
}
.hero-en{
  max-width:920px !important;
  margin:0 auto !important;
  color:rgba(255,255,255,.76) !important;
  font-size:15px !important;
  line-height:1.9 !important;
  letter-spacing:.02em !important;
  text-align:center !important;
}
.hero-link{
  margin-top:22px !important;
}

/* stronger hero image zoom and cleaner display */
.hero-bg-stack{ overflow:hidden !important; }
.hero-slide-bg{
  background-size:cover !important;
  background-position:center center !important;
  transform:scale(1.00) !important;
  opacity:0 !important;
}
.hero-slide-bg.is-active{
  opacity:1 !important;
  animation:heroSlideZoomV17 9.5s linear forwards !important;
}
.hero-slide-bg::after{
  background:
    linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.22)),
    radial-gradient(ellipse at center, rgba(0,0,0,.02) 0%, rgba(0,0,0,.12) 65%, rgba(0,0,0,.28) 100%) !important;
}
@keyframes heroSlideZoomV17{
  0%{ transform:scale(1.00); }
  100%{ transform:scale(1.16); }
}

.showcase-title,
.showcase-body,
.hero-sub{
  white-space:pre-line !important;
}

.showcase-body{
  margin:0 0 10px !important;
}
.showcase-en{
  margin:0 !important;
  color:rgba(255,255,255,.74) !important;
  font-size:14px !important;
  line-height:1.85 !important;
  letter-spacing:.01em !important;
}

/* arrow hover fix with stronger specificity */
a.showcase-link > span,
a.hero-link > span{
  background:#ffffff !important;
  color:#111111 !important;
  transform:translateX(0) !important;
  transition:transform .22s ease, background .22s ease, color .22s ease !important;
}
.service-showcase:hover a.showcase-link > span,
.service-showcase:focus-within a.showcase-link > span,
.hero-copy-v10:hover a.hero-link > span,
.hero-copy-v10:focus-within a.hero-link > span{
  background:#ffffff !important;
  color:#111111 !important;
  transform:translateX(0) !important;
}
a.showcase-link:hover > span,
a.showcase-link:focus-visible > span,
a.hero-link:hover > span,
a.hero-link:focus-visible > span{
  background:var(--accent-hover) !important;
  color:#111111 !important;
  transform:translateX(7px) !important;
}

@media (max-width: 1100px){
  .hero-copy-v10 .hero-title-line1{ font-size:clamp(74px, 9vw, 118px) !important; }
  .hero-copy-v10 .hero-title-line2{ font-size:clamp(62px, 7vw, 100px) !important; }
  .hero-copy-v10 .hero-sub{ font-size:19px !important; }
}

@media (max-width: 820px){
  .hero-copy-v10{ padding-top:11vh !important; }
  .hero-copy-v10 .hero-title-line1{ font-size:clamp(54px, 11vw, 90px) !important; }
  .hero-copy-v10 .hero-title-line2{ font-size:clamp(44px, 9vw, 74px) !important; }
  .hero-copy-v10 .hero-sub{ font-size:16px !important; }
  .hero-en,.showcase-en{ font-size:13px !important; }
}


/* =========================================================
   SimGoya HP v1.9 - hero title reposition / remove hero CTA / clear arrow hover / stronger hero zoom
   ========================================================= */
.hero-copy-v10{
  width:min(100%, 1180px) !important;
  min-height:78vh !important;
  padding-top:10vh !important;
  padding-bottom:10vh !important;
  justify-content:center !important;
}

.hero-copy-v10 .hero-title-split{
  margin:0 auto 26px !important;
  gap:2px !important;
}

.hero-copy-v10 .hero-title-line1{
  font-size:clamp(92px, 8.6vw, 154px) !important;
  line-height:.92 !important;
}
.hero-copy-v10 .hero-title-line2{
  font-size:clamp(68px, 6.2vw, 118px) !important;
  line-height:.94 !important;
  padding-left:0.55em !important;
}

.hero-copy-v10 .hero-sub{
  max-width:980px !important;
  font-size:23px !important;
  margin:0 auto 12px !important;
}
.hero-en{
  max-width:980px !important;
  font-size:16px !important;
}

/* remove any hero CTA spacing remnants */
.hero-link{ display:none !important; }

/* stronger / more obvious hero zoom */
.hero-bg-stack{ overflow:hidden !important; }
.hero-slide-bg,
.hero-slide-bg.hero-slide-bg-a,
.hero-slide-bg.hero-slide-bg-b{
  background-size:cover !important;
  background-position:center center !important;
  transform:scale(1.03) !important;
  transform-origin:center center !important;
  opacity:0 !important;
  will-change:transform, opacity !important;
}
.hero-slide-bg.is-active{
  opacity:1 !important;
  animation:heroZoomObviousV19 9s ease-out forwards !important;
}
@keyframes heroZoomObviousV19{
  0%{ transform:scale(1.03); }
  100%{ transform:scale(1.18); }
}

/* section image zoom more obvious too */
.showcase-image::after,
.service-showcase.alt-layout .showcase-image::after{
  animation:showcaseImageZoomV19 13s ease-in-out infinite alternate !important;
}
@keyframes showcaseImageZoomV19{
  0%{ transform:scale(1.04); }
  100%{ transform:scale(1.16); }
}

/* arrow hover: unmistakable orange + move right */
.showcase-link,
.showcase-link:link,
.showcase-link:visited,
.showcase-link:hover,
.showcase-link:focus-visible{
  color:#ffffff !important;
  text-decoration:none !important;
}

.showcase-link > span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:52px !important;
  height:52px !important;
  border-radius:999px !important;
  background:#ffffff !important;
  color:#111111 !important;
  box-shadow:none !important;
  transform:translateX(0) !important;
  transition:transform .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease !important;
}

/* cancel parent hover interference */
.service-showcase:hover .showcase-link > span,
.service-showcase:focus-within .showcase-link > span,
.showcase-copy:hover .showcase-link > span,
.showcase-copy:focus-within .showcase-link > span{
  background:#ffffff !important;
  color:#111111 !important;
  transform:translateX(0) !important;
  box-shadow:none !important;
}

.showcase-link:hover > span,
.showcase-link:focus-visible > span,
.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--accent) !important;
  background-color:var(--accent) !important;
  color:#111111 !important;
  transform:translateX(10px) !important;
  box-shadow:0 0 0 1px rgba(243,152,0,.12), 0 8px 22px rgba(243,152,0,.18) !important;
}

@media (max-width: 1100px){
  .hero-copy-v10 .hero-title-line1{ font-size:clamp(76px, 9vw, 126px) !important; }
  .hero-copy-v10 .hero-title-line2{ font-size:clamp(56px, 6.8vw, 94px) !important; padding-left:.4em !important; }
  .hero-copy-v10 .hero-sub{ font-size:20px !important; }
}

@media (max-width: 820px){
  .hero-copy-v10{ min-height:70vh !important; padding-top:8vh !important; }
  .hero-copy-v10 .hero-title-line1{ font-size:clamp(56px, 11vw, 92px) !important; }
  .hero-copy-v10 .hero-title-line2{ font-size:clamp(42px, 8.8vw, 70px) !important; padding-left:.22em !important; }
  .hero-copy-v10 .hero-sub{ font-size:16px !important; }
  .hero-en{ font-size:13px !important; }
}


/* =========================================================
   SimGoya HP v1.10 - v1.0 reference arrow motion + reliable zoom restore
   ========================================================= */

/* --- HERO zoom / crossfade: revert to v1.0-style CSS animation --- */
.hero-bg-stack{
  position:absolute !important;
  inset:0 !important;
  overflow:hidden !important;
  z-index:0 !important;
}

.hero-slide-bg,
.hero-slide-bg.is-active,
.hero-slide-bg.hero-slide-bg-a,
.hero-slide-bg.hero-slide-bg-b{
  position:absolute !important;
  inset:0 !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  opacity:0 !important;
  transform:scale(1.03) !important;
  animation:heroCrossfadeZoomV110 22s ease-in-out infinite !important;
  will-change:transform, opacity !important;
}
.hero-slide-bg.hero-slide-bg-a{ animation-delay:0s !important; }
.hero-slide-bg.hero-slide-bg-b{ animation-delay:11s !important; }

.hero-slide-bg::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    linear-gradient(180deg, rgba(5,8,12,.24), rgba(5,8,12,.48)),
    radial-gradient(ellipse at center, rgba(12,18,28,.14) 0%, rgba(5,8,12,.46) 72%, rgba(5,8,12,.72) 100%) !important;
}

@keyframes heroCrossfadeZoomV110{
  0%{ opacity:0; transform:scale(1.03); }
  8%{ opacity:1; }
  42%{ opacity:1; transform:scale(1.12); }
  50%{ opacity:0; transform:scale(1.14); }
  100%{ opacity:0; transform:scale(1.14); }
}

/* --- Section image zoom: make it obvious and always running --- */
.showcase-image::after,
.service-showcase.alt-layout .showcase-image::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  transform:scale(1.02) !important;
  animation:showcaseImageZoomV110 17s ease-in-out infinite alternate !important;
  will-change:transform !important;
  z-index:0 !important;
}
.showcase-image::before,
.service-showcase.alt-layout .showcase-image::before{
  z-index:1 !important;
}
@keyframes showcaseImageZoomV110{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.10); }
}

/* --- Arrow motion: use v1.0 motion feel, but trigger only on link hover --- */
.showcase-link,
.showcase-link:link,
.showcase-link:visited,
.showcase-link:hover,
.showcase-link:focus-visible{
  color:#fff !important;
  text-decoration:none !important;
}

.showcase-link > span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:42px !important;
  height:42px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#0b1118 !important;
  transform:translateX(0) !important;
  transition:transform .22s ease, background .22s ease, color .22s ease !important;
  box-shadow:none !important;
}

/* never react just because panel/photo is hovered */
.service-showcase:hover .showcase-link > span,
.service-showcase:focus-visible .showcase-link > span,
.service-showcase:focus-within .showcase-link > span,
.showcase-copy:hover .showcase-link > span,
.showcase-copy:focus-within .showcase-link > span{
  background:#fff !important;
  color:#0b1118 !important;
  transform:translateX(0) !important;
  box-shadow:none !important;
}

/* actual desired behavior: orange + move right */
.service-showcase .showcase-link:hover > span,
.service-showcase .showcase-link:focus-visible > span,
.service-showcase .showcase-link:hover span,
.service-showcase .showcase-link:focus-visible span{
  background:var(--accent) !important;
  color:#111 !important;
  transform:translateX(6px) !important;
  box-shadow:none !important;
}

@media (prefers-reduced-motion: reduce){
  .hero-slide-bg,
  .hero-slide-bg.is-active,
  .hero-slide-bg.hero-slide-bg-a,
  .hero-slide-bg.hero-slide-bg-b,
  .showcase-image::after,
  .service-showcase.alt-layout .showcase-image::after{
    animation:none !important;
    transform:scale(1.03) !important;
  }
}

/* =========================================================
   SimGoya HP v1.11 - v1.0 arrow behavior + reliable CSS zoom + lightbox
   ========================================================= */

/* 1) 詳しく見る → : v1.0の白丸→オレンジ右移動を、リンクhoverだけで発火 */
.showcase-link,
.showcase-link:link,
.showcase-link:visited,
.showcase-link:hover,
.showcase-link:focus-visible {
  color: #fff !important;
  text-decoration: none !important;
}

.showcase-link > span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #0b1118 !important;
  transform: translateX(0) !important;
  transition: transform .22s ease, background .22s ease, color .22s ease !important;
  box-shadow: none !important;
}

/* 親要素hoverでは反応させない */
.service-showcase:hover .showcase-link > span,
.service-showcase:focus-within .showcase-link > span,
.showcase-copy:hover .showcase-link > span,
.showcase-copy:focus-within .showcase-link > span {
  background: #fff !important;
  color: #0b1118 !important;
  transform: translateX(0) !important;
  box-shadow: none !important;
}

/* リンクそのものに乗った時だけ反応 */
.service-showcase .showcase-copy .showcase-link:hover > span,
.service-showcase .showcase-copy .showcase-link:focus-visible > span,
.service-showcase .showcase-link:hover > span,
.service-showcase .showcase-link:focus-visible > span {
  background: var(--accent) !important;
  color: #111 !important;
  transform: translateX(6px) !important;
  box-shadow: none !important;
}

/* 2) 大型ヒーロー: v1.0ベースのcrossfade + slow zoomを再適用 */
.hero-bg-stack {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  overflow: hidden !important;
}

.hero-slide-bg,
.hero-slide-bg.is-active,
.hero-slide-bg.hero-slide-bg-a,
.hero-slide-bg.hero-slide-bg-b {
  position: absolute !important;
  inset: 0 !important;
  background-image: var(--card-bg) !important;
  background-size: cover !important;
  background-position: center center !important;
  opacity: 0 !important;
  transform: scale(1.03) !important;
  animation: heroCrossfadeZoomV111 22s ease-in-out infinite !important;
  will-change: transform, opacity !important;
}

.hero-slide-bg.hero-slide-bg-a { animation-delay: 0s !important; }
.hero-slide-bg.hero-slide-bg-b { animation-delay: 11s !important; }

.hero-slide-bg::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    linear-gradient(180deg, rgba(5,8,12,.24), rgba(5,8,12,.48)),
    radial-gradient(ellipse at center, rgba(12,18,28,.14) 0%, rgba(5,8,12,.46) 72%, rgba(5,8,12,.72) 100%) !important;
}

@keyframes heroCrossfadeZoomV111 {
  0%   { opacity: 0; transform: scale(1.03); }
  8%   { opacity: 1; }
  42%  { opacity: 1; transform: scale(1.12); }
  50%  { opacity: 0; transform: scale(1.14); }
  100% { opacity: 0; transform: scale(1.14); }
}

/* 3) 各項目画像: 背景画像をpseudo側で確実にズーム */
.showcase-image,
.service-showcase.alt-layout .showcase-image {
  overflow: hidden !important;
  cursor: zoom-in;
}

.showcase-image::after,
.service-showcase.alt-layout .showcase-image::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: var(--card-bg) !important;
  background-size: cover !important;
  background-position: center center !important;
  transform: scale(1.02) !important;
  animation: showcaseImageZoomV111 17s ease-in-out infinite alternate !important;
  will-change: transform !important;
  z-index: 0 !important;
}

.showcase-image::before,
.service-showcase.alt-layout .showcase-image::before {
  z-index: 1 !important;
}

@keyframes showcaseImageZoomV111 {
  0%   { transform: scale(1.02); }
  100% { transform: scale(1.10); }
}

/* =========================================================
   Image Zoom Overlay - v1.11
   ========================================================= */
#img-zoom-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(5, 8, 12, 0.88);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.25s ease;
}

#img-zoom-overlay.is-open {
  display: flex;
  opacity: 1;
}

#img-zoom-box {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
}

#img-zoom-img {
  max-width: 90vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 4px;
  display: block;
}

#img-zoom-close {
  position: absolute;
  top: -16px;
  right: -16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: #fff;
  color: #111;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}

#img-zoom-close:hover,
#img-zoom-close:focus-visible {
  background: var(--accent);
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide-bg,
  .hero-slide-bg.is-active,
  .hero-slide-bg.hero-slide-bg-a,
  .hero-slide-bg.hero-slide-bg-b,
  .showcase-image::after,
  .service-showcase.alt-layout .showcase-image::after {
    animation: none !important;
    transform: scale(1.03) !important;
  }
}


/* =========================================================
   SimGoya HP v1.12 - hero image visible / craft uses hero.jpg / force zoom
   ========================================================= */

/* Hero images are set directly and by CSS variables. This avoids the black fallback. */
.hero-bg-stack{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  overflow:hidden !important;
  background:#000 !important;
}

.hero-slide-bg,
.hero-slide-bg.is-active,
.hero-slide-bg.hero-slide-bg-a,
.hero-slide-bg.hero-slide-bg-b{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  opacity:0 !important;
  visibility:visible !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  transform:scale(1.02) !important;
  animation:heroCrossfadeZoomV112 20s ease-in-out infinite !important;
  will-change:transform, opacity !important;
}

.hero-slide-bg.hero-slide-bg-a{
  background-image:var(--hero-bg-1, url("../img/hero.jpg")) !important;
  animation-delay:0s !important;
}

.hero-slide-bg.hero-slide-bg-b{
  background-image:var(--hero-bg-2, url("../img/hero-secondary-user.jpg")) !important;
  animation-delay:10s !important;
}

.hero-slide-bg::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.30)),
    radial-gradient(ellipse at center, rgba(0,0,0,.02) 0%, rgba(0,0,0,.18) 72%, rgba(0,0,0,.36) 100%) !important;
}

@keyframes heroCrossfadeZoomV112{
  0%{ opacity:0; transform:scale(1.02); }
  7%{ opacity:1; }
  43%{ opacity:1; transform:scale(1.14); }
  50%{ opacity:0; transform:scale(1.16); }
  100%{ opacity:0; transform:scale(1.16); }
}

.hero-v10 .hero-inner.hero-stage,
.hero-inner.container.hero-stage{
  position:relative !important;
  z-index:2 !important;
  background:transparent !important;
}

/* HOME CRAFT SIM now uses hero.jpg; keep animation visible on every showcase. */
.showcase-image,
.service-showcase.alt-layout .showcase-image{
  overflow:hidden !important;
  background-image:none !important;
  background-color:#000 !important;
  cursor:zoom-in;
}

.showcase-image::after,
.service-showcase.alt-layout .showcase-image::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  transform:scale(1.02) !important;
  animation:showcaseImageZoomV112 14s ease-in-out infinite alternate !important;
  will-change:transform !important;
  z-index:0 !important;
}

.showcase-image::before,
.service-showcase.alt-layout .showcase-image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.18)) !important;
}

@keyframes showcaseImageZoomV112{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.14); }
}

/* Keep arrow fix explicit. */
.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--accent) !important;
  color:#111 !important;
  transform:translateX(6px) !important;
}

/* Even if OS/browser reduced-motion is enabled, keep these marketing animations running for confirmation. */
@media (prefers-reduced-motion: reduce){
  .hero-slide-bg,
  .hero-slide-bg.is-active,
  .hero-slide-bg.hero-slide-bg-a,
  .hero-slide-bg.hero-slide-bg-b{
    animation:heroCrossfadeZoomV112 20s ease-in-out infinite !important;
  }
  .showcase-image::after,
  .service-showcase.alt-layout .showcase-image::after{
    animation:showcaseImageZoomV112 14s ease-in-out infinite alternate !important;
  }
}


/* =========================================================
   SimGoya HP v1.13 - hero JS-control fix / title line alignment
   ========================================================= */

/* Hero slideshow: JSの is-active 制御へ統一する。 */
.hero-bg-stack{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  overflow:hidden !important;
  background:#000 !important;
}

.hero-slide-bg,
.hero-slide-bg.hero-slide-bg-a,
.hero-slide-bg.hero-slide-bg-b{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  transform:scale(1.02) !important;
  transition:opacity 1.6s ease-in-out !important;
  animation:none !important;
  will-change:transform, opacity !important;
}

.hero-slide-bg.hero-slide-bg-a{
  background-image:var(--hero-bg-1, url("../img/hero.jpg")) !important;
}

.hero-slide-bg.hero-slide-bg-b{
  background-image:var(--hero-bg-2, url("../img/hero-secondary-user.jpg")) !important;
}

.hero-slide-bg.is-active{
  opacity:1 !important;
  animation:heroSlideZoomV113 9s ease-out forwards !important;
}

@keyframes heroSlideZoomV113{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.14); }
}

.hero-slide-bg::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.30)),
    radial-gradient(ellipse at center, rgba(0,0,0,.02) 0%, rgba(0,0,0,.18) 72%, rgba(0,0,0,.36) 100%) !important;
}

.hero-v10 .hero-inner.hero-stage,
.hero-inner.container.hero-stage{
  position:relative !important;
  z-index:2 !important;
  background:transparent !important;
}

/* Hero title: 2行目の先頭を1行目の「に」の下付近へ合わせる。 */
.hero-copy-v10 .hero-title-split{
  display:inline-block !important;
  width:auto !important;
  max-width:none !important;
  margin:0 auto 26px !important;
  text-align:left !important;
  font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-weight:900 !important;
  line-height:.94 !important;
}

.hero-copy-v10 .hero-title-line1,
.hero-copy-v10 .hero-title-line2{
  display:block !important;
  white-space:nowrap !important;
  text-align:left !important;
  margin:0 !important;
  padding:0 !important;
  font-family:inherit !important;
  font-weight:inherit !important;
}

.hero-copy-v10 .hero-title-line2{
  margin-left:2.65em !important;
}

@media (max-width: 1100px){
  .hero-copy-v10 .hero-title-line2{
    margin-left:2.35em !important;
  }
}

@media (max-width: 820px){
  .hero-copy-v10 .hero-title-line2{
    margin-left:1.7em !important;
  }
}

/* HOME CRAFT SIM remains hero.jpg and every showcase image keeps slow zoom. */
.showcase-image,
.service-showcase.alt-layout .showcase-image{
  overflow:hidden !important;
  background-image:none !important;
  background-color:#000 !important;
  cursor:zoom-in;
}

.showcase-image::after,
.service-showcase.alt-layout .showcase-image::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  background-image:var(--card-bg) !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  transform:scale(1.02) !important;
  animation:showcaseImageZoomV113 14s ease-in-out infinite alternate !important;
  will-change:transform !important;
  z-index:0 !important;
}

.showcase-image::before,
.service-showcase.alt-layout .showcase-image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.18)) !important;
}

@keyframes showcaseImageZoomV113{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.14); }
}

/* Arrow hover:現行HTML構造では、a.showcase-link自体をhover対象にする。 */
.showcase-link:hover span,
.showcase-link:focus-visible span{
  background:var(--accent) !important;
  color:#111 !important;
  transform:translateX(6px) !important;
}


/* =========================================================
   SimGoya HP v1.14 - Lightbox source fix / hero title line gap
   ========================================================= */

/* 2行見出しの詰まりを緩和 */
.hero-copy-v10 .hero-title-split{
  gap:24px !important;
}

.hero-copy-v10 .hero-title-line1,
.hero-copy-v10 .hero-title-line2{
  line-height:1.02 !important;
}

/* 2行目の開始位置は「に」の下付近を維持しつつ、少し余白を持たせる */
.hero-copy-v10 .hero-title-line2{
  padding-left:.72em !important;
}

/* Lightbox用に背景画像要素をクリック可能に保つ */
.hero-slide-bg,
.showcase-image{
  pointer-events:auto !important;
}

/* showcaseのクリック拡大とリンククリックが干渉しないようリンクを前面に固定 */
.showcase-link{
  position:relative !important;
  z-index:5 !important;
}

@media (max-width: 1100px){
  .hero-copy-v10 .hero-title-split{ gap:20px !important; }
  .hero-copy-v10 .hero-title-line2{ padding-left:.55em !important; }
}

@media (max-width: 820px){
  .hero-copy-v10 .hero-title-split{ gap:14px !important; }
  .hero-copy-v10 .hero-title-line2{ padding-left:.28em !important; }
}


/* =========================================================
   SimGoya HP v1.15 - hero title gap fine tune
   ========================================================= */

/* inline-block構成では gap が効きにくいため、2行目に直接余白を付ける */
.hero-copy-v10 .hero-title-line2{
  margin-top:.16em !important;
}

@media (max-width: 1100px){
  .hero-copy-v10 .hero-title-line2{ margin-top:.14em !important; }
}

@media (max-width: 820px){
  .hero-copy-v10 .hero-title-line2{ margin-top:.10em !important; }
}


/* =========================================================
   SimGoya HP v1.16 - scroll focus zoom, not click zoom
   ========================================================= */

/* Click lightbox is disabled. Images should not show zoom-in cursor. */
.showcase-image,
.hero-slide-bg,
.gallery-img,
.company-img,
img[data-zoomable]{
  cursor:default !important;
}

#img-zoom-overlay{
  display:none !important;
}

/* HERO: page focus image zoom. The active slide keeps slowly moving while visible. */
.hero .hero-slide-bg,
.hero .hero-slide-bg.hero-slide-bg-a,
.hero .hero-slide-bg.hero-slide-bg-b{
  background-size:cover !important;
  background-position:center center !important;
  transform:scale(1.02) !important;
  will-change:transform, opacity !important;
}

.hero.is-inview .hero-slide-bg.is-active{
  animation:heroScrollFocusZoomV116 10s ease-out forwards !important;
}

@keyframes heroScrollFocusZoomV116{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.15); }
}

/* SERVICE: zoom starts when the section reaches the viewport focus area. */
.showcase-image,
.service-showcase.alt-layout .showcase-image{
  overflow:hidden !important;
}

.showcase-image::after,
.service-showcase.alt-layout .showcase-image::after{
  animation:none !important;
  transform:scale(1.02) !important;
  transition:transform 4.8s cubic-bezier(.16, .84, .24, 1) !important;
  will-change:transform !important;
}

.service-showcase.is-inview .showcase-image::after,
.service-showcase.alt-layout.is-inview .showcase-image::after{
  transform:scale(1.14) !important;
}

/* Make the effect visible even after previous patch animations. */
.scroll-focus-zoom-ready .service-showcase:not(.is-inview) .showcase-image::after{
  transform:scale(1.02) !important;
}

.scroll-focus-zoom-ready .service-showcase.is-inview .showcase-image::after{
  transform:scale(1.14) !important;
}

/* Keep title gap from the previous version. */
.hero-copy-v10 .hero-title-split{
  gap:.18em !important;
}
.hero-copy-v10 .hero-title-line2{
  margin-top:.12em !important;
}


/* =========================================================
   SimGoya HP v1.17 - mixed hero title size / JS controlled hero zoom
   ========================================================= */

/* Hero title: hiragana 90px, everything else 110px on desktop */
.hero-title-mixed,
.hero-title-mixed span{
  font-family:"Noto Serif JP", serif !important;
  font-weight:900 !important;
}

.hero-title-mixed{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:28px !important;
  line-height:1 !important;
}

.hero-title-mixed .hero-title-line{
  display:block !important;
  white-space:nowrap !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
}

.hero-title-mixed .hero-title-kana{
  display:inline-block !important;
  font-size:90px !important;
  line-height:1 !important;
}

.hero-title-mixed .hero-title-other{
  display:inline-block !important;
  font-size:110px !important;
  line-height:1 !important;
}

/* Put the second line around the first line's 「に」 position */
.hero-title-mixed .hero-title-line2{
  transform:translateX(1.35em) !important;
  margin-top:0 !important;
}

/* HERO zoom is controlled by JS in v1.17.
   Disable older CSS animations that were competing with inline state. */
.hero-slide-bg,
.hero-slide-bg.hero-slide-bg-a,
.hero-slide-bg.hero-slide-bg-b,
.hero-slide-bg.is-active{
  animation:none !important;
  transition:opacity 1.25s ease-in-out !important;
  will-change:transform, opacity !important;
  transform-origin:center center !important;
}

.hero-bg-stack{
  overflow:hidden !important;
}

/* Keep service scroll-focus zoom from v1.16 */
.service-showcase.is-inview .showcase-image::after,
.service-showcase.alt-layout.is-inview .showcase-image::after{
  transform:scale(1.14) !important;
}

@media (max-width: 1100px){
  .hero-title-mixed{ gap:24px !important; }
  .hero-title-mixed .hero-title-kana{ font-size:74px !important; }
  .hero-title-mixed .hero-title-other{ font-size:92px !important; }
  .hero-title-mixed .hero-title-line2{ transform:translateX(1.15em) !important; }
}

@media (max-width: 820px){
  .hero-title-mixed{ gap:18px !important; }
  .hero-title-mixed .hero-title-kana{ font-size:48px !important; }
  .hero-title-mixed .hero-title-other{ font-size:62px !important; }
  .hero-title-mixed .hero-title-line2{ transform:translateX(.55em) !important; }
}


/* =========================================================
   SimGoya HP v1.18 - Hero crossfade reset guard
   ========================================================= */
.hero-slide-bg,
.hero-slide-bg.is-active{
  transition:none !important;
  animation:none !important;
}


/* =========================================================
   SimGoya HP v1.19 - Hero title up / initial logo 1.5x
   ========================================================= */

/* ヒーロー見出しを現在位置から少し上へ */
.hero-copy-v10{
  transform:translateY(-6vh) !important;
}

/* 2行目の「という選択肢。」位置は維持 */
.hero-title-mixed .hero-title-line2{
  transform:translateX(1.35em) !important;
}

/* ヒーロー表示中のロゴを約1.5倍へ拡大。スクロール後は従来サイズを維持。 */
.brand img{
  height:144px !important;
  filter:drop-shadow(0 14px 28px rgba(0,0,0,.74)) !important;
}

body.is-scrolled .brand img{
  height:58px !important;
}

@media (max-width: 1100px){
  .hero-copy-v10{
    transform:translateY(-5vh) !important;
  }
  .brand img{
    height:124px !important;
  }
  body.is-scrolled .brand img{
    height:54px !important;
  }
  .hero-title-mixed .hero-title-line2{
    transform:translateX(1.15em) !important;
  }
}

@media (max-width: 820px){
  .hero-copy-v10{
    transform:translateY(-3vh) !important;
  }
  .brand img,
  body.is-scrolled .brand img{
    height:64px !important;
  }
  .hero-title-mixed .hero-title-line2{
    transform:translateX(.55em) !important;
  }
}


/* =========================================================
   SimGoya HP v1.20 - English mega menu / simple topics
   ========================================================= */
.header{
  overflow:visible !important;
  z-index:1000 !important;
}
.header-inner{
  position:relative !important;
  overflow:visible !important;
}

/* English top menu */
.nav.mega-nav{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:18px !important;
  overflow:visible !important;
}
.nav.mega-nav .nav-item{
  position:static !important;
  display:flex !important;
  align-items:center !important;
}
.nav.mega-nav .nav-link{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  min-height:42px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:rgba(255,255,255,.90) !important;
  font-size:14px !important;
  font-weight:700 !important;
  letter-spacing:.02em !important;
  text-shadow:0 2px 10px rgba(0,0,0,.75) !important;
}
.nav.mega-nav .nav-link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  height:2px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .22s ease;
}
.nav.mega-nav .nav-item:hover .nav-link,
.nav.mega-nav .nav-link:focus-visible{
  color:var(--accent) !important;
}
.nav.mega-nav .nav-item:hover .nav-link::after,
.nav.mega-nav .nav-link:focus-visible::after{
  transform:scaleX(1);
}

/* slide-down mega menu */
.mega-panel{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  z-index:900 !important;
  padding:calc(var(--header-h, 96px) + 18px) 0 30px !important;
  background:linear-gradient(180deg, rgba(3,5,7,.97), rgba(3,5,7,.93)) !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.46) !important;
  transform:translateY(-112%) !important;
  opacity:0 !important;
  pointer-events:none !important;
  transition:transform .34s ease, opacity .24s ease !important;
  backdrop-filter:blur(14px) !important;
}
.nav.mega-nav .nav-item:hover .mega-panel,
.nav.mega-nav .nav-item:focus-within .mega-panel{
  transform:translateY(0) !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
.mega-inner{
  width:min(1180px, calc(100% - 56px));
  margin:0 auto;
}
.mega-kicker{
  margin:0 0 16px;
  color:var(--accent);
  font-size:13px;
  font-weight:800;
  letter-spacing:.18em;
}
.mega-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px 18px;
}
.mega-grid.compact{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.mega-grid a{
  display:block !important;
  padding:16px 0 14px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  border-bottom:1px solid rgba(255,255,255,.16) !important;
  color:#fff !important;
  transition:border-color .2s ease, color .2s ease, transform .2s ease !important;
}
.mega-grid a strong{
  display:block;
  margin:0 0 7px;
  font-size:17px;
  line-height:1.4;
  color:rgba(255,255,255,.96);
}
.mega-grid a span{
  display:block;
  color:rgba(255,255,255,.58);
  font-size:13px;
  line-height:1.65;
}
.mega-grid a:hover,
.mega-grid a:focus-visible{
  transform:translateY(-2px) !important;
  border-bottom-color:var(--accent) !important;
}
.mega-grid a:hover strong,
.mega-grid a:focus-visible strong{
  color:var(--accent);
}

/* Topics: no frames, simple list */
.topics-section{
  background:#020405 !important;
  padding-top:68px !important;
}
.topics-head{
  align-items:flex-end !important;
  border-bottom:1px solid rgba(255,255,255,.20) !important;
  padding-bottom:16px !important;
  margin-bottom:0 !important;
}
.topics-note{
  display:none !important;
}
.topics{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
}
.topics-item{
  display:grid !important;
  grid-template-columns:150px 1fr !important;
  gap:24px !important;
  align-items:center !important;
  padding:20px 0 !important;
  border:0 !important;
  border-radius:0 !important;
  border-bottom:1px solid rgba(255,255,255,.13) !important;
  background:transparent !important;
}
.topics-date{
  width:auto !important;
  color:rgba(255,255,255,.56) !important;
  font-size:13px !important;
}
.topics-title,
.topics-link{
  color:rgba(255,255,255,.88) !important;
  border-bottom:0 !important;
  font-weight:700 !important;
}
.topics-link:hover{
  color:var(--accent) !important;
}

@media (max-width: 980px){
  .nav.mega-nav{
    justify-content:flex-start !important;
    overflow-x:auto !important;
    gap:18px !important;
    width:100% !important;
  }
  .mega-panel{
    display:none !important;
  }
  .nav.mega-nav .nav-link{
    white-space:nowrap !important;
  }
  .topics-item{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
}


/* =========================================================
   SimGoya HP v1.21 - Mega menu below nav, never covering top menu
   ========================================================= */
:root{
  --mega-menu-top:96px;
  --mega-menu-top-scrolled:76px;
}

.header{
  z-index:1400 !important;
  pointer-events:auto !important;
  isolation:isolate !important;
}
.header-inner,
.nav.mega-nav,
.nav.mega-nav .nav-item,
.nav.mega-nav .nav-link{
  z-index:1410 !important;
  pointer-events:auto !important;
}

/* メガメニューは最上メニューの下から出す。ナビ自体には被せない。 */
.mega-panel{
  top:var(--mega-menu-top) !important;
  z-index:1050 !important;
  padding:26px 0 30px !important;
  transform:translateY(-22px) !important;
  opacity:0 !important;
  pointer-events:none !important;
}
body.is-scrolled .mega-panel{
  top:var(--mega-menu-top-scrolled) !important;
}

.nav.mega-nav .nav-item:hover .mega-panel,
.nav.mega-nav .nav-item:focus-within .mega-panel{
  transform:translateY(0) !important;
  opacity:1 !important;
  pointer-events:auto !important;
}

/* メニューへ移動しやすいよう、パネル上端に薄い余白を作る */
.mega-panel::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-18px;
  height:18px;
  background:transparent;
}

@media (max-width:980px){
  .mega-panel{
    display:none !important;
  }
}

/* =========================================================
   SimGoya HP v1.22 - unified header + crafted inner pages
   ========================================================= */
.header,
body.is-scrolled .header{
  background:linear-gradient(180deg, rgba(3,5,7,.97), rgba(3,5,7,.93)) !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
}

.page-hero-section{
  padding:calc(var(--header-h, 96px) + 34px) 0 56px;
  background:var(--flat-section-bg, #010912) !important;
}

.page-hero-composite{
  display:grid;
  grid-template-columns:minmax(0, 1.12fr) minmax(320px, .88fr);
  align-items:stretch;
  min-height:540px;
  gap:0;
}

.page-hero-media{
  position:relative;
  min-height:540px;
  overflow:hidden;
  clip-path:polygon(0 0, 88% 0, 100% 100%, 0 100%);
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  isolation:isolate;
}
.page-hero-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.16), rgba(0,0,0,.05) 58%, rgba(0,0,0,.28));
  z-index:1;
}
.page-hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--card-bg);
  background-size:cover;
  background-position:center center;
  animation:showcaseImageZoom 18s ease-in-out infinite alternate;
  transform:scale(1.03);
  z-index:0;
}

.page-hero-copy{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:32px 0 32px 48px;
}
.page-hero-copy::before{
  content:"";
  position:absolute;
  left:48px;
  right:0;
  top:24px;
  height:1px;
  background:rgba(255,255,255,.76);
}
.page-kicker{
  margin:0 0 20px;
  padding-top:30px;
  color:var(--accent);
  font-size:13px;
  font-weight:800;
  letter-spacing:.18em;
}
.page-title{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(32px, 3.6vw, 58px);
  line-height:1.12;
  letter-spacing:.01em;
}
.page-lead,
.page-en,
.page-body{
  max-width:34em;
}
.page-lead{
  margin:0 0 16px;
  color:rgba(255,255,255,.92);
  font-size:18px;
  line-height:1.9;
}
.page-body{
  margin:0 0 14px;
  color:rgba(255,255,255,.80);
  font-size:15px;
  line-height:1.95;
}
.page-en{
  margin:10px 0 0;
  color:rgba(255,255,255,.58);
  font-size:14px;
  line-height:1.8;
}
.page-point-list{
  margin:24px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
  max-width:34em;
}
.page-point-list li{
  position:relative;
  padding-left:18px;
  color:rgba(255,255,255,.78);
  line-height:1.8;
}
.page-point-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.8em;
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--accent);
}
.detail-anchor-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
  margin-top:26px;
}
.detail-anchor-grid a{
  display:block;
  padding:16px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
  color:#fff;
  font-weight:700;
  transition:transform .18s ease, border-color .18s ease, color .18s ease;
}
.detail-anchor-grid a span{
  display:block;
  margin-top:6px;
  color:rgba(255,255,255,.55);
  font-size:12px;
  font-weight:500;
  line-height:1.7;
}
.detail-anchor-grid a:hover,
.detail-anchor-grid a:focus-visible{
  color:var(--accent);
  border-bottom-color:var(--accent);
  transform:translateY(-2px);
}
.info-plain-list{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.info-plain-list li{
  color:rgba(255,255,255,.80);
  line-height:1.8;
}
.inline-note{
  margin-top:14px;
  color:rgba(255,255,255,.54);
  font-size:12px;
  line-height:1.7;
}
.pricing-inline-list{
  margin:22px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.pricing-inline-list li{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:0 0 10px;
  border-bottom:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.84);
  line-height:1.75;
}
.pricing-inline-list strong{
  color:#fff;
  font-size:15px;
}
.contact-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}
.contact-card-simple{
  padding:28px 0;
  border-top:1px solid rgba(255,255,255,.14);
}
.contact-card-simple h3{
  margin:0 0 12px;
  font-size:24px;
}
.contact-card-simple p{
  margin:0 0 8px;
  color:rgba(255,255,255,.82);
  line-height:1.9;
}
.contact-form-static{
  margin-top:8px;
  display:grid;
  gap:14px;
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.field{
  display:grid;
  gap:8px;
}
.field label{
  color:rgba(255,255,255,.72);
  font-size:13px;
  letter-spacing:.06em;
}
.field input,
.field textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  color:#fff;
  border-radius:14px;
  padding:14px 16px;
  font:inherit;
}
.field textarea{
  min-height:180px;
  resize:vertical;
}
.gallery-wall{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
  margin-top:22px;
}
.gallery-wall .card-image{
  aspect-ratio:16/10;
}
.gallery-wall .card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

@media (max-width: 1100px){
  .page-hero-composite,
  .contact-layout,
  .detail-anchor-grid,
  .gallery-wall{
    grid-template-columns:1fr 1fr;
  }
  .page-hero-media{
    min-height:460px;
  }
}
@media (max-width: 820px){
  .page-hero-composite,
  .contact-layout,
  .form-grid,
  .detail-anchor-grid,
  .gallery-wall{
    grid-template-columns:1fr;
  }
  .page-hero-media{
    min-height:340px;
    clip-path:none;
  }
  .page-hero-copy{
    padding:24px 0 0;
  }
  .page-hero-copy::before{
    left:0;
  }
}

/* =========================================================
   SimGoya HP v1.23 - header only dark when mega open / simple linked pages
   ========================================================= */
/* 通常時は v1.21 相当の薄い透過ヘッダー。メガメニュー表示時だけ黒背景へ。 */
.header,
body.is-scrolled .header{
  background:linear-gradient(180deg, rgba(3,5,7,.30), rgba(3,5,7,.10)) !important;
  border-bottom:1px solid rgba(255,255,255,.04) !important;
  box-shadow:none !important;
  backdrop-filter:blur(8px) !important;
}
body.mega-open .header,
.header:has(.nav.mega-nav .nav-item:hover),
.header:has(.nav.mega-nav .nav-item:focus-within){
  background:linear-gradient(180deg, rgba(3,5,7,.98), rgba(3,5,7,.94)) !important;
  border-bottom:1px solid rgba(255,255,255,.09) !important;
  box-shadow:0 16px 46px rgba(0,0,0,.32) !important;
}

.linked-page main{
  background:var(--flat-section-bg, #010912) !important;
}
.linked-hero{
  padding:calc(var(--header-h, 96px) + 34px) 0 62px;
  background:var(--flat-section-bg, #010912) !important;
}
.linked-hero-inner{
  display:grid;
  grid-template-columns:minmax(0, .98fr) minmax(360px, .72fr);
  gap:34px;
  align-items:center;
}
.linked-hero-image{
  position:relative;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:#000;
  clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%);
}
.linked-hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.05), rgba(0,0,0,.18));
  pointer-events:none;
}
.linked-hero-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
}
.linked-hero-copy{
  position:relative;
  padding-top:28px;
}
.linked-hero-copy::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background:rgba(255,255,255,.72);
}
.linked-kicker{
  margin:0 0 18px;
  color:var(--accent);
  font-size:13px;
  font-weight:800;
  letter-spacing:.18em;
}
.linked-hero-copy h1{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(44px, 5.6vw, 86px);
  line-height:.98;
  letter-spacing:.02em;
}
.linked-hero-copy p{
  margin:0 0 12px;
  max-width:38em;
  color:rgba(255,255,255,.82);
  font-size:14px;
  line-height:1.9;
}
.linked-hero-copy .linked-en{
  color:rgba(255,255,255,.55);
  font-size:12px;
  line-height:1.75;
}
.linked-anchor-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 18px;
  margin-top:24px;
}
.linked-anchor-list a{
  display:block;
  padding:12px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.03em;
  transition:color .18s ease, border-color .18s ease, transform .18s ease;
}
.linked-anchor-list a span{
  display:block;
  margin-top:5px;
  color:rgba(255,255,255,.48);
  font-size:11px;
  font-weight:500;
  line-height:1.6;
  letter-spacing:0;
}
.linked-anchor-list a:hover,
.linked-anchor-list a:focus-visible{
  color:var(--accent);
  border-color:var(--accent);
  transform:translateY(-2px);
}
.linked-detail-section{
  padding:62px 0 70px;
  background:var(--flat-section-bg, #010912) !important;
  border-top:0 !important;
}
.linked-copy-row{
  display:grid;
  grid-template-columns:minmax(220px, .55fr) minmax(0, 1fr);
  gap:34px;
  align-items:start;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.20);
}
.linked-copy-row h2{
  margin:0;
  color:#fff;
  font-size:clamp(26px, 3vw, 48px);
  line-height:1.15;
}
.linked-text{
  display:grid;
  gap:10px;
}
.linked-text p{
  margin:0;
  color:rgba(255,255,255,.76);
  font-size:13px;
  line-height:1.95;
}
.detail-image-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
  margin-top:30px;
}
.detail-image-card{
  margin:0;
  min-width:0;
}
.detail-image-button{
  display:block;
  width:100%;
  padding:0;
  border:1px solid rgba(255,255,255,.10);
  background:#000;
  aspect-ratio:16/9;
  overflow:hidden;
  cursor:zoom-in;
}
.detail-image-button img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.82;
  transition:opacity .2s ease, transform .35s ease;
}
.detail-image-button:hover img,
.detail-image-button:focus-visible img{
  opacity:1;
  transform:scale(1.045);
}
.detail-image-card figcaption{
  padding:12px 0 0;
  color:rgba(255,255,255,.62);
  font-size:12px;
  line-height:1.75;
}
.detail-image-card figcaption strong{
  display:block;
  margin-bottom:3px;
  color:rgba(255,255,255,.88);
  font-size:13px;
  line-height:1.45;
}
.detail-image-card figcaption span{
  display:block;
}
/* 旧ページ用のHOME風ショーケースを下層では消す。 */
.linked-page .service-showcase-section,
.linked-page .page-hero-section{
  display:none !important;
}

/* Image click-up overlay */
.image-zoom-overlay-v123{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px;
  background:rgba(0,0,0,.86);
  z-index:3000;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.image-zoom-overlay-v123.is-open{
  opacity:1;
  pointer-events:auto;
}
.image-zoom-box-v123{
  position:relative;
  max-width:min(92vw, 1320px);
  max-height:88vh;
}
.image-zoom-box-v123 img{
  display:block;
  max-width:100%;
  max-height:88vh;
  object-fit:contain;
  box-shadow:0 26px 80px rgba(0,0,0,.55);
}
.image-zoom-close-v123{
  position:absolute;
  top:-18px;
  right:-18px;
  width:42px;
  height:42px;
  border:0;
  border-radius:999px;
  background:#fff;
  color:#111;
  font-size:18px;
  cursor:pointer;
}
.image-zoom-caption-v123{
  margin-top:12px;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.7;
}

@media (max-width:1100px){
  .linked-hero-inner,
  .linked-copy-row{
    grid-template-columns:1fr;
  }
  .detail-image-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}
@media (max-width:820px){
  .linked-hero{
    padding-top:calc(var(--header-h-small, 74px) + 26px);
  }
  .linked-hero-image{
    clip-path:none;
  }
  .linked-hero-copy h1{
    font-size:clamp(40px, 12vw, 64px);
  }
  .linked-anchor-list,
  .detail-image-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:560px){
  .linked-anchor-list,
  .detail-image-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   SimGoya HP v1.24 - menu layer behavior + simpler linked pages
   ========================================================= */

/* HOME normal: no line between top menu and hero */
body:not(.mega-open) .header,
body:not(.mega-open).is-scrolled .header{
  background:linear-gradient(180deg, rgba(3,5,7,.18), rgba(3,5,7,.05)) !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}

/* Mega open: black layer behind top navigation only while menu is open */
body.mega-open .header,
.header:has(.nav.mega-nav .nav-item:hover),
.header:has(.nav.mega-nav .nav-item:focus-within){
  background:linear-gradient(180deg, rgba(3,5,7,.99), rgba(3,5,7,.96)) !important;
  border-bottom:0 !important;
  box-shadow:0 18px 48px rgba(0,0,0,.36) !important;
}

/* Header stays above the mega menu. Mega menu starts from the layer below. */
.header{
  z-index:2200 !important;
  overflow:visible !important;
}
.header-inner{
  position:relative !important;
  z-index:2300 !important;
}
.mega-panel{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:var(--header-h, 96px) !important;
  z-index:2100 !important;
  transform:translateY(-115%) !important;
  opacity:0 !important;
  pointer-events:none !important;
  background:linear-gradient(180deg, rgba(3,5,7,.98), rgba(3,5,7,.94)) !important;
  border-top:0 !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
  transition:transform .34s cubic-bezier(.22,.75,.18,1), opacity .24s ease !important;
}
.nav-item:hover > .mega-panel,
.nav-item:focus-within > .mega-panel{
  transform:translateY(0) !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
.mega-panel::before{
  display:none !important;
}

/* When mega menu opens, hide the large hero logo and fade in a small logo on the menu layer. */
.header::after{
  content:"";
  position:fixed;
  left:clamp(18px, 4.8vw, 70px);
  top:14px;
  width:168px;
  height:62px;
  background:url("../img/logo.png") no-repeat left center / contain;
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .22s ease, transform .22s ease;
  pointer-events:none;
  z-index:2400;
}
body.mega-open .header::after,
.header:has(.nav.mega-nav .nav-item:hover)::after,
.header:has(.nav.mega-nav .nav-item:focus-within)::after{
  opacity:1;
  transform:translateY(0);
}
body.mega-open .brand img,
.header:has(.nav.mega-nav .nav-item:hover) .brand img,
.header:has(.nav.mega-nav .nav-item:focus-within) .brand img{
  opacity:0 !important;
}

/* Linked pages: logo is always compact; header behavior remains consistent. */
body.linked-page .brand img,
body.linked-page.is-scrolled .brand img{
  height:58px !important;
  max-height:58px !important;
  opacity:1;
}
body.linked-page.mega-open .brand img,
body.linked-page .header:has(.nav.mega-nav .nav-item:hover) .brand img,
body.linked-page .header:has(.nav.mega-nav .nav-item:focus-within) .brand img{
  opacity:0 !important;
}
body.linked-page .header::after{
  width:150px;
  height:56px;
  top:12px;
}

/* Linked-page top layout: image + title/catch/body/en, no view-more icon. */
.linked-page main{
  background:var(--flat-section-bg, #010912) !important;
}
.linked-hero{
  min-height:620px;
  padding:calc(var(--header-h, 96px) + 46px) 0 74px !important;
  background:var(--flat-section-bg, #010912) !important;
}
.linked-hero-inner{
  display:grid !important;
  grid-template-columns:minmax(0, 1.04fr) minmax(360px, .76fr) !important;
  gap:46px !important;
  align-items:center !important;
}
.linked-hero-image{
  position:relative !important;
  aspect-ratio:16/9 !important;
  overflow:hidden !important;
  background:#000 !important;
  clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%) !important;
}
.linked-hero-image img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
  opacity:.86 !important;
  transform:scale(1.02) !important;
}
.linked-hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.04), rgba(0,0,0,.24));
  pointer-events:none;
}
.linked-hero-copy{
  position:relative !important;
  padding-top:28px !important;
}
.linked-hero-copy::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  height:1px !important;
  background:rgba(255,255,255,.78) !important;
}
.linked-kicker{
  margin:0 0 16px !important;
  color:var(--accent) !important;
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:.18em !important;
}
.linked-hero-copy h1{
  margin:0 0 18px !important;
  color:#fff !important;
  font-size:clamp(42px, 5vw, 76px) !important;
  line-height:1.02 !important;
  letter-spacing:.03em !important;
}
.linked-catch{
  color:#fff !important;
  font-size:clamp(20px, 2vw, 30px) !important;
  font-weight:800 !important;
  line-height:1.45 !important;
  margin:0 0 18px !important;
}
.linked-hero-copy p{
  margin:0 0 12px !important;
  max-width:40em !important;
  color:rgba(255,255,255,.76) !important;
  font-size:13px !important;
  line-height:1.95 !important;
}
.linked-hero-copy .linked-en{
  color:rgba(255,255,255,.52) !important;
  font-size:12px !important;
  line-height:1.7 !important;
}

/* No anchor grid on linked top pages for v1.24 */
.linked-anchor-list{
  display:none !important;
}

/* Simpler explanation row + horizontal image cards */
.linked-detail-section{
  padding:64px 0 72px !important;
  background:var(--flat-section-bg, #010912) !important;
  border-top:0 !important;
}
.linked-copy-row{
  display:grid !important;
  grid-template-columns:minmax(180px, .34fr) minmax(0, 1fr) !important;
  gap:34px !important;
  align-items:start !important;
  padding-top:22px !important;
  border-top:1px solid rgba(255,255,255,.16) !important;
}
.linked-copy-row h2{
  margin:0 !important;
  color:#fff !important;
  font-size:clamp(22px, 2.4vw, 40px) !important;
  line-height:1.18 !important;
}
.linked-text{
  display:grid !important;
  gap:8px !important;
}
.linked-text p{
  margin:0 !important;
  color:rgba(255,255,255,.68) !important;
  font-size:13px !important;
  line-height:1.9 !important;
}
.detail-image-grid{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
  gap:14px !important;
  margin-top:30px !important;
}
.detail-image-card{
  margin:0 !important;
  min-width:0 !important;
}
.detail-image-button{
  display:block !important;
  width:100% !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.08) !important;
  background:#000 !important;
  aspect-ratio:16/9 !important;
  overflow:hidden !important;
  cursor:zoom-in !important;
}
.detail-image-button img{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:cover !important;
  opacity:.78 !important;
  transition:opacity .22s ease, transform .36s ease !important;
}
.detail-image-button:hover img,
.detail-image-button:focus-visible img{
  opacity:1 !important;
  transform:scale(1.04) !important;
}
.detail-image-card figcaption{
  padding:10px 2px 0 !important;
  color:rgba(255,255,255,.50) !important;
  font-size:11px !important;
  line-height:1.65 !important;
}
.detail-image-card figcaption strong{
  display:block !important;
  margin-bottom:3px !important;
  color:rgba(255,255,255,.78) !important;
  font-size:12px !important;
  line-height:1.45 !important;
}
.detail-image-card figcaption span{
  display:block !important;
}

/* Hide old HOME-style lower-page showcase remnants if any remain. */
.linked-page .service-showcase-section,
.linked-page .page-hero-section,
.linked-page .gallery-wall,
.linked-page .contact-layout{
  display:none !important;
}

@media (max-width:1180px){
  .detail-image-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width:900px){
  .linked-hero-inner,
  .linked-copy-row{
    grid-template-columns:1fr !important;
  }
  .linked-hero-image{
    clip-path:none !important;
  }
  .detail-image-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width:560px){
  .detail-image-grid{
    grid-template-columns:1fr !important;
  }
  .linked-hero{
    padding-top:calc(var(--header-h-small, 74px) + 32px) !important;
  }
}

/* =========================================================
   SimGoya HP v1.25 - restore transparent hero-overlaid header / compact menu
   ========================================================= */

/* 通常時は、v1.21までのようにヒーロー上へ透過で重なる見え方へ戻す。 */
body:not(.mega-open) .header,
body:not(.mega-open).is-scrolled .header{
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* 旧パッチ由来の境界線・帯を確実に消す。 */
body:not(.mega-open) .header::before{
  display:none !important;
  content:none !important;
}
body:not(.mega-open) .mega-panel{
  border-top:0 !important;
}

/* メニュー項目はHOME構成に合わせて5項目へ。間隔は少しゆったり。 */
.nav.mega-nav{
  gap:24px !important;
}
.nav.mega-nav .nav-link{
  min-height:42px !important;
  color:rgba(255,255,255,.92) !important;
  text-shadow:0 2px 12px rgba(0,0,0,.82) !important;
}
.nav.mega-nav .nav-item:hover .nav-link,
.nav.mega-nav .nav-link:focus-visible{
  color:var(--accent) !important;
}

/* メガメニュー表示中だけ、最上メニュー裏に黒い背景を入れる。 */
body.mega-open .header,
.header:has(.nav.mega-nav .nav-item:hover),
.header:has(.nav.mega-nav .nav-item:focus-within){
  background:linear-gradient(180deg, rgba(3,5,7,.99), rgba(3,5,7,.96)) !important;
  border-bottom:0 !important;
  box-shadow:0 18px 48px rgba(0,0,0,.36) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* メガメニューは最上メニューの一つ下のレイヤーから差し込む。 */
.mega-panel{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:var(--header-h, 96px) !important;
  z-index:2100 !important;
  padding:28px 0 32px !important;
  background:linear-gradient(180deg, rgba(3,5,7,.985), rgba(3,5,7,.945)) !important;
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:0 30px 74px rgba(0,0,0,.46) !important;
  transform:translateY(-108%) !important;
  opacity:0 !important;
  pointer-events:none !important;
  transition:transform .36s cubic-bezier(.22,.75,.18,1), opacity .24s ease !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.nav.mega-nav .nav-item:hover .mega-panel,
.nav.mega-nav .nav-item:focus-within .mega-panel,
.nav-item:hover > .mega-panel,
.nav-item:focus-within > .mega-panel{
  transform:translateY(0) !important;
  opacity:1 !important;
  pointer-events:auto !important;
}

/* 上部メニューに戻りやすくするため、パネル上端の透明領域は残す。 */
.mega-panel::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:-18px !important;
  height:18px !important;
  background:transparent !important;
}

/* メガメニュー表示中だけ小さいロゴをフェードイン。通常時は表示しない。 */
.header::after{
  opacity:0 !important;
  pointer-events:none !important;
}
body.mega-open .header::after,
.header:has(.nav.mega-nav .nav-item:hover)::after,
.header:has(.nav.mega-nav .nav-item:focus-within)::after{
  opacity:1 !important;
}

/* 通常時のロゴはこれまで通り表示。メガメニュー時のみ奥へ隠す。 */
body:not(.mega-open) .brand img{
  opacity:1 !important;
}
body.mega-open .brand img,
.header:has(.nav.mega-nav .nav-item:hover) .brand img,
.header:has(.nav.mega-nav .nav-item:focus-within) .brand img{
  opacity:0 !important;
}

@media (max-width:980px){
  .nav.mega-nav{
    gap:18px !important;
  }
  .mega-panel{
    display:none !important;
  }
}

/* =========================================================
   SimGoya HP v1.26 - split ABOUT / CONTACT and tune hero logo
   ========================================================= */
.nav.mega-nav{
  gap:22px !important;
}

/* v1.19の144pxより少しだけ小さくする */
body:not(.is-scrolled):not(.mega-open) .brand img{
  height:132px !important;
  max-height:132px !important;
}

body.is-scrolled .brand img,
body.mega-open .brand img,
.header:has(.nav.mega-nav .nav-item:hover) .brand img,
.header:has(.nav.mega-nav .nav-item:focus-within) .brand img{
  height:58px !important;
  max-height:58px !important;
}

/* =========================================================
   SimGoya HP v1.27 - CRAFT SIM dedicated page
   ========================================================= */
body.linked-page main{
  background:#010912 !important;
}

.craft-hero{
  min-height:680px;
  padding:calc(var(--header-h, 96px) + 46px) 0 78px;
  background:#010912;
}
.craft-hero-inner{
  display:grid;
  grid-template-columns:minmax(0, 1.04fr) minmax(360px, .78fr);
  gap:46px;
  align-items:center;
}
.craft-hero-image{
  position:relative;
  overflow:hidden;
  background:#000;
  clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%);
}
.craft-hero-image .detail-image-button{
  aspect-ratio:16/9 !important;
  border:0 !important;
  background:#000 !important;
}
.craft-hero-image img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  opacity:.88 !important;
  transform:scale(1.01);
}
.craft-hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.04), rgba(0,0,0,.30));
  pointer-events:none;
}
.craft-hero-copy{
  position:relative;
  padding-top:30px;
}
.craft-hero-copy::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:rgba(255,255,255,.78);
}
.craft-hero-copy h1{
  margin:0 0 22px;
  color:#fff;
  font-size:clamp(34px, 4.5vw, 72px);
  line-height:1.15;
  letter-spacing:.015em;
}
.craft-lead{
  margin:0 0 14px;
  max-width:42em;
  color:rgba(255,255,255,.84);
  font-size:15px;
  line-height:1.95;
}
.craft-section{
  padding:72px 0;
  background:#010912;
  border-top:0 !important;
}
.craft-section + .craft-section{
  padding-top:54px;
}
.craft-copy-block{
  max-width:920px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.16);
}
.craft-copy-block h2{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(26px, 3vw, 46px);
  line-height:1.25;
}
.craft-copy-block p:not(.linked-kicker){
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:14px;
  line-height:2;
}
.craft-heading-row{
  border-top:1px solid rgba(255,255,255,.16) !important;
}
.craft-point-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  margin-top:34px;
}
.craft-point-card{
  margin:0;
  min-width:0;
}
.craft-point-card .detail-image-button{
  border:1px solid rgba(255,255,255,.10) !important;
  aspect-ratio:4/3 !important;
}
.craft-point-card .detail-image-button img{
  opacity:.82 !important;
}
.craft-point-card figcaption{
  padding:18px 0 0;
}
.craft-point-number{
  display:block;
  color:var(--accent);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  margin-bottom:8px;
}
.craft-point-card strong{
  display:block;
  color:#fff;
  font-size:24px;
  letter-spacing:.08em;
  line-height:1.2;
}
.craft-point-card em{
  display:block;
  margin-top:10px;
  color:rgba(255,255,255,.88);
  font-size:16px;
  font-style:normal;
  font-weight:800;
  line-height:1.6;
}
.craft-point-card p{
  margin:12px 0 0;
  color:rgba(255,255,255,.58);
  font-size:12px;
  line-height:1.85;
}
.craft-product-card{
  display:grid;
  grid-template-columns:minmax(0, .86fr) minmax(360px, 1fr);
  gap:42px;
  align-items:center;
  margin-top:42px;
  padding-top:42px;
  border-top:1px solid rgba(255,255,255,.10);
}
.craft-product-card.reverse{
  grid-template-columns:minmax(360px, 1fr) minmax(0, .86fr);
}
.craft-product-card.reverse .craft-product-image{
  order:2;
}
.craft-product-card.reverse .craft-product-copy{
  order:1;
}
.craft-product-image .detail-image-button{
  aspect-ratio:16/10 !important;
  background:#f5f5f5 !important;
  border:1px solid rgba(255,255,255,.12) !important;
}
.craft-product-image img{
  object-fit:contain !important;
  padding:18px;
  opacity:1 !important;
  background:#f5f5f5;
}
.craft-product-copy h3{
  margin:0 0 16px;
  color:#fff;
  font-size:clamp(24px, 2.4vw, 40px);
  line-height:1.35;
}
.craft-price{
  margin:0 0 22px;
  color:var(--accent);
  font-size:clamp(22px, 2vw, 32px);
  font-weight:900;
  line-height:1.35;
}
.craft-price span{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.86);
  font-size:16px;
  font-weight:800;
}
.craft-product-copy p:not(.linked-kicker):not(.craft-price){
  margin:0 0 14px;
  color:rgba(255,255,255,.72);
  font-size:13px;
  line-height:1.95;
}
.craft-note-list{
  margin:20px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
}
.craft-note-list li{
  position:relative;
  padding-left:15px;
  color:rgba(255,255,255,.48);
  font-size:11px;
  line-height:1.75;
}
.craft-note-list li::before{
  content:"※";
  position:absolute;
  left:0;
  color:rgba(255,255,255,.42);
}
.craft-software-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}
.craft-software-list span{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 16px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:800;
  letter-spacing:.03em;
  background:rgba(255,255,255,.025);
}
.craft-contact-strip{
  padding-bottom:100px;
}
.craft-contact-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:34px 0 0;
  border-top:1px solid rgba(255,255,255,.16);
}
.craft-contact-box h2{
  margin:0 0 10px;
  color:#fff;
  font-size:clamp(26px, 3vw, 44px);
}
.craft-contact-box p:not(.linked-kicker){
  margin:0;
  color:rgba(255,255,255,.66);
  line-height:1.9;
}

@media (max-width:1100px){
  .craft-hero-inner,
  .craft-product-card,
  .craft-product-card.reverse{
    grid-template-columns:1fr;
  }
  .craft-product-card.reverse .craft-product-image,
  .craft-product-card.reverse .craft-product-copy{
    order:initial;
  }
  .craft-point-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:760px){
  .craft-hero{
    padding-top:calc(var(--header-h-small, 74px) + 34px);
  }
  .craft-hero-image{
    clip-path:none;
  }
  .craft-contact-box{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =========================================================
   SimGoya HP v1.28 - Noto Serif JP Black title system / mobile hierarchy
   ========================================================= */

/*
  タイトル・キャッチコピー系は Noto Serif JP Black 相当に統一。
  本文は可読性を優先して従来のゴシック系を維持。
*/
:root{
  --font-serif-black:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "YuMincho", serif;
}

.hero-title,
.hero-title-split,
.hero-title-mixed,
.hero-title-mixed span,
.hero-copy-v10 .hero-title-split,
.page-title,
.linked-hero-title,
.linked-copy-row h2,
.linked-kicker,
.craft-hero-copy h1,
.craft-copy-block h2,
.craft-heading-row h2,
.craft-point-card strong,
.craft-point-card em,
.craft-product-copy h3,
.craft-price,
.craft-contact-box h2,
.showcase-title,
.h2{
  font-family:var(--font-serif-black) !important;
  font-weight:900 !important;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"palt" 1;
}

/* 英字見出しは少し締める。 */
.linked-kicker,
.craft-point-card strong{
  letter-spacing:.10em !important;
}

/* CRAFT SIMページ：PCでも見出しと本文の階層を明確にする。 */
.craft-hero-copy h1{
  letter-spacing:.012em !important;
  line-height:1.12 !important;
}

.craft-copy-block h2,
.craft-heading-row h2,
.craft-contact-box h2{
  letter-spacing:.01em !important;
  line-height:1.20 !important;
}

.craft-product-copy h3{
  letter-spacing:.01em !important;
  line-height:1.28 !important;
}

.craft-price{
  display:block !important;
  letter-spacing:.01em !important;
  line-height:1.24 !important;
}

/* 商品価格はスマホでも目に留まるよう、軽い情報ブロックとして扱う。 */
.craft-product-copy .craft-price{
  padding:14px 0 14px 16px !important;
  border-left:3px solid var(--accent) !important;
  background:linear-gradient(90deg, rgba(243,152,0,.10), rgba(243,152,0,0)) !important;
}

/* スマホ表示：見出し、説明、価格、注意書きのメリハリを強化 */
@media (max-width:760px){
  body{
    font-size:15px;
  }

  .container{
    width:min(100% - 28px, var(--max)) !important;
  }

  .craft-hero{
    min-height:auto !important;
    padding-top:calc(var(--header-h-small, 74px) + 24px) !important;
    padding-bottom:46px !important;
  }

  .craft-hero-inner{
    gap:26px !important;
  }

  .craft-hero-image .detail-image-button{
    aspect-ratio:16/10 !important;
  }

  .craft-hero-copy{
    padding-top:22px !important;
  }

  .craft-hero-copy::before{
    opacity:.72 !important;
  }

  .craft-hero-copy h1{
    margin-bottom:18px !important;
    font-size:clamp(34px, 10.8vw, 48px) !important;
    line-height:1.14 !important;
    letter-spacing:.005em !important;
  }

  .craft-lead{
    font-size:14.5px !important;
    line-height:1.92 !important;
    color:rgba(255,255,255,.82) !important;
  }

  .linked-en{
    margin-top:14px !important;
    font-size:12.5px !important;
    line-height:1.8 !important;
    color:rgba(255,255,255,.54) !important;
  }

  .linked-kicker{
    margin-bottom:12px !important;
    color:var(--accent) !important;
    font-size:11px !important;
    line-height:1.2 !important;
    letter-spacing:.18em !important;
  }

  .craft-section{
    padding:48px 0 !important;
  }

  .craft-section + .craft-section{
    padding-top:40px !important;
  }

  .craft-copy-block{
    padding-top:20px !important;
  }

  .craft-copy-block h2,
  .craft-heading-row h2,
  .craft-contact-box h2{
    margin-bottom:16px !important;
    font-size:clamp(27px, 8vw, 38px) !important;
    line-height:1.25 !important;
  }

  .craft-copy-block p:not(.linked-kicker),
  .linked-text p{
    font-size:13.5px !important;
    line-height:1.95 !important;
    color:rgba(255,255,255,.72) !important;
  }

  .linked-copy-row{
    gap:18px !important;
  }

  .craft-heading-row{
    padding-top:20px !important;
  }

  .craft-point-grid{
    gap:34px !important;
    margin-top:28px !important;
  }

  .craft-point-card figcaption{
    padding-top:16px !important;
  }

  .craft-point-number{
    font-size:11px !important;
    margin-bottom:8px !important;
  }

  .craft-point-card strong{
    font-size:26px !important;
    line-height:1.08 !important;
    color:#fff !important;
  }

  .craft-point-card em{
    margin-top:12px !important;
    font-size:18px !important;
    line-height:1.55 !important;
    color:rgba(255,255,255,.92) !important;
  }

  .craft-point-card p{
    margin-top:10px !important;
    font-size:13.5px !important;
    line-height:1.9 !important;
    color:rgba(255,255,255,.62) !important;
  }

  .craft-product-card,
  .craft-product-card.reverse{
    gap:24px !important;
    margin-top:34px !important;
    padding-top:34px !important;
  }

  .craft-product-copy h3{
    margin-bottom:16px !important;
    font-size:clamp(27px, 8vw, 38px) !important;
    line-height:1.30 !important;
  }

  .craft-product-copy .craft-price{
    margin:0 0 20px !important;
    font-size:clamp(24px, 7.8vw, 34px) !important;
  }

  .craft-price span{
    margin-top:6px !important;
    font-size:14px !important;
    line-height:1.45 !important;
    color:rgba(255,255,255,.86) !important;
  }

  .craft-product-copy p:not(.linked-kicker):not(.craft-price){
    font-size:13.5px !important;
    line-height:1.95 !important;
    color:rgba(255,255,255,.72) !important;
  }

  .craft-note-list{
    margin-top:18px !important;
    gap:7px !important;
  }

  .craft-note-list li{
    font-size:11.5px !important;
    line-height:1.75 !important;
    color:rgba(255,255,255,.48) !important;
  }

  .craft-software-list{
    gap:8px !important;
    margin-top:22px !important;
  }

  .craft-software-list span{
    min-height:36px !important;
    padding:0 13px !important;
    font-size:11px !important;
  }

  .craft-contact-strip{
    padding-bottom:70px !important;
  }

  .craft-contact-box{
    padding-top:26px !important;
    gap:18px !important;
  }

  .showcase-link{
    align-self:flex-start !important;
  }
}

/* さらに狭いスマホでは、見出しを詰めすぎず本文と分離する。 */
@media (max-width:420px){
  .craft-hero-copy h1{
    font-size:clamp(31px, 11.2vw, 42px) !important;
  }

  .craft-copy-block h2,
  .craft-heading-row h2,
  .craft-product-copy h3,
  .craft-contact-box h2{
    font-size:clamp(25px, 8.8vw, 34px) !important;
  }

  .craft-point-card strong{
    font-size:24px !important;
  }

  .craft-point-card em{
    font-size:16.5px !important;
  }

  .craft-product-image img{
    padding:12px !important;
  }
}


/* =========================================================
   SimGoya HP v1.29 - CRAFT SIM line breaks / linked logo fix
   ========================================================= */
/* リンク先ページでは、HOMEのようにロゴを大型化しない。 */
body.linked-page:not(.mega-open) .brand img,
body.linked-page:not(.is-scrolled):not(.mega-open) .brand img,
body.linked-page.is-scrolled .brand img{
  height:58px !important;
  max-height:58px !important;
  opacity:1 !important;
}

/* CRAFT SIMヒーローのキャッチコピーは少し小さくし、指定改行を前提に読みやすくする。 */
body.linked-page .craft-hero-copy h1{
  font-size:clamp(34px, 3.9vw, 64px) !important;
  line-height:1.18 !important;
  letter-spacing:.008em !important;
}

body.linked-page .craft-copy-block h2{
  line-height:1.28 !important;
}

body.linked-page .craft-product-copy h3{
  line-height:1.34 !important;
}

@media (max-width:760px){
  body.linked-page .brand img,
  body.linked-page:not(.is-scrolled):not(.mega-open) .brand img,
  body.linked-page.is-scrolled .brand img{
    height:52px !important;
    max-height:52px !important;
  }

  body.linked-page .craft-hero-copy h1{
    font-size:clamp(30px, 9.4vw, 43px) !important;
    line-height:1.22 !important;
    margin-bottom:18px !important;
  }

  body.linked-page .craft-copy-block h2,
  body.linked-page .craft-product-copy h3{
    line-height:1.38 !important;
  }
}

@media (max-width:420px){
  body.linked-page .craft-hero-copy h1{
    font-size:clamp(29px, 9.8vw, 40px) !important;
    line-height:1.24 !important;
  }
}

/* =========================================================
   SimGoya HP v1.31 - CRAFT SIM hero slideshow / image naming
   ========================================================= */
.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;
}

.craft-hero-image.craft-hero-slideshow{
  min-height:auto !important;
}

.craft-hero-image .craft-hero-zoom{
  position:relative !important;
  display:block !important;
  width:100% !important;
  aspect-ratio:16 / 9 !important;
  overflow:hidden !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:#000 !important;
  cursor:zoom-in !important;
  appearance:none !important;
}

.craft-hero-slide{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  opacity:0;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  transform:scale(1.02);
  will-change:opacity, transform;
}

.craft-hero-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.04), rgba(0,0,0,.30));
  pointer-events:none;
}

.craft-hero-image.craft-hero-slideshow::after{
  display:none !important;
}

.craft-hero-slide.is-active{
  opacity:1;
}

@media (max-width:760px){
  .craft-hero-image .craft-hero-zoom{
    aspect-ratio:16 / 10 !important;
  }
}

/* =========================================================
   SimGoya HP v1.32 - CRAFT SIM point/product sliders
   ========================================================= */
.craft-slider{
  position:relative;
  width:100%;
}
.craft-slider-viewport{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#000;
  border:1px solid rgba(255,255,255,.12);
}
.craft-slider-zoom{
  display:block;
  width:100%;
  height:100%;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  cursor:zoom-in;
  appearance:none;
}
.craft-slider-zoom img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.9;
  transition:opacity .22s ease, transform .35s ease;
}
.craft-slider-zoom:hover img,
.craft-slider-zoom:focus-visible img{
  opacity:1;
  transform:scale(1.018);
}
.craft-point-slider .craft-slider-viewport{
  aspect-ratio:4 / 3;
}
.craft-product-slider .craft-slider-viewport{
  aspect-ratio:16 / 10;
  background:#f5f5f5;
}
.craft-product-slider .craft-slider-zoom img{
  object-fit:contain;
  padding:18px;
  background:#f5f5f5;
  opacity:1;
}
.craft-slider-arrow{
  position:absolute;
  top:50%;
  z-index:4;
  width:42px;
  height:42px;
  transform:translateY(-50%);
  border:1px solid rgba(255,255,255,.20);
  border-radius:999px;
  background:rgba(0,0,0,.58);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .18s ease, color .18s ease, transform .18s ease, border-color .18s ease;
}
.craft-slider-prev{ left:12px; }
.craft-slider-next{ right:12px; }
.craft-slider-arrow:hover,
.craft-slider-arrow:focus-visible{
  background:var(--accent);
  color:#111;
  border-color:var(--accent);
}
.craft-slider-prev:hover,
.craft-slider-prev:focus-visible{
  transform:translate(-3px, -50%);
}
.craft-slider-next:hover,
.craft-slider-next:focus-visible{
  transform:translate(3px, -50%);
}
.craft-slider-dots{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  min-height:26px;
  margin-top:10px;
}
.craft-slider-dot{
  width:7px;
  height:7px;
  padding:0;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.28);
  cursor:pointer;
  transition:width .18s ease, background .18s ease;
}
.craft-slider-dot.is-active{
  width:24px;
  background:var(--accent);
}
.craft-point-card .craft-slider + figcaption{
  padding-top:16px;
}
.craft-product-image .craft-slider{
  max-width:100%;
}

.craft-slider-lightbox-v132{
  position:fixed;
  inset:0;
  z-index:10050;
  display:none;
  align-items:center;
  justify-content:center;
  padding:34px;
  background:rgba(0,0,0,.88);
  opacity:0;
  transition:opacity .22s ease;
}
.craft-slider-lightbox-v132.is-open{
  display:flex;
  opacity:1;
}
.craft-lightbox-inner-v132{
  position:relative;
  width:min(1180px, 94vw);
  max-height:92vh;
  display:grid;
  gap:14px;
}
.craft-lightbox-image-wrap-v132{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:200px;
}
.craft-lightbox-image-v132{
  display:block;
  max-width:100%;
  max-height:78vh;
  object-fit:contain;
  background:#05080c;
  box-shadow:0 22px 70px rgba(0,0,0,.45);
}
.craft-lightbox-caption-v132{
  margin:0 auto;
  max-width:860px;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.8;
  text-align:center;
}
.craft-lightbox-close-v132,
.craft-lightbox-arrow-v132{
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.craft-lightbox-close-v132{
  position:absolute;
  right:0;
  top:-10px;
  z-index:3;
  width:42px;
  height:42px;
  font-size:26px;
}
.craft-lightbox-arrow-v132{
  position:absolute;
  top:50%;
  z-index:3;
  width:52px;
  height:52px;
  transform:translateY(-50%);
  font-size:34px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.craft-lightbox-prev-v132{ left:-66px; }
.craft-lightbox-next-v132{ right:-66px; }
.craft-lightbox-close-v132:hover,
.craft-lightbox-close-v132:focus-visible,
.craft-lightbox-arrow-v132:hover,
.craft-lightbox-arrow-v132:focus-visible{
  background:var(--accent);
  border-color:var(--accent);
  color:#111;
}
.craft-lightbox-dots-v132{
  display:flex;
  justify-content:center;
  gap:8px;
}
.craft-lightbox-dots-v132 button{
  width:7px;
  height:7px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.28);
  cursor:pointer;
}
.craft-lightbox-dots-v132 button.is-active{
  width:24px;
  background:var(--accent);
}

@media (max-width:900px){
  .craft-lightbox-prev-v132{ left:10px; }
  .craft-lightbox-next-v132{ right:10px; }
  .craft-lightbox-arrow-v132{
    width:44px;
    height:44px;
    background:rgba(0,0,0,.52);
  }
}
@media (max-width:760px){
  .craft-slider-arrow{
    width:38px;
    height:38px;
    font-size:24px;
  }
  .craft-product-slider .craft-slider-zoom img{
    padding:12px;
  }
  .craft-slider-lightbox-v132{
    padding:18px;
  }
  .craft-lightbox-inner-v132{
    width:100%;
  }
  .craft-lightbox-close-v132{
    top:-4px;
    right:0;
  }
  .craft-lightbox-caption-v132{
    font-size:12px;
  }
}


/* v1.33 CRAFT SOFTWARE tabs */
.craft-software-heading{align-items:flex-start;}
.craft-software-heading-main{min-width:0;}
.craft-software-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.craft-software-tab{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.025);color:rgba(255,255,255,.78);font-size:12px;font-weight:800;letter-spacing:.03em;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;}
.craft-software-tab:hover,.craft-software-tab:focus-visible,.craft-software-tab.is-active{background:var(--accent);border-color:var(--accent);color:#111;transform:translateY(-1px);}
.craft-software-stage{margin-top:30px;}
.craft-software-pane{display:grid;grid-template-columns:minmax(0,.88fr) minmax(360px,1fr);gap:42px;align-items:center;}
.craft-software-pane[hidden]{display:none !important;}
.craft-software-slider .craft-slider-viewport{aspect-ratio:16/10;background:#07111d;}
.craft-software-slider .craft-slider-zoom img{object-fit:cover;padding:0;background:#07111d;}
.craft-software-slider.is-single .craft-slider-dots,.craft-software-slider.is-single .craft-slider-arrow{display:none !important;}
.craft-software-copy h3{margin:0 0 14px;color:#fff;font-size:clamp(24px,2.3vw,38px);line-height:1.25;}
.craft-software-status{display:inline-flex;align-items:center;min-height:32px;margin:0 0 16px;padding:0 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:rgba(255,255,255,.86);font-size:11px;font-weight:900;letter-spacing:.16em;background:rgba(255,255,255,.03);}
.craft-software-status.is-live{border-color:var(--accent);background:var(--accent);color:#111;}
.craft-software-catch{margin:0 0 16px;color:rgba(255,255,255,.92);font-size:18px;font-weight:800;line-height:1.7;}
.craft-software-copy p:not(.craft-software-status):not(.craft-software-catch){margin:0 0 14px;color:rgba(255,255,255,.70);font-size:13px;line-height:1.95;}
@media (max-width:1100px){.craft-software-pane{grid-template-columns:1fr;}}
@media (max-width:760px){.craft-software-tabs{gap:8px;}.craft-software-tab{min-height:38px;padding:0 14px;font-size:11px;}.craft-software-catch{font-size:16px;}}


/* =========================================================
   SimGoya HP v1.34 - compact SOFTWARE DEVELOPMENT layout
   ========================================================= */
.craft-software-section{
  padding-top:54px !important;
}
.craft-software-heading{
  grid-template-columns:minmax(260px, .48fr) minmax(0, 1fr) !important;
  gap:38px !important;
  padding-top:22px !important;
}
.craft-software-heading .linked-text{
  max-width:760px;
  align-self:end;
  padding-bottom:4px;
}
.craft-software-tabs{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin:22px 0 0 !important;
  padding:0 !important;
}
.craft-software-tab{
  min-height:38px !important;
  padding:0 15px !important;
  border-radius:999px !important;
  font-size:12px !important;
}
.craft-software-stage{
  margin-top:28px !important;
  padding-top:32px;
  border-top:1px solid rgba(255,255,255,.10);
}
.craft-software-pane{
  grid-template-columns:minmax(0, .92fr) minmax(360px, .90fr) !important;
  gap:40px !important;
  align-items:center !important;
}
.craft-software-slider .craft-slider-viewport{
  aspect-ratio:16/9 !important;
  border:1px solid rgba(255,255,255,.10);
  background:#040d18 !important;
}
.craft-software-copy{
  max-width:560px;
}
.craft-software-copy h3{
  font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-weight:900 !important;
  font-size:clamp(28px, 2.5vw, 42px) !important;
  line-height:1.22 !important;
}
.craft-software-catch{
  margin-bottom:14px !important;
  font-size:17px !important;
  line-height:1.75 !important;
}
.craft-software-copy p:not(.craft-software-status):not(.craft-software-catch){
  font-size:13px !important;
  line-height:1.9 !important;
}
@media (max-width:1100px){
  .craft-software-heading,
  .craft-software-pane{
    grid-template-columns:1fr !important;
  }
  .craft-software-heading .linked-text{
    max-width:none;
  }
}


/* =========================================================
   SimGoya HP v1.38 - DRIVE page
   ========================================================= */
.drive-hero .craft-hero-copy h1,
.drive-intro-section .craft-copy-block h2,
.drive-price-section h2,
.drive-machine-copy h3{
  font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight:900;
}
.drive-price-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, .42fr);
  gap:28px;
  align-items:stretch;
  margin-top:34px;
}
.drive-price-table-wrap{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.025);
  overflow:hidden;
}
.drive-price-table{
  width:100%;
  border-collapse:collapse;
  color:#fff;
}
.drive-price-table th,
.drive-price-table td{
  padding:18px 22px;
  border-bottom:1px solid rgba(255,255,255,.10);
  text-align:left;
}
.drive-price-table th{
  color:rgba(255,255,255,.62);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  background:rgba(255,255,255,.045);
}
.drive-price-table td{
  font-size:18px;
  font-weight:800;
}
.drive-price-table td:last-child{
  color:var(--accent);
  font-size:22px;
  font-weight:900;
  text-align:right;
}
.drive-price-table tr:last-child td{
  border-bottom:0;
}
.drive-subscription-card{
  padding:26px;
  border:1px solid rgba(243,152,0,.28);
  background:linear-gradient(135deg, rgba(243,152,0,.10), rgba(255,255,255,.025));
}
.drive-subscription-card h3{
  margin:0 0 10px;
  color:var(--accent);
  font-size:clamp(30px, 3vw, 48px);
  line-height:1.1;
  font-weight:900;
}
.drive-subscription-card p:not(.linked-kicker){
  margin:0 0 16px;
  color:rgba(255,255,255,.78);
  font-size:14px;
  line-height:1.8;
}
.drive-subscription-card ul{
  margin:18px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.drive-subscription-card li{
  position:relative;
  padding-left:18px;
  color:rgba(255,255,255,.64);
  font-size:12px;
  line-height:1.75;
}
.drive-subscription-card li::before{
  content:"";
  position:absolute;
  left:0;
  top:.72em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
}
.drive-machine-card{
  border-top-color:rgba(255,255,255,.12);
}
.drive-machine-slider .craft-slider-viewport{
  background:#07111d;
}
.drive-machine-slider .craft-slider-zoom img{
  object-fit:cover;
  padding:0;
  background:#07111d;
}
.drive-machine-copy p:not(.linked-kicker){
  margin:0 0 14px;
  color:rgba(255,255,255,.72);
  font-size:13px;
  line-height:1.95;
}
@media (max-width:1100px){
  .drive-price-layout{
    grid-template-columns:1fr;
  }
}
@media (max-width:760px){
  .drive-price-table th,
  .drive-price-table td{
    padding:14px 12px;
  }
  .drive-price-table td{
    font-size:15px;
  }
  .drive-price-table td:last-child{
    font-size:18px;
  }
  .drive-subscription-card{
    padding:20px;
  }
}


/* ================================
   DRIVE page v1.39 tuning
   ================================ */
.drive-info-grid,
.drive-notes-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 28px;
}

.drive-info-card,
.drive-note-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.10);
  padding: 28px;
}

.drive-info-card h3,
.drive-note-card h3 {
  margin: 8px 0 14px;
  font-size: 26px;
}

.drive-info-card ul,
.drive-note-card ul,
.drive-subscription-card ul {
  margin: 0;
  padding-left: 1.2em;
}

.drive-info-card li,
.drive-note-card li,
.drive-subscription-card li {
  margin: 0 0 10px;
  line-height: 1.8;
}

.drive-price-layout {
  margin-bottom: 28px;
}

.drive-machine-copy p + p {
  margin-top: 12px;
}

@media (max-width: 900px) {
  .drive-info-grid,
  .drive-notes-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .drive-info-card,
  .drive-note-card {
    padding: 20px;
  }

  .drive-info-card h3,
  .drive-note-card h3 {
    font-size: 22px;
  }
}


/* =========================================================
   SimGoya HP v1.40 - DRIVE hero line break tuning
   ========================================================= */
.drive-hero .craft-hero-copy h1{
  font-size:clamp(32px, 3.35vw, 56px) !important;
  line-height:1.22 !important;
  letter-spacing:.004em !important;
}

.drive-hero .craft-hero-copy h1 br{
  display:block;
}

@media (max-width:760px){
  .drive-hero .craft-hero-copy h1{
    font-size:clamp(30px, 8.6vw, 42px) !important;
    line-height:1.24 !important;
  }
}

/* =========================================================
   SimGoya HP v1.41 - DRIVE title hard line fix
   ========================================================= */
.drive-hero .craft-hero-copy {
  max-width: 760px !important;
}

.drive-hero-title {
  font-size: clamp(30px, 2.85vw, 50px) !important;
  line-height: 1.22 !important;
  letter-spacing: .002em !important;
}

.drive-hero-title .drive-title-line {
  display: block !important;
}

.drive-hero-title .drive-title-line-main {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

@media (max-width: 1100px) {
  .drive-hero-title {
    font-size: clamp(28px, 3.8vw, 44px) !important;
  }
}

@media (max-width: 760px) {
  .drive-hero-title {
    font-size: clamp(27px, 8vw, 40px) !important;
  }
}


/* =========================================================
   SimGoya HP v1.42 - HOME/DRIVE title tuning
   ========================================================= */
#indexFacility .showcase-title{
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  font-size: clamp(34px, 3.2vw, 58px) !important;
  line-height: 1.18 !important;
}

#indexFacility .showcase-title br{
  display:block;
}

.drive-hero-title {
  font-size: clamp(27px, 2.45vw, 42px) !important;
  line-height: 1.18 !important;
}

.drive-hero .craft-hero-copy {
  max-width: 840px !important;
}

@media (max-width: 1100px) {
  .drive-hero-title {
    font-size: clamp(25px, 3.2vw, 38px) !important;
  }
}

@media (max-width: 760px) {
  #indexFacility .showcase-title{
    font-size: clamp(28px, 8.2vw, 42px) !important;
    line-height: 1.2 !important;
  }

  .drive-hero-title {
    font-size: clamp(24px, 6.4vw, 34px) !important;
    line-height: 1.2 !important;
  }
}


/* =========================================================
   SimGoya HP v1.43 - DRIVE title size down
   ========================================================= */
.drive-hero-title {
  font-size: clamp(24px, 2.1vw, 36px) !important;
  line-height: 1.16 !important;
}

@media (max-width: 1100px) {
  .drive-hero-title {
    font-size: clamp(23px, 2.95vw, 34px) !important;
  }
}

@media (max-width: 760px) {
  .drive-hero-title {
    font-size: clamp(22px, 5.8vw, 30px) !important;
    line-height: 1.18 !important;
  }
}


/* =========================================================
   SimGoya HP v1.44 - DRIVE hero title match INTRODUCTION
   ========================================================= */
.drive-hero-title {
  font-size: clamp(26px, 3vw, 46px) !important;
  line-height: 1.25 !important;
  letter-spacing: .01em !important;
}

@media (max-width: 760px) {
  .drive-hero-title {
    font-size: clamp(27px, 8vw, 38px) !important;
    line-height: 1.25 !important;
  }
}


/* =========================================================
   SimGoya HP v1.45 - DRIVE hero title exact same size as INTRODUCTION
   ========================================================= */
.drive-hero-title {
  font-size: clamp(26px, 3vw, 46px) !important;
  line-height: 1.25 !important;
  letter-spacing: .01em !important;
}

@media (max-width: 760px) {
  .drive-hero-title {
    font-size: clamp(27px, 8vw, 38px) !important;
    line-height: 1.25 !important;
  }
}


/* =========================================================
   SimGoya HP v1.46 - EVENT page
   ========================================================= */
.event-hero .craft-hero-copy h1,
.event-intro-section .craft-copy-block h2,
.event-scene-section h2,
.event-operation-copy h3,
.event-gallery-section h2,
.event-rental-section .craft-copy-block h2,
.event-contact-strip h2{
  font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight:900;
}
.event-hero .craft-hero-copy h1{
  font-size:clamp(34px, 4.2vw, 68px);
  line-height:1.14;
}
.event-scene-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
  margin-top:32px;
}
.event-scene-card{
  min-height:250px;
  padding:28px 24px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.026);
}
.event-scene-card h3{
  margin:0 0 16px;
  color:#fff;
  font-size:22px;
  line-height:1.45;
}
.event-scene-card p:not(.linked-kicker){
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:13px;
  line-height:1.95;
}
.event-check-list{
  margin:22px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.event-check-list li{
  position:relative;
  padding-left:18px;
  color:rgba(255,255,255,.70);
  font-size:13px;
  line-height:1.75;
}
.event-check-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.78em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--accent);
}
.event-gallery-wide{
  margin-top:34px;
  max-width:1040px;
}
.event-gallery-wide .craft-slider-viewport{
  aspect-ratio:16/9;
}
.event-operation-card .craft-slider-viewport{
  aspect-ratio:16/10;
}
.event-gallery-slider .craft-slider-zoom img{
  object-fit:cover;
}
@media (max-width:1100px){
  .event-scene-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width:760px){
  .event-hero .craft-hero-copy h1{
    font-size:clamp(30px, 9vw, 42px);
    line-height:1.18;
  }
  .event-scene-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .event-scene-card{
    min-height:auto;
    padding:22px 20px;
  }
}


/* =========================================================
   SimGoya HP v1.47 - ABOUT calm page
   ========================================================= */
.about-calm-hero,
.about-calm-section{
  background:#040d18;
  color:#fff;
}

.about-calm-hero{
  min-height:760px;
  display:flex;
  align-items:center;
  padding:150px 0 90px;
}

.about-calm-hero-inner{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(420px, .95fr);
  gap:72px;
  align-items:center;
}

.about-calm-visual{
  position:relative;
  overflow:hidden;
  clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%);
  background:#02070d;
  min-height:430px;
}

.about-calm-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(4,13,24,.18), rgba(4,13,24,.48));
  pointer-events:none;
}

.about-photo-button{
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}

.about-photo-button img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.4s ease, filter .35s ease;
}

.about-photo-button:hover img,
.about-photo-button:focus-visible img{
  transform:scale(1.035);
  filter:brightness(1.04);
}

.about-calm-copy h1,
.about-section-heading h2,
.about-motorsports-copy h2,
.about-access-copy h2{
  font-family:"Noto Serif JP", "Noto Serif CJK JP", serif;
  font-weight:900;
  letter-spacing:.01em;
}

.about-calm-copy h1{
  margin:18px 0 24px;
  font-size:clamp(44px, 5vw, 82px);
  line-height:1.16;
}

.about-lead{
  max-width:720px;
  font-size:18px;
  line-height:2;
  color:rgba(255,255,255,.86);
}

.about-calm-section{
  padding:96px 0;
  border-top:1px solid rgba(255,255,255,.08);
}

.about-section-heading{
  max-width:960px;
  margin-bottom:36px;
}

.about-section-heading.compact{
  margin-bottom:28px;
}

.about-section-heading h2,
.about-motorsports-copy h2,
.about-access-copy h2{
  margin:10px 0 18px;
  font-size:clamp(32px, 3vw, 52px);
  line-height:1.22;
}

.about-section-heading p:not(.linked-kicker),
.about-motorsports-copy p,
.about-access-copy p{
  color:rgba(255,255,255,.74);
  font-size:15px;
  line-height:2;
}

.about-company-grid{
  display:grid;
  grid-template-columns:minmax(0, .82fr) minmax(0, 1.18fr);
  gap:24px;
}

.about-company-card,
.about-staff-card,
.about-access-copy{
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.095);
}

.about-company-card{
  padding:34px;
}

.about-card-label{
  margin:0 0 12px;
  color:var(--accent);
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
}

.about-company-card h3{
  margin:0 0 18px;
  font-size:28px;
}

.about-company-card ul,
.about-support-list{
  margin:0;
  padding:0;
  list-style:none;
}

.about-company-card li,
.about-support-list li{
  position:relative;
  padding:10px 0 10px 18px;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.78);
}

.about-company-card li::before,
.about-support-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:20px;
  width:6px;
  height:6px;
  border-radius:999px;
  background:var(--accent);
}

.about-info-list{
  margin:0;
}

.about-info-list div{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:18px;
  padding:14px 0;
  border-top:1px solid rgba(255,255,255,.08);
}

.about-info-list dt{
  color:rgba(255,255,255,.48);
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
}

.about-info-list dd{
  margin:0;
  color:rgba(255,255,255,.84);
  font-size:14px;
  line-height:1.8;
}

.about-staff-grid{
  display:grid;
  gap:26px;
}

.about-staff-card{
  display:grid;
  grid-template-columns:minmax(320px, .8fr) minmax(0, 1.2fr);
  gap:34px;
  align-items:stretch;
  padding:0;
  overflow:hidden;
}

.about-staff-card.reverse{
  grid-template-columns:minmax(320px, .72fr) minmax(0, 1.28fr);
}

.about-staff-photo{
  min-height:420px;
  background:#02070d;
}

.about-staff-copy{
  align-self:center;
  padding:40px 44px 40px 0;
}

.about-staff-copy h3{
  margin:0 0 18px;
  font-size:clamp(28px, 3vw, 52px);
  line-height:1.12;
}

.about-staff-copy h3 span{
  display:inline-block;
  margin-left:.3em;
  font-size:.48em;
  color:rgba(255,255,255,.58);
}

.about-staff-copy p:not(.about-card-label){
  margin:0;
  max-width:860px;
  color:rgba(255,255,255,.76);
  font-size:15px;
  line-height:2.05;
}

.about-motorsports-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(420px, .95fr);
  gap:42px;
  align-items:center;
}

.about-motorsports-image{
  min-height:420px;
  overflow:hidden;
  background:#02070d;
}

.about-support-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:0 20px;
  margin-top:28px;
}

.about-access-grid{
  display:block;
}

.about-access-copy{
  padding:42px;
}

.about-info-list.wide{
  margin-top:26px;
}

.about-note{
  margin-top:24px !important;
  color:rgba(255,255,255,.62) !important;
  font-size:13px !important;
}

.about-contact-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  margin-top:18px;
  padding:0 22px;
  border:1px solid rgba(243,152,0,.65);
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}

.about-contact-link:hover,
.about-contact-link:focus-visible{
  background:var(--accent);
  color:#111;
  transform:translateX(4px);
}

@media (max-width:1100px){
  .about-calm-hero-inner,
  .about-company-grid,
  .about-motorsports-layout{
    grid-template-columns:1fr;
  }
  .about-staff-card,
  .about-staff-card.reverse{
    grid-template-columns:1fr;
  }
  .about-staff-copy{
    padding:30px;
  }
  .about-staff-photo,
  .about-motorsports-image,
  .about-calm-visual{
    min-height:360px;
  }
}

@media (max-width:760px){
  .about-calm-hero{
    min-height:auto;
    padding:116px 0 60px;
  }
  .about-calm-hero-inner{
    gap:28px;
  }
  .about-calm-visual{
    clip-path:none;
    min-height:260px;
  }
  .about-calm-copy h1{
    font-size:clamp(36px, 10vw, 54px);
  }
  .about-calm-section{
    padding:64px 0;
  }
  .about-company-card,
  .about-access-copy{
    padding:24px;
  }
  .about-info-list div{
    grid-template-columns:1fr;
    gap:6px;
  }
  .about-support-list{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   SimGoya HP v1.48 - CONTACT calm layout
   ========================================================= */
.sg-contact-hero .linked-hero-image,
.sg-contact-hero-image{
  min-height: 420px;
}
.sg-contact-hero-image img{
  filter: brightness(.62) contrast(1.06);
}
.sg-contact-section{
  padding: 78px 0;
  background: #040d18;
}
.sg-contact-section + .sg-contact-section{
  border-top: 1px solid rgba(255,255,255,.08);
}
.sg-contact-heading-row{
  align-items: start;
  margin-bottom: 34px;
}
.sg-contact-method-grid,
.sg-contact-purpose-grid,
.sg-contact-access-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.sg-contact-method-card,
.sg-contact-purpose-card,
.sg-contact-access-note{
  display:block;
  min-height: 210px;
  padding: 28px;
  background: rgba(255,255,255,.028);
  border: 1px solid rgba(255,255,255,.10);
  color:#fff;
  text-decoration:none;
}
.sg-contact-method-card h3,
.sg-contact-purpose-card strong,
.sg-contact-access-note h3{
  display:block;
  margin: 10px 0 18px;
  color:#fff;
  font-size: clamp(22px, 2vw, 34px);
  line-height:1.25;
  font-weight:900;
}
.sg-contact-method-card h3 a{
  color:#fff;
  text-decoration:none;
}
.sg-contact-method-card h3 a:hover{
  color:var(--accent);
}
.sg-contact-method-card p,
.sg-contact-purpose-card p,
.sg-contact-access-note li{
  margin: 0 0 10px;
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.9;
}
.sg-contact-purpose-card span{
  color:var(--accent);
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
}
.sg-contact-purpose-card{
  transition: border-color .2s ease, transform .2s ease, background .2s ease;
}
.sg-contact-purpose-card:hover,
.sg-contact-purpose-card:focus-visible{
  transform: translateY(-2px);
  border-color: rgba(243,152,0,.65);
  background: rgba(243,152,0,.055);
}
.sg-contact-form{
  padding: 34px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.025);
}
.sg-form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.sg-contact-form label{
  display:block;
}
.sg-contact-form label span{
  display:block;
  margin-bottom: 8px;
  color: rgba(255,255,255,.82);
  font-size:13px;
  font-weight:800;
}
.sg-contact-form label b{
  color:var(--accent);
  font-size:11px;
  margin-left:5px;
}
.sg-contact-form input,
.sg-contact-form select,
.sg-contact-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.16);
  background:#07111d;
  color:#fff;
  border-radius:0;
  padding:14px 15px;
  font:inherit;
  outline:none;
}
.sg-contact-form input:focus,
.sg-contact-form select:focus,
.sg-contact-form textarea:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 1px rgba(243,152,0,.25);
}
.sg-form-message{
  margin-top:20px;
}
.sg-form-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:24px;
}
.sg-form-footer p{
  margin:0;
  color:rgba(255,255,255,.58);
  font-size:12px;
  line-height:1.7;
}
.sg-form-footer button{
  display:inline-flex;
  align-items:center;
  gap:14px;
  border:1px solid rgba(243,152,0,.72);
  background:var(--accent);
  color:#111;
  min-height:50px;
  padding:0 24px;
  font-weight:900;
  cursor:pointer;
  transition: transform .2s ease, filter .2s ease;
}
.sg-form-footer button:hover,
.sg-form-footer button:focus-visible{
  transform: translateX(4px);
  filter: brightness(1.06);
}
.sg-contact-access-grid{
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr);
}
.sg-contact-map{
  min-height: 420px;
  border:1px solid rgba(255,255,255,.12);
  overflow:hidden;
  background:#07111d;
}
.sg-contact-map iframe{
  width:100%;
  height:100%;
  min-height:420px;
  border:0;
  filter: grayscale(.15) contrast(.95) brightness(.78);
}
.sg-contact-access-note ul{
  margin:0;
  padding-left:1.1em;
}
@media (max-width: 980px){
  .sg-contact-method-grid,
  .sg-contact-purpose-grid,
  .sg-contact-access-grid{
    grid-template-columns:1fr;
  }
  .sg-contact-access-note,
  .sg-contact-method-card,
  .sg-contact-purpose-card{
    min-height:auto;
  }
}
@media (max-width: 720px){
  .sg-contact-section{
    padding:56px 0;
  }
  .sg-form-grid{
    grid-template-columns:1fr;
  }
  .sg-contact-form{
    padding:22px;
  }
  .sg-form-footer{
    display:block;
  }
  .sg-form-footer button{
    width:100%;
    justify-content:center;
    margin-top:18px;
  }
}

/* =========================================================
   SimGoya HP v1.49 - Contact confirm + privacy consent
   ========================================================= */
.sg-privacy-box{
  margin-top:24px;
  padding:26px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.018);
}
.sg-privacy-head h3{
  margin:8px 0 14px;
  color:#fff;
  font-size:24px;
  line-height:1.35;
}
.sg-privacy-scroll{
  max-height:220px;
  overflow:auto;
  padding:20px;
  border:1px solid rgba(255,255,255,.12);
  background:#fff;
  color:#111;
  font-size:13px;
  line-height:1.85;
}
.sg-privacy-scroll p{
  margin:0 0 14px;
}
.sg-privacy-scroll p:last-child{
  margin-bottom:0;
}
.sg-privacy-agree{
  display:flex !important;
  align-items:center;
  gap:12px;
  margin-top:18px;
  color:#fff;
  font-weight:800;
}
.sg-privacy-agree input{
  width:18px !important;
  height:18px;
  flex:0 0 auto;
  accent-color:var(--accent);
}
.sg-privacy-agree span{
  margin:0 !important;
  color:rgba(255,255,255,.86) !important;
}
.sg-confirm-panel{
  margin-top:30px;
  padding:34px;
  border:1px solid rgba(243,152,0,.32);
  background:rgba(243,152,0,.045);
}
.sg-confirm-panel[hidden]{
  display:none !important;
}
.sg-confirm-head h3{
  margin:8px 0 12px;
  color:#fff;
  font-size:28px;
  line-height:1.35;
}
.sg-confirm-head p{
  margin:0 0 22px;
  color:rgba(255,255,255,.68);
  line-height:1.85;
}
.sg-confirm-list{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  border-top:1px solid rgba(255,255,255,.12);
  border-left:1px solid rgba(255,255,255,.12);
  margin:0;
}
.sg-confirm-list dt,
.sg-confirm-list dd{
  margin:0;
  padding:15px 18px;
  border-right:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
  line-height:1.8;
}
.sg-confirm-list dt{
  color:rgba(255,255,255,.72);
  font-weight:900;
  background:rgba(255,255,255,.035);
}
.sg-confirm-list dd{
  color:#fff;
  white-space:pre-wrap;
  word-break:break-word;
}
.sg-confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:14px;
  margin-top:24px;
}
.sg-button-primary,
.sg-button-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  padding:0 24px;
  font-weight:900;
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease, background .2s ease, color .2s ease;
}
.sg-button-primary{
  border:1px solid rgba(243,152,0,.72);
  background:var(--accent);
  color:#111;
}
.sg-button-secondary{
  border:1px solid rgba(255,255,255,.18);
  background:transparent;
  color:#fff;
}
.sg-button-primary:hover,
.sg-button-primary:focus-visible,
.sg-button-secondary:hover,
.sg-button-secondary:focus-visible{
  transform:translateX(4px);
  filter:brightness(1.06);
}
@media (max-width:720px){
  .sg-privacy-box,
  .sg-confirm-panel{
    padding:20px;
  }
  .sg-privacy-scroll{
    max-height:260px;
    padding:16px;
  }
  .sg-confirm-list{
    grid-template-columns:1fr;
  }
  .sg-confirm-list dt{
    border-bottom:0;
  }
  .sg-confirm-actions{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* =========================================================
   SimGoya HP v1.50 - smartphone layout foundation
   - PC: current mega menu / image zoom / shaped images remain
   - SP: hamburger menu / square images / no image zoom
   ========================================================= */
.mobile-menu-button,
.mobile-drawer,
.mobile-drawer-backdrop{
  display:none;
}

@media (max-width: 900px){
  :root{
    --header-h:72px;
    --header-h-small:72px;
    --radius:0;
    --radius2:0;
  }

  html.mobile-nav-open,
  body.mobile-nav-open{
    overflow:hidden !important;
  }

  .header,
  body:not(.mega-open) .header,
  body:not(.mega-open).is-scrolled .header,
  body.mega-open .header,
  body.is-scrolled .header{
    height:72px !important;
    min-height:72px !important;
    background:linear-gradient(180deg, rgba(3,5,7,.96), rgba(3,5,7,.84)) !important;
    border-bottom:0 !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  .header-inner{
    height:72px !important;
    min-height:72px !important;
    padding:0 !important;
    flex-wrap:nowrap !important;
    justify-content:space-between !important;
    gap:12px !important;
  }

  .brand{
    min-width:0 !important;
    padding-left:0 !important;
    flex:0 1 auto !important;
  }

  .brand img,
  body:not(.is-scrolled):not(.mega-open) .brand img,
  body.is-scrolled .brand img,
  body.linked-page .brand img,
  body.linked-page.is-scrolled .brand img{
    height:44px !important;
    max-height:44px !important;
    width:auto !important;
    opacity:1 !important;
  }

  .header::after,
  body.mega-open .header::after,
  .header:has(.nav.mega-nav .nav-item:hover)::after,
  .header:has(.nav.mega-nav .nav-item:focus-within)::after{
    display:none !important;
    content:none !important;
  }

  .nav.mega-nav{
    display:none !important;
  }

  .mega-panel{
    display:none !important;
  }

  .mobile-menu-button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:46px !important;
    height:46px !important;
    padding:0 !important;
    border:1px solid rgba(255,255,255,.16) !important;
    border-radius:0 !important;
    background:rgba(255,255,255,.025) !important;
    color:#fff !important;
    cursor:pointer !important;
    position:relative !important;
    z-index:2600 !important;
  }

  .mobile-menu-button span,
  .mobile-menu-button::before,
  .mobile-menu-button::after{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    left:12px !important;
    right:12px !important;
    height:2px !important;
    background:#fff !important;
    transition:transform .22s ease, opacity .18s ease, top .22s ease !important;
  }

  .mobile-menu-button span{ top:22px !important; }
  .mobile-menu-button::before{ top:15px !important; }
  .mobile-menu-button::after{ top:29px !important; }

  .mobile-menu-button.is-open span{ opacity:0 !important; }
  .mobile-menu-button.is-open::before{ top:22px !important; transform:rotate(45deg) !important; }
  .mobile-menu-button.is-open::after{ top:22px !important; transform:rotate(-45deg) !important; }

  .mobile-drawer-backdrop{
    display:block !important;
    position:fixed !important;
    inset:0 !important;
    background:rgba(0,0,0,.42) !important;
    z-index:2390 !important;
    opacity:0 !important;
    pointer-events:none !important;
    transition:opacity .22s ease !important;
  }

  .mobile-drawer{
    display:block !important;
    position:fixed !important;
    top:72px !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    z-index:2400 !important;
    background:#030507 !important;
    transform:translateY(-10px) !important;
    opacity:0 !important;
    pointer-events:none !important;
    transition:transform .24s ease, opacity .2s ease !important;
    overflow:auto !important;
    -webkit-overflow-scrolling:touch !important;
    border-top:1px solid rgba(255,255,255,.08) !important;
  }

  .mobile-drawer.is-open,
  .mobile-drawer-backdrop.is-open{
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .mobile-drawer.is-open{
    transform:translateY(0) !important;
  }

  .mobile-drawer-inner{
    width:min(100%, calc(100% - 32px)) !important;
    margin:0 auto !important;
    padding:22px 0 44px !important;
  }

  .mobile-drawer-primary{
    display:grid !important;
    gap:0 !important;
  }

  .mobile-nav-group{
    border-bottom:1px solid rgba(255,255,255,.12) !important;
  }

  .mobile-nav-summary,
  .mobile-nav-link{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height:58px !important;
    padding:0 !important;
    color:rgba(255,255,255,.94) !important;
    font-size:18px !important;
    font-weight:800 !important;
    letter-spacing:.03em !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    text-decoration:none !important;
    list-style:none !important;
    cursor:pointer !important;
  }

  .mobile-nav-summary::-webkit-details-marker{
    display:none !important;
  }

  .mobile-nav-summary::after{
    content:"+" !important;
    color:var(--accent) !important;
    font-size:22px !important;
    font-weight:500 !important;
    line-height:1 !important;
  }

  .mobile-nav-group[open] .mobile-nav-summary::after{
    content:"−" !important;
  }

  .mobile-subnav{
    display:grid !important;
    gap:0 !important;
    padding:0 0 14px !important;
  }

  .mobile-subnav a{
    display:grid !important;
    gap:4px !important;
    padding:12px 0 !important;
    border-top:1px solid rgba(255,255,255,.06) !important;
    color:rgba(255,255,255,.82) !important;
    text-decoration:none !important;
  }

  .mobile-subnav strong{
    color:#fff !important;
    font-size:14px !important;
    line-height:1.35 !important;
  }

  .mobile-subnav span{
    color:rgba(255,255,255,.54) !important;
    font-size:12px !important;
    line-height:1.5 !important;
  }

  /* SP: images are simple rectangles. No trapezoids, no rounded image frames. */
  .hero,
  .linked-hero,
  .service-showcase,
  .showcase-image,
  .showcase-image::before,
  .showcase-image::after,
  .service-showcase.alt-layout .showcase-image,
  .service-showcase.alt-layout .showcase-image::before,
  .service-showcase.alt-layout .showcase-image::after,
  .linked-hero-image,
  .craft-hero-image,
  .craft-hero-image .detail-image-button,
  .craft-point-card,
  .craft-point-card .detail-image-button,
  .craft-product-image,
  .craft-product-image .detail-image-button,
  .detail-image-button,
  .craft-slider-viewport,
  .craft-slider-zoom,
  .drive-info-card,
  .drive-note-card,
  .drive-subscription-card,
  .event-scene-card,
  .about-card,
  .sg-contact-card,
  .sg-contact-form,
  .sg-contact-notice,
  .sg-confirm-panel{
    border-radius:0 !important;
    clip-path:none !important;
  }

  .showcase-image,
  .service-showcase.alt-layout .showcase-image,
  .linked-hero-image,
  .detail-image-button,
  .craft-slider-zoom{
    cursor:default !important;
  }

  /* SP: stop decorative zoom motion and hover image enlargement. */
  .hero-slide-bg,
  .hero-slide-bg.is-active,
  .hero-slide-bg.hero-slide-bg-a,
  .hero-slide-bg.hero-slide-bg-b,
  .showcase-image::after,
  .service-showcase.alt-layout .showcase-image::after,
  .linked-hero-image img,
  .detail-image-button img,
  .craft-slider-zoom img{
    animation:none !important;
    transform:none !important;
    transition:opacity .22s ease !important;
  }

  .detail-image-button:hover img,
  .detail-image-button:focus-visible img,
  .craft-slider-zoom:hover img,
  .craft-slider-zoom:focus-visible img{
    transform:none !important;
  }

  .craft-slider-lightbox-v132{
    display:none !important;
  }

  .craft-slider-zoom{
    touch-action:pan-y !important;
  }

  /* SP: linked pages become vertical, readable pages. */
  .linked-hero{
    min-height:auto !important;
    padding:calc(72px + 26px) 0 42px !important;
  }

  .linked-hero-inner,
  .linked-copy-row,
  .craft-software-pane,
  .drive-price-layout,
  .event-operation-grid,
  .about-staff-grid,
  .contact-layout{
    grid-template-columns:1fr !important;
  }

  .linked-hero-image,
  .craft-hero-image,
  .craft-slider-viewport{
    aspect-ratio:16/10 !important;
  }

  .linked-hero-copy h1{
    font-size:clamp(30px, 9vw, 44px) !important;
    line-height:1.16 !important;
  }

  .linked-catch{
    font-size:clamp(18px, 5.6vw, 24px) !important;
    line-height:1.55 !important;
  }

  .linked-detail-section,
  .craft-section,
  .drive-intro-section,
  .drive-price-section,
  .event-section,
  .about-section,
  .sg-contact-section{
    padding-top:46px !important;
    padding-bottom:50px !important;
  }

  .detail-image-grid{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }

  .drive-price-table{
    display:block !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  .sg-form-row,
  .sg-form-two,
  .sg-contact-info-grid{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   SimGoya HP v1.51 - mobile header breathing room / HOME sample images
   ========================================================= */
@media (max-width: 900px){
  :root{
    --header-h:88px !important;
    --header-h-small:88px !important;
  }

  .header,
  body:not(.mega-open) .header,
  body:not(.mega-open).is-scrolled .header,
  body.mega-open .header,
  body.is-scrolled .header{
    height:88px !important;
    min-height:88px !important;
  }

  .header-inner{
    height:88px !important;
    min-height:88px !important;
    padding:10px 0 8px !important;
    align-items:flex-start !important;
  }

  .brand img,
  body:not(.is-scrolled):not(.mega-open) .brand img,
  body.is-scrolled .brand img,
  body.linked-page .brand img,
  body.linked-page.is-scrolled .brand img{
    height:46px !important;
    max-height:46px !important;
    margin-top:2px !important;
  }

  .mobile-menu-button{
    width:50px !important;
    height:50px !important;
    margin-top:0 !important;
  }

  .mobile-menu-button span{ top:24px !important; }
  .mobile-menu-button::before{ top:17px !important; }
  .mobile-menu-button::after{ top:31px !important; }

  .mobile-menu-button.is-open::before,
  .mobile-menu-button.is-open::after{ top:24px !important; }

  .mobile-drawer{
    top:88px !important;
  }

  .linked-hero{
    padding-top:calc(88px + 26px) !important;
  }

  .showcase-image::after,
  .service-showcase.alt-layout .showcase-image::after{
    background-position:center center !important;
    background-size:cover !important;
  }
}


/* =========================================================
   SimGoya HP v1.52 - HOME image fallback / hero balance
   ========================================================= */

/* HOME service image fallback.
   data-bg-keyのJS反映に依存せず、PCでも必ず仮画像が出るようにする。 */
#craft .showcase-image::after{
  background-image:url("../img/hero-secondary-user.jpg") !important;
}
#facilityHome .showcase-image::after{
  background-image:url("../img/drive/DRIVE_MACHINE_01_REAL.jpg") !important;
}
#eventHome .showcase-image::after{
  background-image:url("../img/event/EVENT_HERO_01.jpg") !important;
}
#companyHome .showcase-image::after{
  background-image:url("../img/about/ABOUT_HERO_01.jpg") !important;
}

/* HOME top copy: 少し小さくし、画面内に余裕を持たせる */
.hero-copy-v10{
  width:min(100%, 1060px) !important;
  min-height:72vh !important;
  padding-top:9vh !important;
  padding-bottom:8vh !important;
}

.hero-title-mixed{
  gap:18px !important;
}

.hero-title-mixed .hero-title-kana{
  font-size:76px !important;
}

.hero-title-mixed .hero-title-other{
  font-size:94px !important;
}

.hero-title-mixed .hero-title-line2{
  transform:translateX(1.18em) !important;
}

.hero-copy-v10 .hero-sub{
  max-width:860px !important;
  font-size:19px !important;
  line-height:1.85 !important;
  margin:0 auto 10px !important;
}

.hero-copy-v10 .hero-en{
  max-width:860px !important;
  font-size:14px !important;
  line-height:1.8 !important;
  margin:0 auto !important;
}

@media (max-width: 1100px){
  .hero-copy-v10{
    width:min(100%, 920px) !important;
    min-height:70vh !important;
    padding-top:9vh !important;
  }

  .hero-title-mixed{
    gap:16px !important;
  }

  .hero-title-mixed .hero-title-kana{
    font-size:62px !important;
  }

  .hero-title-mixed .hero-title-other{
    font-size:78px !important;
  }

  .hero-title-mixed .hero-title-line2{
    transform:translateX(.85em) !important;
  }

  .hero-copy-v10 .hero-sub{
    max-width:760px !important;
    font-size:17px !important;
    line-height:1.8 !important;
  }

  .hero-copy-v10 .hero-en{
    max-width:760px !important;
    font-size:13px !important;
    line-height:1.75 !important;
  }
}

@media (max-width: 820px){
  .hero-copy-v10{
    width:100% !important;
    min-height:64vh !important;
    padding-top:7vh !important;
    padding-bottom:7vh !important;
    transform:translateY(-1.2vh) !important;
  }

  .hero-title-mixed{
    gap:12px !important;
  }

  .hero-title-mixed .hero-title-kana{
    font-size:38px !important;
  }

  .hero-title-mixed .hero-title-other{
    font-size:50px !important;
  }

  .hero-title-mixed .hero-title-line2{
    transform:translateX(.28em) !important;
  }

  .hero-copy-v10 .hero-sub{
    max-width:calc(100vw - 48px) !important;
    font-size:14px !important;
    line-height:1.75 !important;
  }

  .hero-copy-v10 .hero-en{
    max-width:calc(100vw - 48px) !important;
    font-size:12px !important;
    line-height:1.65 !important;
  }
}

/* =========================================================
   SimGoya HP v1.54 - mobile hero image / Topics tuning
   ========================================================= */

/* HOME top image on smartphone: reduce crop so the central rig remains visible. */
@media (max-width: 900px){
  #homeHero .hero-bg-stack{
    background:#000 !important;
  }

  #homeHero .hero-slide-bg,
  #homeHero .hero-slide-bg.is-active,
  #homeHero .hero-slide-bg.hero-slide-bg-a,
  #homeHero .hero-slide-bg.hero-slide-bg-b{
    background-size:150vw auto !important;
    background-position:center 48% !important;
    background-repeat:no-repeat !important;
    transform:none !important;
    animation:none !important;
  }
}

@media (max-width: 480px){
  #homeHero .hero-slide-bg,
  #homeHero .hero-slide-bg.is-active,
  #homeHero .hero-slide-bg.hero-slide-bg-a,
  #homeHero .hero-slide-bg.hero-slide-bg-b{
    background-size:158vw auto !important;
    background-position:center 47% !important;
  }
}

/* Topics: simple, left-aligned and tighter on both PC and smartphone. */
.topics-section{
  padding-top:50px !important;
  padding-bottom:48px !important;
}

.topics-head{
  display:block !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  text-align:left !important;
  padding-bottom:10px !important;
  margin-bottom:0 !important;
}

.topics-head .h2,
.topics-head h2{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  text-align:left !important;
}

.topics{
  margin-top:0 !important;
}

.topics-item{
  padding:11px 0 !important;
  gap:14px !important;
  line-height:1.35 !important;
  min-height:0 !important;
}

.topics-date{
  line-height:1.35 !important;
}

.topics-title,
.topics-link{
  line-height:1.38 !important;
}

@media (max-width: 900px){
  .topics-section{
    padding-top:38px !important;
    padding-bottom:42px !important;
  }

  .topics-section .container{
    text-align:left !important;
  }

  .topics-head{
    display:block !important;
    text-align:left !important;
    padding-bottom:8px !important;
  }

  .topics-head .h2,
  .topics-head h2{
    text-align:left !important;
    margin-left:0 !important;
    margin-right:auto !important;
  }

  .topics-item{
    grid-template-columns:1fr !important;
    gap:4px !important;
    padding:10px 0 !important;
    text-align:left !important;
  }

  .topics-date,
  .topics-title,
  .topics-link{
    text-align:left !important;
  }
}


/* =========================================================
   SimGoya HP v1.56 - EVENT heading line breaks
   ========================================================= */
.event-hero-title-lines span,
.event-scene-title-lines span{
  display:block !important;
}

.event-hero-title-lines span{
  white-space:nowrap !important;
}

.event-hero-copy .event-hero-title-lines{
  line-height:1.12 !important;
}

.event-gallery-title-one-line{
  white-space:nowrap !important;
}

@media (max-width: 760px){
  .event-hero-title-lines span,
  .event-gallery-title-one-line{
    white-space:normal !important;
  }
}

/* =========================================================
   SimGoya HP v1.57 - EVENT / CONTACT heading breaks
   ========================================================= */
.event-hero-title-lines span,
.event-scene-title-lines span,
.event-gallery-title-lines span{
  display:block !important;
}

.event-hero-title-lines span,
.event-scene-title-lines span,
.event-gallery-title-lines span{
  white-space:nowrap !important;
}

.event-hero-copy .event-hero-title-lines{
  line-height:1.12 !important;
}

.event-heading-row .event-gallery-title-lines{
  line-height:1.16 !important;
}

.sg-contact-hero .linked-hero-copy h1{
  font-size:clamp(36px, 4.4vw, 66px) !important;
  line-height:1.06 !important;
}

@media (max-width: 760px){
  .event-hero-title-lines span,
  .event-scene-title-lines span,
  .event-gallery-title-lines span{
    white-space:normal !important;
  }

  .sg-contact-hero .linked-hero-copy h1{
    font-size:clamp(30px, 8.4vw, 44px) !important;
    line-height:1.12 !important;
  }
}


/* =========================================================
   SimGoya HP v1.58 - CONTACT title system / HOME hero center
   ========================================================= */

/* CONTACT: other pagesと同じキッカー色・明朝見出しへ統一 */
.sg-contact-hero .linked-kicker,
.sg-contact-section .linked-kicker{
  color:var(--accent) !important;
  font-family:"Noto Serif JP", "Noto Serif JP Black", serif !important;
  font-weight:900 !important;
  letter-spacing:.18em !important;
}

.sg-contact-hero .linked-hero-copy h1,
.sg-contact-heading-row h2{
  font-family:"Noto Serif JP", "Noto Serif JP Black", serif !important;
  font-weight:900 !important;
  letter-spacing:.015em !important;
}

.contact-hero-title-lines,
.contact-form-title-lines{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
}

.contact-hero-title-lines span,
.contact-form-title-lines span{
  display:block !important;
  white-space:nowrap !important;
}

/* 「ご相談・ご予約は、 / こちらから。」が2行で収まるサイズへ */
.sg-contact-hero .linked-hero-copy h1.contact-hero-title-lines{
  font-size:clamp(34px, 3.45vw, 54px) !important;
  line-height:1.15 !important;
  margin-bottom:20px !important;
}

/* 「お問い合わせ / フォーム」 */
.sg-contact-heading-row h2.contact-form-title-lines{
  font-size:clamp(34px, 3.4vw, 54px) !important;
  line-height:1.12 !important;
}

/* HOMEトップコピーを少し右へ、行間を少し広げる */
#homeHero .hero-copy-v10{
  transform:translateX(1.2vw) !important;
}

#homeHero .hero-title-mixed{
  gap:30px !important;
}

#homeHero .hero-title-mixed .hero-title-line2{
  transform:translateX(1.08em) !important;
}

@media (max-width:1100px){
  #homeHero .hero-copy-v10{
    transform:translateX(.8vw) !important;
  }
  #homeHero .hero-title-mixed{
    gap:24px !important;
  }
}

@media (max-width:820px){
  .sg-contact-hero .linked-hero-copy h1.contact-hero-title-lines{
    font-size:clamp(28px, 7.5vw, 38px) !important;
    line-height:1.18 !important;
  }

  .sg-contact-heading-row h2.contact-form-title-lines{
    font-size:clamp(30px, 8vw, 40px) !important;
    line-height:1.16 !important;
  }

  #homeHero .hero-copy-v10{
    transform:translateX(0) translateY(-1.2vh) !important;
  }

  #homeHero .hero-title-mixed{
    gap:18px !important;
  }
}

@media (max-width:480px){
  .contact-hero-title-lines span,
  .contact-form-title-lines span{
    white-space:nowrap !important;
  }
}


/* =========================================================
   SimGoya HP v1.59 - HOME hero title position / CRAFT copy
   ========================================================= */
/* HOME: target image 2 の位置感へ寄せる。説明文の位置は大きく崩さず、タイトルだけ少し右上へ。 */
#homeHero .hero-title-mixed{
  transform:translateX(4.2vw) translateY(-6.6vh) !important;
}

@media (max-width:1100px){
  #homeHero .hero-title-mixed{
    transform:translateX(2.8vw) translateY(-4.8vh) !important;
  }
}

@media (max-width:820px){
  #homeHero .hero-title-mixed{
    transform:none !important;
  }
}


/* =========================================================
   SimGoya HP v1.60 - CRAFT hero title / product model labels
   ========================================================= */
/* CRAFT SIMページだけ、指定改行が意図通りに見えるようにタイトル幅とサイズを調整。 */
body.craft-page .craft-hero-inner{
  grid-template-columns:minmax(0, 1fr) minmax(520px, .96fr) !important;
  gap:42px !important;
}

body.craft-page .craft-hero-copy h1,
body.craft-page .craft-hero-copy .craft-main-title{
  font-size:clamp(34px, 3.35vw, 56px) !important;
  line-height:1.20 !important;
  letter-spacing:.006em !important;
  max-width:650px !important;
}

body.craft-page .craft-hero-copy h1 br,
body.craft-page .craft-hero-copy .craft-main-title br{
  display:block !important;
}

/* 商品名が埋もれないよう、型番として独立した情報ブロックにする。 */
.craft-product-copy .product-model-kicker{
  margin-bottom:8px !important;
  color:var(--accent) !important;
  letter-spacing:.18em !important;
}

.craft-product-copy .craft-product-model{
  margin:0 0 10px !important;
  color:#fff !important;
  font-family:var(--font-serif-black) !important;
  font-weight:900 !important;
  font-size:clamp(26px, 2.5vw, 42px) !important;
  line-height:1.18 !important;
  letter-spacing:.01em !important;
}

.craft-product-copy .craft-product-model span{
  color:var(--accent) !important;
  font-size:.62em !important;
  letter-spacing:.08em !important;
  vertical-align:.08em !important;
}

.craft-product-copy .craft-product-subtitle{
  margin:0 0 20px !important;
  color:rgba(255,255,255,.86) !important;
  font-family:var(--font-serif-black) !important;
  font-weight:900 !important;
  font-size:clamp(18px, 1.55vw, 26px) !important;
  line-height:1.45 !important;
  letter-spacing:.01em !important;
}

@media (max-width:980px){
  body.craft-page .craft-hero-inner{
    grid-template-columns:1fr !important;
  }

  body.craft-page .craft-hero-copy h1,
  body.craft-page .craft-hero-copy .craft-main-title{
    font-size:clamp(30px, 8.2vw, 46px) !important;
    line-height:1.22 !important;
    max-width:100% !important;
  }
}

@media (max-width:760px){
  .craft-product-copy .craft-product-model{
    font-size:clamp(24px, 7vw, 34px) !important;
  }

  .craft-product-copy .craft-product-subtitle{
    font-size:clamp(17px, 4.8vw, 22px) !important;
  }
}


/* =========================================================
   SimGoya HP v1.61 - HOME logo easing / CRAFT home copy / DRIVE mobile price table
   ========================================================= */
.header,
body:not(.mega-open) .header,
body:not(.mega-open).is-scrolled .header,
body.mega-open .header,
body.is-scrolled .header{
  transition:height .32s ease, min-height .32s ease, background-color .24s ease, box-shadow .24s ease, backdrop-filter .24s ease !important;
}

/* HOME CRAFT SIM showcase copy: requested two-line break */
#indexCraft .showcase-body{
  white-space:pre-line !important;
}

/* DRIVE facility pricing: keep full-width ruled rows and right-aligned amount on smartphone */
.drive-price-table{
  table-layout:fixed;
}
.drive-price-table th:first-child,
.drive-price-table td:first-child{
  width:58%;
}
.drive-price-table th:last-child,
.drive-price-table td:last-child{
  width:42%;
}

@media (max-width:760px){
  .drive-price-table{
    table-layout:fixed !important;
    width:100% !important;
  }

  .drive-price-table tr{
    width:100% !important;
  }

  .drive-price-table th,
  .drive-price-table td{
    width:auto !important;
    padding:16px 18px !important;
  }

  .drive-price-table th:first-child,
  .drive-price-table td:first-child{
    width:56% !important;
  }

  .drive-price-table th:last-child,
  .drive-price-table td:last-child{
    width:44% !important;
    text-align:right !important;
  }
}


/* =========================================================
   SimGoya HP v1.70 - DRIVE/ABOUT hero zoom and image fill fixes
   ========================================================= */
@keyframes sg-single-hero-slow-zoom-v170{
  0%{ transform:scale(1.02); }
  100%{ transform:scale(1.12); }
}

@media (min-width:761px){
  .craft-hero-slideshow.is-single-hero-zoom .craft-hero-slide.is-active{
    animation:sg-single-hero-slow-zoom-v170 15s ease-in-out infinite alternate !important;
    transform-origin:center center !important;
  }

  .about-calm-visual .about-photo-button img{
    animation:sg-single-hero-slow-zoom-v170 16s ease-in-out infinite alternate !important;
    transform-origin:center center !important;
  }
}

/* Machine / operation images should fill the frame like the PC layout, even if the top/bottom crop slightly. */
.drive-machine-slider.craft-product-slider .craft-slider-viewport,
.event-operation-card .craft-product-slider .craft-slider-viewport,
.about-motorsports-slider.craft-product-slider .craft-slider-viewport{
  background:#040d18 !important;
}

.drive-machine-slider.craft-product-slider .craft-slider-zoom img,
.event-operation-card .craft-product-slider .craft-slider-zoom img,
.event-operation-card .craft-slider-zoom img,
.about-motorsports-slider.craft-product-slider .craft-slider-zoom img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  padding:0 !important;
  background:#040d18 !important;
}

.about-motorsports-slider.craft-product-slider .craft-slider-viewport{
  aspect-ratio:16 / 9 !important;
}

@media (max-width:760px){
  .craft-hero-slideshow.is-single-hero-zoom .craft-hero-slide.is-active,
  .about-calm-visual .about-photo-button img{
    animation:none !important;
    transform:none !important;
  }
}


/* =========================================================
   SimGoya HP v1.71 - Product price alert / Sim002 Coming Soon
   ========================================================= */
.craft-product-copy .craft-price-alert{
  margin:0 0 20px !important;
  color:#ff4d4d !important;
  font-size:12px !important;
  font-weight:800;
  line-height:1.8 !important;
  letter-spacing:.02em;
}

.craft-product-copy .craft-renewal-note{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin:-6px 0 14px !important;
  padding:7px 13px;
  border:1px solid rgba(243,152,0,.55);
  border-radius:999px;
  color:var(--accent) !important;
  background:rgba(243,152,0,.10);
  font-size:12px !important;
  font-weight:900;
  letter-spacing:.08em;
}

.craft-product-card.is-coming-soon .craft-slider-viewport{
  overflow:hidden;
}

.craft-product-card.is-coming-soon .craft-slider-zoom img{
  filter:blur(5px) brightness(.48) saturate(.75);
  transform:scale(1.04);
}

.craft-coming-soon-overlay{
  position:absolute;
  inset:0;
  z-index:6;
  display:grid;
  place-content:center;
  gap:10px;
  text-align:center;
  pointer-events:none;
  background:linear-gradient(135deg, rgba(0,0,0,.30), rgba(0,0,0,.66));
}

.craft-coming-soon-overlay span{
  color:var(--accent);
  font-size:13px;
  font-weight:900;
  letter-spacing:.18em;
}

.craft-coming-soon-overlay strong{
  color:#fff;
  font-family:"Noto Serif JP", serif;
  font-size:clamp(30px, 4.8vw, 62px);
  font-weight:900;
  line-height:1;
  letter-spacing:.04em;
  text-shadow:0 18px 42px rgba(0,0,0,.75);
}

@media (max-width:760px){
  .craft-product-copy .craft-price-alert{
    font-size:11px !important;
  }
  .craft-coming-soon-overlay strong{
    font-size:34px;
  }
}

/* =========================================================
   SimGoya HP v1.74 - ABOUT hero top rule alignment
   ========================================================= */
.about-calm-copy{
  position:relative !important;
  padding-top:30px !important;
}

.about-calm-copy::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  height:1px !important;
  background:rgba(255,255,255,.78) !important;
}

@media (max-width:760px){
  .about-calm-copy{
    padding-top:24px !important;
  }
}

/* =========================================================
   SimGoya HP v1.75 - Linked page hero unification
   Scope: CRAFT SIM / DRIVE / EVENT / ABOUT / CONTACT hero only.
   Keep existing page content and avoid full CSS refactor.
   ========================================================= */
@media (min-width:1101px){
  body.linked-page .craft-hero,
  body.linked-page .linked-hero,
  body.linked-page .about-calm-hero{
    min-height:680px !important;
    display:flex !important;
    align-items:center !important;
    padding:calc(var(--header-h, 96px) + 46px) 0 78px !important;
    background:#010912 !important;
  }

  body.linked-page .craft-hero-inner,
  body.linked-page .linked-hero-inner,
  body.linked-page .about-calm-hero-inner{
    display:grid !important;
    grid-template-columns:minmax(0, 1.04fr) minmax(420px, .78fr) !important;
    gap:46px !important;
    align-items:center !important;
  }

  body.linked-page .craft-hero-image,
  body.linked-page .linked-hero-image,
  body.linked-page .about-calm-visual{
    position:relative !important;
    width:100% !important;
    min-height:0 !important;
    height:auto !important;
    aspect-ratio:16 / 9 !important;
    overflow:hidden !important;
    background:#02070d !important;
    clip-path:polygon(0 0, 92% 0, 100% 100%, 0 100%) !important;
  }

  body.linked-page .craft-hero-image::after,
  body.linked-page .linked-hero-image::after,
  body.linked-page .about-calm-visual::after{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    background:linear-gradient(90deg, rgba(0,0,0,.05), rgba(0,0,0,.28)) !important;
    pointer-events:none !important;
    z-index:2 !important;
  }

  body.linked-page .craft-hero-image .craft-hero-zoom,
  body.linked-page .about-calm-visual .about-photo-button{
    display:block !important;
    width:100% !important;
    height:100% !important;
    aspect-ratio:16 / 9 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
  }

  body.linked-page .craft-hero-slide,
  body.linked-page .linked-hero-image img,
  body.linked-page .about-calm-visual img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    display:block !important;
  }

  body.linked-page .linked-hero-image img,
  body.linked-page .about-calm-visual img{
    opacity:.88 !important;
  }

  body.linked-page .craft-hero-copy,
  body.linked-page .linked-hero-copy,
  body.linked-page .about-calm-copy{
    position:relative !important;
    max-width:760px !important;
    padding-top:30px !important;
    align-self:center !important;
  }

  body.linked-page .craft-hero-copy::before,
  body.linked-page .linked-hero-copy::before,
  body.linked-page .about-calm-copy::before{
    content:"" !important;
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    height:1px !important;
    background:rgba(255,255,255,.78) !important;
  }

  body.linked-page .craft-hero-copy .linked-kicker,
  body.linked-page .linked-hero-copy .linked-kicker,
  body.linked-page .about-calm-copy .linked-kicker{
    margin:0 0 16px !important;
  }

  body.linked-page .craft-hero-copy h1,
  body.linked-page .linked-hero-copy h1,
  body.linked-page .about-calm-copy h1{
    margin-top:0 !important;
  }
}

@media (min-width:761px) and (max-width:1100px){
  body.linked-page .craft-hero-image,
  body.linked-page .linked-hero-image,
  body.linked-page .about-calm-visual{
    aspect-ratio:16 / 9 !important;
    min-height:0 !important;
  }

  body.linked-page .craft-hero-copy,
  body.linked-page .linked-hero-copy,
  body.linked-page .about-calm-copy{
    position:relative !important;
    padding-top:30px !important;
  }

  body.linked-page .craft-hero-copy::before,
  body.linked-page .linked-hero-copy::before,
  body.linked-page .about-calm-copy::before{
    content:"" !important;
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    height:1px !important;
    background:rgba(255,255,255,.78) !important;
  }
}


/* =========================================================
   SimGoya HP v1.76 - copy linebreak fixes / contact hero image
   Scope: requested text line control only.
   ========================================================= */
.home-craft-title-fixed,
.home-event-title-fixed,
body.craft-page .craft-main-title,
.event-hero-title-lines,
.about-hero-title-fixed{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
}

.home-craft-title-fixed span,
.home-event-title-fixed span,
body.craft-page .craft-main-title span,
.event-hero-title-lines span,
.about-hero-title-fixed span{
  display:block !important;
  white-space:nowrap !important;
}

body.craft-page .craft-hero-copy .craft-main-title{
  font-size:clamp(34px, 3.05vw, 52px) !important;
  line-height:1.18 !important;
  max-width:760px !important;
}

body.about-page .about-calm-copy h1.about-hero-title-fixed{
  font-size:clamp(42px, 4.45vw, 72px) !important;
  line-height:1.17 !important;
  max-width:760px !important;
}

body.about-page .about-lead span{
  display:block !important;
}

@media (min-width:1101px){
  .home-craft-title-fixed,
  .home-event-title-fixed{
    max-width:720px !important;
  }
  body.linked-page .event-hero-copy .event-hero-title-lines{
    font-size:clamp(40px, 4.2vw, 70px) !important;
    line-height:1.13 !important;
    max-width:780px !important;
  }
}

@media (max-width:760px){
  .home-craft-title-fixed span,
  .home-event-title-fixed span,
  body.craft-page .craft-main-title span,
  .event-hero-title-lines span,
  .about-hero-title-fixed span{
    white-space:normal !important;
  }
  body.about-page .about-lead span{
    display:inline !important;
  }
}

/* =========================================================
   SimGoya HP v1.77 - mobile linebreak lock
   Scope: preserve requested manual line breaks on smartphone.
   Reason: v1.76 had mobile white-space reset that allowed titles to reflow.
   ========================================================= */

.home-craft-title-fixed,
.home-event-title-fixed,
body.craft-page .craft-main-title,
.event-hero-title-lines,
.about-hero-title-fixed{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
}

.home-craft-title-fixed span,
.home-event-title-fixed span,
body.craft-page .craft-main-title span,
.event-hero-title-lines span,
.about-hero-title-fixed span{
  display:block !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}

body.about-page .about-lead span{
  display:block !important;
}

@media (max-width:760px){
  .home-craft-title-fixed,
  .home-event-title-fixed{
    font-size:clamp(23px, 6.2vw, 31px) !important;
    line-height:1.22 !important;
    max-width:100% !important;
  }

  body.craft-page .craft-hero-copy .craft-main-title{
    font-size:clamp(30px, 8.2vw, 44px) !important;
    line-height:1.16 !important;
    max-width:100% !important;
  }

  body.linked-page .event-hero-copy .event-hero-title-lines,
  body.event-page .event-hero-copy .event-hero-title-lines{
    font-size:clamp(30px, 8.2vw, 44px) !important;
    line-height:1.16 !important;
    max-width:100% !important;
  }

  body.about-page .about-calm-copy h1.about-hero-title-fixed{
    font-size:clamp(38px, 9.8vw, 56px) !important;
    line-height:1.16 !important;
    max-width:100% !important;
  }

  body.about-page .about-lead{
    font-size:clamp(11px, 3.05vw, 15px) !important;
    line-height:1.9 !important;
  }

  body.about-page .about-lead span{
    display:block !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
  }
}

@media (max-width:380px){
  .home-craft-title-fixed,
  .home-event-title-fixed{
    font-size:22px !important;
  }

  body.craft-page .craft-hero-copy .craft-main-title,
  body.linked-page .event-hero-copy .event-hero-title-lines,
  body.event-page .event-hero-copy .event-hero-title-lines{
    font-size:29px !important;
  }

  body.about-page .about-lead{
    font-size:10.8px !important;
  }
}
