
:root {
  --red: #e8002d;
  --red-light: #ff1a42;
  --red-pale: #fff0f3;
  --white: #ffffff;
  --off-white: #fafafa;
  --black: #111111;
  --gray-dark: #333333;
  --gray: #666666;
  --gray-light: #999999;
  --gray-bg: #f5f5f5;
  --border: #e8e8e8;
  --gold: #d4900a;
  --green: #07b53b;
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.12);
  --shadow-lg: 0 8px 40px rgba(0,0,0,0.16);
  --radius: 12px;
  --radius-sm: 8px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{
  background:#fff;
  color:var(--black);
  font-family:'Noto Sans JP',sans-serif;
  font-weight:400;
  line-height:1.7;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}

/* ===== SKIP LINK (accessibility) ===== */
.skip-link{
  position:absolute;top:-40px;left:0;
  background:var(--red);color:#fff;
  padding:8px 16px;font-size:14px;font-weight:700;
  z-index:9999;transition:top .2s;
}
.skip-link:focus{top:0;}

/* ===== ANNOUNCEMENT BAR ===== */
.announce-bar{
  background:var(--red);
  color:#fff;
  font-size:13px;
  font-weight:700;
  text-align:center;
  padding:9px 16px;
  letter-spacing:0.03em;
}
.announce-bar span{
  opacity:.7;margin:0 12px;font-weight:400;
}

/* ===== HEADER ===== */
header{
  position:sticky;top:0;z-index:500;
  background:#fff;
  border-bottom:2px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.header-inner{
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;
  justify-content:space-between;
  padding:0 24px;height:72px;gap:16px;
}
.logo-wrap{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.logo-img{width:56px;height:56px;object-fit:contain;border-radius:50%;}
.logo-text{line-height:1.2;}
.logo-name{
  font-family:'Oswald',sans-serif;
  font-size:22px;font-weight:700;
  color:var(--red);letter-spacing:1px;
}
.logo-sub{font-size:11px;color:var(--gray);font-weight:500;}

nav{display:flex;align-items:center;gap:4px;}
nav a{
  padding:8px 14px;border-radius:6px;
  font-size:13px;font-weight:700;color:var(--gray-dark);
  transition:all .2s;white-space:nowrap;
}
nav a:hover{background:var(--red-pale);color:var(--red);}

.header-cta{display:flex;gap:8px;flex-shrink:0;}
.btn-line-sm{
  display:flex;align-items:center;gap:6px;
  background:#06C755;color:#fff;
  border:none;padding:10px 18px;
  border-radius:8px;font-size:13px;font-weight:700;
  font-family:'Noto Sans JP',sans-serif;
  cursor:pointer;transition:all .2s;
  text-decoration:none;white-space:nowrap;
}
.btn-line-sm:hover{background:#05a847;transform:translateY(-1px);}
.btn-tel-sm{
  display:flex;align-items:center;gap:6px;
  background:var(--off-white);color:var(--black);
  border:2px solid var(--border);padding:9px 18px;
  border-radius:8px;font-size:13px;font-weight:700;
  font-family:'Oswald',sans-serif;letter-spacing:1px;
  cursor:pointer;transition:all .2s;
  text-decoration:none;white-space:nowrap;
}
.btn-tel-sm:hover{border-color:var(--red);color:var(--red);}

/* ===== HERO ===== */
.hero{
  background: linear-gradient(135deg, #fff5f6 0%, #ffffff 50%, #fff8e7 100%);
  padding:64px 0 80px;
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:'';position:absolute;
  top:-100px;right:-200px;
  width:600px;height:600px;
  background:radial-gradient(circle, rgba(232,0,45,.06) 0%, transparent 70%);
  border-radius:50%;
}
.hero-inner{
  max-width:1200px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1fr 1fr;
  gap:60px;align-items:center;
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--red-pale);color:var(--red);
  padding:6px 14px;border-radius:20px;
  font-size:12px;font-weight:700;margin-bottom:20px;
  border:1px solid rgba(232,0,45,.2);
}
.hero-badge::before{
  content:'';width:7px;height:7px;
  border-radius:50%;background:var(--red);
  animation:blink 1.4s ease infinite;
}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}

h1{
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:900;
  font-size:clamp(32px,4.5vw,54px);
  line-height:1.25;
  color:var(--black);
  margin-bottom:8px;
}
h1 em{color:var(--red);font-style:normal;}
.hero-catch{
  font-size:clamp(16px,2vw,20px);
  font-weight:700;color:var(--gray-dark);
  margin-bottom:20px;line-height:1.5;
}
.hero-desc{
  font-size:15px;color:var(--gray);
  line-height:1.9;margin-bottom:32px;
}
.hero-actions{display:flex;flex-direction:column;gap:12px;max-width:380px;}
.btn-primary{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--red);color:#fff;
  padding:18px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  box-shadow:0 4px 16px rgba(232,0,45,.35);
  transition:all .25s;text-decoration:none;
}
.btn-primary:hover{background:var(--red-light);transform:translateY(-2px);box-shadow:0 6px 24px rgba(232,0,45,.4);}
.btn-primary .icon{font-size:22px;}
.btn-outline{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:#fff;color:var(--black);
  padding:17px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  border:2px solid var(--border);
  transition:all .25s;text-decoration:none;
}
.btn-outline:hover{border-color:var(--red);color:var(--red);}

.hero-trust{
  display:flex;gap:24px;margin-top:24px;flex-wrap:wrap;
}
.trust-item{
  display:flex;align-items:center;gap:6px;
  font-size:13px;font-weight:700;color:var(--gray-dark);
}
.trust-item .check{
  width:20px;height:20px;border-radius:50%;
  background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;flex-shrink:0;
}

/* HERO RIGHT - PRICE CARD */
.hero-right{position:relative;}
.price-card{
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow-lg);
  overflow:hidden;
  border:1px solid var(--border);
}
.price-card-head{
  background:var(--red);color:#fff;
  padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;
}
.price-card-title{font-size:14px;font-weight:700;letter-spacing:.05em;}
.price-live{
  display:flex;align-items:center;gap:6px;
  font-size:11px;font-weight:700;
}
.live-dot{
  width:8px;height:8px;border-radius:50%;
  background:#7fff7f;animation:blink 1.4s infinite;
}
.price-list{padding:16px 0;}
.price-row{
  display:flex;align-items:center;
  padding:12px 24px;gap:12px;
  transition:background .15s;
  cursor:default;
}
.price-row:hover{background:var(--gray-bg);}
.price-row+.price-row{border-top:1px solid var(--border);}
.p-icon{
  width:44px;height:44px;border-radius:10px;
  background:var(--gray-bg);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;flex-shrink:0;
}
.p-info{flex:1;}
.p-name{font-size:13px;font-weight:700;color:var(--black);}
.p-model{font-size:11px;color:var(--gray-light);margin-top:2px;}
.p-price-wrap{text-align:right;}
.p-price{
  font-family:'Oswald',sans-serif;
  font-size:22px;font-weight:700;color:var(--red);
}
.p-yen{font-size:14px;font-weight:400;}
.p-tag{
  display:inline-block;font-size:10px;font-weight:700;
  background:rgba(232,0,45,.1);color:var(--red);
  padding:2px 7px;border-radius:4px;margin-top:3px;
}
.price-card-foot{
  background:var(--gray-bg);
  padding:12px 24px;
  display:flex;gap:16px;border-top:1px solid var(--border);
}
.foot-stat{text-align:center;flex:1;}
.foot-num{
  font-family:'Oswald',sans-serif;
  font-size:22px;font-weight:700;color:var(--black);
}
.foot-label{font-size:10px;color:var(--gray);margin-top:2px;font-weight:500;}

