.e {
    --paper:  #F7F5F2;
    --white:  #FFFFFF;
    --ink:    #16120F;
    --coal:   #211B17;
    --red:    #E02718;
    --red-dk: #8E1409;
    --gold:   #F2A93B;
    --grey:   #7E766F;
    --hair:   #DFD8D0;
    --hair-d: #342D28;

    --jp: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
    --mc: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;
    --pad: clamp(20px, 5vw, 88px);
    --max: 1320px;

    background: var(--paper); color: var(--ink); font-family: var(--jp);
    font-size: 16px; line-height: 1.9; -webkit-font-smoothing: antialiased; position: relative;
  }
  .e *, .e *::before, .e *::after { box-sizing: border-box; }
  .e h1,.e h2,.e h3,.e h4 { margin:0; font-weight:900; line-height:1.22; letter-spacing:-0.05em; text-wrap:balance; }
  .e p { margin:0; }
  .e a { color:inherit; text-decoration:none; }
  .e ul { margin:0; padding:0; list-style:none; }
  .e .wrap { max-width:var(--max); margin-inline:auto; padding-inline:var(--pad); }

  /* 明朝のラテン小ラベル */
  .e .rome { font-family:var(--mc); font-weight:700; font-size:12px; letter-spacing:.28em; color:var(--red); }
  .e .soon { color:var(--grey); font-size:.92em; }

  /* 粒子 */
  .e .grain { position:fixed; inset:0; z-index:70; pointer-events:none; opacity:.30; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E"); }

  /* スクロール進捗 */
  .e .prog { position:fixed; top:0; left:0; right:0; height:2px; z-index:75; transform-origin:0 50%;
    transform:scaleX(0); background:var(--red); }

  .e a:focus-visible, .e button:focus-visible, .e input:focus-visible,
  .e select:focus-visible, .e textarea:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }

  /* ── スクロール演出 ─────────────────────── */
  .e .rv { opacity:0; transform:translateY(22px); transition:opacity .8s cubic-bezier(.2,.8,.25,1), transform .8s cubic-bezier(.2,.8,.25,1); }
  .e .rv.in { opacity:1; transform:none; }
  .e .rv[data-d="1"] { transition-delay:.09s } .e .rv[data-d="2"] { transition-delay:.18s }
  .e .rv[data-d="3"] { transition-delay:.27s } .e .rv[data-d="4"] { transition-delay:.36s }
  .e .mask { display:block; overflow:hidden; }
  .e .mask > span { display:block; transform:translateY(105%); transition:transform .95s cubic-bezier(.16,.84,.24,1); }
  .e .mask.in > span, .e .in .mask > span { transform:none; }
  .e .mask[data-d="1"] > span { transition-delay:.10s } .e .mask[data-d="2"] > span { transition-delay:.20s }

  /* ── ヘッダー ───────────────────────────── */
  .e .hd { position:sticky; top:0; z-index:50; height:84px; display:flex; align-items:center;
    color:var(--white); transition:background .4s ease, color .4s ease, border-color .4s ease;
    border-bottom:1px solid transparent; }
  .e .hd.solid { background:rgba(247,245,242,.88); backdrop-filter:blur(16px); color:var(--ink); border-bottom-color:var(--hair); }
  .e .hd-in { display:flex; align-items:center; gap:clamp(14px,3vw,40px); width:100%; }
  .e .mark { font-size:21px; font-weight:900; letter-spacing:.01em; white-space:nowrap; line-height:1.15; }
  .e .mark em { display:block; font-family:var(--mc); font-style:normal; font-size:9px; font-weight:700; letter-spacing:.24em; opacity:.62; margin-top:1px; }
  .e .nav { display:flex; gap:clamp(14px,2.4vw,34px); margin-left:auto; }
  .e .nav a { font-size:14px; font-weight:700; position:relative; padding:8px 0; line-height:1.3; }
  .e .nav a i { display:block; font-family:var(--mc); font-style:normal; font-size:9.5px; font-weight:700; letter-spacing:.2em; opacity:.68; }
  .e .nav a::after { content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:currentColor; transition:width .3s cubic-bezier(.2,.8,.3,1); }
  .e .nav a:hover::after, .e .nav a:focus-visible::after { width:100%; }
  @media (max-width:1080px) { .e .nav { display:none; } }
  .e .hd .pill { border:1.5px solid currentColor; border-radius:100px; padding:11px 24px; font-size:13px; font-weight:700; white-space:nowrap;
    transition:background .25s ease, color .25s ease; }
  .e .hd .pill:hover { background:currentColor; }
  .e .hd .pill:hover span { mix-blend-mode:difference; }

  .e .btn { display:inline-flex; align-items:center; gap:11px; font-weight:700; font-size:15px;
    padding:18px 34px; border-radius:100px; border:1.5px solid transparent; position:relative; overflow:hidden;
    transition:transform .25s cubic-bezier(.2,.8,.3,1), background .25s ease, color .25s ease; }
  .e .btn:hover, .e .btn:focus-visible { transform:translateY(-3px); }
  .e .btn .arw { transition:transform .3s cubic-bezier(.2,.8,.3,1); }
  .e .btn:hover .arw { transform:translateX(5px); }
  .e .btn-paper { background:var(--paper); color:var(--red); }
  .e .btn-red { background:var(--red); color:var(--white); }
  .e .btn-red:hover { background:var(--red-dk); }
  .e .btn-ink { background:var(--ink); color:var(--paper); }
  .e .btn-line { border-color:currentColor; }
  .e .btn-line:hover, .e .btn-line:focus-visible { background:currentColor; }
  .e .btn-line:hover span, .e .btn-line:focus-visible span { mix-blend-mode:difference; }

  /* ── ヒーロー ───────────────────────────── */
  .e .hero { background:#D3220F; color:var(--white); margin-top:-84px;
    padding:calc(84px + clamp(54px,9vh,116px)) 0 0; position:relative; overflow:hidden; }
  .e .hero-bg { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
  .e .hero-bg span { position:absolute; display:block; }
  .e .hb-base { inset:0; background:linear-gradient(158deg, #F03A21 0%, #D3220F 44%, #A2150A 100%); }
  .e .hb-wedge { inset:0; background:#7E1105; opacity:.46;
    clip-path:polygon(100% 30%, 100% 100%, 46% 100%); }
  @media (max-width:900px) { .e .hb-wedge { clip-path:polygon(100% 46%, 100% 100%, 4% 100%); opacity:.34; } }
  .e .hb-dots { inset:0;
    background-image:radial-gradient(circle, rgba(255,255,255,.34) 1.5px, transparent 1.7px);
    background-size:15px 15px;
    -webkit-mask-image:linear-gradient(214deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 54%);
    mask-image:linear-gradient(214deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 54%); }
  .e .hb-dots2 { inset:0;
    background-image:radial-gradient(circle, rgba(126,17,5,.5) 2.6px, transparent 2.8px);
    background-size:26px 26px;
    -webkit-mask-image:linear-gradient(34deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 46%);
    mask-image:linear-gradient(34deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 46%); }
  .e .hb-glow { right:-14%; top:-28%; width:62vw; height:62vw; border-radius:50%;
    background:radial-gradient(circle at 44% 44%, rgba(242,169,59,.30), rgba(211,34,15,0) 62%); }
  .e .hb-scrim { left:0; right:0; top:0; height:190px;
    background:linear-gradient(to bottom, rgba(0,0,0,.28), rgba(0,0,0,0)); }
  .e .hero-in { position:relative; z-index:2; }
  .e .hero h1 { font-size:clamp(42px,8vw,118px); letter-spacing:-0.06em; }
  .e .hero h1 em { font-style:normal; color:var(--gold); }
  .e .hero-b { display:grid; grid-template-columns:1fr auto; gap:clamp(24px,4vw,60px); align-items:end; margin-top:clamp(30px,4vw,56px); }
  @media (max-width:900px) { .e .hero-b { grid-template-columns:1fr; align-items:start; } }
  .e .hero-b p.lead { max-width:31em; font-size:16.5px; }
  .e .hero-cta { display:flex; flex-wrap:wrap; gap:12px; }
  .e .hero-sub { margin-top:22px; font-size:13px; }
  .e .hero-sub a { border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:2px; transition:border-color .25s ease; }
  .e .hero-sub a:hover { border-bottom-color:var(--gold); color:var(--gold); }

  /* 右端の縦書き社名 */
  .e .vlabel { position:absolute; right:clamp(14px,3vw,42px); top:clamp(120px,17vh,200px); z-index:2;
    writing-mode:vertical-rl; font-family:var(--mc); font-weight:700; font-size:12px; letter-spacing:.42em;
    color:rgba(255,255,255,.66); }
  @media (max-width:1180px) { .e .vlabel { display:none; } }

  .e .scroller { position:absolute; left:var(--pad); bottom:96px; z-index:2; display:flex; align-items:center; gap:12px;
    font-family:var(--mc); font-size:10.5px; letter-spacing:.3em; color:rgba(255,255,255,.72); }
  .e .scroller b { display:block; width:52px; height:1px; background:rgba(255,255,255,.5); position:relative; overflow:hidden; }
  .e .scroller b::after { content:""; position:absolute; inset:0; background:var(--gold); transform:translateX(-100%);
    animation:sc 2.4s ease-in-out infinite; }
  @keyframes sc { 0%{transform:translateX(-100%)} 55%{transform:translateX(0)} 100%{transform:translateX(100%)} }
  @media (max-width:900px) { .e .scroller { display:none; } }

  /* マーキー：黒帯 */
  .e .mq { margin-top:clamp(48px,6vw,86px); background:var(--ink); color:var(--paper);
    overflow:hidden; position:relative; z-index:3; }
  .e .mq-track { display:flex; width:max-content; animation:emq 48s linear infinite; }
  .e .mq-track ul { display:flex; align-items:center; }
  .e .mq-track li { display:flex; align-items:center; gap:26px; padding:18px 26px 18px 0; font-size:14.5px; font-weight:700; white-space:nowrap; }
  .e .mq-track li::after { content:""; width:5px; height:5px; border-radius:50%; background:var(--red); }
  @keyframes emq { to { transform:translateX(-50%); } }

  /* ── セクション見出し ───────────────────── */
  .e .sec { padding:clamp(62px,8vw,124px) 0; }
  .e .sec.dark { background:var(--ink); color:var(--paper); position:relative; }
  .e .sec.dark::before { content:""; position:absolute; inset:0; pointer-events:none;
    background-image:radial-gradient(circle, rgba(247,245,242,.09) 1.3px, transparent 1.5px);
    background-size:22px 22px;
    -webkit-mask-image:linear-gradient(214deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 58%);
    mask-image:linear-gradient(214deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 58%); }
  .e .sec.dark > .wrap { position:relative; z-index:1; }
  .e .shd { margin-bottom:clamp(30px,4vw,56px); }
  .e .shd .rule { display:flex; align-items:center; gap:18px; }
  .e .shd .rule::before { content:""; flex:1; height:1px; background:var(--hair); order:2; }
  .e .sec.dark .shd .rule::before { background:var(--hair-d); }
  .e .shd .rule .rome { order:1; }
  .e .sec.dark .shd .rome { color:var(--gold); }
  .e .shd h2 { font-size:clamp(32px,5.2vw,64px); margin-top:20px; }
  .e .shd .note { font-size:15.5px; opacity:.76; max-width:38em; margin-top:24px; }

  /* ── ABOUT ──────────────────────────────── */
  .e .about { display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(28px,5vw,80px); align-items:start; }
  @media (max-width:900px) { .e .about { grid-template-columns:1fr; } }
  .e .about .q { font-family:var(--mc); font-weight:800; font-size:clamp(24px,3.4vw,40px);
    letter-spacing:.01em; line-height:1.75; }
  .e .about .q em { font-style:normal; color:var(--red); }
  .e .about p.body { font-size:15.5px; opacity:.82; }
  .e .about p.body + p.body { margin-top:20px; }
  .e .fields { display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--hair);
    border-block:1px solid var(--hair); margin-top:clamp(40px,5vw,72px); }
  .e .field { grid-column:span 2; }
  .e .field:nth-child(4), .e .field:nth-child(5) { grid-column:span 3; }
  @media (max-width:900px) { .e .fields { grid-template-columns:repeat(2,1fr); }
    .e .field, .e .field:nth-child(4), .e .field:nth-child(5) { grid-column:auto; } }
  @media (max-width:480px) { .e .fields { grid-template-columns:1fr; } }
  .e .field { background:var(--paper); padding:22px 20px; transition:background .3s ease, color .3s ease; }
  .e .field:hover { background:var(--ink); color:var(--paper); }
  .e .field b { display:block; font-size:15px; font-weight:900; letter-spacing:-0.03em; }
  .e .field span { display:block; font-size:12.5px; opacity:.62; margin-top:6px; line-height:1.7; }

  /* ── SERVICE：罫線で継いだ編集グリッド ───── */
  .e .svcgrid { display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--hair);
    border-block:1px solid var(--hair); }
  .e .svc { grid-column:span 2; }
  .e .svc.half { grid-column:span 3; }
  @media (max-width:1180px) { .e .svcgrid { grid-template-columns:repeat(2,1fr); }
    .e .svc, .e .svc.half { grid-column:auto; } }
  @media (max-width:640px)  { .e .svcgrid { grid-template-columns:1fr; } }
  .e .svc { background:var(--white); padding:clamp(24px,2.4vw,34px); display:flex; flex-direction:column;
    min-height:316px; position:relative; transition:background .35s ease, color .35s ease; }
  .e .svc::after { content:""; position:absolute; left:0; right:0; top:0; height:2px; background:var(--red);
    transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.2,.8,.3,1); }
  .e .svc:hover, .e .svc:focus-visible { background:var(--ink); color:var(--paper); }
  .e .svc:hover::after, .e .svc:focus-visible::after { transform:scaleX(1); }
  .e .svc .cr { display:block; font-family:var(--mc); font-weight:700; font-size:11px; letter-spacing:.24em; color:var(--red); transition:color .35s ease; }
  .e .svc:hover .cr { color:var(--gold); }
  .e .svc .cn { display:block; font-size:clamp(18px,1.62vw,21px); font-weight:900; letter-spacing:-0.055em; margin-top:14px; }
  .e .svc .cd { display:block; font-size:14px; opacity:.78; margin-top:16px; }
  .e .svc .soon2 { display:inline-block; align-self:flex-start; font-size:10.5px; font-weight:900; letter-spacing:.14em;
    border:1px solid currentColor; border-radius:100px; padding:3px 10px; opacity:.55; margin-top:14px; }
  .e .svc .tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; padding-top:26px; }
  .e .svc .tags li { font-size:11.5px; font-weight:700; opacity:.55; }
  .e .svc .tags li::before { content:"／ "; opacity:.5; }
  .e .svc .tags li:first-child::before { content:""; }

  /* 赤の全幅セクション */
  .e .redsec { color:var(--white); position:relative; overflow:hidden; background:#D3220F; }
  .e .redsec::before { content:""; position:absolute; inset:0; pointer-events:none;
    background:
      radial-gradient(88% 116% at 84% 10%, rgba(242,169,59,.28), rgba(211,34,15,0) 60%),
      linear-gradient(162deg, #EA3520 0%, #D3220F 52%, #A2150A 100%); }
  .e .redsec::after { content:""; position:absolute; inset:0; pointer-events:none;
    background-image:radial-gradient(circle, rgba(255,255,255,.26) 1.4px, transparent 1.6px);
    background-size:15px 15px;
    -webkit-mask-image:linear-gradient(214deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,0) 50%);
    mask-image:linear-gradient(214deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,0) 50%); }
  .e .redsec > .wrap { position:relative; z-index:2; padding-block:clamp(52px,7vw,104px); }
  .e .redsec .rome { color:var(--gold); }

  /* 数字で見る */
  .e .nums { display:grid; grid-template-columns:repeat(4,1fr);
    border-block:1px solid rgba(255,255,255,.38); margin-top:clamp(28px,3.6vw,48px); }
  @media (max-width:860px) { .e .nums { grid-template-columns:repeat(2,1fr); } }
  .e .nm { padding:clamp(24px,2.8vw,36px) clamp(18px,2vw,28px); border-left:1px solid rgba(255,255,255,.26); }
  .e .nm:first-child { border-left:0; }
  @media (max-width:860px) {
    .e .nm:nth-child(odd) { border-left:0; }
    .e .nm:nth-child(n+3) { border-top:1px solid rgba(255,255,255,.26); }
  }
  .e .nm .v { display:block; font-size:clamp(38px,4.6vw,62px); font-weight:900; letter-spacing:-0.06em; line-height:1.05; white-space:nowrap; }
  .e .nm .v small { font-size:.30em; font-weight:900; letter-spacing:.02em; margin-left:4px; }
  .e .nm .v .pre { font-size:.30em; font-weight:900; letter-spacing:.02em; margin-right:4px; }
  .e .nm .l { display:block; font-size:12.5px; font-weight:700; opacity:.86; margin-top:16px; }
  .e .nums-note { font-size:12.5px; opacity:.78; margin-top:20px; }

  /* ── 代表挨拶 ───────────────────────────── */
  .e .msg { display:grid; grid-template-columns:.42fr .58fr; gap:clamp(28px,5vw,76px); align-items:start; }
  @media (max-width:900px) { .e .msg { grid-template-columns:1fr; } }
  .e .portrait { aspect-ratio:3/4; background:linear-gradient(158deg,#E9E3DB,#CFC6BC); position:relative;
    display:grid; place-items:center; overflow:hidden; }
  .e .portrait::after { content:""; position:absolute; inset:0;
    background-image:radial-gradient(circle, rgba(22,18,15,.10) 1.3px, transparent 1.5px); background-size:14px 14px; }
  .e .portrait span { position:relative; z-index:2; font-family:var(--mc); font-size:11px; letter-spacing:.26em; color:#8A8076; }
  .e .portrait img { position:absolute; inset:0; z-index:2; width:100%; height:100%;
    object-fit:cover; object-position:center 20%; }
  .e .portrait .cap { position:absolute; left:0; right:0; bottom:0; z-index:3; background:var(--ink); color:var(--paper);
    padding:14px 18px; font-size:12.5px; letter-spacing:.04em; }
  .e .msg .pull { font-family:var(--mc); font-weight:800; font-size:clamp(21px,2.9vw,33px); line-height:1.7; letter-spacing:.01em; }
  .e .msg .pull em { font-style:normal; color:var(--red); }
  .e .msg p.body { font-size:15.5px; opacity:.82; margin-top:26px; }
  .e .msg p.body + p.body { margin-top:18px; }
  .e .sign { display:flex; align-items:baseline; gap:14px; margin-top:32px; padding-top:22px; border-top:1px solid var(--hair); }
  .e .sign .sig-co { font-family:var(--mc); font-size:12px; letter-spacing:.2em; color:var(--grey); }
  .e .sign .nm2 { font-size:20px; font-weight:900; letter-spacing:.04em; }

  /* ── WHY US ─────────────────────────────── */
  .e .why { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hair-d);
    border-block:1px solid var(--hair-d); }
  @media (max-width:860px) { .e .why { grid-template-columns:1fr; } }
  .e .why-i { background:var(--ink); padding:clamp(28px,3.2vw,42px) clamp(22px,2.6vw,34px); }
  .e .why-i .mc { font-family:var(--mc); font-weight:700; font-size:11px; letter-spacing:.24em; color:var(--gold); }
  .e .why-i h3 { font-size:clamp(20px,2.4vw,27px); margin-top:18px; }
  .e .why-i p { font-size:14.5px; color:#B4ABA3; margin-top:16px; }

  /* ── 会社概要 / 採用 ────────────────────── */
  .e .co { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,80px); align-items:start; }
  @media (max-width:900px) { .e .co { grid-template-columns:1fr; } }
  .e table.tbl { width:100%; border-collapse:collapse; font-size:14.5px; }
  .e table.tbl th, .e table.tbl td { text-align:left; padding:16px 0; border-bottom:1px solid var(--hair); vertical-align:top; }
  .e table.tbl th { width:8.5em; font-family:var(--mc); font-weight:700; font-size:12px; letter-spacing:.14em; color:var(--grey); }

  /* ── CONTACT ────────────────────────────── */
  .e .cg { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,76px); align-items:start; }
  @media (max-width:900px) { .e .cg { grid-template-columns:1fr; } }
  .e form.f { display:grid; gap:16px; }
  .e form.f label { display:block; font-family:var(--mc); font-size:11px; font-weight:700; letter-spacing:.18em; color:var(--grey); margin-bottom:8px; }
  .e form.f input, .e form.f select, .e form.f textarea { width:100%; font:inherit; font-size:15px; padding:15px 16px;
    border-radius:2px; background:var(--coal); border:1px solid var(--hair-d); color:var(--paper);
    transition:border-color .25s ease; }
  .e form.f input:hover, .e form.f textarea:hover, .e form.f select:hover { border-color:var(--grey); }
  .e form.f .two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:520px) { .e form.f .two { grid-template-columns:1fr; } }
  .e form.f button { width:100%; justify-content:center; cursor:pointer; border-radius:100px; }

  /* ── フッター ───────────────────────────── */
  .e .ft { background:var(--ink); color:var(--paper); padding:clamp(44px,5vw,76px) 0 34px; border-top:1px solid var(--hair-d); }
  .e .ftg { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:26px; }
  @media (max-width:860px) { .e .ftg { grid-template-columns:1fr 1fr; } }
  .e .ft h4 { font-family:var(--mc); font-size:11px; letter-spacing:.22em; color:var(--grey); font-weight:700; margin-bottom:16px; }
  .e .ft li { margin-bottom:10px; font-size:13.5px; }
  .e .ft a { position:relative; }
  .e .ft a::after { content:""; position:absolute; left:0; bottom:-2px; height:1px; width:0; background:var(--gold); transition:width .3s ease; }
  .e .ft a:hover { color:var(--gold); } .e .ft a:hover::after { width:100%; }
  .e .ftb { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:46px; padding-top:22px;
    border-top:1px solid var(--hair-d); font-family:var(--mc); font-size:11px; color:var(--grey); letter-spacing:.16em; }

  /* モックアップバッジ */
  .e .mockbadge{ position:fixed; right:14px; bottom:14px; z-index:80; background:rgba(22,18,15,.84); color:var(--paper);
    backdrop-filter:blur(10px); border:1px solid rgba(247,245,242,.2); border-radius:100px; padding:9px 16px;
    font-size:11.5px; font-weight:700; letter-spacing:.04em; display:flex; align-items:center; gap:9px;
    box-shadow:0 8px 26px rgba(0,0,0,.24); }
  .e .mockbadge i{ width:7px; height:7px; border-radius:50%; background:var(--red); flex:none; }
  @media (max-width:600px){ .e .mockbadge{ right:10px; bottom:10px; font-size:10.5px; padding:8px 13px; } }

  @media (prefers-reduced-motion: reduce) {
    .e *, .e *::before, .e *::after { animation:none !important; transition:none !important; }
    .e .rv { opacity:1 !important; transform:none !important; }
    .e .mask > span { transform:none !important; }
  }


