/* =========================================================
   ルミナリンクAI — style.css
   STARBOARD-G（lp.html）と同じ構成・トーンで統一
   ========================================================= */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#F5F3EE;--bg2:#EDEAE3;--bg3:#E4E0D8;
  --border:#D8D4CC;--accent:#E8A33D;
  --text:#1A1814;--text2:#666258;--text3:#AAA59C;
  --gold:#C49A20;--green:#2A9E5C;
}
body{background:var(--bg);color:var(--text);font-family:'Noto Sans JP',sans-serif;line-height:1.6;overflow-x:hidden}
a{color:inherit}
img{max-width:100%;display:block}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;background:rgba(245,243,238,0.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:3px;color:var(--text);text-decoration:none}
.nav-logo-img{height:30px;width:auto;display:block}
.nav-cta{background:var(--accent);color:#1A1814;padding:10px 24px;border:none;border-radius:4px;font-size:14px;font-weight:700;font-family:'Noto Sans JP',sans-serif;cursor:pointer;text-decoration:none;transition:background .2s}
.nav-cta:hover{background:#d6912f}

/* HERO */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:120px 24px 80px;position:relative;overflow:hidden;background:#12100c}
.hero-bg{position:absolute;inset:0;background-image:url('../img/hero-mosaic.jpg');background-size:cover;background-position:center;filter:saturate(0.85) brightness(0.9)}
.hero-duotone{position:absolute;inset:0;background:linear-gradient(160deg,rgba(15,13,10,0.82) 0%,rgba(24,20,16,0.72) 55%,rgba(12,10,8,0.85) 100%);mix-blend-mode:multiply}
.hero-tint{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(232,163,61,0.20) 0%,transparent 55%),radial-gradient(ellipse at 80% 85%,rgba(31,91,87,0.24) 0%,transparent 55%)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(8,6,3,0.55) 0%,rgba(8,6,3,0.25) 35%,rgba(8,6,3,0.35) 65%,rgba(8,6,3,0.75) 100%)}
.hero-grid{position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 49px,rgba(255,255,255,0.03) 49px,rgba(255,255,255,0.03) 50px),repeating-linear-gradient(90deg,transparent,transparent 49px,rgba(255,255,255,0.03) 49px,rgba(255,255,255,0.03) 50px)}
.hero-logo-mark{position:relative;z-index:1;margin-bottom:28px;display:flex;justify-content:center}
.hero-logo-img{height:64px;width:auto;filter:drop-shadow(0 0 22px rgba(232,163,61,0.35)) drop-shadow(0 0 42px rgba(90,200,255,0.22))}
.alert-badge{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;background:rgba(26,20,10,0.8);border:1px solid rgba(232,163,61,0.6);color:var(--accent);padding:8px 20px;border-radius:100px;font-size:13px;font-weight:500;margin-bottom:40px;animation:pulseOut 2s infinite;backdrop-filter:blur(8px)}
@keyframes pulseOut{0%,100%{box-shadow:0 0 0 0 rgba(232,163,61,0.4)}60%{box-shadow:0 0 0 10px rgba(232,163,61,0)}}
.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:blink 1.5s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.2}}

