/* ============================================================
   c1.css — C1 Editorial Hero + Home Page Styles
   Crowd Arch HP · v20260518a

   Loaded on the home page only (functions.php: is_front_page()).
   Contains all .hero--c1 CSS extracted from the design preview.
   ============================================================ */

/* ── Keyframes ─────────────────────────────────────────────── */
@keyframes c1Fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes c1FadeDown {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes c1FadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes c1FadeLeft {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes c1FadeRight {
  from { opacity: 0; transform: translateX(-20px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes c1KanjiIn {
  from { opacity: 0; transform: translateY(40px) scale(0.97); filter: blur(6px); }
  to   { opacity: 1; transform: translateY(0) scale(1);        filter: blur(0); }
}
@keyframes c1KanjiInMid {
  from { opacity: 0; transform: translateY(20px) scale(0.97); filter: blur(6px); }
  to   { opacity: 1; transform: translateY(-26px) scale(1);   filter: blur(0); }
}
@keyframes c1RuleDraw {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes c1Pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.5; transform: scale(1.4); }
}
@keyframes c1BlobDrift1 {
  0%,100% { transform: translate(0,0) scale(1); }
  25%     { transform: translate(-4%,6%) scale(1.06); }
  50%     { transform: translate(-8%,2%) scale(1.02); }
  75%     { transform: translate(-2%,-4%) scale(0.96); }
}
@keyframes c1BlobDrift2 {
  0%,100% { transform: translate(0,0) scale(1); }
  33%     { transform: translate(10%,-8%) scale(1.10); }
  66%     { transform: translate(5%,5%) scale(0.93); }
}
@keyframes c1BlobDrift3 {
  0%,100% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50%     { transform: translate(-15%,12%) scale(1.15); opacity: 1; }
}
@keyframes c1RegRotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes c1RulePulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.55; }
}
@keyframes c1Shimmer {
  from { transform: translateX(-150%) skewX(-12deg); }
  to   { transform: translateX(160%)  skewX(-12deg); }
}
@keyframes c1MarqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes c1MobileIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}
@keyframes c1MobileFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes c1MobileFadeReg {
  from { opacity: 0; }
  to   { opacity: 0.65; }
}


/* ── Site-wide C1 palette — Sky Blue × White × Gold ── */
:root {
  --bg-light:   #FFFFFF;
  --bg-light-2: #EEF6FC;
  --bg-light-3: #DCF0FA;
  --gold:       #B89A5A;
  --teal:       #3AACDF;
  --teal-light: #5DC4F0;
  --line-light: rgba(10,61,98,0.10);
  --text-dark:  #0A3D62;
  --text-mid:   rgba(10,61,98,0.65);
}
/* Concept / News section labels on cream bg */
.concept .label, .news .label { color: var(--teal); }


/* ── Hero base ──────────────────────────────────────────────── */
.hero--c1 {
  background: #EAF4FB;
  height: 100vh;
  min-height: 900px;
  position: relative;
  overflow: hidden;
  color: #0A3D62;
  display: block;
}
/* Seamless fade to next section (white bg) */
.hero--c1::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 200px;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(255,255,255,0.45) 55%,
    rgba(255,255,255,0.85) 80%,
    #ffffff 100%
  );
  pointer-events: none;
  z-index: 3;
}

/* ── Background blobs ───────────────────────────────────────── */
.c1-bg-blob {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
  will-change: transform;
}
.c1-bg-blob--warm {
  width: 65%; height: 70%;
  top: -20%; right: -8%;
  background: radial-gradient(circle, rgba(58,172,223,0.50) 0%, transparent 70%);
  animation: c1BlobDrift1 18s ease-in-out infinite;
}
.c1-bg-blob--cool {
  width: 55%; height: 60%;
  bottom: -15%; left: -12%;
  background: radial-gradient(circle, rgba(10,61,98,0.07) 0%, transparent 70%);
  animation: c1BlobDrift2 22s ease-in-out infinite 2s;
}
.c1-bg-blob--accent {
  width: 42%; height: 48%;
  top: 15%; left: 22%;
  background: radial-gradient(circle, rgba(41,128,185,0.12) 0%, transparent 70%);
  animation: c1BlobDrift3 15s ease-in-out infinite 6s;
}

/* ── Light canvas ───────────────────────────────────────────── */
.c1-light-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

/* ── Grid SVG ───────────────────────────────────────────────── */
.c1-grid-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.5;
}

