/* AceLink サイト共通スタイル（index.html のインラインから分離・2026-07-24）
   見た目は変更なし。編集はこのファイルを正とする。 */
/* ============================================================
   AceLink Design System (inlined) — theme-apparel 適用版
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html.is-hash-jump { scroll-behavior: auto; }
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
ul, ol { list-style: none; }

:root {
  --c-primary: #0e63d8; --c-primary-d: #0a4db5; --c-primary-l: #e8f1fc;
  --c-accent: #f0a155; --c-deep: #061833;
  --c-ink: #1a2533; --c-sub: #475569; --c-muted: #6b7785;
  --c-line: #e2e8f0; --c-bg: #f6f9fd; --c-surface: #ffffff;
  --font-base: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-head: var(--font-base);
  --fw-normal: 400; --fw-bold: 700; --fw-black: 900;
  --fs-display: clamp(34px, 6vw, 60px);
  --fs-h1: clamp(28px, 5vw, 46px);
  --fs-h2: clamp(24px, 3.6vw, 36px);
  --fs-h3: clamp(18px, 2.2vw, 22px);
  --fs-lead: clamp(15px, 1.6vw, 18px);
  --fs-body: 15px; --fs-sm: 13px; --fs-xs: 11px;
  --lh-tight: 1.3; --lh-normal: 1.7; --lh-relaxed: 1.9; --tracking: 0.02em;
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px; --sp-9: 96px; --sp-10: 128px;
  --section-y: clamp(56px, 8vw, 104px);
  --container: 1120px; --container-narrow: 760px; --gutter: 24px;
  --radius-sm: 4px; --radius: 10px; --radius-lg: 16px; --radius-pill: 999px;
  --shadow-sm: 0 1px 3px rgba(6,24,51,.08), 0 1px 2px rgba(6,24,51,.04);
  --shadow: 0 4px 16px rgba(6,24,51,.10);
  --shadow-lg: 0 12px 40px rgba(6,24,51,.14);
  --ease: cubic-bezier(.4,0,.2,1); --dur: .2s;
}
/* アパレル・ファッション（黒6：茶3：金1／エディトリアル・上質） */
.theme-apparel {
  /* 主役=ウォームブラウン（ボタン・帯・アクセント面。真っ黒は使わない） */
  --c-primary: #3a2c1b; --c-primary-d: #261c0f;
  --c-deep: #14110c; --c-ink: #241f18;
  /* 下支え=茶（面・背景・罫） */
  --c-primary-l: #ecdfca; --c-bg: #f4ede2; --c-line: #e0d3bf;
  --c-sub: #5a5045; --c-muted: #8a7f70;
  /* 差し色=金（線・小物・アクセントのみ） */
  --c-accent: #c19a3f;
  /* 帯背景=ウォームブラウン（真っ黒は使わない・視認性と信頼感） */
  --c-band: #3a2c1b;
  --font-head: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, var(--font-base);
  --tracking: 0.04em;
}

body { font-family: var(--font-base); color: var(--c-ink); background: var(--c-surface); line-height: var(--lh-normal); font-feature-settings: "palt"; -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4 { font-family: var(--font-head); line-height: var(--lh-tight); letter-spacing: var(--tracking); color: var(--c-deep); text-wrap: balance; }

.ds-section { padding-block: var(--section-y); }
.ds-section--bg { background: var(--c-bg); }
.ds-section--deep { background: var(--c-band, var(--c-deep)); }
.ds-container { width: min(var(--container), 100% - var(--gutter)*2); margin-inline: auto; }
.ds-container--narrow { width: min(var(--container-narrow), 100% - var(--gutter)*2); margin-inline: auto; }
.ds-grid { display: grid; gap: var(--sp-4); grid-template-columns: 1fr; }
@media (min-width: 768px) {
  .ds-grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
  .ds-grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
}
.ds-eyebrow { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .18em; color: var(--c-accent); text-transform: uppercase; margin-bottom: var(--sp-3); }
.ds-eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--c-accent); }
.ds-title { font-size: var(--fs-h2); font-weight: var(--fw-bold); color: var(--c-deep); margin-bottom: var(--sp-3); }
.ds-lead { font-size: var(--fs-lead); color: var(--c-sub); line-height: var(--lh-relaxed); max-width: 640px; text-wrap: balance; }
.ds-head { margin-bottom: var(--sp-7); }
.ds-head--center { text-align: center; }
.ds-head--center .ds-eyebrow { justify-content: center; }
.ds-head--center .ds-lead { margin-inline: auto; }
.ds-section--deep .ds-title { color: #fff; }
.ds-section--deep .ds-lead { color: rgba(255,255,255,.72); }
.ds-section--deep .ds-eyebrow { color: var(--c-accent); }

.ds-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2); min-height: 50px; padding: 0 var(--sp-6); font-size: var(--fs-body); font-weight: var(--fw-bold); letter-spacing: var(--tracking); border-radius: var(--radius-sm); border: 1.5px solid transparent; transition: background var(--dur) var(--ease), color var(--dur) var(--ease), opacity var(--dur) var(--ease); white-space: nowrap; }
.ds-btn--primary { background: var(--c-primary); color: #fff; }
.ds-btn--primary:hover { background: var(--c-primary-d); }
.ds-btn--ghost { background: transparent; color: var(--c-primary); border-color: var(--c-primary); }
.ds-btn--ghost:hover { background: var(--c-primary-l); }
.ds-btn--white { background: #fff; color: var(--c-deep); }
.ds-btn--block { width: 100%; }

.ds-card { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-6) var(--sp-5); box-shadow: var(--shadow-sm); transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease); }
.ds-card--hover:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.ds-card__icon { width: 52px; height: 52px; display: grid; place-items: center; background: var(--c-primary-l); color: var(--c-accent); border-radius: var(--radius); font-size: 24px; margin-bottom: var(--sp-4); }
.ds-card__title { font-size: var(--fs-h3); font-weight: var(--fw-bold); color: var(--c-deep); margin-bottom: var(--sp-2); }
.ds-card__text { font-size: var(--fs-sm); color: var(--c-sub); line-height: var(--lh-relaxed); }
.capabilities-grid .ds-card { padding: var(--sp-5) var(--sp-5); }
.capabilities-grid .ds-card__title { margin-bottom: 0; }