/* ══════════════════════════════════════════
   Contact Form 7 をデザインに合わせる
   ══════════════════════════════════════════ */
.e .wpcf7 form { display:grid; gap:16px; }
.e .wpcf7 p { margin:0; }
.e .wpcf7 label { display:block; font-family:var(--mc); font-size:11px; font-weight:700;
  letter-spacing:.16em; color:var(--grey); margin-bottom:8px; }
.e .wpcf7 .wpcf7-form-control-wrap { display:block; }
.e .wpcf7 .two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:520px) { .e .wpcf7 .two { grid-template-columns:1fr; } }

.e .wpcf7 input[type="text"], .e .wpcf7 input[type="email"], .e .wpcf7 input[type="tel"],
.e .wpcf7 select, .e .wpcf7 textarea {
  width:100%; font:inherit; font-size:15px; padding:15px 16px; border-radius:2px;
  background:var(--coal); border:1px solid var(--hair-d); color:var(--paper);
  transition:border-color .25s ease; }
.e .wpcf7 input[type="text"]:hover, .e .wpcf7 input[type="email"]:hover,
.e .wpcf7 input[type="tel"]:hover, .e .wpcf7 select:hover, .e .wpcf7 textarea:hover {
  border-color:var(--grey); }
.e .wpcf7 input::placeholder, .e .wpcf7 textarea::placeholder { color:#6E655E; }
.e .wpcf7 textarea { min-height:110px; resize:vertical; }

.e .wpcf7 input[type="submit"] {
  width:100%; cursor:pointer; border:0; border-radius:100px; background:var(--red);
  color:#fff; font-weight:700; font-size:15px; padding:18px 34px; font-family:var(--jp);
  transition:background .25s ease, transform .25s cubic-bezier(.2,.8,.3,1); }
.e .wpcf7 input[type="submit"]:hover { background:var(--red-dk); transform:translateY(-3px); }

.e .wpcf7 .wpcf7-spinner { display:block; margin:12px auto 0; }
.e .wpcf7-not-valid-tip { color:var(--gold); font-size:12.5px; margin-top:6px; }
.e .wpcf7 .wpcf7-not-valid { border-color:var(--gold); }
.e .wpcf7-response-output {
  margin:6px 0 0 !important; padding:14px 16px !important; border-radius:2px;
  border-color:var(--gold) !important; color:var(--paper); font-size:13.5px; }