/* ===== TICKER ===== */
.ticker{
  background:var(--black);
  padding:12px 0;overflow:hidden;
  white-space:nowrap;
}
.ticker-track{
  display:inline-flex;gap:0;
  animation:scroll 25s linear infinite;
}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ticker-track:hover{animation-play-state:paused;}
.t-item{
  font-family:'Oswald',sans-serif;
  font-size:13px;letter-spacing:.12em;color:#fff;
  padding:0 28px;display:inline-flex;align-items:center;gap:20px;
}
.t-sep{color:var(--red);font-size:10px;}

/* ===== SECTION BASE ===== */
.section{padding:80px 0;}
.section-alt{background:var(--gray-bg);}
.container{max-width:1200px;margin:0 auto;padding:0 24px;}

.section-header{text-align:center;margin-bottom:56px;}
.sec-label{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:700;color:var(--red);
  letter-spacing:.15em;text-transform:uppercase;
  margin-bottom:12px;
}
.sec-label::before,.sec-label::after{
  content:'';display:block;
  width:20px;height:2px;background:var(--red);
}
h2{
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:900;
  font-size:clamp(28px,3.5vw,42px);
  line-height:1.2;color:var(--black);
  margin-bottom:12px;
}
h2 em{color:var(--red);font-style:normal;}
.sec-sub{font-size:15px;color:var(--gray);max-width:560px;margin:0 auto;line-height:1.8;}

