/**
 * front-page.css — XiADEN トップページ専用CSS
 * 元ファイル: company_top_D4_28_fresh.html <style> lines 913〜2048
 */

/* =============================================================
   HERO (D-4.28 FRESH)
   ============================================================= */
.s-hero {
  position:relative; min-height:860px; overflow:hidden;
  /* background-image: hero_bg.png は削除（ファイル不在・404回避のため 2026-06-10） */
  background-color:#e4f1fa;
}
.s-hero::before {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(
    to right,
    rgba(232,243,251,0.96)  0%,
    rgba(232,243,251,0.92) 26%,
    rgba(232,243,251,0.70) 38%,
    rgba(232,243,251,0.20) 50%,
    rgba(232,243,251,0.00) 60%
  );
}
.s-hero::after { display:none !important; }

.hero-grid {
  max-width:1360px; margin:0 auto; padding:0 48px 0 16px;
  min-height:740px;
  display:grid; grid-template-columns:54% 46%;
  align-items:center; gap:0;
  position:relative; z-index:3;
}
.hero-content {
  padding:70px 32px 60px 0;
  display:flex; flex-direction:column; gap:0;
}
.hero-we-are {
  font-size:16px; font-weight:700; letter-spacing:.26em;
  color:#1d3a5a; text-transform:uppercase;
  margin-bottom:5px; opacity:.80; display:block;
}
.hero-tagline {
  font-size:15px; font-weight:500; color:#6680a0;
  letter-spacing:.08em; margin-bottom:24px; display:block;
}
.hero-tagline::before { display:none; }
.hero-h1 {
  font-size:clamp(32px,4.4vw,58px); font-weight:900; color:#1d3a5a;
  line-height:1.18; margin-bottom:18px; letter-spacing:-.022em;
}
.hero-h1-shimmer {
  display:inline;
  background:linear-gradient(
    105deg,
    #1d3a5a 0%,#1d3a5a 18%,
    #7ab8f5 32%,#d0ecff 43%,
    #ffffff 50%,
    #d0ecff 57%,#7ab8f5 68%,
    #1d3a5a 82%,#1d3a5a 100%
  );
  background-size:220% 100%;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:h1Shimmer 2.4s ease-in-out infinite;
}
@keyframes h1Shimmer {
  0%   { background-position:180% center; }
  35%  { background-position:-40% center; }
  100% { background-position:-40% center; }
}
.hero-definition {
  font-size:15px; color:#3a5470; line-height:1.88; margin-bottom:28px;
  border-left:none; padding-left:0; max-width:420px;
}
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:32px; }
.hero-btns .btn-primary {
  background:#e8780c; color:#fff; font-size:15px; font-weight:700; padding:14px 28px;
  border-radius:999px; box-shadow:0 4px 18px rgba(232,120,12,.32);
  display:inline-flex; align-items:center; gap:8px;
  transition:filter .15s, transform .15s;
}
.hero-btns .btn-primary:hover { filter:brightness(1.08); transform:translateY(-1px); }
.hero-btns .btn-outline {
  background:transparent; color:#1d3a5a; font-size:15px; font-weight:700;
  padding:13px 26px; border-radius:999px; border:1.5px solid #c8ddf0;
  display:inline-flex; align-items:center; gap:8px;
  transition:background .15s, border-color .15s;
}
.hero-btns .btn-outline:hover { background:rgba(200,221,240,.15); border-color:#2a527e; }

/* 右: ビジュアル */
.hero-visual {
  position:relative; height:680px;
  display:flex; align-items:center;
}
.hero-visual::before,
.hero-visual-frame,
.hero-visual-sheen,
.hero-visual-main-img,
.hero-brand-mark { display:none !important; }
.hero-bulb-img {
  position:absolute;
  width:96%; max-width:580px;
  top:48%; left:42%;
  transform:translate(-50%,-52%);
  z-index:2; object-fit:contain;
  mix-blend-mode:multiply;
  animation:heroFloat 5s ease-in-out infinite;
}
@keyframes heroFloat {
  0%,100% { transform:translate(-50%,-54%); }
  50%     { transform:translate(-50%,-57%); }
}
.hero-staff-img { display:none !important; }

/* マスコット＋吹き出し */
.hero-mascot-row {
  position:absolute; bottom:28px; left:22%; z-index:5;
}
.hero-mascot-fig { width:auto; height:240px; flex-shrink:0; position:relative; }
.hero-mascot-img {
  width:auto; height:100%; max-width:none; object-fit:contain; display:block;
  filter:drop-shadow(0 8px 32px rgba(29,58,90,.22));
}
.hero-mascot-bubble {
  position:absolute; top:12%; left:86%;
  background:#fff; border:1.5px solid #c8ddf0;
  border-radius:16px 16px 16px 4px;
  padding:14px 18px;
  font-size:14.5px; font-weight:700; color:#1d3a5a;
  line-height:1.6; width:230px;
  box-shadow:0 6px 22px rgba(29,58,90,.11); z-index:10;
  white-space:nowrap;
}
.hero-mascot-bubble::after {
  content:''; position:absolute; bottom:-9px; left:16px;
  width:0; height:0;
  border-left:9px solid transparent; border-right:9px solid transparent;
  border-top:10px solid #fff;
}
.hero-mascot-bubble::before {
  content:''; position:absolute; bottom:-11px; left:15px;
  width:0; height:0;
  border-left:10px solid transparent; border-right:10px solid transparent;
  border-top:11px solid #c8ddf0;
}

/* トラストバッジ */
.hero-trust-strip {
  position:absolute; bottom:68px; left:50%; width:47%;
  transform:none; z-index:4; padding:0; background:transparent;
}
.hero-trust-inner {
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
.hero-trust-card {
  background:rgba(255,255,255,.94); backdrop-filter:blur(14px);
  border:1px solid rgba(200,225,248,.88);
  border-radius:16px; padding:20px;
  display:flex; align-items:flex-start; gap:14px;
  box-shadow:0 6px 24px rgba(29,58,90,.08),0 1px 4px rgba(29,58,90,.04);
  transition:box-shadow .2s, transform .18s;
}
.hero-trust-card:hover { box-shadow:0 10px 32px rgba(29,58,90,.12); transform:translateY(-3px); }
.hero-trust-icon {
  width:56px; height:56px; flex-shrink:0; border-radius:50%;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
}
.hero-trust-icon img { width:100%; height:100%; object-fit:cover; display:block; }
.hero-trust-title { font-size:17px; font-weight:700; color:#1d3a5a; margin-bottom:5px; line-height:1.36; }
.hero-trust-desc  { font-size:12px; color:#3a5470; line-height:1.68; }

/* SP: trust バッジ FV直下 */
.hero-trust-sp { display:none; }
.hero-trust-sp-inner { display:flex; flex-direction:column; gap:12px; }
.trust-rumi-img { display:none; }

/* Hero アニメーション */
@keyframes d425-fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes d425-weAreIn { from{opacity:0;transform:translateY(16px)} to{opacity:.6;transform:translateY(0)} }
@keyframes d425-heroImgIn { from{opacity:0;transform:scale(.98)} to{opacity:1;transform:scale(1)} }
.hero-we-are    { animation:d425-weAreIn  .70s cubic-bezier(.25,.46,.45,.94) both .05s; }
.hero-tagline   { animation:d425-fadeUp   .70s cubic-bezier(.25,.46,.45,.94) both .18s; }
.hero-h1        { animation:d425-fadeUp   .80s cubic-bezier(.25,.46,.45,.94) both .32s; }
.hero-definition{ animation:d425-fadeUp   .70s cubic-bezier(.25,.46,.45,.94) both .50s; }
.hero-btns      { animation:d425-fadeUp   .70s cubic-bezier(.25,.46,.45,.94) both .65s; }
.hero-visual    { animation:d425-heroImgIn .90s cubic-bezier(.25,.46,.45,.94) both .40s; }

/* =============================================================
   ABOUT (Section 02)
   ============================================================= */
.s-about { background:var(--w); border-top:1px solid var(--div); }
.about-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:var(--sp64); align-items:start;
}
.about-tag {
  display:inline-block; background:var(--b); border:1px solid var(--bm);
  color:var(--n); font-size:11px; font-weight:700; letter-spacing:.12em;
  padding:5px 14px; border-radius:var(--rf); margin-bottom:20px;
}
.about-h2 {
  font-size:var(--f-h2); font-weight:900; color:var(--n);
  line-height:1.42; margin-bottom:20px;
}
.about-body {
  font-size:var(--f-body); color:var(--txm);
  line-height:1.92; margin-bottom:var(--sp24);
}
.about-body strong { color:var(--n); font-weight:700; }
.about-art-accent { display:none; }
.about-cards { display:flex; flex-direction:column; gap:14px; }
.about-card {
  background:var(--w); border:1px solid var(--bm); border-radius:var(--r3);
  padding:22px 24px; display:flex; align-items:flex-start; gap:18px;
  box-shadow:var(--s1); transition:box-shadow .2s, transform .2s;
}
.about-card:hover { box-shadow:var(--s2); transform:translateY(-1px); }
.about-card-icon { width:60px; height:60px; flex-shrink:0; }
.about-card-icon img { width:100%; height:100%; object-fit:cover; display:block; border-radius:14px; }
.about-card-title { font-size:16px; font-weight:700; color:var(--n); margin-bottom:5px; }
.about-card-desc  { font-size:var(--f-sm); color:var(--txm); line-height:1.72; }
.about-link {
  display:inline-flex; align-items:center; gap:6px;
  color:var(--or); font-size:14px; font-weight:700;
  border-bottom:1px solid rgba(232,120,12,.3); padding-bottom:2px;
  transition:border-color .15s;
}
.about-link:hover { border-bottom-color:var(--or); }

/* =============================================================
   DOMAIN (Section 03)
   ============================================================= */
.s-domain { background:var(--w); border-top:1px solid var(--div); }
.domain-bento {
  display:grid;
  grid-template-columns:5fr 3fr 3fr;
  grid-template-rows:auto auto;
  gap:16px;
}
.domain-bento-item          { display:flex; }
.domain-bento-item .domain-card { flex:1; }
.domain-bento-item--home    { grid-column:1; grid-row:1/3; }
.domain-bento-item--home .domain-card { min-height:360px; }
.domain-bento-item--biz     { grid-column:2; grid-row:1; }
.domain-bento-item--elec    { grid-column:3; grid-row:1; }
.domain-bento-item--plan    { grid-column:2/4; grid-row:2; }
.domain-bento-item--plan .domain-card {
  background:linear-gradient(135deg,var(--n) 0%,var(--nm) 100%);
  border-color:transparent;
}
.domain-bento-item--plan .domain-card-num   { color:rgba(255,255,255,.45); }
.domain-bento-item--plan .domain-card-title { color:var(--w); }
.domain-bento-item--plan .domain-card-desc  { color:rgba(255,255,255,.72); }
.domain-bento-item--plan .domain-tag {
  background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.22);
  color:rgba(255,255,255,.85);
}
.domain-bento-item--plan .domain-link { color:rgba(255,255,255,.78); }
.domain-bento-item--plan .domain-link:hover { color:var(--w); }
.domain-card {
  background:var(--bs); border:1px solid var(--bm);
  border-radius:var(--r3); padding:32px 28px;
  display:flex; flex-direction:column; gap:12px;
  transition:box-shadow .2s, transform .18s;
}
.domain-card:hover { box-shadow:var(--s2); transform:translateY(-2px); }
.domain-card--home { border-top:3px solid var(--or); }
.domain-card--biz  { border-top:3px solid var(--n); }
.domain-card--elec { border-top:3px solid #0896a8; }
.domain-card--plan { border-top:3px solid #8060c8; }
.domain-card-num {
  font-size:11px; font-weight:700; letter-spacing:.18em;
  color:var(--txl); text-transform:uppercase;
}
.domain-card-head { display:flex; align-items:center; gap:14px; }
.domain-card-title { font-size:18px; font-weight:900; color:var(--n); line-height:1.36; }
.domain-card-desc { font-size:var(--f-sm); color:var(--txm); line-height:1.78; flex:0 1 auto; }
.domain-tags { display:flex; flex-wrap:wrap; gap:6px; }
.domain-tag {
  background:var(--w); border:1px solid var(--bm); color:var(--txm);
  font-size:11px; font-weight:600; padding:3px 10px; border-radius:var(--rf);
}
.domain-link {
  display:inline-flex; align-items:center; gap:5px;
  font-size:var(--f-sm); font-weight:700; color:var(--or);
  margin-top:4px; transition:gap .15s;
}
.domain-link:hover { gap:8px; }
.domain-home-img {
  flex:1 1 auto; min-height:200px; max-height:340px;
  border-radius:var(--r2); overflow:hidden;
}
.domain-home-img img {
  width:100%; height:100%; object-fit:cover; object-position:center 38%; display:block;
}

/* =============================================================
   SERVICES (Section 04)
   ============================================================= */
.s-services { background:var(--bs); border-top:1px solid var(--div); }
.s-services .si { max-width:1560px; padding:0 var(--sp32); }
.svc-table { display:flex; flex-direction:column; gap:12px; }
.svc-table-row {
  display:flex; background:var(--w); border:1px solid var(--bm);
  border-radius:var(--r2); overflow:hidden;
}
.svc-cat {
  width:260px; flex-shrink:0; padding:20px 18px;
  display:flex; flex-direction:row; align-items:center; gap:14px;
  border-right:1px solid var(--div);
  background:linear-gradient(160deg,#f0f6fc 0%,#e8f2fb 100%);
}
.svc-cat-icon { width:56px; height:56px; flex-shrink:0; }
.svc-cat-icon img { width:100%; height:100%; object-fit:contain; display:block; mix-blend-mode:multiply; }
.svc-cat-name { font-size:15px; font-weight:800; color:var(--n); line-height:1.5; margin:0; }
.svc-cat-text { display:flex; flex-direction:column; gap:3px; }
.svc-cat-desc { font-size:12px; color:var(--txm); line-height:1.65; margin:0; }
.svc-items { flex:1; display:flex; flex-wrap:nowrap; padding:0; gap:0; align-items:stretch; }
.svc-item {
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:8px;
  padding:20px 12px; flex:1; text-align:center;
  border-right:1px solid var(--div); transition:background .18s;
}
.svc-item:last-child { border-right:none; }
.svc-item:hover { background:var(--bs); }
.svc-item-icon { width:96px; height:96px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:var(--n); }
.svc-item-icon img { width:100%; height:100%; object-fit:contain; display:block; mix-blend-mode:multiply; }
.svc-item-name { font-size:13px; font-weight:700; color:var(--n); line-height:1.45; margin:0; }

/* =============================================================
   OFFICES (Section 07)
   ============================================================= */
.s-offices { background:var(--bs); border-top:1px solid var(--div); }
.offices-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:18px; align-items:stretch;
}
.office-card {
  background:var(--w); border:1px solid var(--bm); border-radius:var(--r2);
  padding:24px 20px; display:flex; flex-direction:column; gap:8px;
  box-shadow:var(--s1); height:100%;
  transition:box-shadow .22s ease, transform .22s ease;
}
.office-card:hover { box-shadow:var(--s2); transform:translateY(-3px); }
.office-card--coming { background:var(--bs); border-style:dashed; box-shadow:none; }
.office-type-badge {
  display:inline-block; background:var(--n); color:var(--w);
  font-size:10px; font-weight:700; letter-spacing:.1em;
  padding:3px 10px; border-radius:var(--rf);
  align-self:flex-start; margin-bottom:4px;
}
.office-type-badge--hq { background:var(--nm); }
.office-name   { font-size:16px; font-weight:700; color:var(--n); line-height:1.3; }
.office-region { font-size:var(--f-sm); font-weight:600; color:var(--or); }
.office-desc   { font-size:12px; color:var(--txm); line-height:1.7; margin-bottom:0; min-height:61px; }
.office-freephone { display:flex; flex-direction:column; gap:3px; margin-top:auto; }
.office-freephone-label { font-size:10px; font-weight:700; letter-spacing:.08em; color:var(--or); display:inline-block; margin-bottom:2px; }
.office-freephone-num { display:block; font-size:17px; font-weight:900; color:var(--n); letter-spacing:.02em; line-height:1.1; }
.office-freephone-num:hover { color:var(--or); }
.office-freephone-empty { min-height:50px; margin-top:auto; }
.office-tel-sub { margin-top:6px; padding-top:6px; border-top:1px solid var(--div); }
.office-tel-sub p { font-size:11px; color:var(--txl); line-height:1.75; }
.office-tel-sub-empty { min-height:44px; margin-top:6px; padding-top:6px; border-top:1px solid var(--div); }
.office-address { font-size:11px; color:var(--txl); line-height:1.65; margin-top:auto; padding-top:8px; border-top:1px solid var(--div); }
.offices-expand-note {
  margin-top:var(--sp24); text-align:center; padding:12px 20px;
  background:var(--w); border:1px solid var(--bm); border-radius:var(--r2);
  font-size:var(--f-sm); color:var(--txl);
}
.offices-expand-note a { color:var(--or); font-weight:700; transition:opacity .15s; }
.offices-expand-note a:hover { opacity:.78; }

/* =============================================================
   MESSAGE (Section 06)
   ============================================================= */
.s-message { background:var(--w); border-top:1px solid var(--div); }
.message-grid { display:none; }
.message-top {
  display:grid; grid-template-columns:400px 1fr;
  gap:var(--sp48); align-items:stretch;
}
.message-photo {
  position:relative; overflow:hidden;
  height:100%; min-height:480px; border-radius:var(--r3); box-shadow:var(--s1);
  background:linear-gradient(180deg,#c4d0dc 0%,#b0bece 35%,#98acbe 62%,#84a0b4 82%,#708ea4 98%);
}
.message-photo-img {
  width:100%; height:100%; object-fit:cover;
  object-position:50% 18%; display:block;
  position:absolute; inset:0;
}
.message-body { display:flex; flex-direction:column; gap:var(--sp32); }
.message-tag {
  display:inline-block; background:var(--b); border:1px solid var(--bm);
  color:var(--n); font-size:11px; font-weight:700; letter-spacing:.1em;
  padding:5px 14px; border-radius:var(--rf); margin-bottom:20px;
}
.message-h2 { font-size:var(--f-h2); font-weight:900; color:var(--n); line-height:1.42; margin-bottom:20px; }
.message-quote {
  font-size:var(--f-body); color:var(--txm); line-height:2.0;
  padding-left:20px; border-left:3px solid var(--bm); margin-bottom:var(--sp24);
}
.message-sign { display:flex; align-items:center; gap:var(--sp16); margin-bottom:var(--sp24); }
.message-sign-avatar { width:48px; height:48px; border-radius:50%; background:var(--b); border:2px solid var(--bm); flex-shrink:0; }
.message-sign-name  { font-size:16px; font-weight:700; color:var(--n); }
.message-sign-title { font-size:12px; color:var(--txl); margin-top:2px; }
.message-overview-full {
  background:var(--bs); border:1px solid var(--bm);
  border-radius:var(--r2); padding:20px 28px;
}
.message-overview-title {
  display:block; font-size:10px; font-weight:700; letter-spacing:.14em;
  color:var(--txl); margin-bottom:14px;
}
.overview-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
.overview-row { border-top:1px solid var(--div); padding:9px 12px 9px 0; display:flex; gap:16px; font-size:var(--f-sm); }
.overview-row:last-child { border-bottom:none; }
.overview-grid .overview-row:nth-child(odd) { padding-right:24px; }
.overview-label { font-weight:700; color:var(--n); flex-shrink:0; width:76px; }
.overview-val   { color:var(--txm); }

/* =============================================================
   NEWS (Section 09)
   ============================================================= */
.s-news { background:var(--w); border-top:1px solid var(--div); }
.sec-head { text-align:center; }
.sec-label {
  display:inline-flex; align-items:center; gap:10px;
  font-size:var(--f-xs); font-weight:700; letter-spacing:.18em;
  color:var(--txl); margin-bottom:var(--sp12); text-transform:uppercase;
}
.sec-label::before, .sec-label::after {
  content:''; display:inline-block; width:20px; height:2px;
  background:var(--or); border-radius:2px;
}
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp24); margin-top:var(--sp32); align-items:stretch; }
.news-card {
  background:var(--w); border:1px solid var(--bm); border-radius:var(--r2);
  padding:var(--sp24); transition:box-shadow .18s, transform .18s;
  text-decoration:none; display:flex; flex-direction:column;
}
.news-card:hover { box-shadow:var(--s2); transform:translateY(-2px); }
.news-card-meta { display:flex; align-items:center; gap:var(--sp8); margin-bottom:var(--sp16); }
.news-cat {
  display:inline-block; font-size:10px; font-weight:700; letter-spacing:.08em;
  padding:3px 10px; border-radius:var(--rf);
}
.news-cat--info   { background:rgba(29,58,90,.08);   color:var(--n); }
.news-cat--works  { background:rgba(232,120,12,.10);  color:var(--or); }
.news-cat--column { background:rgba(0,148,130,.09);   color:#009082; }
.news-date  { font-size:11px; color:var(--txl); }
.news-title { font-size:14px; font-weight:600; color:var(--n); line-height:1.65; flex:1; }
.news-more-row { margin-top:var(--sp32); text-align:right; }
.news-more { font-size:13px; font-weight:700; color:var(--nm); display:inline-flex; align-items:center; gap:5px; }
.news-more:hover { color:var(--or); }

/* =============================================================
   CORP (Section 05)
   ============================================================= */
.s-corp { background:var(--bs); border-top:1px solid var(--div); }
.corp-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp64); align-items:center; }
.corp-photo {
  height:460px; border-radius:var(--r4); overflow:hidden;
  position:relative; box-shadow:var(--s3);
  background:linear-gradient(150deg,#bcc8d8 0%,#a8b6c8 22%,#8e9cb8 44%,#768aa8 62%,#627898 78%,#506688 94%);
}
.corp-photo-img {
  width:100%; height:100%; object-fit:cover; object-position:50% 30%;
  display:block; position:absolute; inset:0; z-index:0;
}
.corp-photo-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to bottom,transparent 55%,rgba(12,24,44,.44) 100%);
}
.corp-photo-tag {
  position:absolute; bottom:var(--sp24); left:var(--sp24); z-index:2;
  background:rgba(255,255,255,.14); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.24); border-radius:var(--r2);
  padding:14px 20px; color:var(--w);
}
.cpt-main { font-size:14px; font-weight:700; display:block; }
.cpt-sub  { font-size:11px; opacity:.78; display:block; margin-top:3px; }
.corp-tag { display:inline-block; background:var(--n); color:var(--w); font-size:10px; font-weight:700; letter-spacing:.14em; padding:5px 14px; border-radius:var(--rf); margin-bottom:var(--sp16); }
.corp-h2  { font-size:var(--f-h2); font-weight:900; color:var(--n); line-height:1.38; margin-bottom:var(--sp16); }
.corp-lead { font-size:var(--f-body); color:var(--txm); line-height:1.9; margin-bottom:var(--sp24); }
.corp-services { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:var(--sp32); }
.corp-svc-item {
  display:flex; align-items:center; gap:10px;
  background:var(--w); border:1px solid var(--bm); border-radius:var(--r2);
  padding:12px 14px; box-shadow:var(--s1);
}
.corp-svc-name { font-size:var(--f-sm); font-weight:700; color:var(--n); line-height:1.3; }
.corp-actions { display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.corp-note { display:flex; align-items:flex-start; gap:6px; font-size:12px; color:var(--txl); line-height:1.65; }

/* =============================================================
   MEMBER CTA STRIP (Section 07 on front-page)
   ============================================================= */
.s-member { background:var(--w); border-top:1px solid var(--div); }
.member-strip {
  background:linear-gradient(135deg,#eef5fc 0%,#e4eff9 100%);
  border:1px solid var(--bm); border-radius:var(--r4); padding:36px 44px;
  display:grid; grid-template-columns:auto 1fr auto;
  gap:var(--sp32); align-items:center;
}
.member-icon-wrap { width:160px; height:160px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.member-icon-wrap img { width:100%; height:100%; object-fit:contain; display:block; mix-blend-mode:multiply; }
.member-tag { display:inline-block; background:var(--n); color:var(--w); font-size:10px; font-weight:700; letter-spacing:.12em; padding:4px 12px; border-radius:var(--rf); margin-bottom:12px; }
.member-title { font-size:clamp(17px,2vw,21px); font-weight:900; color:var(--n); margin-bottom:10px; line-height:1.38; }
.member-desc  { font-size:14px; color:var(--txm); line-height:1.82; }
.member-points { display:flex; gap:20px; flex-wrap:wrap; margin-top:14px; }
.member-point { display:flex; align-items:center; gap:7px; font-size:var(--f-sm); font-weight:600; color:var(--n); }
.member-point-dot { width:6px; height:6px; background:var(--or); border-radius:50%; flex-shrink:0; }
.member-action { display:flex; flex-direction:column; align-items:center; gap:10px; flex-shrink:0; }
.member-price-note { font-size:11px; color:var(--txl); text-align:center; }

/* =============================================================
   RECRUIT CTA BANNER (Section 10)
   ============================================================= */
.s-recruit-cta {
  background:var(--b); padding:60px 0;
  border-top:1px solid var(--bm); border-bottom:1px solid var(--bm);
}
.recruit-inner {
  display:flex; align-items:center;
  justify-content:space-between; gap:var(--sp40);
  padding-top:4px;
}
.recruit-label { display:block; font-size:11px; font-weight:700; letter-spacing:.15em; color:var(--txl); margin-bottom:10px; }
.recruit-h2    { font-size:clamp(16px,2vw,20px); font-weight:900; color:var(--n); line-height:1.5; margin-bottom:8px; }
.recruit-desc  { font-size:13px; color:var(--txm); line-height:1.8; }
.recruit-btn {
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  background:transparent; color:var(--n); border:2px solid var(--nm);
  padding:12px 24px; border-radius:var(--rf); font-size:14px; font-weight:700;
  transition:background .15s, color .15s, border-color .15s; flex-shrink:0;
}
.recruit-btn:hover { background:var(--n); color:var(--w); border-color:var(--n); }

/* =============================================================
   FINAL CTA (Section 09)
   ============================================================= */
.s-final-cta {
  padding:var(--sp96) 0;
  background:linear-gradient(155deg,#1d3a5a 0%,#192e4c 45%,#102540 100%);
  position:relative; overflow:hidden;
}
.s-final-cta::before {
  content:''; position:absolute; top:-80px; right:-80px;
  width:400px; height:400px;
  background:radial-gradient(circle,rgba(232,120,12,.12) 0%,transparent 70%);
  pointer-events:none;
}
.final-cta-inner { position:relative; z-index:1; text-align:center; }
.final-cta-label {
  display:inline-block; background:rgba(232,120,12,.18); border:1px solid rgba(232,120,12,.32);
  color:var(--or); font-size:10px; font-weight:700; letter-spacing:.16em;
  padding:5px 18px; border-radius:var(--rf); margin-bottom:20px;
}
.final-cta-h2   { font-size:clamp(22px,3vw,32px); font-weight:900; color:var(--w); line-height:1.38; margin-bottom:14px; }
.final-cta-desc { font-size:var(--f-body); color:rgba(255,255,255,.68); margin-bottom:var(--sp48); line-height:1.78; }
.final-cta-cards {
  display:grid; grid-template-columns:1fr 1fr;
  gap:20px; max-width:620px; margin:0 auto var(--sp32);
}
.final-cta-card { border-radius:var(--r3); padding:28px 24px; text-align:center; }
.final-cta-card--call { background:var(--or); box-shadow:0 6px 24px rgba(232,120,12,.36); }
.final-cta-card--web  { background:rgba(255,255,255,.09); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.16); }
.fcc-label { display:block; font-size:11px; color:rgba(255,255,255,.72); font-weight:600; margin-bottom:8px; }
.fcc-main  { display:block; font-size:26px; font-weight:900; color:var(--w); letter-spacing:.04em; line-height:1.1; margin-bottom:6px; }
.fcc-sub   { display:block; font-size:12px; color:rgba(255,255,255,.68); }
.fcc-btn {
  display:block; font-size:14px; font-weight:700;
  padding:13px 24px; border-radius:var(--rf); margin-top:14px; transition:filter .15s;
}
.fcc-btn:hover { filter:brightness(.94); }
.fcc-btn--web  { background:var(--or); color:var(--w); box-shadow:0 4px 16px rgba(232,120,12,.38); }
.fcc-tel-block { display:flex; flex-direction:column; gap:14px; margin:10px 0 6px; }
.fcc-area-label { display:block; font-size:10px; color:rgba(255,255,255,.72); font-weight:700; letter-spacing:.1em; margin-bottom:4px; }
.final-cta-card--call .fcc-main { font-size:20px; letter-spacing:.03em; }
.final-cta-notes { display:flex; justify-content:center; gap:24px; flex-wrap:wrap; }
.fct-note { display:flex; align-items:center; gap:7px; font-size:var(--f-sm); color:rgba(255,255,255,.58); font-weight:600; }
.fct-note-dot { width:5px; height:5px; background:var(--or); border-radius:50%; }

/* =============================================================
   AMBIENT LIGHT (PC: 右上固定グロー)
   ============================================================= */
@media (min-width:769px) {
  .s-about, .s-domain, .s-message {
    background:
      radial-gradient(ellipse 560px 620px at calc(100% - 60px) 270px,rgba(175,215,248,.11) 0%,rgba(200,230,255,.05) 38%,transparent 58%) fixed no-repeat,
      var(--w);
  }
  .s-services, .s-offices, .s-corp {
    background:
      radial-gradient(ellipse 560px 620px at calc(100% - 60px) 270px,rgba(175,215,248,.08) 0%,rgba(200,230,255,.03) 38%,transparent 56%) fixed no-repeat,
      var(--bs);
  }
}

/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width:1024px) {
  .offices-grid { grid-template-columns:repeat(2,1fr); }
  .svc-items { flex-wrap:wrap; }
  .svc-item { flex:none; width:calc(33.33%); border-bottom:1px solid var(--div); }
}
@media (max-width:768px) {
  /* HERO */
  .s-hero { background:#f2f7fc; background-image:none; min-height:100vh; min-height:100svh; overflow:hidden; }
  .s-hero::before { display:none; }
  .hero-grid { grid-template-columns:1fr; grid-template-rows:1fr auto; height:100vh; height:100svh; padding:0; min-height:0; gap:0; align-items:stretch; }
  .hero-visual { grid-column:1; grid-row:1; height:auto; margin:0; overflow:hidden; position:relative; order:0; }
  .hero-visual::after { content:''; position:absolute; left:0; right:0; bottom:0; height:38%; pointer-events:none; z-index:2; background:linear-gradient(to bottom,transparent,#f2f7fc); }
  .hero-bulb-img { position:absolute; top:50%; left:50%; width:90%; max-width:none; transform:translate(-50%,-50%); animation:none; }
  .hero-content { grid-column:1; grid-row:2; padding:0 24px max(28px,calc(16px + env(safe-area-inset-bottom,0px))); margin-top:-64px; position:relative; z-index:3; display:flex; flex-direction:column; justify-content:flex-start; order:0; }
  .hero-staff-img { display:none; }
  .hero-we-are, .hero-tagline { display:none; }
  .hero-h1 { font-size:clamp(26px,7vw,38px); margin-bottom:10px; }
  .hero-definition { font-size:14px; line-height:1.78; margin-bottom:20px; }
  .hero-btns { gap:10px; margin-bottom:0; }
  .hero-btns .btn-outline { display:none; }
  .hero-btns .btn-primary { font-size:14px; padding:13px 24px; }
  .hero-mascot-row { display:none; }
  .hero-trust-strip { display:none; }
  .hero-trust-sp { display:block; background:#fff; border-bottom:1px solid var(--div); padding:16px 16px 20px; overflow:visible; }
  .hero-trust-sp-inner { gap:10px; }
  .hero-trust-card--rumi { position:relative; overflow:visible; padding-right:84px; }
  .trust-rumi-img { display:block; position:absolute; right:4px; bottom:0; height:100px; width:auto; pointer-events:none; filter:drop-shadow(0 2px 8px rgba(29,58,90,0.10)); }
  /* About */
  .about-grid { grid-template-columns:1fr; gap:var(--sp32); }
  .s-about { background:radial-gradient(ellipse 110% 36% at 50% 0%,rgba(148,206,252,.08) 0%,transparent 55%),var(--w); }
  /* Domain */
  .domain-bento { grid-template-columns:1fr; }
  .domain-bento-item--home,.domain-bento-item--biz,.domain-bento-item--elec,.domain-bento-item--plan { grid-column:1; grid-row:auto; }
  .domain-bento-item--home .domain-card { min-height:0; }
  .domain-card { padding:24px 20px; }
  .domain-home-img { flex:0 0 auto; min-height:0; max-height:none; height:180px; }
  /* Services */
  .svc-table-row { flex-direction:column; }
  .svc-cat { width:auto; flex-direction:row; border-right:none; border-bottom:1px solid var(--div); padding:16px 20px; }
  .svc-cat-desc { display:none; }
  .svc-item { width:calc(33.33%); }
  /* Offices */
  .offices-grid { grid-template-columns:1fr; }
  .office-freephone-empty,.office-tel-sub-empty { display:none; }
  /* Message */
  .message-top { grid-template-columns:1fr; }
  .message-top .message-photo { height:260px; min-height:0; }
  .overview-grid { grid-template-columns:1fr; }
  /* Corp */
  .corp-grid { grid-template-columns:1fr; gap:var(--sp32); }
  .corp-photo { height:200px; }
  .corp-services { grid-template-columns:1fr; gap:8px; }
  /* Member */
  .member-strip { grid-template-columns:1fr; padding:28px 24px; gap:20px; }
  .member-action { align-items:flex-start; }
  /* Recruit */
  .recruit-inner { flex-direction:column; align-items:flex-start; gap:24px; }
  .s-recruit-cta { padding:var(--sp48) 0; }
  .recruit-btn { width:100%; justify-content:center; }
  /* Final CTA */
  .final-cta-cards { grid-template-columns:1fr; max-width:340px; }
  .s-final-cta { padding:var(--sp64) 0; }
  /* News */
  .news-grid { grid-template-columns:1fr; gap:var(--sp16); }
  .news-more-row { text-align:center; margin-top:var(--sp24); }
}
@media (max-width:900px) {
  .svc-item { width:calc(33.33%); }
}
@media (max-width:480px) {
  .svc-item { width:calc(50%); }
  .offices-grid { grid-template-columns:1fr; }
}
@media (hover:none) {
  .office-card:hover, .news-card:hover { box-shadow:var(--s1); transform:none; }
}