.hero h1{position:relative;z-index:1;font-family:'Bebas Neue',sans-serif;font-size:clamp(30px,6.2vw,68px);line-height:1.08;letter-spacing:2px;margin-bottom:12px;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,0.8);max-width:760px}
.hero h1 .accent{color:var(--accent)}
.hero h1 .sub{font-family:'Noto Sans JP',sans-serif;font-size:clamp(15px,3.2vw,26px);font-weight:700;color:rgba(240,240,240,0.9);letter-spacing:0.12em;display:block;margin-top:16px}
.hero-desc{position:relative;z-index:1;font-size:clamp(13px,1.8vw,16px);color:rgba(220,220,220,0.85);max-width:540px;margin:20px auto 22px;line-height:1.9;text-shadow:0 1px 8px rgba(0,0,0,0.8)}
.hero-highlight{position:relative;z-index:1;font-size:clamp(15px,2.1vw,19px);font-weight:700;color:var(--accent-soft, #f4c77a);max-width:560px;margin:0 auto 40px;text-shadow:0 1px 8px rgba(0,0,0,0.8)}
.hero-desc strong{color:#fff;font-weight:700}
.cta-group{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.btn-primary{background:var(--accent);color:#1A1814;padding:16px 40px;border:none;border-radius:4px;font-size:16px;font-weight:700;font-family:'Noto Sans JP',sans-serif;cursor:pointer;text-decoration:none;letter-spacing:0.05em;transition:all .2s;display:inline-block}
.btn-primary:hover{background:#f4c77a;transform:translateY(-2px)}
.btn-ghost-light{background:rgba(255,255,255,0.12);color:#fff;padding:16px 32px;border:1px solid rgba(255,255,255,0.35);border-radius:4px;font-size:15px;font-family:'Noto Sans JP',sans-serif;cursor:pointer;text-decoration:none;transition:all .2s;backdrop-filter:blur(8px);display:inline-block}
.btn-ghost-light:hover{background:rgba(255,255,255,0.22);transform:translateY(-2px)}
.scroll-hint{position:relative;z-index:1;margin-top:64px;color:rgba(255,255,255,0.35);font-size:12px;letter-spacing:0.15em;display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,var(--accent),transparent);animation:scrollAnim 1.8s ease-in-out infinite}
@keyframes scrollAnim{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

.sec-header{text-align:center;margin-bottom:56px}
.sec-label{font-size:11px;letter-spacing:0.25em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:14px}
.sec-title{font-size:clamp(24px,4.5vw,48px);font-weight:900;line-height:1.2;margin-bottom:16px;color:var(--text)}
.sec-sub{font-size:15px;color:var(--text2)}

/* ---------- 覗き窓ストリップ（見出しの間にちらっと挟む写真の帯）---------- */
.peek-strip{width:100%;height:34vh;overflow:hidden;position:relative}
.peek-strip-sticky{width:100%;height:100%;overflow:hidden;position:relative}
.peek-strip-sticky img{position:absolute;top:-70%;left:0;width:100%;height:240%;object-fit:cover;display:block;filter:brightness(0.95);will-change:transform}
@media(max-width:640px){.peek-strip{height:24vh}}

.problem{padding:96px 24px;background:var(--bg2);border-top:1px solid var(--border)}
.problem-inner{max-width:900px;margin:0 auto}
.problem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.prob-item{background:var(--bg);padding:32px 28px;text-align:left;position:relative}
.prob-item::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:transparent;transition:background .3s}
.prob-item:hover::before{background:var(--accent)}
.prob-icon{font-size:26px;margin-bottom:10px;opacity:0.85}
.prob-num{font-family:'Bebas Neue',sans-serif;font-size:64px;color:var(--border);line-height:1;margin-bottom:14px}
.prob-text{font-size:15px;line-height:1.8;color:var(--text2)}
.prob-text strong{color:var(--accent);font-weight:700}

.scenes{padding:96px 24px;background:var(--bg);border-top:1px solid var(--border)}
.scenes-inner{max-width:1100px;margin:0 auto}
.scene-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.scene-card{border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--border);transition:transform .3s,box-shadow .3s}
.scene-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,0.1)}
.scene-img{width:100%;aspect-ratio:2/3;display:flex;align-items:center;justify-content:center;font-size:44px;background-size:cover;background-position:center}
.scene-body{padding:22px 24px 28px}
.scene-tag{display:inline-block;background:rgba(232,163,61,0.12);color:var(--accent);padding:3px 10px;border-radius:100px;font-size:11px;font-weight:700;letter-spacing:0.06em;margin-bottom:12px}
.scene-body h3{font-size:16px;font-weight:700;margin-bottom:8px;line-height:1.45;color:var(--text)}
.scene-body p{font-size:13px;color:var(--text2);line-height:1.8}

/* ---------- 組み合わせ価値（シナジー）---------- */
.synergy{padding:96px 24px;background:var(--bg);border-top:1px solid var(--border)}
.synergy-inner{max-width:980px;margin:0 auto}
.combo-banner-list{display:flex;flex-direction:column;gap:14px}
.combo-banner{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 20px;text-decoration:none;color:inherit;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}
.combo-banner::before{content:'';position:absolute;top:0;left:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--accent),var(--green))}
.combo-banner:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(20,17,10,0.1)}
.combo-banner-thumb{width:52px;height:52px;border-radius:12px;background:var(--bg2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:22px}
.combo-banner-body{flex:1;min-width:0}
.combo-tags{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.combo-tag{display:inline-flex;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--border);color:var(--text);font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px}
.combo-tag-soon{background:#fdf6e8;border-color:rgba(232,163,61,0.4);color:#8a6a1e}
.combo-tag-soon small{font-family:'Bebas Neue',sans-serif;letter-spacing:0.5px;font-size:9px;background:var(--accent);color:#1a1814;padding:1px 6px;border-radius:100px;font-weight:700}
.combo-x{font-family:'Bebas Neue',sans-serif;font-size:14px;color:var(--text3)}
.combo-banner h3{font-size:14px;font-weight:800;line-height:1.5;margin:0;color:var(--text)}
.combo-banner-link{font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap;flex-shrink:0}
@media(max-width:640px){
  .combo-banner{flex-wrap:wrap}
  .combo-banner-link{width:100%;padding-left:68px}
}
.synergy-note{text-align:center;font-size:13px;color:var(--text3);margin-top:36px}

.who{padding:96px 24px;background:var(--bg2);border-top:1px solid var(--border)}
.who-inner{max-width:1000px;margin:0 auto}
.who-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.who-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:all .3s}
.who-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.08)}
.who-card-img{width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;font-size:52px;background-size:cover;background-position:center}
.who-card-body{padding:22px 24px 26px}
.who-card-label{font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:8px}
.who-card h3{font-size:17px;font-weight:700;margin-bottom:10px;line-height:1.4;color:var(--text)}
.who-card p{font-size:14px;color:var(--text2);line-height:1.75}