/* ===== GENRE ===== */
.genre-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
}
.genre-card{
  background:#fff;border:2px solid var(--border);
  border-radius:var(--radius);padding:24px 16px;
  text-align:center;text-decoration:none;color:var(--black);
  transition:all .25s;position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.genre-card::after{
  content:'';position:absolute;
  bottom:0;left:0;right:0;height:3px;
  background:var(--red);
  transform:scaleX(0);transition:transform .25s;
}
.genre-card:hover{
  border-color:var(--red);
  transform:translateY(-5px);
  box-shadow:var(--shadow-md);
}
.genre-card:hover::after{transform:scaleX(1);}
.g-icon{
  font-size:40px;width:72px;height:72px;
  background:var(--red-pale);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.g-name{font-size:15px;font-weight:700;}
.g-price{
  font-family:'Oswald',sans-serif;
  font-size:17px;font-weight:700;color:var(--red);
}
.g-note{font-size:11px;color:var(--gray-light);}
.genre-more{
  text-align:center;margin-top:32px;
}
.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 32px;border:2px solid var(--red);
  color:var(--red);border-radius:8px;font-size:14px;font-weight:700;
  transition:all .2s;text-decoration:none;
}
.btn-ghost:hover{background:var(--red);color:#fff;}

/* ===== WHY 3 COLUMNS ===== */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.why-card{
  background:#fff;border-radius:var(--radius);
  padding:36px 28px;
  box-shadow:var(--shadow-sm);
  border:1px solid var(--border);
  position:relative;overflow:hidden;
  transition:transform .25s,box-shadow .25s;
}
.why-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.why-num{
  position:absolute;top:16px;right:20px;
  font-family:'Oswald',sans-serif;
  font-size:56px;font-weight:700;
  color:rgba(232,0,45,.06);line-height:1;
}
.why-icon{
  width:64px;height:64px;border-radius:16px;
  background:var(--red-pale);
  display:flex;align-items:center;justify-content:center;
  font-size:30px;margin-bottom:20px;
}
.why-title{font-size:18px;font-weight:700;margin-bottom:10px;line-height:1.4;}
.why-body{font-size:14px;color:var(--gray);line-height:1.8;}

/* ===== PROCESS TABS ===== */
.tab-nav{
  display:flex;gap:4px;
  background:var(--gray-bg);
  border-radius:12px;padding:6px;
  margin-bottom:40px;
  max-width:500px;margin-left:auto;margin-right:auto;
}
.tab-btn{
  flex:1;padding:13px;border:none;
  background:transparent;border-radius:8px;
  font-family:'Noto Sans JP',sans-serif;
  font-size:14px;font-weight:700;color:var(--gray);
  cursor:pointer;transition:all .2s;
  display:flex;align-items:center;justify-content:center;gap:6px;
}
.tab-btn.active{
  background:#fff;color:var(--red);
  box-shadow:var(--shadow-sm);
}
.tab-content{display:none;}
.tab-content.active{display:block;}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;}
.steps::before{
  content:'';position:absolute;
  top:44px;left:calc(12.5% + 10px);right:calc(12.5% + 10px);
  height:2px;background:repeating-linear-gradient(90deg,var(--red) 0,var(--red) 8px,transparent 8px,transparent 16px);
  z-index:0;
}
.step-card{
  background:#fff;border:2px solid var(--border);
  border-radius:var(--radius);padding:28px 20px;
  text-align:center;position:relative;z-index:1;
  transition:border-color .2s;
}
.step-card:hover{border-color:var(--red);}
.step-circle{
  width:52px;height:52px;border-radius:50%;
  background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;
  margin:0 auto 16px;box-shadow:0 4px 12px rgba(232,0,45,.3);
}
.step-icon{font-size:24px;margin-bottom:10px;}
.step-title{font-size:15px;font-weight:700;margin-bottom:8px;color:var(--black);}
.step-desc{font-size:12px;color:var(--gray);line-height:1.7;}

/* ===== JISSEKI / BLOG ===== */
.posts-header{
  display:flex;align-items:flex-end;
  justify-content:space-between;margin-bottom:32px;
}
.posts-header .section-header{margin-bottom:0;text-align:left;}
.posts-header .section-header .sec-label{justify-content:flex-start;}
.posts-header .section-header h2{text-align:left;}
.view-all{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:700;color:var(--red);
  text-decoration:none;white-space:nowrap;
  padding-bottom:4px;
  border-bottom:2px solid transparent;transition:border-color .2s;
  flex-shrink:0;
}
.view-all:hover{border-bottom-color:var(--red);}

.jisseki-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.jisseki-card{
  background:#fff;border-radius:var(--radius);
  overflow:hidden;border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  transition:transform .25s,box-shadow .25s;
  text-decoration:none;color:var(--black);display:block;
}
.jisseki-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.jisseki-top{
  background:var(--red-pale);
  padding:20px 24px 16px;
  border-bottom:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:flex-start;gap:8px;
}
.j-cat-badge{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--red);color:#fff;
  font-size:11px;font-weight:700;
  padding:4px 10px;border-radius:4px;letter-spacing:.05em;
}
.j-method{
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:700;color:var(--gray);
  background:#fff;padding:4px 10px;
  border-radius:4px;border:1px solid var(--border);
}
.jisseki-body{padding:20px 24px;}
.j-title{font-size:14px;font-weight:700;line-height:1.6;margin-bottom:14px;}
.j-price-row{display:flex;align-items:baseline;gap:6px;margin-bottom:10px;}
.j-price-label{font-size:12px;color:var(--gray);}
.j-price{
  font-family:'Oswald',sans-serif;
  font-size:28px;font-weight:700;color:var(--red);
}
.j-yen{font-size:14px;font-weight:400;color:var(--gray);}
.j-foot{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.j-condition{
  display:inline-block;font-size:11px;font-weight:700;
  background:rgba(212,144,10,.12);color:var(--gold);
  padding:3px 9px;border-radius:4px;
}
.j-date{font-size:11px;color:var(--gray-light);margin-left:auto;}

/* ===== BLOG GRID ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.blog-card{
  background:#fff;border-radius:var(--radius);
  overflow:hidden;border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  transition:transform .25s,box-shadow .25s;
  text-decoration:none;color:var(--black);display:block;
}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.blog-thumb{
  background:linear-gradient(135deg,var(--red-pale),#fff8e1);
  height:140px;display:flex;align-items:center;justify-content:center;
  font-size:48px;position:relative;
}
.blog-cat-badge{
  position:absolute;top:12px;left:12px;
  font-size:10px;font-weight:700;
  padding:4px 10px;border-radius:4px;
}
.blog-cat-badge.news{background:#e3f0ff;color:#1a6fd4;}
.blog-cat-badge.jisseki{background:rgba(232,0,45,.1);color:var(--red);}
.blog-cat-badge.column{background:#e8f5e9;color:#2e7d32;}
.blog-body{padding:16px 20px 20px;}
.blog-title{font-size:14px;font-weight:700;line-height:1.6;margin-bottom:10px;}
.blog-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--gray-light);}

/* ===== THREE R ===== */
.three-r-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:64px;align-items:center;
}
.r-list{display:flex;flex-direction:column;gap:20px;}
.r-item{
  display:flex;gap:20px;align-items:flex-start;
  padding:24px;background:#fff;border-radius:var(--radius);
  border:1px solid var(--border);
  transition:border-color .2s,box-shadow .2s;
}
.r-item:hover{border-color:var(--red);box-shadow:var(--shadow-sm);}
.r-mark{
  width:56px;height:56px;border-radius:12px;
  background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Oswald',sans-serif;
  font-size:28px;font-weight:700;flex-shrink:0;
}
.r-text h3{font-size:16px;font-weight:700;margin-bottom:6px;}
.r-text p{font-size:13px;color:var(--gray);line-height:1.7;}