.ds-tag { display: inline-block; padding: 3px 10px; background: var(--c-primary-l); color: var(--c-accent); font-size: var(--fs-xs); font-weight: var(--fw-bold); border-radius: var(--radius-sm); letter-spacing: .04em; }
.ds-center { text-align: center; }
.ds-mt-6 { margin-top: var(--sp-6); }
.ds-mt-7 { margin-top: var(--sp-7); }
.ds-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.ds-contact-choice { display: flex; flex-direction: column; align-items: center; }
.ds-contact-choice > summary { list-style: none; cursor: pointer; }
.ds-contact-choice > summary::-webkit-details-marker { display: none; }
.ds-contact-choice__links { justify-content: center; margin-top: var(--sp-3); }
.ds-section--deep .ds-btn--ghost { color: #fff; border-color: rgba(255,255,255,.55); }
.ds-section--deep .ds-btn--ghost:hover { background: rgba(255,255,255,.14); }

.ds-header { position: sticky; top: 0; z-index: 100; background: rgba(244,237,226,.95); backdrop-filter: blur(12px); border-bottom: 1px solid var(--c-line); }
.ds-header__inner { display: flex; align-items: center; justify-content: space-between; height: 68px; }
.ds-header .ds-brand {
  display: block;
  width: 132px;
  height: 34px;
  overflow: hidden;
  font-size: 0;
  background: url("assets/img/acelink_logo_wordmark.png") center / 128% auto no-repeat;
  mix-blend-mode: multiply;
}
.ds-nav { display: none; align-items: center; gap: var(--sp-6); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-sub); }
.ds-nav a:not(.ds-nav__cta) { position: relative; padding-block: 4px; color: var(--c-ink); transition: color var(--dur) var(--ease); }
.ds-nav a:not(.ds-nav__cta)::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--c-accent); transform: scaleX(0); transform-origin: left; transition: transform var(--dur) var(--ease); }
.ds-nav a:not(.ds-nav__cta):hover { color: var(--c-deep); }
.ds-nav a:not(.ds-nav__cta):hover::after { transform: scaleX(1); }
.ds-nav__cta { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; background: var(--c-primary); color: #fff !important; border-radius: var(--radius-sm); font-size: var(--fs-sm); font-weight: var(--fw-bold); }
.ds-burger { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 9px; background: none; border: none; }
.ds-burger span { display: block; height: 2px; background: var(--c-ink); border-radius: 2px; transition: transform var(--dur), opacity var(--dur); }
.ds-burger[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.ds-burger[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.ds-burger[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
.ds-mobile-menu { display: none; position: absolute; inset-inline: 0; top: 100%; background: var(--c-bg); border-bottom: 1px solid var(--c-line); padding: 8px 24px 20px; box-shadow: var(--shadow); }
.ds-mobile-menu.is-open { display: block; }
.ds-mobile-menu a { display: block; padding: 13px 0; font-size: 15px; font-weight: var(--fw-bold); color: var(--c-sub); border-bottom: 1px solid var(--c-line); }
.ds-mobile-menu a:last-child { border-bottom: none; }
.ds-mobile-menu .ds-nav__cta { display: flex; justify-content: center; margin-top: 14px; padding: 13px 0; }
@media (min-width: 900px){ .ds-nav{ display: flex; } .ds-burger{ display: none; } }

.ds-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--c-line); background: var(--c-deep); }
/* 写真の空気感を主役にし、コピーは余白の暗部へ直接重ねる */
.ds-hero__bg { position: absolute; inset: 0;
  background:
    linear-gradient(rgba(0,0,0,.06), rgba(0,0,0,.06)),
    url("assets/img/top-hero-store-20260830-soft-wall.png") center / cover no-repeat;
}
.ds-hero .ds-tag { font-size: 15px; padding: 6px 16px; letter-spacing: .06em; color: var(--c-accent); border: 1px solid rgba(193,154,63,.5); background: rgba(193,154,63,.06); }
.ds-hero__inner { position: relative; z-index: 2; padding-block: clamp(56px, 11vw, 116px); }
.ds-hero__title { font-size: var(--fs-display); font-weight: var(--fw-bold); color: #fff; margin-bottom: var(--sp-4); letter-spacing: .02em; }
.ds-hero__title em { font-style: normal; color: var(--c-accent); }
.ds-hero__copy { text-align: left; padding: clamp(28px, 5vw, 56px) 0; }
.ds-hero .ds-actions { justify-content: flex-start; }
.ds-hero__lead { font-size: var(--fs-lead); color: rgba(255,255,255,.92); line-height: var(--lh-relaxed); max-width: 700px; margin-inline: 0; margin-bottom: var(--sp-6); }
.ds-hero__lead br { display: none; } /* モバイルは自然折返し。3行固定はPCのみ */

.ds-hero .ds-btn--primary { background: #fff; color: var(--c-deep); }
.ds-hero .ds-btn--primary:hover { background: var(--c-primary-l); }
.ds-hero .ds-btn--ghost { border-color: rgba(255,255,255,.55); color: #fff; }
.ds-hero .ds-btn--ghost:hover { background: rgba(255,255,255,.14); }
@media (min-width: 900px){
  /* 左の余白へコピーを置き、右に店舗風景を見せる */
  .ds-hero__inner { display: block; }
  .ds-hero__copy { max-width: 900px; margin-inline: 0; }
  .ds-hero__lead { max-width: 720px; margin-inline: 0; }
  .ds-hero__lead br { display: block; }

}

.ds-stats { background: var(--c-band, var(--c-deep)); padding-block: var(--sp-6); }
.ds-stats__row { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(24px,5vw,64px); }
.ds-stat { text-align: center; }
.ds-stat__num { display: block; font-family: var(--font-head); font-size: clamp(32px,5vw,48px); font-weight: var(--fw-bold); color: #fff; line-height: 1.15; }
.ds-stat__num small { font-size: .5em; opacity: .7; }
.ds-stat__label { font-size: var(--fs-body); color: rgba(255,255,255,.65); font-weight: var(--fw-bold); }
.ds-stat p { max-width: 260px; margin: var(--sp-2) auto 0; font-size: var(--fs-sm); line-height: var(--lh-relaxed); color: rgba(255,255,255,.66); }

.ds-media-row { display: grid; gap: var(--sp-6); align-items: center; padding-block: var(--sp-7); border-bottom: 1px solid var(--c-line); }
.ds-media-row:last-child { border-bottom: none; }
.ds-media-row__img { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/3; box-shadow: var(--shadow); }
.ds-media-row__points { display: grid; gap: var(--sp-2); margin-top: var(--sp-4); }
.ds-media-row__points li { position: relative; padding-left: 26px; font-size: var(--fs-sm); color: var(--c-sub); }
.ds-media-row__points li::before { content: ""; position: absolute; left: 0; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: var(--c-accent); }
@media (min-width: 900px){
  .ds-media-row { grid-template-columns: 1fr 1fr; gap: var(--sp-8); }
  .ds-media-row--reverse .ds-media-row__img { order: 2; }
}

.ds-flow { display: grid; gap: 0; }
.ds-flow__item { display: grid; grid-template-columns: 44px 1fr; gap: var(--sp-4); padding-bottom: var(--sp-6); position: relative; }
.ds-flow__item:last-child { padding-bottom: 0; }
.ds-flow__item::after { content: ""; position: absolute; left: 21px; top: 44px; bottom: 0; width: 1px; background: var(--c-line); }
.ds-flow__item:last-child::after { display: none; }
.ds-flow__num { width: 44px; height: 44px; border-radius: 50%; background: var(--c-primary); color: #fff; display: grid; place-items: center; font-size: 11px; font-weight: var(--fw-black); text-align: center; z-index: 1; }
.ds-flow__title { font-size: var(--fs-h3); font-weight: var(--fw-bold); color: var(--c-deep); margin-bottom: 2px; padding-top: 8px; }
.ds-flow__text { font-size: var(--fs-sm); color: var(--c-sub); }
@media (min-width: 900px){ .ds-flow { grid-template-columns: 1fr 1fr; column-gap: var(--sp-8); max-width: 900px; margin-inline: auto; } .ds-flow__item::after{ display:none; } }

.ds-price { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); height: 100%; }
.ds-price--featured { border-color: var(--c-accent); box-shadow: 0 0 0 2px var(--c-accent), var(--shadow-lg); }
.ds-price__head { padding: var(--sp-6) var(--sp-6) var(--sp-5); border-bottom: 1px solid var(--c-line); }
.ds-price--featured .ds-price__head { background: var(--c-primary); border-bottom-color: var(--c-accent); }
.ds-price__plan { font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .12em; color: var(--c-muted); text-transform: uppercase; margin-bottom: var(--sp-2); }
.ds-price--featured .ds-price__plan { color: rgba(255,255,255,.8); }
.ds-price__role { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-accent); margin-bottom: var(--sp-4); }
.ds-price--featured .ds-price__role { color: var(--c-accent); }
.ds-price__name { font-family: var(--font-head); font-size: 21px; font-weight: var(--fw-bold); color: var(--c-deep); margin-bottom: var(--sp-4); }
.ds-price--featured .ds-price__name { color: #fff; }
.ds-price__amount { font-family: var(--font-head); font-size: clamp(32px,3.6vw,42px); font-weight: var(--fw-bold); letter-spacing: .02em; color: var(--c-deep); line-height: 1; }
.ds-price--featured .ds-price__amount { color: #fff; }
.ds-price__amount small { font-size: 13px; color: var(--c-muted); font-weight: var(--fw-bold); }
.ds-price--featured .ds-price__amount small { color: rgba(255,255,255,.75); }
.ds-price__body { padding: var(--sp-5) var(--sp-6) var(--sp-6); }
.ds-price__body p { font-size: var(--fs-sm); color: var(--c-sub); line-height: var(--lh-relaxed); }
.ds-price__body li { position: relative; padding-left: 22px; font-size: var(--fs-sm); color: var(--c-sub); margin-bottom: var(--sp-2); }
.ds-price__body li::before { content: "—"; position: absolute; left: 0; color: var(--c-accent); }
@media (min-width: 768px) { .ds-price--featured { transform: translateY(calc(var(--sp-2) * -1)); } }

/* 利益ツリー：主戦場と改善手段を混同させない */
.ds-profit-card { display: flex; flex-direction: column; }
.ds-profit-card__focus { margin-top: auto; padding-top: var(--sp-4); font-size: var(--fs-xs); color: var(--c-accent); font-weight: var(--fw-bold); }
.ds-profit-note { max-width: 760px; margin: var(--sp-6) auto 0; padding-left: 18px; border-left: 2px solid var(--c-accent); font-size: var(--fs-sm); color: var(--c-sub); line-height: var(--lh-relaxed); }
.ds-flow--three { grid-template-columns: 1fr; max-width: 760px; }
@media (min-width: 900px) { .ds-flow--three { grid-template-columns: repeat(3, 1fr); column-gap: var(--sp-5); max-width: none; } .ds-flow--three .ds-flow__item { grid-template-columns: 1fr; gap: var(--sp-3); } }

.ds-voice { background: var(--c-surface); border: 1px solid var(--c-line); border-left: 3px solid var(--c-accent); border-radius: var(--radius); padding: var(--sp-5); }
.ds-voice__text { font-size: var(--fs-body); color: var(--c-ink); line-height: var(--lh-relaxed); margin-bottom: var(--sp-3); }
.ds-voice__who { font-size: var(--fs-xs); color: var(--c-muted); font-weight: var(--fw-bold); }

.ds-faq { display: grid; gap: var(--sp-3); }
.ds-faq__item { border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); }
.ds-faq__q { display: flex; gap: var(--sp-3); padding: var(--sp-4); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-deep); list-style: none; cursor: pointer; }
.ds-faq__q::-webkit-details-marker { display: none; }
.ds-faq__q::before { content: "Q"; flex-shrink: 0; width: 22px; height: 22px; background: var(--c-primary); color: #fff; font-size: 11px; font-weight: var(--fw-black); border-radius: var(--radius-sm); display: grid; place-items: center; }
.ds-faq__a { padding: var(--sp-3) var(--sp-4) var(--sp-4) calc(var(--sp-4) + 34px); font-size: var(--fs-sm); color: var(--c-sub); line-height: var(--lh-relaxed); border-top: 1px solid var(--c-line); }

.ds-cta { background: var(--c-band, var(--c-deep)); text-align: center; }
.ds-cta__title { font-size: var(--fs-h2); font-weight: var(--fw-bold); color: #fff; margin-bottom: var(--sp-3); }
.ds-cta__text { font-size: var(--fs-body); color: rgba(255,255,255,.8); margin-bottom: var(--sp-6); }
.ds-cta .ds-actions { justify-content: center; }

.ds-footer { background: var(--c-band, var(--c-deep)); padding-block: var(--sp-6); color: rgba(255,255,255,.6); }
.ds-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-4); }
.ds-footer__copy { font-size: var(--fs-xs); line-height: var(--lh-normal); }

.ds-sticky-cta { position: fixed; bottom: 0; inset-inline: 0; z-index: 80; display: grid; grid-auto-flow: column; gap: var(--sp-2); padding: 9px 14px 12px; background: rgba(244,237,226,.97); backdrop-filter: blur(8px); border-top: 1px solid var(--c-line); }
.ds-sticky-cta .ds-btn { min-height: 46px; font-size: var(--fs-sm); }
@media (min-width: 900px){ .ds-sticky-cta { display: none; } }

/* このページ固有：ヒーロー画像プレースホルダのテクスチャ */
.apl-swatch { aspect-ratio: 4/3; border-radius: var(--radius); width: 100%; object-fit: cover; box-shadow: var(--shadow); }
.apl-swatch--1 { background: linear-gradient(135deg,#c9b284 0%,#6b5836 70%,#211c15 100%); }
.apl-swatch--2 { background: linear-gradient(135deg,#a98d5c 0%,#4d3f28 70%,#14110c 100%); }
.apl-swatch--3 { background: linear-gradient(135deg,#d8c39a,#8a6f43); }

.ds-privacy { font-size: var(--fs-sm); color: var(--c-sub); line-height: var(--lh-relaxed); }
.ds-privacy p + p { margin-top: var(--sp-3); }
.ds-privacy strong { color: var(--c-deep); }

/* 営業導線の再構成（2026-08-15） */
.ds-problem-grid { max-width: 1000px; margin-inline: auto; }
.ds-problem-card { position: relative; min-height: 132px; padding: var(--sp-5); background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.ds-problem-card span { display: block; margin-bottom: var(--sp-3); font-family: var(--font-head); font-size: 13px; font-weight: var(--fw-bold); letter-spacing: .14em; color: var(--c-accent); }
.ds-problem-card p { font-size: clamp(15px, 1.25vw, 17px); font-weight: var(--fw-bold); color: var(--c-ink); line-height: 1.75; }
.ds-media-row__img img { width: 100%; height: 100%; object-fit: cover; }
.ds-media-row__title { margin-top: var(--sp-4); font-size: clamp(23px, 3vw, 34px); font-weight: var(--fw-bold); color: var(--c-deep); }
.ds-reason-grid { max-width: 940px; margin-inline: auto; gap: var(--sp-3); }
.ds-reason-grid .ds-card { display: flex; flex-direction: column; min-height: 0; padding: var(--sp-5); }
.ds-reason-grid .ds-card__text { margin-top: var(--sp-4); padding-top: 0; }
.ds-privacy__item { padding-block: var(--sp-4); border-bottom: 1px solid var(--c-line); }
.ds-privacy__item:first-of-type { padding-top: var(--sp-5); }
.ds-privacy__item:last-child { padding-bottom: 0; border-bottom: 0; }
.ds-privacy__item h2, .ds-privacy__item h3 { font-family: var(--font-base); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-deep); margin-bottom: var(--sp-2); }
.ds-privacy__item p { margin: 0; }
.ds-privacy__item a { color: var(--c-primary); text-decoration: underline; text-underline-offset: .18em; }

@media (max-width: 899px) {
  :root { --fs-display: clamp(29px, 8vw, 36px); --gutter: 20px; }
  body { padding-bottom: 78px; }
  .ds-header__inner { height: 62px; }
  .ds-header .ds-brand { width: 132px; height: 34px; }
  .ds-hero__inner { padding-block: clamp(48px, 14vw, 78px); }
  .ds-hero__title { max-width: 14em; margin-inline: auto; margin-top: var(--sp-4); }
  .ds-hero__lead { max-width: 100%; }

  .ds-actions { display: grid; grid-template-columns: 1fr; }
  .ds-btn { min-height: 48px; padding-inline: var(--sp-4); white-space: normal; text-align: center; }
  .ds-stats { padding-block: var(--sp-5); }
  .ds-stats__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-4); }
  .ds-stat { min-width: 0; }
  .ds-stat__num { font-size: clamp(25px, 7vw, 32px); word-break: keep-all; overflow-wrap: anywhere; }
  .ds-stat__label { margin-top: 3px; font-size: 12px; line-height: 1.45; }
  .ds-stat p { font-size: 11px; line-height: 1.55; }
  .ds-head { margin-bottom: var(--sp-6); }
  .ds-card { padding: var(--sp-5) var(--sp-4); }
  .ds-problem-card { min-height: 0; padding: var(--sp-4); }
  .ds-reason-grid .ds-card { min-height: 0; }
  .ds-media-row { padding-block: var(--sp-6); gap: var(--sp-5); }
  .ds-media-row__img, .apl-swatch { aspect-ratio: 4 / 3; min-height: 220px; object-fit: cover; }
  .ds-flow__item { grid-template-columns: 40px 1fr; gap: var(--sp-3); }
  .ds-flow__num { width: 40px; height: 40px; font-size: 10px; }
  .ds-flow__item::after { left: 19px; top: 40px; }
  .ds-price__head, .ds-price__body { padding-inline: var(--sp-5); }
  .ds-price__amount { font-size: clamp(25px, 8vw, 32px); }
  .ds-cta .ds-actions { display: flex; justify-content: center; }
  .ds-footer { padding-bottom: calc(var(--sp-8) + 28px); }
  .ds-footer__inner { align-items: flex-start; }
  .ds-sticky-cta { grid-template-columns: .9fr 1.1fr; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
}

@media (max-width: 599px) {
  :root { --gutter: 18px; --fs-body: 14px; }
  .ds-title { font-size: clamp(23px, 7vw, 30px); }
  .ds-lead { line-height: 1.85; }
  .ds-grid { gap: var(--sp-3); }
  .ds-stats__row { gap: var(--sp-4) var(--sp-3); }
  .ds-stat__num { font-size: clamp(22px, 6.5vw, 28px); }
  .ds-stat__label { font-size: 11px; }
  .ds-mobile-menu { padding-inline: 18px; }
  .ds-hero__title { letter-spacing: .01em; }
}

/* ============================================================
   ACES作法 × 茶金（2026-07-24）— 余白・バイリンガル見出し・金の斜めアクセント
   ============================================================ */
/* ヒーロー：余白を広げ、金の斜めアクセントを一点 */
.ds-hero__inner {
  min-height: clamp(610px, 72vh, 760px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: clamp(84px, 14vw, 156px);
}
.ds-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 11% 8%;
  border: 1px solid rgba(193,154,63,.22);
  pointer-events: none;
}
.ds-hero__eyebrow { display:inline-block; color:var(--c-accent); font-size:clamp(11px,1.15vw,13px); letter-spacing:.34em; font-weight:700; margin-bottom:28px; }
.ds-hero__title {
  max-width: 12.5em !important;
  font-size: clamp(48px,6.4vw,82px) !important;
  line-height: 1.13;
  letter-spacing: .055em;
  text-wrap: balance;
}
.ds-hero__inner { justify-content: flex-start; }
.ds-hero__copy { width: 100%; text-align: left; }
.ds-hero__title { margin-inline: 0; }
.ds-hero__title .ds-rise--1 { font-size: clamp(56px, 6.97vw, 86px); }
.ds-hero__title em.ds-rise--2 { color: var(--c-accent); font-size: clamp(58px, 7.3vw, 90px); }
.ds-hero--concept .ds-hero__title em.ds-rise--2 { color: #c38b09; }
.ds-hero__title em.ds-rise--2::after { background: linear-gradient(90deg, transparent, var(--c-accent), transparent); }
.ds-hero--concept .ds-hero__title { color: var(--c-primary); }
.ds-hero--concept .ds-hero__lead { margin: 28px 0 0; color: var(--c-primary); }
.ds-hero__concept-link { display: inline-block; margin-top: 24px; color: var(--c-primary); font-size: 13px; font-weight: var(--fw-bold); letter-spacing: .16em; text-decoration: none; }
.ds-hero__concept-link:hover { color: var(--c-accent); }
.ds-hero__lead {
  max-width: 650px;
  margin-top: 32px;
  text-wrap: balance;
}
.ds-hero__accent { position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none; }
.ds-hero__accent::before { content:""; position:absolute; top:-12%; right:14%; width:2px; height:128%; transform:rotate(19deg);
  background:linear-gradient(180deg, transparent, rgba(193,154,63,.55) 28%, rgba(193,154,63,.55) 72%, transparent);
  box-shadow:0 0 22px rgba(193,154,63,.22); }
@media (max-width:700px){
  .ds-hero__inner { min-height: 620px; align-items: flex-start; padding-top: clamp(92px,22vw,132px); }
  .ds-hero::after { inset: 7% 5%; }
  .ds-hero__eyebrow { margin-bottom: 24px; letter-spacing: .2em; }
  .ds-hero__title { max-width: 9.6em !important; margin-inline: 0; font-size: clamp(42px,12vw,58px) !important; line-height: 1.2; letter-spacing: .035em; }
  .ds-hero__title .ds-rise--1 { font-size: clamp(50px, 13vw, 64px); }
  .ds-hero__title em.ds-rise--2 { font-size: clamp(52px, 14vw, 68px); }
  .ds-hero--concept .ds-hero__bg { background-position: 62% center; }
  .ds-hero__lead { max-width: 21em; margin-top: 28px; }
  .ds-hero__accent::before{ right:6%; opacity:.6; }
}

/* 余白広めセクション */
.ds-section--airy { padding-block: clamp(84px, 12vw, 152px); }

/* エディトリアル見出し（大きな英語ラベルを背景に、日本語見出しを主役に） */
.ds-head--editorial { position:relative; text-align:center; margin-bottom: clamp(44px,6vw,76px); }
.ds-head--editorial .ds-label-en { display:block; font-family:var(--font-head); font-weight:700; line-height:1;
  font-size:clamp(52px,9vw,120px); letter-spacing:.04em; color:var(--c-accent); opacity:.12; margin-bottom:-.34em; user-select:none; }
.ds-head--editorial .ds-title { position:relative; z-index:1; font-size:clamp(26px,3.7vw,42px); }
.ds-head--editorial .ds-lead { margin-inline:auto; margin-top:var(--sp-4); }
.ds-section--deep .ds-head--editorial .ds-label-en { color:var(--c-accent); opacity:.18; }

/* editorial見出し：長い英語ラベルのはみ出し防止 */
.ds-head--editorial { overflow: hidden; }
.ds-head--editorial .ds-label-en { white-space: nowrap; max-width: 100%; }

/* Journal：背景ラベルを切らずに見せ、記事一覧への入口を明確にする */
.ds-head--journal { min-height: clamp(72px, 10vw, 118px); margin-bottom: clamp(36px, 5vw, 58px); overflow: visible; }
.ds-head--journal .ds-label-en { position: relative; top: clamp(-17px, -2vw, -8px); margin-bottom: 0; }
.ds-journal__label { position: absolute; z-index: 1; left: 50%; top: 50%; transform: translate(-50%, -52%); color: var(--c-ink); font-family: var(--font-head); font-size: clamp(24px, 3.2vw, 38px); font-weight: 700; letter-spacing: .11em; white-space: nowrap; }
.ds-journal__all { margin-top: clamp(28px, 4vw, 44px); text-align: center; }
.ds-journal__all a { color: var(--c-accent); font-size: 14px; font-weight: 700; }
.ds-journal__all a:hover { color: var(--c-ink); }
#journal .ds-card { display: flex; flex-direction: column; }
#journal .ds-journal-card { padding: 0; overflow: hidden; }
#journal .ds-journal-card__image { width: 100%; height: clamp(160px, 17vw, 210px); object-fit: cover; }
#journal .ds-journal-card__body { display: flex; flex: 1; flex-direction: column; padding: var(--sp-6) var(--sp-5); }
#journal .ds-journal-card__body > .ds-card__text:last-child { margin-top: auto !important; padding-top: var(--sp-6); }
.journal-title-nowrap { white-space: nowrap; }

/* ============================================================
   ヒーロー見出し：浮かび上がる演出（2026-07-25）
   現場×経営の → 利益創出 → パートナー の順に立ち上がる
   ============================================================ */
.ds-rise { display:inline-block; opacity:0; transform:translateY(26px); filter:blur(6px);
  animation: ds-rise-in .95s cubic-bezier(.22,.68,.32,1) forwards; }
.ds-rise--1 { animation-delay:.15s; }
.ds-rise--2 { animation-delay:.62s; }
.ds-rise--3 { animation-delay:1.02s; }
@keyframes ds-rise-in {
  0%   { opacity:0; transform:translateY(26px); filter:blur(6px); }
  60%  { opacity:1; }
  100% { opacity:1; transform:translateY(0); filter:blur(0); }
}
/* 「利益創出」だけ金の光がすっと差す */
.ds-hero__title em.ds-rise { position:relative; }
.ds-hero__title em.ds-rise::after { content:""; position:absolute; left:0; right:0; bottom:-.12em; height:2px;
  background:linear-gradient(90deg, transparent, var(--c-accent), transparent);
  transform:scaleX(0); transform-origin:left; opacity:0;
  animation: ds-rise-underline 1.1s cubic-bezier(.22,.68,.32,1) 1.05s forwards; }
@keyframes ds-rise-underline {
  0%   { transform:scaleX(0); opacity:0; }
  35%  { opacity:.9; }
  100% { transform:scaleX(1); opacity:.55; }
}
/* 動きを減らす設定の人には静止表示 */
@media (prefers-reduced-motion: reduce) {
  .ds-rise { animation:none; opacity:1; transform:none; filter:none; }
  .ds-hero__title em.ds-rise::after { animation:none; transform:scaleX(1); opacity:.55; }
}

/* ============================================================
   セクション見出し：スクロール到達時に軽く立ち上がる（2026-07-25）
   ヒーローより弱く・速く。主役はヒーロー、ここは添える程度
   ============================================================ */
.js-anim .ds-head--editorial .ds-label-en,
.js-anim .ds-head--editorial .ds-title,
.js-anim .ds-head--editorial .ds-lead {
  opacity: 0; transform: translateY(14px);
  transition: opacity .62s cubic-bezier(.22,.68,.32,1), transform .62s cubic-bezier(.22,.68,.32,1);
}
.js-anim .ds-head--editorial.is-visible .ds-label-en { opacity:.12; transform:none; transition-delay:0s; }
.js-anim .ds-section--deep .ds-head--editorial.is-visible .ds-label-en { opacity:.18; }
.js-anim .ds-head--editorial.is-visible .ds-title { opacity:1; transform:none; transition-delay:.12s; }
.js-anim .ds-head--editorial.is-visible .ds-lead  { opacity:1; transform:none; transition-delay:.24s; }
@media (prefers-reduced-motion: reduce) {
  .ds-head--editorial .ds-label-en { opacity:.12; transform:none; transition:none; }
  .ds-head--editorial .ds-title,
  .ds-head--editorial .ds-lead { opacity:1; transform:none; transition:none; }
}

/* ヒーロー説明はPCでは指定した3行で表示し、モバイルでは自然に折り返す */
.ds-hero__lead { max-width: 52em; }
.ds-hero__lead br { display: block; }
@media (max-width:700px) { .ds-hero__lead br { display:none; } }

/* トップページ：診断への導線（よくある課題の直後） */
.ds-diagnosis-cta{margin-top:var(--sp-7);padding:clamp(26px,4vw,40px);background:var(--c-surface,#fff);border:1px solid var(--c-line);border-left:4px solid var(--c-accent);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-5)}
.ds-diagnosis-cta__copy{flex:1 1 420px;min-width:0}
.ds-diagnosis-cta h3{margin:10px 0 8px;font-size:clamp(19px,2.4vw,25px);line-height:1.5}
.ds-diagnosis-cta p{margin:0;color:var(--c-muted);font-size:var(--fs-sm);line-height:1.8}
.ds-diagnosis-cta .ds-btn{flex:0 0 auto;white-space:nowrap}
@media(max-width:720px){.ds-diagnosis-cta{flex-direction:column;align-items:stretch}.ds-diagnosis-cta .ds-btn{width:100%}}

/* CTAを中央に寄せる（ds-actions は既定で左寄せのため） */
.ds-actions--center{justify-content:center}

/* PROJECTS */
.ds-project-grid { gap: var(--sp-5); }
.ds-project-card { display: flex; flex-direction: column; min-height: 236px; padding: var(--sp-6) var(--sp-5); }
.ds-project-card__category { margin-bottom: var(--sp-6); color: var(--c-accent); font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .12em; line-height: 1.6; }
.ds-project-card .ds-card__title { margin-bottom: var(--sp-4); }
.ds-project-card .ds-card__text { margin-top: auto; padding-top: var(--sp-5); border-top: 1px solid var(--c-line); }
@media (max-width: 899px) { .ds-project-card { min-height: 0; } }

/* MESSAGE PAGE */
.ds-nav a[aria-current="page"] { color: var(--c-primary); }
@media (min-width: 900px) and (max-width: 1099px) {
  .ds-header .ds-nav { display: none; }
  .ds-header .ds-burger { display: inline-flex; }
}
@media (min-width: 1100px) {
  .ds-header .ds-nav { gap: clamp(14px, 1.45vw, 24px); font-size: 12px; }
  .ds-header .ds-nav__cta { padding-inline: 14px; font-size: 12px; }
}
.message-page { background: var(--c-surface); color: var(--c-ink); }
.message-page__statement { border-bottom: 1px solid var(--c-line); }
.message-page__statement--tint { background: #faf7f2; }
.message-page__statement-inner { position: relative; padding-top: clamp(104px, 13vw, 164px); padding-bottom: clamp(76px, 11vw, 144px); }
.message-page__label { position: relative; z-index: 0; margin-bottom: clamp(-42px, -3.4vw, -26px); overflow: hidden; color: var(--c-accent); text-align: center; user-select: none; }
.message-page__label h2 { color: inherit; font-family: var(--font-head); font-size: clamp(64px, 10vw, 130px); font-weight: 700; letter-spacing: .04em; line-height: 1; opacity: .12; white-space: nowrap; }
.message-page__content { position: relative; z-index: 1; max-width: 720px; margin-inline: auto; }
.message-page__copy { margin: 0 0 38px; color: var(--c-primary); font-family: var(--font-head); font-size: clamp(30px, 4.1vw, 50px); font-style: italic; font-weight: 600; letter-spacing: .24em; line-height: 1.55; text-align: center; }
.message-page__body { max-width: 620px; color: var(--c-sub); font-size: clamp(15px, 1.45vw, 17px); line-height: 2.05; }
.message-page__body p { margin: 0; }
.message-page__body p + p { margin-top: 1.35em; }
.message-page__content:not(.message-page__value-content) .message-page__body { margin-inline: auto; text-align: center; }
.message-page__value-content { max-width: 720px; text-align: center; }
.message-page__value-list { display: grid; grid-template-columns: 1fr; gap: clamp(40px, 5vw, 64px); }
.message-page__value-item { padding-top: 22px; }
.message-page__value-number { display: block; margin-bottom: 18px; color: var(--c-accent); font-family: var(--font-base); font-size: 11px; font-weight: var(--fw-bold); letter-spacing: .14em; line-height: 1; }
.message-page__value-item h3 { margin: 0 0 18px; color: var(--c-primary); font-family: var(--font-head); font-size: clamp(28px, 4.1vw, 50px); font-style: italic; font-weight: 600; letter-spacing: .04em; line-height: 1.35; }
.message-page__value-item:first-child h3 { font-size: clamp(28px, 4.1vw, 50px); white-space: nowrap; }
.message-page__value-item p { margin: 0; color: var(--c-sub); font-size: 15px; line-height: 1.95; }
.message-page__value-closing { margin: clamp(58px, 7vw, 82px) 0 0; color: var(--c-primary); font-family: var(--font-head); font-size: clamp(18px, 2.1vw, 23px); line-height: 1.7; }
@media (max-width: 899px) {
  .message-page__statement-inner { padding-top: 78px; padding-bottom: 68px; }
  .message-page__label { margin-bottom: -22px; }
  .message-page__label h2 { font-size: clamp(52px, 16vw, 68px); }
  .message-page__copy { margin: 0 0 26px; font-size: clamp(30px, 8vw, 38px); letter-spacing: .08em; line-height: 1.55; }
  .message-page__body { font-size: 15px; line-height: 2; }
  .message-page__body br { display: none; }
  .message-page__value-list { grid-template-columns: 1fr; gap: 0; }
  .message-page__value-item { padding-block: 22px; }
  .message-page__value-number { margin-bottom: 14px; }
  .message-page__value-item h3 { margin-bottom: 12px; font-size: clamp(30px, 9vw, 36px); line-height: 1.4; }
  .message-page__value-item:first-child h3 { font-size: clamp(30px, 9vw, 36px); }
  .message-page__value-item p { font-size: 15px; line-height: 1.9; }
  .message-page__value-closing { margin-top: 42px; padding-top: 22px; font-size: 18px; }
}