.effects{padding:96px 24px;background:var(--bg);border-top:1px solid var(--border)}
.effects-inner{max-width:1000px;margin:0 auto}
.effects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.effect-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:28px 24px}
.effect-card.red{border-left:3px solid #C4523A}
.effect-card.gold{border-left:3px solid var(--gold)}
.effect-card.green{border-left:3px solid var(--green)}
.ect-title{font-size:14px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.ect-title.red{color:#C4523A}
.ect-title.gold{color:var(--gold)}
.ect-title.green{color:var(--green)}
.ect-list{display:flex;flex-direction:column;gap:12px}
.ect-item{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.7;color:var(--text2)}
.check{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;margin-top:1px}
.check.g{background:rgba(42,158,92,0.12);border:1px solid rgba(42,158,92,0.3);color:var(--green)}
.check.r{background:rgba(196,82,58,0.12);border:1px solid rgba(196,82,58,0.3);color:#C4523A}
.check.y{background:rgba(196,154,32,0.12);border:1px solid rgba(196,154,32,0.3);color:var(--gold)}

/* ---------- Service cards with photo + logo slot ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media(max-width:720px){.svc-grid{grid-template-columns:1fr}}
.svc-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:transform .3s,box-shadow .3s;display:block;text-decoration:none;color:inherit;cursor:pointer}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,0,0,0.08)}
.svc-photo{aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;position:relative;background-size:cover;background-position:center}
.svc-photo-placeholder{font-size:32px;text-align:center;color:var(--text3);line-height:1.6}
.svc-photo-placeholder small{font-size:11px;letter-spacing:0.05em}
.svc-body{padding:22px 24px 26px}
.svc-body h3{font-size:16px;font-weight:700;margin:8px 0 8px;color:var(--text)}
.svc-body p{font-size:13px;color:var(--text2);line-height:1.75;margin-bottom:12px}
.svc-link{display:inline-block;font-size:13px;color:var(--accent);text-decoration:underline}

/* ---------- Role-based "what changes" cards ---------- */
.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.role-card{border-radius:12px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.role-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,0,0,0.14)}
.role-photo{position:relative;aspect-ratio:16/10;background-size:cover;background-position:center 25%;display:flex;align-items:flex-end}
.role-photo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg2);font-size:28px;text-align:center;color:var(--text3);line-height:1.6}
.role-photo-placeholder small{font-size:11px;letter-spacing:0.05em}
.role-overlay{position:relative;width:100%;padding:14px 16px 16px;background:linear-gradient(180deg,rgba(15,13,10,0) 0%,rgba(15,13,10,0.55) 45%,rgba(15,13,10,0.86) 100%)}
.role-tag{display:inline-block;background:rgba(232,163,61,0.85);color:#1a1814;padding:3px 10px;border-radius:100px;font-size:10.5px;font-weight:700;letter-spacing:0.04em;margin-bottom:8px}
.role-overlay h3{font-size:14px;font-weight:700;margin-bottom:4px;line-height:1.4;color:#fff}
.role-overlay p{font-size:11.5px;color:rgba(255,255,255,0.82);line-height:1.6;margin:0}
@media(max-width:640px){
  .role-photo{aspect-ratio:16/9}
  .role-overlay h3{font-size:13px}
  .role-overlay p{font-size:11px}
}

.coming-soon{margin-top:36px;padding-top:28px;border-top:1px dashed var(--border);text-align:center}
.coming-soon-label{font-family:'Bebas Neue',sans-serif;letter-spacing:2px;font-size:13px;color:var(--text3);margin-bottom:14px}
.coming-soon-list{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px;padding:0}
.coming-soon-list li{font-size:13px;color:var(--text2);background:#fff;border:1px dashed var(--border);border-radius:100px;padding:6px 16px}

.features{padding:96px 24px;background:var(--bg2);border-top:1px solid var(--border)}
.features-inner{max-width:1000px;margin:0 auto}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden}
@media(max-width:500px){.feat-grid{grid-template-columns:1fr}}
.feat-item{background:#fff;padding:36px 32px;display:flex;gap:20px;align-items:flex-start;transition:background .2s}
.feat-item:hover{background:var(--bg)}
.feat-ico{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}
.ico-a{background:rgba(232,163,61,0.1);border:1px solid rgba(232,163,61,0.25)}
.ico-y{background:rgba(196,154,32,0.08);border:1px solid rgba(196,154,32,0.2)}
.ico-b{background:rgba(37,99,235,0.08);border:1px solid rgba(37,99,235,0.2)}
.ico-g{background:rgba(42,158,92,0.08);border:1px solid rgba(42,158,92,0.2)}
.ico-p{background:rgba(124,58,237,0.08);border:1px solid rgba(124,58,237,0.2)}
.feat-tag{display:inline-block;background:rgba(232,163,61,0.12);color:var(--accent);padding:2px 10px;border-radius:100px;font-size:10px;font-weight:700;letter-spacing:0.08em;margin-bottom:6px}
.feat-item h3{font-size:16px;font-weight:700;margin-bottom:6px;color:var(--text)}
.feat-item p{font-size:13px;color:var(--text2);line-height:1.75}

.flow{padding:96px 24px;background:var(--bg);border-top:1px solid var(--border)}
.flow-inner{max-width:700px;margin:0 auto}
.flow-steps{display:flex;flex-direction:column;text-align:left}
.fstep{display:grid;grid-template-columns:56px 1fr;gap:24px;align-items:start;padding:28px 0}
.fstep:not(:last-child){border-bottom:1px dashed var(--border)}
.fstep-num{width:52px;height:52px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:28px;color:#1A1814;flex-shrink:0}
.fstep-num.done{background:#fff;border:2px solid var(--green);color:var(--green);font-size:22px}
.fstep h3{font-size:17px;font-weight:700;margin-bottom:6px;color:var(--text)}
.fstep p{font-size:14px;color:var(--text2);line-height:1.75}

.cta-final{padding:120px 24px;text-align:center;position:relative;overflow:hidden;border-top:1px solid var(--border);background:#12100c}
.cta-final-bg{position:absolute;inset:0;background:
  radial-gradient(ellipse at 70% 30%, rgba(232,163,61,0.16) 0%, transparent 55%),
  radial-gradient(ellipse at 20% 80%, rgba(31,91,87,0.2) 0%, transparent 55%),
  linear-gradient(160deg,#0f0d0a 0%,#181410 60%,#0c0a08 100%);
}
.cta-final-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,0,0,0.15) 0%,rgba(10,0,0,0.05) 40%,rgba(10,0,0,0.45) 100%)}
.cta-final-content{position:relative;z-index:1}
.cta-final h2{font-family:'Noto Sans JP',sans-serif;font-weight:900;font-size:clamp(26px,5.5vw,58px);line-height:1.3;margin-bottom:32px;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,0.8)}
.cta-final h2 span{color:var(--accent)}
.cta-final p{font-size:16px;color:rgba(220,220,220,0.85);margin-bottom:16px;max-width:480px;margin-left:auto;margin-right:auto;line-height:1.9}
.step-flow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:40px 0 48px;font-size:14px;color:rgba(200,200,200,0.7)}
.sf-item{display:flex;align-items:center;gap:8px}
.sf-num{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#1A1814;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.sf-num.ok{background:var(--green);color:#fff}
.sf-arrow{color:rgba(255,255,255,0.3);font-size:18px}

/* ---------- Bundle note & contact (light theme, matches STARBOARD-G tone) ---------- */
.bundle-note{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--accent);border-left:4px solid var(--accent);padding:20px 24px;margin:0 auto 8px;max-width:760px;border-radius:8px}
.bundle-note .mark{font-family:'Bebas Neue',sans-serif;font-size:14px;color:#fff;background:var(--accent);border-radius:50%;width:26px;height:26px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-weight:700}
.bundle-note p{margin:0;font-size:14px;color:var(--text2);line-height:1.8;text-align:left}
.bundle-note p b{color:var(--text)}

/* ---------- FAQ ---------- */
.faq-sec{padding:96px 24px;background:var(--bg);border-top:1px solid var(--border)}
.faq-inner{max-width:760px;margin:0 auto}
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px 22px;transition:box-shadow .2s}
.faq-item[open]{box-shadow:0 10px 28px rgba(20,17,10,0.08)}
.faq-item summary{cursor:pointer;font-weight:700;font-size:15px;color:var(--text);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--accent);flex-shrink:0;transition:transform .2s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{margin:14px 0 0;font-size:13.5px;color:var(--text2);line-height:1.9}

.contact-sec{padding:96px 24px;background:var(--bg2);border-top:1px solid var(--border)}
.contact-inner{max-width:760px;margin:0 auto}
.contact-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:32px;margin-top:32px;position:relative;overflow:hidden}
.contact-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--green))}
.field{margin-bottom:18px}
.field label{display:block;font-size:12px;font-weight:700;color:var(--text3);letter-spacing:0.5px;margin-bottom:6px}
.field label .req{color:#C4523A;margin-left:3px}
.field input,.field select,.field textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:var(--text);font-size:14px;font-family:'Noto Sans JP',sans-serif;outline:none;transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field textarea{min-height:120px;resize:vertical}
.hp{position:absolute;left:-9999px}
.form-note{font-size:12px;color:var(--text3);margin-top:14px;text-align:center}
.contact-meta{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-top:28px;font-size:13px;color:var(--text2)}
.contact-meta b{color:var(--text)}

footer{background:var(--bg2);border-top:1px solid var(--border);padding:40px 24px;text-align:center}
footer p{font-size:12px;color:var(--text3);margin-bottom:8px}
footer a{color:var(--text3);text-decoration:none;margin:0 12px;transition:color .2s}
footer a:hover{color:var(--text2)}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

@media(max-width:640px){
  .scene-grid,.who-cards,.effects-grid{grid-template-columns:1fr}
  nav{padding:14px 20px}
  .hero h1{font-size:clamp(28px,9vw,52px)}
  .hero-logo-img{height:48px}
  .cta-group{flex-direction:column;align-items:stretch}
  .btn-primary,.btn-ghost-light{text-align:center}
}

/* サービスカード：元のサービス名を小さく添える */
.svc-powered{margin:-2px 0 8px;font-size:11px;font-weight:500;letter-spacing:0.08em;color:var(--text3)}
/* バナー画像にタイトルが入ったら、カードに class="titled" を付けると見出し文字は読み上げ・検索用だけに残して非表示にできる */
.svc-card.titled h3{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.svc-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* 準備中カード（ルミナ勤怠など、まだ押せないサービス） */
.svc-card-soon{cursor:default}
.svc-card-soon:hover{transform:none;box-shadow:none}
.svc-badge{position:absolute;top:12px;right:12px;padding:6px 14px;border-radius:999px;background:rgba(26,24,20,0.88);color:#fff;font-size:12px;font-weight:700;letter-spacing:0.12em;box-shadow:0 2px 8px rgba(0,0,0,0.25)}
.svc-soon-note{display:inline-block;font-size:13px;color:var(--text3)}

/* 料金セクション：1店舗あたりの金額を大きく打ち出す */
.price-sec{padding:96px 24px;background:#1A1814;color:#fff;border-top:1px solid var(--border);text-align:center}
.price-inner{max-width:900px;margin:0 auto}
.price-sec .sec-title{color:#fff}
.price-sec .sec-label{color:var(--accent)}
.price-card{margin-top:32px;padding:48px 24px 44px;border:1px solid rgba(232,163,61,0.5);border-radius:16px;background:rgba(255,255,255,0.03)}
.price-lead{font-size:clamp(16px,2.6vw,22px);font-weight:700;color:rgba(255,255,255,0.85);letter-spacing:0.08em}
.price-main{display:flex;align-items:baseline;justify-content:center;gap:6px;flex-wrap:wrap;margin:8px 0 12px}
.price-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(96px,22vw,200px);line-height:1;color:var(--accent);letter-spacing:0.02em}
.price-yen{font-size:clamp(28px,6vw,52px);font-weight:900;color:#fff}
.price-tax{font-size:clamp(14px,2.6vw,20px);color:rgba(255,255,255,0.7);margin-left:4px}
.price-desc{font-size:clamp(15px,2.6vw,20px);color:rgba(255,255,255,0.9);margin-bottom:20px}
.price-desc b{color:var(--accent);font-weight:900}
.price-chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto 24px;padding:0;max-width:720px}
.price-chips li{padding:8px 18px;border:1px solid rgba(255,255,255,0.35);border-radius:999px;font-size:14px;font-weight:700;color:#fff}
.price-note{font-size:12px;color:rgba(255,255,255,0.6);margin:0 auto 24px;max-width:560px;line-height:1.8}
.price-cta{display:inline-block}

.price-terms{max-width:640px;margin:0 auto 24px;padding:18px 22px;border:1px dashed rgba(255,255,255,0.3);border-radius:10px;text-align:left}
.price-terms-title{font-size:13px;font-weight:700;color:var(--accent);margin-bottom:8px;letter-spacing:0.05em}
.price-terms ul{list-style:none;margin:0 0 8px;padding:0}
.price-terms li{font-size:14px;line-height:1.8;color:rgba(255,255,255,0.9);padding-left:1em;text-indent:-1em}
.price-terms li::before{content:"・"}
.price-terms li b{color:#fff}
.price-terms p{font-size:12px;color:rgba(255,255,255,0.6);margin:0;line-height:1.7}

/* 料金セクションをコンパクトに */
.price-sec{padding:56px 24px}
.price-sec .sec-header{margin-bottom:0}
.price-card{margin-top:20px;padding:28px 24px 28px;max-width:640px;margin-left:auto;margin-right:auto}
.price-num{font-size:clamp(72px,14vw,120px)}
.price-yen{font-size:clamp(22px,4vw,34px)}
.price-chips{margin-bottom:14px}
.price-note{margin-bottom:16px}
.svc-plan{margin:10px 0 12px;padding:10px 14px;background:var(--bg2);border-left:3px solid var(--accent);border-radius:4px;font-size:13px;line-height:1.7;color:var(--text)}
.svc-plan b{display:block;font-size:11px;letter-spacing:0.08em;color:var(--accent);margin-bottom:2px}