/* ── Corner crop marks ──────────────────────────────────────── */
.c1-corner {
  position: absolute;
  width: 18px;
  height: 18px;
  pointer-events: none;
  z-index: 20;
  animation: c1Fade 1s both;
  animation-play-state: paused;
}
.c1-corner::before,
.c1-corner::after {
  content: '';
  position: absolute;
  background: #B89A5A;
}
.c1-corner::before { width: 18px; height: 1px; top: 50%; left: 0; transform: translateY(-50%); }
.c1-corner::after  { width: 1px; height: 18px; left: 50%; top: 0; transform: translateX(-50%); }
.c1-corner--tl { top: 31px; left: 31px; }
.c1-corner--tr { top: 31px; right: 31px; }
.c1-corner--bl { bottom: 31px; left: 31px; }
.c1-corner--br { bottom: 31px; right: 31px; }

/* ── Folio strip ────────────────────────────────────────────── */
.c1-folio {
  position: absolute;
  left: 56px; right: 56px; top: 110px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Inter', monospace;
  font-size: 10px;
  letter-spacing: 0.32em;
  color: rgba(10,61,98,0.6);
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(10,61,98,0.15);
  z-index: 10;
  animation: c1FadeDown 0.8s both;
  animation-play-state: paused;
}
.c1-folio-center { color: #B89A5A; font-weight: 600; }

/* ── Kanji container ────────────────────────────────────────── */
.c1-kanji-container {
  position: absolute;
  left: 0; right: 0; top: 180px; bottom: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.c1-kanji {
  position: relative;
  display: inline-flex;
  align-items: baseline;
}
.c1-kanji-ka {
  font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
  font-weight: 300;
  font-size: clamp(180px, 31.25vw, 450px);
  color: #0A3D62;
  line-height: 0.85;
  letter-spacing: -0.05em;
  display: inline-block;
  animation: c1KanjiIn 1.2s cubic-bezier(.2,.7,.2,1) both;
  animation-play-state: paused;
}
.c1-kanji-ke {
  font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
  font-weight: 400;
  font-size: clamp(128px, 22.22vw, 320px);
  color: #B89A5A;
  line-height: 0.85;
  letter-spacing: -0.05em;
  margin-left: -24px;
  display: inline-block;
  transform: translateY(-26px);
  animation: c1KanjiInMid 1.2s cubic-bezier(.2,.7,.2,1) both;
  animation-play-state: paused;
}
.c1-kanji-hashi {
  font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
  font-weight: 300;
  font-size: clamp(180px, 31.25vw, 450px);
  color: #0A3D62;
  line-height: 0.85;
  letter-spacing: -0.05em;
  margin-left: -24px;
  display: inline-block;
  animation: c1KanjiIn 1.2s cubic-bezier(.2,.7,.2,1) both;
  animation-play-state: paused;
}
.c1-kanji-rule-gold {
  position: absolute;
  left: -28px; right: -28px; bottom: -24px;
  height: 5px;
  background: #B89A5A;
  transform-origin: left;
  animation: c1RuleDraw 1.0s cubic-bezier(.5,0,.2,1) both;
  animation-play-state: paused;
}
.c1-kanji-rule-thin {
  position: absolute;
  left: -28px; right: 240px; bottom: -40px;
  height: 1px;
  background: #0A3D62;
  opacity: 0.35;
  transform-origin: left;
  animation: c1RuleDraw 0.8s cubic-bezier(.5,0,.2,1) both;
  animation-play-state: paused;
}

/* ── Left panel: Philosophy / headline ──────────────────────── */
.c1-left {
  position: absolute;
  left: 56px; top: 220px;
  z-index: 5;
  max-width: 340px;
  animation: c1FadeRight 0.9s both;
  animation-play-state: paused;
}
.c1-label {
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  letter-spacing: 0.45em;
  color: #B89A5A;
  font-weight: 700;
}
/* Mobile-only line break in h1 — hidden on desktop */
.c1-h1-br { display: none; }

.c1-h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(36px, 3.9vw, 56px);
  font-weight: 400;
  line-height: 1.05;
  margin: 18px 0 0;
  color: #0A3D62;
  letter-spacing: -0.01em;
}
.c1-dropcap {
  float: left;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(72px, 8.33vw, 120px);
  line-height: 0.85;
  font-weight: 300;
  margin-right: 10px;
  margin-top: 6px;
  font-style: italic;
  color: #B89A5A;
}
.c1-h1 em { color: #B89A5A; font-style: italic; }
.c1-essay-line {
  margin-top: 40px;
  display: flex;
  align-items: center;
  gap: 12px;
  clear: both;
}
.c1-essay-dash {
  width: 40px; height: 1px;
  background: #0A3D62;
  opacity: 0.4;
  display: inline-block;
  flex-shrink: 0;
}
.c1-essay-text {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 16px;
  color: #0A3D62;
  opacity: 0.7;
}

/* ── Right panel: Mission / CTA ─────────────────────────────── */
.c1-right {
  position: absolute;
  right: 56px; bottom: 170px;
  z-index: 5;
  max-width: 380px;
  text-align: right;
  animation: c1FadeLeft 0.9s both;
  animation-play-state: paused;
}
.c1-label--right { text-align: right; }
.c1-mission-text {
  font-family: 'Noto Serif JP', serif;
  font-size: 19px;
  line-height: 2.1;
  letter-spacing: 0.15em;
  margin-top: 18px;
  color: #0A3D62;
}
.c1-mission-accent {
  color: #B89A5A;
  border-bottom: 1px solid #B89A5A;
  padding-bottom: 2px;
}
.c1-cta-btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
  padding: 18px 30px;
  background: #0A3D62;
  color: #EAF4FB;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  letter-spacing: 0.36em;
  text-decoration: none;
  font-weight: 500;
  transition: transform .2s, box-shadow .2s;
}
.c1-cta-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 25%, rgba(255,245,180,0.22) 50%, transparent 75%);
  transform: translateX(-160%) skewX(-12deg);
  transition: transform 0.72s cubic-bezier(0.4, 0, 0.15, 1);
  pointer-events: none;
}
.c1-cta-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 32px rgba(10,61,98,0.22), 0 0 0 1px rgba(41,128,185,0.35);
  color: #EAF4FB;
}
.c1-cta-btn:hover::after {
  transform: translateX(160%) skewX(-12deg);
}
.c1-cta-btn:hover .c1-cta-line {
  width: 36px;
}
.c1-cta-line {
  width: 24px; height: 1px;
  background: #B89A5A;
  display: inline-block;
  flex-shrink: 0;
  transition: width 0.3s ease;
}