.three-r-visual{
  background:var(--off-white,#f8f8f8);
  border-radius:20px;padding:32px 24px;
  text-align:center;
  position:relative;overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.three-r-visual::after{
  content:'';position:absolute;
  bottom:-40px;left:-40px;width:160px;height:160px;
  border-radius:50%;background:rgba(255,255,255,.05);
}
.tr-logo-wrap{margin-bottom:24px;position:relative;z-index:1;}
.tr-logo-img{width:120px;height:120px;border-radius:50%;object-fit:contain;background:#fff;padding:12px;margin:0 auto 12px;}
.tr-brand{font-family:'Oswald',sans-serif;font-size:32px;font-weight:700;letter-spacing:2px;}
.tr-tagline{font-size:12px;opacity:.8;letter-spacing:.1em;margin-top:4px;}
.tr-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:rgba(255,255,255,.2);
  border-radius:12px;overflow:hidden;
  position:relative;z-index:1;margin-top:24px;
}
.tr-stat{
  background:rgba(255,255,255,.12);
  padding:16px 8px;text-align:center;
}
.tr-num{
  font-family:'Oswald',sans-serif;
  font-size:26px;font-weight:700;color:#fff;
}
.tr-slabel{font-size:10px;opacity:.8;margin-top:3px;font-weight:500;}

/* ===== AREA ===== */
.area-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.area-card{
  background:#fff;border-radius:var(--radius-sm);
  padding:18px 16px;border:2px solid var(--border);
  text-decoration:none;color:var(--black);
  transition:all .2s;display:block;
}
.area-card:hover{border-color:var(--red);background:var(--red-pale);}
.area-pref{font-size:10px;color:var(--gray-light);font-weight:500;margin-bottom:4px;letter-spacing:.05em;}
.area-name{font-size:16px;font-weight:700;}
.area-note{font-size:11px;color:var(--gray);margin-top:4px;}

/* ===== FAQ ===== */
.faq-wrap{max-width:800px;margin:0 auto;}
details{
  background:#fff;border-radius:var(--radius-sm);
  border:1px solid var(--border);overflow:hidden;
  margin-bottom:8px;transition:box-shadow .2s;
}
details[open]{box-shadow:var(--shadow-sm);border-color:rgba(232,0,45,.3);}
details summary{
  list-style:none;cursor:pointer;
  padding:20px 24px;
  display:flex;align-items:flex-start;gap:14px;
  font-size:15px;font-weight:700;line-height:1.5;
  user-select:none;
}
details summary::-webkit-details-marker{display:none;}
.faq-q-mark{
  flex-shrink:0;width:28px;height:28px;
  background:var(--red);color:#fff;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Oswald',sans-serif;font-size:16px;font-weight:700;
  margin-top:1px;
}
.faq-toggle{
  margin-left:auto;flex-shrink:0;
  width:28px;height:28px;border-radius:50%;
  background:var(--gray-bg);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;color:var(--gray);
  transition:transform .3s,background .2s;
}
details[open] .faq-toggle{transform:rotate(45deg);background:var(--red-pale);color:var(--red);}
.faq-a{
  padding:0 24px 20px calc(24px + 28px + 14px);
  font-size:14px;color:var(--gray);line-height:1.9;
}

/* ===== CTA BAND ===== */
.cta-band{
  background:var(--red);
  padding:72px 0;
}
.cta-inner{
  max-width:1200px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px;align-items:center;
}
.cta-left h2{
  color:#fff;font-size:clamp(28px,3.5vw,44px);
  margin-bottom:12px;
}
.cta-desc{color:rgba(255,255,255,.85);font-size:15px;line-height:1.8;}
.cta-buttons{display:flex;flex-direction:column;gap:14px;}
.cta-btn-line{
  display:flex;align-items:center;justify-content:center;gap:12px;
  background:#fff;color:var(--black);
  padding:20px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  text-decoration:none;transition:opacity .2s;
}
.cta-btn-line:hover{opacity:.92;}
.cta-btn-tel{
  display:flex;align-items:center;justify-content:center;gap:12px;
  background:rgba(255,255,255,.15);color:#fff;
  padding:19px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  border:2px solid rgba(255,255,255,.5);
  text-decoration:none;transition:all .2s;
}
.cta-btn-form{
  display:flex;align-items:center;justify-content:center;gap:12px;
  background:rgba(255,255,255,0.92);color:var(--red);
  padding:19px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  border:2px solid rgba(255,255,255,0.9);
  text-decoration:none;transition:all .2s;
}
.cta-btn-form:hover{background:#fff;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.2);}
.cta-btn-tel:hover{background:rgba(255,255,255,.25);border-color:#fff;}

/* ===== STORE ===== */
.store-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.store-table{width:100%;border-collapse:collapse;}
.store-table tr{border-bottom:1px solid var(--border);}
.store-table tr:first-child{border-top:1px solid var(--border);}
.store-table th{
  width:100px;padding:16px 0;
  font-size:13px;font-weight:700;color:var(--gray);
  text-align:left;vertical-align:top;
}
.store-table td{
  padding:16px 0;font-size:14px;
  line-height:1.7;
}
.store-map-placeholder{
  background:var(--gray-bg);border-radius:var(--radius);
  height:320px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;
  border:2px dashed var(--border);color:var(--gray);
  font-size:14px;font-weight:700;cursor:pointer;
  transition:all .2s;
}
.store-map-placeholder:hover{border-color:var(--red);color:var(--red);}
.store-map-placeholder .map-icon{font-size:52px;}

/* ===== FOOTER ===== */
footer{
  background:var(--black);color:rgba(255,255,255,.8);
  padding:64px 0 32px;
}
.footer-top{
  display:grid;grid-template-columns:260px 1fr 1fr 1fr;
  gap:48px;padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:32px;
}
.footer-brand{}
.footer-logo-img{
  width:64px;height:64px;border-radius:50%;object-fit:contain;
  background:var(--red);padding:8px;margin-bottom:16px;
}
.footer-brand-name{
  font-family:'Oswald',sans-serif;
  font-size:20px;font-weight:700;color:#fff;
  letter-spacing:1px;margin-bottom:8px;
}
.footer-brand-desc{font-size:12px;line-height:1.8;color:rgba(255,255,255,.5);}
.footer-col-title{
  font-size:11px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.4);
  margin-bottom:16px;
}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:8px;}
.footer-links a{
  font-size:13px;color:rgba(255,255,255,.6);
  text-decoration:none;transition:color .2s;
}
.footer-links a:hover{color:#fff;}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;
  font-size:12px;color:rgba(255,255,255,.35);
  flex-wrap:wrap;gap:12px;
}
.footer-bottom a{color:rgba(255,255,255,.4);text-decoration:none;}
.footer-bottom a:hover{color:rgba(255,255,255,.7);}

/* ===== FLOATING CTA ===== */
.float-cta{
  position:fixed;bottom:24px;right:20px;
  z-index:400;display:flex;flex-direction:column;gap:10px;
}
.float-btn{
  width:58px;height:58px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;cursor:pointer;border:none;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
  transition:transform .2s;text-decoration:none;color:#fff;
}
.float-btn:hover{transform:scale(1.1);}
.float-line{background:#06C755;}
.float-tel{background:var(--red);}

/* ===== ANIMATIONS ===== */
.fade-up{
  opacity:0;transform:translateY(28px);
  transition:opacity .6s ease,transform .6s ease;
}
.fade-up.in{opacity:1;transform:translateY(0);}
.d1{transition-delay:.1s;}
.d2{transition-delay:.2s;}
.d3{transition-delay:.3s;}
.d4{transition-delay:.4s;}
.d5{transition-delay:.5s;}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .genre-grid{grid-template-columns:repeat(3,1fr);}
  .footer-top{grid-template-columns:1fr 1fr;gap:32px;}
}
@media(max-width:768px){
  .announce-bar .hide-sp{display:none;}
  .genre-grid{grid-template-columns:repeat(3,1fr);gap:10px;}
  .genre-card{padding:16px 8px;gap:6px;}
  .g-icon{font-size:28px;width:52px;height:52px;}
  .g-name{font-size:12px;}
  .header-inner{height:60px;padding:0 16px;}
  nav{display:none;}
  .hero-inner{grid-template-columns:1fr;gap:32px;}
  .hero-right{display:none;}
  .why-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;gap:16px;}
  .steps::before{display:none;}
  .jisseki-grid,.blog-grid{grid-template-columns:1fr;}
  .three-r-grid{grid-template-columns:1fr;}
  .three-r-visual{display:none;}
  .area-grid{grid-template-columns:repeat(2,1fr);}
  .cta-inner{grid-template-columns:1fr;}
  .store-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr;gap:24px;}
  .footer-brand{grid-column:1/-1;}
  .container{padding:0 16px;}
  .section{padding:56px 0;}
  .posts-header{flex-direction:column;align-items:flex-start;gap:12px;}
}