/* ── Registration mark ──────────────────────────────────────── */
.c1-reg-mark {
  position: absolute;
  right: 56px; top: 220px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  animation: c1Fade 1s both;
  animation-play-state: paused;
}
.c1-reg-text {
  font-family: 'Inter', monospace;
  font-size: 9px;
  letter-spacing: 0.3em;
  color: #B89A5A;
  text-align: right;
  line-height: 1.6;
}

/* ── Latest news card ───────────────────────────────────────── */
.c1-news-card {
  position: absolute;
  left: 56px; top: 580px;
  z-index: 5;
  max-width: 280px;
  background: rgba(245,241,232,0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(10,61,98,0.15);
  padding: 18px 20px;
  animation: c1FadeRight 0.9s both;
  animation-play-state: paused;
  transition: transform 0.35s cubic-bezier(.2,.7,.2,1),
              box-shadow 0.35s ease,
              border-color 0.35s ease;
  cursor: pointer;
}
.c1-news-card:hover {
  transform: translate(5px, -5px);
  box-shadow: 0 16px 40px rgba(41,128,185,0.22), -5px 5px 0 0 rgba(41,128,185,0.3);
  border-color: rgba(41,128,185,0.55);
}
.c1-news-card:hover .c1-news-link {
  letter-spacing: 0.04em;
}
.c1-news-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  letter-spacing: 0.4em;
  color: #B89A5A;
  font-weight: 700;
  margin-bottom: 12px;
}
.c1-news-latest { display: flex; align-items: center; gap: 8px; }
.c1-news-dot {
  width: 6px; height: 6px;
  border-radius: 999px;
  background: #B89A5A;
  box-shadow: 0 0 8px #B89A5A;
  animation: c1Pulse 2s ease-in-out infinite;
  display: inline-block;
  flex-shrink: 0;
}
.c1-news-body {
  font-family: 'Noto Serif JP', serif;
  font-size: 13px;
  line-height: 1.7;
  color: #0A3D62;
  margin: 0;
}
.c1-news-link {
  color: #B89A5A;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 14px;
  transition: letter-spacing 0.3s ease;
}