@media(max-width:480px){
  .genre-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .genre-card{padding:14px 8px;gap:6px;}
  .g-icon{font-size:26px;width:46px;height:46px;}
  .g-name{font-size:11px;}
  .area-grid{grid-template-columns:repeat(2,1fr);}
}

/* ===== SPA PANEL SYSTEM ===== */
.kaitori-panel { display: none !important; }
.kaitori-panel.active { display: block !important; }
#main-content.hidden { display: none !important; }

.panel-back-bar {
  background: #fff;
  border-bottom: 2px solid #e8e8e8;
  padding: 10px 24px;
  display: none;
  align-items: center;
  gap: 12px;
  position: sticky;
  top: 72px;
  z-index: 400;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.panel-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #e8002d;
  color: #fff;
  border: none;
  padding: 9px 18px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  cursor: pointer;
  transition: all .2s;
  text-decoration: none;
  white-space: nowrap;
}
.panel-back-btn:hover { background: #c5002a; transform: translateY(-1px); }
.panel-breadcrumb {
  font-size: 13px;
  color: #888;
  display: flex;
  align-items: center;
  gap: 6px;
}
.panel-breadcrumb strong { color: #e8002d; }


/* Map embed */
.store-map-embed { border-radius:var(--radius); overflow:hidden; }

/* Contact Form */
#contact { background:var(--off-white); }
.contact-form-wrap { max-width:680px; margin:0 auto; }
.cf-row { margin-bottom:20px; }
.cf-label { display:block; font-size:13px; font-weight:700; color:var(--black); margin-bottom:6px; }
.cf-label span { color:var(--red); margin-left:4px; font-size:11px; }
.cf-input, .cf-select, .cf-textarea {
  width:100%; padding:12px 16px; border:1.5px solid var(--border);
  border-radius:var(--radius-sm); font-size:14px; font-family:inherit;
  background:#fff; color:var(--black); transition:border-color .2s;
  box-sizing:border-box;
}
.cf-input:focus, .cf-select:focus, .cf-textarea:focus {
  outline:none; border-color:var(--red);
}
.cf-textarea { height:140px; resize:vertical; }
.cf-row-half { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cf-submit {
  width:100%; padding:18px; background:var(--red); color:#fff;
  border:none; border-radius:var(--radius); font-size:16px; font-weight:700;
  cursor:pointer; font-family:inherit; transition:background .2s;
  letter-spacing:.05em;
}
.cf-submit:hover { background:var(--red-light); }
.cf-note { text-align:center; font-size:12px; color:var(--gray); margin-top:12px; }
.cf-success { display:none; background:#e8f7ef; border:1.5px solid var(--green); border-radius:var(--radius); padding:24px; text-align:center; color:#07b53b; font-weight:700; font-size:16px; }
@media(max-width:600px){.cf-row-half{grid-template-columns:1fr;}}



/* Scoped kaitori panel styles */

/* Scoped kaitori panel styles */


.kaitori-panel .site-header {
  position:sticky;top:0;z-index:500;
  background:#fff;border-bottom:2px solid var(--border);
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.kaitori-panel .breadcrumb li+li::before {content:'›';margin-right:6px;color:#ccc;}
.kaitori-panel .breadcrumb a {color:#888;}
.kaitori-panel .breadcrumb li:last-child {color:var(--red);font-weight:700;}
.kaitori-panel .btn-line:hover {background:#05a847;transform:translateY(-1px);}
.kaitori-panel .btn-tel:hover {border-color:var(--red);color:var(--red);}
.kaitori-panel .genre-hero {
  background:linear-gradient(135deg, #1d1d1f 0%, #2d2d2f 100%);
  color:#f5f5f7;
  padding:72px 0 80px;
  position:relative;overflow:hidden;
}
.kaitori-panel .genre-hero::before {
  content:'';position:absolute;
  top:-80px;right:-100px;
  width:500px;height:500px;
  background:radial-gradient(circle,rgba(232,0,45,.12) 0%,transparent 65%);
  border-radius:50%;
}
.kaitori-panel .genre-hero::after {
  content:'📱';
  position:absolute;right:8%;bottom:-20px;
  font-size:220px;opacity:.06;
  pointer-events:none;
  animation:float 4s ease-in-out infinite;
}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-16px);}}
.kaitori-panel .hero-inner {max-width:1200px;margin:0 auto;padding:0 24px;}
.kaitori-panel .hero-eyebrow {
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(232,0,45,.2);color:rgba(255,255,255,.9);
  padding:6px 14px;border-radius:20px;
  font-size:12px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;margin-bottom:20px;
  border:1px solid rgba(232,0,45,.3);
}
.kaitori-panel .hero-h1 {
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:900;
  font-size:clamp(36px,5vw,64px);
  line-height:1.15;margin-bottom:12px;
}
.kaitori-panel .hero-h1 em {color:var(--red);font-style:normal;}
.kaitori-panel .hero-catch {
  font-size:clamp(16px,2vw,22px);
  font-weight:700;margin-bottom:20px;
  opacity:.85;
}
.kaitori-panel .hero-desc {
  font-size:15px;line-height:1.9;
  opacity:.7;max-width:620px;margin-bottom:36px;
}
.kaitori-panel .hero-btns {display:flex;gap:12px;flex-wrap:wrap;}
.kaitori-panel .btn-hero-line {
  display:flex;align-items:center;gap:10px;
  background:#06C755;color:#fff;
  padding:18px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  box-shadow:0 4px 16px rgba(6,199,85,.4);
  transition:all .25s;
}
.kaitori-panel .btn-hero-line:hover {background:#05a847;transform:translateY(-2px);}
.kaitori-panel .btn-hero-outline {
  display:flex;align-items:center;gap:10px;
  background:transparent;color:#f5f5f7;
  padding:17px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  border:2px solid rgba(255,255,255,.3);
  transition:all .25s;
}
.kaitori-panel .btn-hero-outline:hover {border-color:rgba(255,255,255,.7);}
.kaitori-panel .hero-trust {
  display:flex;gap:20px;margin-top:28px;flex-wrap:wrap;
}
.kaitori-panel .trust {
  display:flex;align-items:center;gap:6px;
  font-size:13px;font-weight:700;
  opacity:.85;
}
.kaitori-panel .trust .ck {
  width:20px;height:20px;border-radius:50%;
  background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;flex-shrink:0;
}
.kaitori-panel .container {max-width:1200px;margin:0 auto;padding:0 24px;}
.kaitori-panel .section {padding:80px 0;}
.kaitori-panel .section-alt {background:var(--gray-bg);}
.kaitori-panel .sec-header {text-align:center;margin-bottom:52px;}
.kaitori-panel .sec-label {
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:700;color:var(--red);
  letter-spacing:.15em;text-transform:uppercase;
  margin-bottom:12px;
}
.kaitori-panel .sec-label::before, .kaitori-panel .sec-label::after {content:'';display:block;width:20px;height:2px;background:var(--red);}
.kaitori-panel h2 {
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:900;font-size:clamp(28px,3.5vw,42px);
  line-height:1.2;margin-bottom:10px;
}
.kaitori-panel h2 em {color:var(--red);font-style:normal;}
.kaitori-panel .sec-sub {font-size:15px;color:var(--gray);max-width:560px;margin:0 auto;line-height:1.8;}
.kaitori-panel .price-table-wrap {
  background:#fff;border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);
  border:1px solid var(--border);
}
.kaitori-panel .price-table-head {
  background:var(--red);color:#fff;
  display:grid;grid-template-columns:2fr 1fr 1.2fr .8fr;
  padding:14px 16px;
  font-size:12px;font-weight:700;letter-spacing:.05em;
}
.kaitori-panel .price-table {width:100%;border-collapse:collapse;}
.kaitori-panel .price-table td {border-bottom:1px solid var(--border);}
.kaitori-panel .price-table tr:last-child td {border-bottom:none;}
.kaitori-panel .ai-price-note {
  background:linear-gradient(90deg,#f0f9ff,#fff);
  border-top:2px solid #4a90d9;
  padding:12px 20px;
  display:flex;align-items:center;gap:10px;
  font-size:12px;color:#4a7fb5;font-weight:700;
}
.kaitori-panel .why-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.kaitori-panel .why-card {
  background:#fff;border-radius:var(--radius);
  padding:32px 24px;box-shadow:var(--shadow);
  border:1px solid var(--border);position:relative;overflow:hidden;
  transition:transform .25s;
}
.kaitori-panel .why-card:hover {transform:translateY(-4px);}
.kaitori-panel .why-n {
  position:absolute;top:12px;right:16px;
  font-family:'Oswald',sans-serif;font-size:52px;font-weight:700;
  color:rgba(232,0,45,.06);line-height:1;
}
.kaitori-panel .why-icon {
  width:60px;height:60px;border-radius:14px;
  background:var(--red-pale);
  display:flex;align-items:center;justify-content:center;
  font-size:28px;margin-bottom:18px;
}
.kaitori-panel .why-title {font-size:17px;font-weight:700;margin-bottom:8px;}
.kaitori-panel .why-body {font-size:13px;color:var(--gray);line-height:1.8;}
.kaitori-panel .points-grid {
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
}
.kaitori-panel .point-card {
  background:#fff;border-radius:var(--radius);
  padding:24px 20px;border:1px solid var(--border);
  transition:border-color .2s,box-shadow .2s;
  opacity:0;transform:translateY(20px);
  transition:all .4s ease;
}
.kaitori-panel .point-card.in {opacity:1;transform:translateY(0);}
.kaitori-panel .point-card:hover {border-color:var(--red);box-shadow:0 4px 16px rgba(232,0,45,.1);}
.kaitori-panel .point-icon {font-size:32px;margin-bottom:12px;}
.kaitori-panel .point-title {font-size:15px;font-weight:700;margin-bottom:8px;color:var(--black);}
.kaitori-panel .point-desc {font-size:13px;color:var(--gray);line-height:1.7;}
.kaitori-panel .process-steps {display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.kaitori-panel .step {
  background:#fff;border:2px solid var(--border);
  border-radius:var(--radius);padding:24px 18px;
  text-align:center;transition:border-color .2s;
}
.kaitori-panel .step:hover {border-color:var(--red);}
.kaitori-panel .step-n {
  width:48px;height:48px;border-radius:50%;
  background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;
  margin:0 auto 12px;
  box-shadow:0 4px 12px rgba(232,0,45,.3);
}
.kaitori-panel .step-icon {font-size:24px;margin-bottom:8px;}
.kaitori-panel .step-t {font-size:14px;font-weight:700;margin-bottom:6px;}
.kaitori-panel .step-d {font-size:12px;color:var(--gray);line-height:1.7;}
.kaitori-panel .jisseki-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.kaitori-panel .j-card {
  background:#fff;border-radius:var(--radius);
  overflow:hidden;border:1px solid var(--border);
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  transition:transform .25s,box-shadow .25s;
  display:block;color:var(--black);
}
.kaitori-panel .j-card:hover {transform:translateY(-4px);box-shadow:var(--shadow);}
.kaitori-panel .j-top {
  background:var(--red-pale);padding:16px 20px;
  border-bottom:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;
}
.kaitori-panel .j-cat {
  background:var(--red);color:#fff;
  font-size:11px;font-weight:700;
  padding:3px 10px;border-radius:4px;
}
.kaitori-panel .j-method {font-size:11px;color:var(--gray);font-weight:700;}
.kaitori-panel .j-body {padding:18px 20px;}
.kaitori-panel .j-title {font-size:13px;font-weight:700;line-height:1.6;margin-bottom:12px;}
.kaitori-panel .j-price {
  font-family:'Oswald',sans-serif;
  font-size:26px;font-weight:700;color:var(--red);
}
.kaitori-panel .j-date {font-size:11px;color:#aaa;margin-top:8px;}
.kaitori-panel .j-loading {
  grid-column:1/-1;text-align:center;
  padding:40px;color:var(--gray);font-size:13px;
}
.kaitori-panel .j-spinner {
  width:32px;height:32px;margin:0 auto 12px;
  border:3px solid var(--border);border-top-color:var(--red);
  border-radius:50%;animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
.kaitori-panel .subpage-grid {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:12px;
}
.kaitori-panel .subpage-card {
  background:#fff;border:2px solid var(--border);
  border-radius:8px;padding:16px 20px;
  font-size:14px;font-weight:700;color:var(--black);
  transition:all .2s;
}
.kaitori-panel .subpage-card:hover {border-color:var(--red);color:var(--red);background:var(--red-pale);}
.kaitori-panel .faq-wrap {max-width:800px;margin:0 auto;}
.kaitori-panel .faq-item {
  background:#fff;border-radius:8px;
  border:1px solid var(--border);overflow:hidden;
  margin-bottom:8px;transition:box-shadow .2s;
}
.kaitori-panel .faq-item[open] {box-shadow:var(--shadow);border-color:rgba(232,0,45,.25);}
.kaitori-panel .faq-item summary {
  list-style:none;cursor:pointer;
  padding:18px 24px;
  display:flex;align-items:flex-start;gap:12px;
  font-size:15px;font-weight:700;line-height:1.5;
  user-select:none;
}
.kaitori-panel .faq-item summary::-webkit-details-marker {display:none;}
.kaitori-panel .fq {
  width:26px;height:26px;background:var(--red);color:#fff;
  border-radius:6px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Oswald',sans-serif;font-size:15px;font-weight:700;
  margin-top:1px;
}
.kaitori-panel .ft {
  margin-left:auto;flex-shrink:0;
  width:26px;height:26px;border-radius:50%;
  background:var(--gray-bg);color:var(--gray);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;transition:transform .3s;
}
.kaitori-panel .faq-item[open] .ft {transform:rotate(45deg);color:var(--red);background:var(--red-pale);}
.kaitori-panel .fa {
  padding:0 24px 18px calc(24px + 26px + 12px);
  font-size:14px;color:var(--gray);line-height:1.9;
}
.kaitori-panel .cta-band {background:var(--red);padding:64px 0;}
.kaitori-panel .cta-inner {
  max-width:1200px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
}
.kaitori-panel .cta-h2 {
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:900;font-size:clamp(28px,3.5vw,42px);
  color:#fff;margin-bottom:12px;
}
.kaitori-panel .cta-desc {color:rgba(255,255,255,.85);font-size:15px;line-height:1.8;}
.kaitori-panel .cta-btns {display:flex;flex-direction:column;gap:12px;}
.kaitori-panel .cta-line {
  display:flex;align-items:center;justify-content:center;gap:12px;
  background:#fff;color:var(--black);
  padding:20px 32px;border-radius:10px;
  font-size:16px;font-weight:700;transition:opacity .2s;
}
.kaitori-panel .cta-line:hover {opacity:.92;}
.kaitori-panel .cta-tel {
  display:flex;align-items:center;justify-content:center;gap:12px;
  background:rgba(255,255,255,.15);color:#fff;
  padding:18px 32px;border-radius:10px;
  font-size:16px;font-weight:700;
  border:2px solid rgba(255,255,255,.5);transition:all .2s;
}
.kaitori-panel .cta-tel:hover {background:rgba(255,255,255,.25);border-color:#fff;}
.kaitori-panel .cta-note {font-size:11px;color:rgba(255,255,255,.7);margin-top:6px;text-align:center;}
.kaitori-panel .float-cta {
  position:fixed;bottom:24px;right:20px;z-index:400;
  display:flex;flex-direction:column;gap:10px;
}
.kaitori-panel .fbtn:hover {transform:scale(1.1);}
.kaitori-panel .back-link {
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;color:var(--gray);margin-bottom:32px;
  transition:color .2s;
}
.kaitori-panel .back-link:hover {color:var(--red);}
.kaitori-panel footer {
  background:#111;color:rgba(255,255,255,.7);
  padding:48px 0 24px;
}
.kaitori-panel .footer-brand .fname {font-family:'Oswald',sans-serif;font-size:20px;font-weight:700;color:#fff;}
.kaitori-panel .footer-brand .fdesc {font-size:12px;margin-top:6px;opacity:.6;line-height:1.7;}
.kaitori-panel .footer-col .fct {
  font-size:11px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:12px;
}
.kaitori-panel .footer-col ul {list-style:none;display:flex;flex-direction:column;gap:7px;}
.kaitori-panel .footer-col a {font-size:13px;color:rgba(255,255,255,.6);transition:color .2s;}
.kaitori-panel .footer-col a:hover {color:#fff;}
.kaitori-panel .fade-up {opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.kaitori-panel .fade-up.in {opacity:1;transform:translateY(0);}
.kaitori-panel .d1 {transition-delay:.1s;}
.kaitori-panel .d2 {transition-delay:.2s;}
.kaitori-panel .d3 {transition-delay:.3s;}
.kaitori-panel @media(max-width:768px) {
  .header-inner{height:60px;padding:0 16px;}
  .breadcrumb{display:none;}
  .why-grid{grid-template-columns:1fr;}
  .points-grid{grid-template-columns:1fr 1fr;}
  .process-steps{grid-template-columns:1fr 1fr;}
  .jisseki-grid{grid-template-columns:1fr;}
  .cta-inner{grid-template-columns:1fr;}
  .container{padding:0 16px;}
  .section{padding:56px 0;}
  .price-table-head{grid-template-columns:2fr 1fr 1.2fr;}
  .price-table td:nth-child(4){display:none;}
}



/* Per-panel hero emoji */
#panel-game .genre-hero::after { content: '🎮'; }
#panel-monitor .genre-hero::after { content: '🖥️'; }
#panel-junk .genre-hero::after { content: '🔧'; }
#panel-retro .genre-hero::after { content: '📻'; }
#panel-other .genre-hero::after { content: '💎'; }
#panel-iphone .genre-hero::after { content: '📱'; }
#panel-android .genre-hero::after { content: '🤖'; }
#panel-camera .genre-hero::after { content: '📷'; }
#panel-tablet .genre-hero::after { content: '📟'; }
#panel-pc .genre-hero::after { content: '💻'; }

/* Fix: dark base CSS overrides on light-text hero */
.kaitori-panel .genre-hero h1,
.kaitori-panel .genre-hero .hero-h1 {
  color: #f5f5f7 !important;
}
.kaitori-panel .genre-hero .hero-catch {
  color: rgba(245,245,247,0.85) !important;
}
.kaitori-panel .genre-hero .hero-desc {
  color: rgba(245,245,247,0.70) !important;
}
.kaitori-panel .genre-hero .hero-eyebrow {
  color: rgba(255,255,255,0.9) !important;
}
.kaitori-panel .genre-hero .trust {
  color: rgba(245,245,247,0.85) !important;
}

/* 3R Cycle Diagram */
.tr-cycle-wrap {
  display:flex; align-items:center; justify-content:center;
  padding:20px 0;
}
.tr-cycle-svg {
  width:100%; max-width:360px; height:auto;
  filter: drop-shadow(0 8px 32px rgba(0,0,0,0.18));
}

/* Footer company bar */
.footer-company-bar {
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 14px 0;
  margin-top: 8px;
}
.footer-company-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  font-size: 11.5px;
  color: rgba(255,255,255,.45);
  align-items: center;
  line-height: 1.6;
}
.footer-company-name { color: rgba(255,255,255,.65); font-weight: 700; }
.footer-company-sep { color: rgba(255,255,255,.2); }
@media(max-width:768px){
  .footer-company-sep { display:none; }
  .footer-company-inner { flex-direction:column; gap:4px; }
}



.smahospital-card {
  background: #fff;
  border-radius: 16px;
  padding: 40px;
  box-shadow: 0 4px 24px rgba(74,127,181,.12);
  border: 2px solid rgba(74,127,181,.15);
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.smahospital-left {
  display: flex;
  gap: 32px;
  align-items: flex-start;
  width: 100%;
  flex-wrap: wrap;
}
.smahospital-logo-wrap {
  flex-shrink: 0;
  width: 160px;
  background: #f8f8f8;
  border-radius: 12px;
  padding: 16px;
  border: 1px solid #eee;
  display: flex;
  align-items: center;
  justify-content: center;
}
.smahospital-logo {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.smahospital-info { flex: 1; min-width: 260px; }
.smahospital-name {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-size: 22px;
  font-weight: 900;
  color: #222;
  margin-bottom: 4px;
}
.smahospital-catch {
  font-size: 13px;
  font-weight: 700;
  color: #4a7fb5;
  margin-bottom: 14px;
  letter-spacing: .03em;
}
.smahospital-desc {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.9;
  margin-bottom: 20px;
}
.smahospital-services {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.sma-tag {
  background: #eef4fb;
  color: #4a7fb5;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid rgba(74,127,181,.2);
}
.smahospital-btn {
  display: inline-flex;
  align-items: center;
  background: #4a7fb5;
  color: #fff;
  padding: 13px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s, transform .2s;
  box-shadow: 0 4px 12px rgba(74,127,181,.3);
}
.smahospital-btn:hover {
  background: #3a6fa5;
  transform: translateY(-2px);
}
@media(max-width:768px){
  .smahospital-card { padding: 24px; }
  .smahospital-logo-wrap { width: 100px; }
  .smahospital-name { font-size: 18px; }
}



.ai-spinner {
  width: 36px; height: 36px;
  border: 3px solid var(--border);
  border-top-color: var(--red);
  border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.price-row-enter {
  animation: rowIn .4s ease forwards;
  opacity: 0;
}
@keyframes rowIn {
  from { opacity:0; transform:translateX(-12px); }
  to   { opacity:1; transform:translateX(0); }
}
.ai-badge {
  display:inline-flex;align-items:center;gap:4px;
  font-size:10px;font-weight:700;
  padding:2px 7px;border-radius:4px;
}
.ai-badge.hot  { background:rgba(232,0,45,.1);  color:var(--red); }
.ai-badge.up   { background:rgba(7,181,59,.1);   color:#07b53b; }
.ai-badge.info { background:rgba(0,120,212,.1);  color:#0078d4; }


/* ===== スマホ: ジャンルグリッド ===== */
@media(max-width:640px) {
  .genre-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .genre-card {
    padding: 16px 10px;
    gap: 6px;
  }
  .g-icon {
    width: 52px;
    height: 52px;
    font-size: 28px;
  }
  .g-name { font-size: 12px; }

  /* パネル内テーブルをスクロール対応 */
  .price-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .price-table { min-width: 500px; }
  .price-table-head { min-width: 500px; display: grid; }

  /* パネル内hero スマホ対応 */
  .genre-hero .hero-inner { grid-template-columns: 1fr; }
  .hero-h1 { font-size: clamp(22px, 5.5vw, 38px); }

  /* 価格テーブル スマホ対応 */
  .kaitori-panel .price-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 8px; }
  .kaitori-panel .price-table-head,
  .kaitori-panel .price-table { min-width: 480px; }
  .kaitori-panel .price-table td { padding: 10px 12px; font-size: 13px; }
  .kaitori-panel .price-table .price-col { font-size: 15px; }

  /* パネル内 why-grid */
  .kaitori-panel .why-grid { grid-template-columns: 1fr; gap: 12px; }
  .kaitori-panel .point-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kaitori-panel .faq-list details { font-size: 14px; }

  /* パネル内 CTAボタン */
  .hero-btns { flex-direction: column; gap: 10px; }
  .btn-hero-line, .btn-hero-outline { width: 100%; justify-content: center; text-align: center; }
}

/* ===== 価格テーブル：td・price-col・badge ===== */
.kaitori-panel .price-table td {
  padding: 13px 16px;
  font-size: 14px;
  color: var(--black);
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.kaitori-panel .price-table tr:nth-child(even) td { background: #fafafa; }
.kaitori-panel .price-table tr:last-child td { border-bottom: none; }
.kaitori-panel .price-table .price-col {
  font-family: 'Oswald', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--red);
  text-align: right;
  white-space: nowrap;
}
.badge-ok {
  display: inline-block;
  background: rgba(232,0,45,.08);
  color: var(--red);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
}
.badge-strong {
  display: inline-block;
  background: var(--red);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
}
.price-note {
  font-size: 12px;
  color: #888;
  padding: 10px 16px 14px;
  margin: 0;
  border-top: 1px solid var(--border);
  background: #fafafa;
}

/* ===== スマホ: ジャンルグリッド ===== */

@media(max-width:640px) {
  .genre-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .genre-card {
    padding: 16px 10px;
    gap: 6px;
  }
  .g-icon {
    width: 52px;
    height: 52px;
    font-size: 28px;
  }
  .g-name { font-size: 12px; }

  /* パネル内テーブルをスクロール対応 */
  .price-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .price-table { min-width: 500px; }
  .price-table-head { min-width: 500px; display: grid; }

  /* パネル内hero スマホ対応 */
  .genre-hero .hero-inner { grid-template-columns: 1fr; }
  .hero-h1 { font-size: clamp(22px, 5.5vw, 38px); }

  /* 価格テーブル スマホ対応 */
  .kaitori-panel .price-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 8px; }
  .kaitori-panel .price-table-head,
  .kaitori-panel .price-table { min-width: 480px; }
  .kaitori-panel .price-table td { padding: 10px 12px; font-size: 13px; }
  .kaitori-panel .price-table .price-col { font-size: 15px; }

  /* パネル内 why-grid */
  .kaitori-panel .why-grid { grid-template-columns: 1fr; gap: 12px; }
  .kaitori-panel .point-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kaitori-panel .faq-list details { font-size: 14px; }

  /* パネル内 CTAボタン */
  .hero-btns { flex-direction: column; gap: 10px; }
  .btn-hero-line, .btn-hero-outline { width: 100%; justify-content: center; text-align: center; }
}