/* ── Service strip (scrolling marquee) ──────────────────────── */
.c1-service-strip {
  position: absolute;
  left: 40px; right: 40px; bottom: 36px;
  height: 52px;
  overflow: hidden;
  border-top: 1px solid rgba(10,61,98,0.15);
  display: flex;
  align-items: center;
  z-index: 5;
  padding: 0;
  animation: c1FadeUp 0.8s both;
  animation-play-state: paused;
}
.c1-svc-track {
  display: flex;
  width: max-content;
  animation: c1MarqueeScroll 44s linear infinite;
}
.c1-svc-set {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.c1-svc-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-inline: 2.8rem;
  white-space: nowrap;
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  letter-spacing: 0.38em;
  color: rgba(10,61,98,0.6);
}
.c1-svc-num  { color: #B89A5A; font-weight: 600; }
.c1-svc-sep  { color: rgba(41,128,185,0.45); font-size: 0.38rem; flex-shrink: 0; }


/* ── Activate animations on .c1-ready ──────────────────────── */
.hero--c1.c1-ready .c1-folio           { animation-play-state: running; animation-delay: 0.3s; }
.hero--c1.c1-ready .c1-kanji-ka        { animation-play-state: running; animation-delay: 0.30s; }
.hero--c1.c1-ready .c1-kanji-ke        { animation-play-state: running; animation-delay: 0.48s; }
.hero--c1.c1-ready .c1-kanji-hashi     { animation-play-state: running; animation-delay: 0.66s; }
.hero--c1.c1-ready .c1-kanji-rule-gold { animation-play-state: running; animation-delay: 1.10s; }
.hero--c1.c1-ready .c1-kanji-rule-thin { animation-play-state: running; animation-delay: 1.40s; }
.hero--c1.c1-ready .c1-left            { animation-play-state: running; animation-delay: 0.70s; }
.hero--c1.c1-ready .c1-right           { animation-play-state: running; animation-delay: 0.90s; }
.hero--c1.c1-ready .c1-reg-mark        { animation-play-state: running; animation-delay: 1.40s; }
.hero--c1.c1-ready .c1-news-card       { animation-play-state: running; animation-delay: 1.10s; }
.hero--c1.c1-ready .c1-service-strip   { animation-play-state: running; animation-delay: 1.20s; }
.hero--c1.c1-ready .c1-corner          { animation-play-state: running; animation-delay: 1.80s; }

/* Reg mark SVG rotates slowly */
.hero--c1.c1-ready .c1-reg-mark svg {
  animation: c1RegRotate 24s linear infinite 2s;
  transform-box: fill-box;
  transform-origin: center;
}

/* Gold rule breathes after draw */
.hero--c1.c1-ready .c1-kanji-rule-gold {
  animation:
    c1RuleDraw 1.0s cubic-bezier(.5,0,.2,1) both 1.10s,
    c1RulePulse 4s ease-in-out infinite 2.2s;
  animation-play-state: running;
}


/* ── Header overrides for C1 home (unscrolled) ──────────────── */
body.is-home .site-header:not(.scrolled) {
  background: transparent !important;
  box-shadow: none !important;
  border-bottom: none !important;
}
body.is-home .site-header:not(.scrolled) .nav-link {
  color: rgba(10,61,98,0.6);
}
body.is-home .site-header:not(.scrolled) .nav-link.is-active {
  color: #0A3D62;
  border-bottom-color: #B89A5A;
}
body.is-home .site-header:not(.scrolled) .nav-link {
  position: relative;
}
body.is-home .site-header:not(.scrolled) .nav-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: #B89A5A;
  transition: width 0.3s cubic-bezier(.2,.7,.2,1);
}
body.is-home .site-header:not(.scrolled) .nav-link:hover::after { width: 100%; }
body.is-home .site-header:not(.scrolled) .nav-link.is-active::after { width: 100%; }

/* CONTACT nav button — gold-filled */
body.is-home .site-header .nav-cta {
  position: relative;
  overflow: hidden;
  background: #0B1D3A !important;
  color: #FFFFFF !important;
  border: none !important;
  padding: 14px 26px !important;
  font-size: 12px;
  letter-spacing: 0.28em;
  font-weight: 600;
  transition: background 0.2s, box-shadow 0.2s !important;
}
body.is-home .site-header .nav-cta::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 25%, rgba(255,255,255,0.14) 50%, transparent 75%);
  transform: translateX(-160%) skewX(-12deg);
  transition: transform 0.65s cubic-bezier(0.4, 0, 0.15, 1);
  pointer-events: none;
}
body.is-home .site-header .nav-cta:hover {
  background: #132847 !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 18px rgba(11,29,58,0.5) !important;
}
body.is-home .site-header .nav-cta:hover::after {
  transform: translateX(160%) skewX(-12deg);
}

/* ── Logo subtitle ──────────────────────────────────────────── */
.site-logo__subtitle-c1 {
  font-family: 'Inter', sans-serif;
  font-size: 8px;
  opacity: 0.55;
  color: #0A3D62;
  letter-spacing: 0.42em;
  margin-top: 5px;
  display: block;
}


/* ── Mobile layout + performance ────────────────────────────── */
@media (max-width: 768px) {

  /* ── GPU: remove expensive effects ── */
  .c1-bg-blob      { display: none; }
  .c1-light-canvas { display: none; }

  /* ── Disable heavy CSS animations ── */
  .c1-kanji-ka,
  .c1-kanji-ke,
  .c1-kanji-hashi {
    will-change: auto;
    animation: none !important;
  }
  /* Cancel desktop animations on mobile */
  .c1-left,
  .c1-right,
  .c1-service-strip,
  .c1-reg-mark {
    animation: none !important;
  }
  /* Initial hidden state — JS (runHeroAnimation) sets inline transition and animates in */
  .c1-left,
  .c1-right,
  .c1-service-strip,
  .c1-reg-mark,
  .c1-kanji-container {
    opacity: 0;
  }

  /* ── Hero: 01(top) — 架け橋(center bg) — 02(bottom) ── */
  .hero--c1 {
    background: linear-gradient(160deg, #EAF4FB 0%, #ede8da 60%, #e8e2d0 100%);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: calc(env(safe-area-inset-top, 0px) + 134px) 24px 70px;
    height: 100svh;
    min-height: 100svh;
    overflow: hidden;
  }

  /* ── Panels: remove absolute positioning, become flex children ── */
  .c1-left {
    position: static;
    left: auto; right: auto; top: auto;
    max-width: 100%;
    width: 100%;
  }
  .c1-right {
    position: static;
    left: auto; right: auto; bottom: auto;
    max-width: 100%;
    width: 100%;
    text-align: left;
  }

  /* ── Kanji watermark: stays absolute so it doesn't affect flex flow ── */
  .c1-kanji-container {
    position: absolute;
    top: 0; left: 0; right: 0;
    bottom: 82px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 3vw;
    overflow: hidden;
    pointer-events: none;
  }
  .c1-kanji-ka    { font-size: 26vw; }
  .c1-kanji-ke    { font-size: 18vw; }
  .c1-kanji-hashi { font-size: 26vw; }
  .c1-kanji {
    position: static;
    flex-shrink: 0;
    transform: none;
  }
  .c1-kanji-ke { transform: translateY(-14px); }

  /* ── Typography hierarchy (label 10px as baseline) ── */
  .site-logo__subtitle-c1 { display: block; }
  .c1-label,
  .c1-label--right {
    font-size: 10px !important;
    letter-spacing: 0.42em;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
  }
  .c1-label--right { text-align: left; }
  .c1-h1-br        { display: inline; } /* show line break between & and the */
  .c1-h1           { font-size: clamp(22px, 6vw, 28px); margin-top: 10px; }
  .c1-dropcap      { font-size: clamp(42px, 11vw, 56px); }
  .c1-essay-line   { display: none; }
  .c1-mission-text { font-size: 17px; line-height: 1.9; margin-top: 10px; }
  /* c1-ready used by desktop GSAP path only; mobile uses inline styles via JS */

  /* ── CTA button: full width, centered text, comfortable tap target ── */
  .c1-cta-btn {
    display: flex;
    width: 100%;
    justify-content: center;
    padding: 16px 20px;
    margin-top: 18px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  /* ── Hide desktop-only decoration ── */
  .c1-corner,
  .c1-news-card,
  .c1-grid-svg,
  .c1-folio,
  .c1-kanji-rule-gold,
  .c1-kanji-rule-thin { display: none !important; }

  /* ── Registration mark: show in upper-right empty space ── */
  .c1-reg-mark {
    display: flex !important;
    right: 20px;
    top: 74px;
  }

  /* ── Service strip: full width ── */
  .c1-service-strip {
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 0;
  }
  .c1-svc-item { padding-inline: 1.6rem; }
}

/* ── prefers-reduced-motion ─────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .c1-bg-blob,
  .c1-news-dot,
  .c1-svc-track {
    animation: none !important;
  }
  .c1-kanji-ka,
  .c1-kanji-ke,
  .c1-kanji-hashi,
  .c1-kanji-rule-gold,
  .c1-kanji-rule-thin,
  .c1-folio,
  .c1-left,
  .c1-right,
  .c1-reg-mark,
  .c1-news-card,
  .c1-service-strip,
  .c1-corner {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .c1-reg-mark { opacity: 0.65 !important; }
}
