/*
Theme Name: TRAVEL FIT Luxe
Description: TRAVEL FIT（トラベルフィット）高級感エディトリアル版 トップページ用 子テーマ。JINの子テーマとして、ヘッダー・フッター・メニュー・ウィジェットはそのまま親テーマ（JIN）のものを使用し、フロントページのみ本テーマのデザインに差し替えます。
Author: TRAVEL FIT
Template: jin
Version: 1.0.0
Text Domain: travelfit-luxe
*/

/* ============================================================
   TRAVEL FIT Luxe — front page only
   このCSSはすべて .tf-luxe 配下にスコープされており、
   トップページ以外（投稿・固定ページ・他プラグイン）の見た目には影響しません。
   ============================================================ */

.tf-luxe{
  --ink:#0d1726;
  --ink-2:#16263d;
  --paper:#f7f2e6;
  --paper-2:#efe4c8;
  --card:#fffdf7;
  --text-on-ink:#f2ecdd;
  --text-on-ink-soft:#a7b3c6;
  --text-on-paper:#1b2a3f;
  --text-on-paper-soft:#5c6472;
  --gold:#c49a44;
  --gold-deep:#8f6f2c;
  --gold-soft:#e8dab3;
  --line-ink:rgba(242,236,221,0.16);
  --line-paper:#dfd2a8;
  --shadow:rgba(8,13,22,0.4);

  display:block;
  font-family:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",sans-serif;
  line-height:1.8;
  background:var(--paper);
  color:var(--text-on-paper);
  isolation:isolate;
}
.tf-luxe *{ box-sizing:border-box; }
.tf-luxe h1,.tf-luxe h2,.tf-luxe h3{
  font-family:"Shippori Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-weight:600; margin:0; letter-spacing:0.02em; text-wrap:balance;
}
.tf-luxe .lat{ font-family:"Cormorant Garamond","Shippori Mincho",serif; }
.tf-luxe a{ color:inherit; text-decoration:none; }
.tf-luxe img{ max-width:100%; display:block; }
.tf-luxe .wrap{ max-width:1120px; margin:0 auto; padding-left:24px; padding-right:24px; }
@media (max-width:640px){ .tf-luxe .wrap{ padding-left:18px; padding-right:18px; } }

.tf-luxe .eyebrow{
  font-family:"Cormorant Garamond",serif; font-style:italic;
  font-size:1.05rem; letter-spacing:0.08em; color:var(--gold); font-weight:600;
}
.tf-luxe .on-paper .eyebrow,.tf-luxe .on-paper-2 .eyebrow{ color:var(--gold-deep); }
.tf-luxe .rule{ width:46px; height:1px; background:var(--gold); border:none; margin:14px 0 0; }

.tf-luxe section{ padding-block:84px; }
@media (max-width:700px){ .tf-luxe section{ padding-block:54px; } }
.tf-luxe .on-ink{ background:var(--ink); color:var(--text-on-ink); }
.tf-luxe .on-paper{ background:var(--paper); color:var(--text-on-paper); }
.tf-luxe .on-paper-2{ background:var(--paper-2); color:var(--text-on-paper); }

.tf-luxe .btn-outline{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--gold); color:var(--gold);
  padding:13px 30px; border-radius:2px; font-size:0.86rem; letter-spacing:0.08em;
  white-space:nowrap; transition:background .2s ease, color .2s ease;
}
.tf-luxe .btn-outline:hover{ background:var(--gold); color:var(--ink); }
.tf-luxe .btn-outline.variant-paper{ color:var(--gold-deep); border-color:var(--gold-deep); }
.tf-luxe .btn-outline.variant-paper:hover{ background:var(--gold-deep); color:var(--paper); }
.tf-luxe .link-underline{
  border-bottom:1px solid currentColor; padding-bottom:3px; font-size:0.9rem;
  letter-spacing:0.03em; white-space:nowrap;
}

/* ---------- hero ---------- */
.tf-luxe .hero{
  position:relative; min-height:min(92vh,880px); display:flex; align-items:flex-end;
  color:var(--text-on-ink); overflow:hidden; background-color:var(--ink);
}
.tf-luxe .hero .hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center 60%;
}
.tf-luxe .hero::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(0deg, rgba(10,17,29,0.94) 8%, rgba(10,17,29,0.55) 42%, rgba(10,17,29,0.18) 68%, rgba(10,17,29,0.35) 100%);
}
.tf-luxe .hero-inner{ position:relative; z-index:1; padding-block:72px 64px; width:100%; }
.tf-luxe .hero h1{ font-size:clamp(2.1rem,4.6vw,3.35rem); line-height:1.5; margin-top:18px; max-width:16em; }
.tf-luxe .hero p.lead{ color:var(--text-on-ink-soft); margin-top:20px; max-width:34em; font-size:1.02rem; }
.tf-luxe .hero .ctas{ display:flex; gap:20px; margin-top:34px; flex-wrap:wrap; align-items:center; }
.tf-luxe .chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:30px; }
.tf-luxe .chip{ font-size:0.76rem; letter-spacing:0.04em; padding:6px 14px; border:1px solid rgba(242,236,221,0.3); color:var(--text-on-ink-soft); }
.tf-luxe .chip.gold{ border-color:var(--gold); color:var(--gold); }

/* ---------- 写真背景つきセクション（404ページ等で再利用） ---------- */
.tf-luxe .bgphoto-section{ position:relative; overflow:hidden; }
.tf-luxe .bgphoto-section .bgphoto{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.tf-luxe .bgphoto-section::after{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(0deg, rgba(10,17,29,0.93) 12%, rgba(10,17,29,0.58) 55%, rgba(10,17,29,0.8) 100%);
}
.tf-luxe .bgphoto-section > .wrap{ position:relative; z-index:1; }

/* ---------- about ---------- */
.tf-luxe .about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width:860px){ .tf-luxe .about-grid{ grid-template-columns:1fr; } .tf-luxe .about-grid .about-photo{ order:-1; } }
.tf-luxe .about-photo{ position:relative; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line-paper); }
.tf-luxe .about-photo img{ width:100%; height:100%; object-fit:cover; }
.tf-luxe .about-photo .icon-badge{
  position:absolute; left:18px; bottom:18px; background:var(--card);
  padding:9px 16px; box-shadow:0 10px 26px var(--shadow); display:flex; align-items:center;
}
.tf-luxe .about-photo .icon-badge img{ height:26px; width:auto; }
.tf-luxe .about-grid p.body{ color:var(--text-on-paper-soft); margin-top:18px; max-width:46em; }
.tf-luxe .stat-row{ display:flex; gap:0; margin-top:30px; flex-wrap:wrap; }
.tf-luxe .stat{ padding-right:34px; margin-right:34px; border-right:1px solid var(--line-paper); }
.tf-luxe .stat:last-child{ border-right:none; padding-right:0; margin-right:0; }
@media (max-width:500px){ .tf-luxe .stat{ padding-right:20px; margin-right:20px; } }
.tf-luxe .stat b{ font-family:"Cormorant Garamond",serif; font-size:2.2rem; color:var(--gold-deep); font-weight:700; display:block; font-variant-numeric:tabular-nums; }
.tf-luxe .stat span{ font-size:0.78rem; color:var(--text-on-paper-soft); letter-spacing:0.03em; }

/* ---------- numbered pillars ---------- */
.tf-luxe .pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:52px; }
@media (max-width:760px){ .tf-luxe .pillars{ grid-template-columns:1fr; gap:40px; } }
.tf-luxe .pillar .num{ font-family:"Cormorant Garamond",serif; font-size:2.6rem; color:var(--gold); font-weight:600; line-height:1; }
.tf-luxe .pillar h3{ font-size:1.18rem; margin-top:10px; color:var(--text-on-ink); font-weight:600; }
.tf-luxe .pillar p{ color:var(--text-on-ink-soft); font-size:0.92rem; margin-top:12px; line-height:1.9; }
.tf-luxe .pillar hr.rule{ background:var(--gold); margin-top:16px; }

/* ---------- diagnosis ---------- */
.tf-luxe .diag-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width:860px){ .tf-luxe .diag-grid{ grid-template-columns:1fr; } }
.tf-luxe .diag-panel{ border:1px solid var(--line-paper); padding:34px; background:var(--card); }
.tf-luxe .diag-panel .q{ font-family:"Shippori Mincho",serif; font-size:1.05rem; margin-bottom:20px; color:var(--text-on-paper); }
.tf-luxe .diag-opt{ display:flex; align-items:center; gap:12px; padding-block:11px; border-bottom:1px solid var(--line-paper); font-size:0.92rem; }
.tf-luxe .diag-opt:last-child{ border-bottom:none; }
.tf-luxe .diag-opt .dot{ width:8px; height:8px; border-radius:50%; border:1px solid var(--gold-deep); flex:none; }
.tf-luxe .diag-opt.sel .dot{ background:var(--gold); }
.tf-luxe .diag-opt.sel{ color:var(--gold-deep); font-weight:700; }
.tf-luxe .diag-panel .progress{ height:2px; background:var(--line-paper); margin-top:18px; position:relative; }
.tf-luxe .diag-panel .progress i{ position:absolute; left:0; top:0; bottom:0; width:50%; background:var(--gold); }
.tf-luxe .diag-panel .step{ margin-top:10px; font-size:0.74rem; color:var(--text-on-paper-soft); letter-spacing:0.04em; }

/* ---------- purpose / region ---------- */
.tf-luxe .grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-ink); margin-top:52px; border:1px solid var(--line-ink); }
@media (max-width:860px){ .tf-luxe .grid-4{ grid-template-columns:repeat(2,1fr); } }
.tf-luxe .tile{ background:var(--ink); padding:0; display:flex; flex-direction:column; }
.tf-luxe .tile-photo{ position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--ink-2); }
.tf-luxe .tile-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.tf-luxe a.tile:hover .tile-photo img{ transform:scale(1.06); }
.tf-luxe .tile-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,17,29,0) 55%,rgba(10,17,29,0.7) 100%); }
.tf-luxe .tile-ic{
  position:absolute; left:14px; bottom:12px; z-index:1; width:34px; height:34px; display:flex;
  align-items:center; justify-content:center; background:var(--ink); border:1px solid var(--gold);
}
.tf-luxe .tile-ic .ic{ width:17px; height:17px; color:var(--gold); }
.tf-luxe .tile-body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:12px; flex:1; }
.tf-luxe .tile h4{ font-family:"Shippori Mincho",serif; font-size:1.05rem; font-weight:600; color:var(--text-on-ink); }
.tf-luxe .tile p{ font-size:0.86rem; color:var(--text-on-ink-soft); line-height:1.85; flex:1; }
.tf-luxe .tile .tag{ font-size:0.72rem; color:var(--gold); letter-spacing:0.04em; }
a.tf-luxe .tile,
.tf-luxe a.tile{ text-decoration:none; transition:background .2s ease, transform .2s ease; }
.tf-luxe a.tile:hover{ background:#182a46; transform:translateY(-2px); }
.tf-luxe .tile.tile-soon{ opacity:0.72; }
.tf-luxe .tile.tile-soon .tile-photo img{ filter:grayscale(0.5); }
.tf-luxe .tile .tag.tag-soon{ color:var(--text-on-ink-soft); }

/* ---------- region（写真グリッド） ---------- */
.tf-luxe .region-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-paper); border:1px solid var(--line-paper); margin-top:44px;
}
@media (max-width:760px){ .tf-luxe .region-grid{ grid-template-columns:repeat(2,1fr); } }
.tf-luxe .region-card{
  position:relative; display:block; aspect-ratio:4/3; overflow:hidden;
  background:var(--ink); text-decoration:none;
}
.tf-luxe .region-card img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .4s ease; filter:saturate(1.05);
}
.tf-luxe a.region-card:hover img{ transform:scale(1.06); }
.tf-luxe .region-card::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,17,29,0) 42%, rgba(10,17,29,0.8) 100%);
}
.tf-luxe .region-card-label{
  position:absolute; left:16px; right:16px; bottom:13px; z-index:1;
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  color:#f2ecdd; font-family:"Shippori Mincho",serif; font-weight:600;
  font-size:0.96rem; letter-spacing:0.02em;
}
.tf-luxe .region-card-count{ font-size:0.68rem; color:#e7d9ab; letter-spacing:0.03em; white-space:nowrap; font-family:inherit; font-weight:500; }
.tf-luxe .region-card.is-soon{ cursor:default; }
.tf-luxe .region-card.is-soon img{ filter:grayscale(0.6) brightness(0.82); }
.tf-luxe .region-card.is-soon .region-card-count{ color:#c9bd9a; }

/* ---------- ranking ---------- */
.tf-luxe .rank-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:1px; background:var(--line-ink); margin-top:52px; border:1px solid var(--line-ink); }
@media (max-width:900px){ .tf-luxe .rank-grid{ grid-template-columns:1fr; } }
.tf-luxe .rcard{ background:var(--ink); padding:0; display:flex; flex-direction:column; }
.tf-luxe .rcard-thumb{ display:block; aspect-ratio:16/9; overflow:hidden; background:var(--ink-2); }
.tf-luxe .rcard-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.tf-luxe .rcard-body{ padding:28px 30px 32px; display:flex; flex-direction:column; gap:16px; flex:1; }
.tf-luxe .rcard .kicker{ font-size:0.72rem; letter-spacing:0.08em; color:var(--gold); }
.tf-luxe .rcard h3{ font-size:1.08rem; color:var(--text-on-ink); font-weight:600; }
.tf-luxe table.mini{ width:100%; border-collapse:collapse; font-size:0.78rem; }
.tf-luxe table.mini th,.tf-luxe table.mini td{ padding:8px 4px; border-bottom:1px solid var(--line-ink); text-align:left; color:var(--text-on-ink-soft); }
.tf-luxe table.mini th{ color:var(--gold); font-weight:600; font-size:0.72rem; letter-spacing:0.03em; }
.tf-luxe table.mini td.win{ color:var(--gold); font-weight:700; }
.tf-luxe .rcard p.note{ font-size:0.84rem; color:var(--text-on-ink-soft); }
.tf-luxe .prompt-box{ border-left:2px solid var(--gold); padding:12px 16px; font-size:0.8rem; color:var(--text-on-ink-soft); }
.tf-luxe .rcard .read{ margin-top:auto; font-size:0.78rem; color:var(--gold); letter-spacing:0.03em; }
.tf-luxe .rcard a.read-link{ display:inline-flex; }

/* ---- 人気記事（アクセス数の自動集計） ---- */
.tf-luxe .popular-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-paper); border:1px solid var(--line-paper); margin-top:0;
}
@media (max-width:860px){ .tf-luxe .popular-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .tf-luxe .popular-grid{ grid-template-columns:1fr; } }
.tf-luxe a.popular-card{
  display:flex; flex-direction:column; background:var(--paper); text-decoration:none;
  transition:background .2s ease;
}
.tf-luxe a.popular-card:hover{ background:var(--paper-2); }
.tf-luxe .popular-thumb{ display:block; aspect-ratio:16/9; overflow:hidden; background:var(--ink); }
.tf-luxe .popular-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.tf-luxe a.popular-card:hover .popular-thumb img{ transform:scale(1.04); }
.tf-luxe .popular-body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1; }
.tf-luxe .popular-cat{ font-size:0.7rem; letter-spacing:0.08em; color:var(--gold-deep); font-weight:700; }
.tf-luxe .popular-title{
  font-family:"Shippori Mincho",serif; font-size:0.98rem; font-weight:600;
  color:var(--text-on-paper); line-height:1.6;
}

/* ---- 検索結果ページ（search.php） ---- */
.tf-luxe .tf-search-list{
  display:flex; flex-direction:column; gap:1px;
  background:var(--line-paper); border:1px solid var(--line-paper);
}
.tf-luxe a.tf-search-item{
  display:flex; gap:22px; background:var(--paper); text-decoration:none;
  padding:22px; transition:background .2s ease;
}
.tf-luxe a.tf-search-item:hover{ background:var(--paper-2); }
.tf-luxe .tf-search-thumb{
  display:block; flex:0 0 160px; width:160px; aspect-ratio:4/3; overflow:hidden;
  background:var(--ink);
}
.tf-luxe .tf-search-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.tf-luxe .tf-search-body{ display:flex; flex-direction:column; gap:8px; min-width:0; flex:1; justify-content:center; }
.tf-luxe .tf-search-cat{ font-size:0.7rem; letter-spacing:0.08em; color:var(--gold-deep); font-weight:700; }
.tf-luxe .tf-search-title{
  font-family:"Shippori Mincho",serif; font-size:1.04rem; font-weight:600;
  color:var(--text-on-paper); line-height:1.5;
}
.tf-luxe .tf-search-excerpt{
  font-size:0.84rem; color:var(--text-on-paper-soft); line-height:1.8;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
@media (max-width:620px){
  .tf-luxe a.tf-search-item{ gap:16px; padding:16px; }
  .tf-luxe .tf-search-thumb{ flex-basis:96px; width:96px; }
  .tf-luxe .tf-search-excerpt{ display:none; }
}
.tf-luxe .tf-empty-search{ border:1px solid var(--line-paper); background:var(--paper); }

/* ---------- savings ---------- */
.tf-luxe .save-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width:860px){ .tf-luxe .save-grid{ grid-template-columns:1fr; } }
.tf-luxe .bar-row{ display:flex; align-items:flex-end; gap:16px; height:150px; margin-top:52px; }
.tf-luxe .bar{ flex:1; background:var(--paper-2); border-top:2px solid var(--gold-deep); position:relative; }
.tf-luxe .bar:last-child{ border-top-color:var(--gold); }
.tf-luxe .bar span{ position:absolute; top:-38px; left:0; right:0; text-align:center; font-size:0.68rem; color:var(--text-on-paper-soft); line-height:1.3; }
.tf-luxe .bar span b{ display:block; font-family:"Cormorant Garamond",serif; font-size:1rem; color:var(--text-on-paper); font-variant-numeric:tabular-nums; }
.tf-luxe .save-note{ margin-top:18px; font-size:0.82rem; color:var(--text-on-paper-soft); border-top:1px solid var(--line-paper); padding-top:14px; }

/* ---------- closing CTA ---------- */
.tf-luxe .closing{ text-align:center; }
.tf-luxe .closing h2{ max-width:18em; margin:0 auto; }
.tf-luxe .closing .ctas{ justify-content:center; margin-top:30px; }

/* ---------- hero: primary / secondary CTA weighting ---------- */
.tf-luxe .btn-solid{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--gold); color:var(--ink);
  padding:15px 34px; border-radius:2px; font-size:0.92rem; font-weight:700;
  letter-spacing:0.06em; white-space:nowrap; border:1px solid var(--gold);
  box-shadow:0 10px 26px rgba(196,154,68,0.3);
}
.tf-luxe .btn-solid:hover{ background:#d9ad56; }
.tf-luxe .mini-note{ font-size:0.76rem; color:var(--text-on-ink-soft); margin-top:10px; letter-spacing:0.03em; }

/* ============================================================
   旅行診断 専用ページ (page-shindan.php)
   ============================================================ */
.tf-luxe .shindan-section{ padding-block:72px; }
.tf-luxe .shindan-head{ text-align:center; max-width:40em; margin:0 auto; }
.tf-luxe .shindan-head h1{ font-size:clamp(1.9rem,4vw,2.5rem); margin-top:10px; }
.tf-luxe .shindan-head p{ color:var(--text-on-ink-soft); margin-top:16px; }
.tf-luxe .shindan-head .badges{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:22px; }

.tf-luxe .shindan-stage{ max-width:640px; margin:48px auto 0; }
.tf-luxe .progress-track{ height:3px; background:var(--line-ink); position:relative; }
.tf-luxe .progress-fill{ position:absolute; left:0; top:0; bottom:0; width:20%; background:var(--gold); transition:width .3s ease; }
.tf-luxe .progress-label{ margin-top:10px; font-size:0.74rem; color:var(--text-on-ink-soft); letter-spacing:0.04em; text-align:right; }
.tf-luxe .progress-track.variant-paper{ height:6px; background:var(--line-paper); }
.tf-luxe .progress-label.variant-paper{ color:var(--text-on-paper-soft); text-align:left; }

/* ---------- 会員登録メリット（benefit-grid） ---------- */
.tf-luxe .benefit-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:26px; }
@media (max-width:760px){ .tf-luxe .benefit-grid{ grid-template-columns:1fr; gap:22px; } }
.tf-luxe .benefit{ display:flex; gap:14px; align-items:flex-start; }
.tf-luxe .benefit .ic{ width:22px; height:22px; color:var(--gold-deep); flex:none; margin-top:2px; }
.tf-luxe .benefit h5{ font-size:0.92rem; font-weight:700; color:var(--text-on-paper); margin:0 0 4px; }
.tf-luxe .benefit p{ font-size:0.82rem; color:var(--text-on-paper-soft); line-height:1.75; margin:0; }

.tf-luxe .q-card{ display:none; margin-top:36px; }
.tf-luxe .q-card.active{ display:block; }
.tf-luxe .q-card .q-eyebrow{ font-size:0.76rem; letter-spacing:0.08em; color:var(--gold); }
.tf-luxe .q-card h2{ font-size:1.3rem; margin-top:10px; color:var(--text-on-ink); max-width:22em; }
.tf-luxe .opt-list{ display:flex; flex-direction:column; gap:12px; margin-top:28px; }
.tf-luxe .opt-btn{
  text-align:left; width:100%; background:transparent; color:var(--text-on-ink);
  border:1px solid var(--line-ink); padding:16px 20px; font-size:0.94rem; font-family:inherit;
  cursor:pointer; transition:border-color .2s ease, background .2s ease; letter-spacing:0.01em;
  line-height:1.7;
}
.tf-luxe .opt-btn:hover{ border-color:var(--gold); }
.tf-luxe .opt-btn.active{ border-color:var(--gold); background:rgba(196,154,68,0.12); color:var(--text-on-ink); }
.tf-luxe .q-nav{ display:flex; justify-content:space-between; align-items:center; margin-top:30px; }
.tf-luxe .q-back{ font-size:0.82rem; color:var(--text-on-ink-soft); border-bottom:1px solid transparent; cursor:pointer; background:none; border-top:none;border-left:none;border-right:none; padding:0; font-family:inherit; }
.tf-luxe .q-back:hover{ border-bottom-color:var(--text-on-ink-soft); }
.tf-luxe .q-back:disabled{ visibility:hidden; }

.tf-luxe .result-wrap{ display:none; margin-top:36px; }
.tf-luxe .result-wrap.active{ display:block; }
.tf-luxe .result-persona{ text-align:center; border-bottom:1px solid var(--line-ink); padding-bottom:36px; }
.tf-luxe .result-persona .q-eyebrow{ font-size:0.76rem; letter-spacing:0.08em; color:var(--gold); }
.tf-luxe .result-persona h2{ font-size:1.7rem; margin-top:12px; color:var(--text-on-ink); }
.tf-luxe .result-persona p{ color:var(--text-on-ink-soft); margin-top:14px; max-width:32em; margin-inline:auto; }
.tf-luxe .result-tags{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:20px; }

.tf-luxe .hotel-card{
  margin-top:28px; border:1px solid var(--line-ink); padding:28px; background:var(--ink-2);
  display:flex; flex-direction:column; gap:14px;
}
.tf-luxe .hotel-card .kicker{ font-size:0.72rem; letter-spacing:0.08em; color:var(--gold); }
.tf-luxe .hotel-card h3{ font-size:1.2rem; color:var(--text-on-ink); font-weight:600; }
.tf-luxe .hotel-card .area{ font-size:0.82rem; color:var(--text-on-ink-soft); }
.tf-luxe .hotel-card p.desc{ font-size:0.9rem; color:var(--text-on-ink-soft); line-height:1.85; }
.tf-luxe .hotel-card .btn-row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:6px; align-items:center; }
.tf-luxe .btn-copy{
  display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--text-on-ink);
  border:1px solid var(--line-ink); padding:11px 20px; font-size:0.82rem; letter-spacing:0.03em;
  cursor:pointer; font-family:inherit; transition:border-color .2s ease;
}
.tf-luxe .btn-copy:hover{ border-color:var(--gold); }
.tf-luxe .btn-copy.copied{ border-color:var(--gold); color:var(--gold); }
.tf-luxe a.btn-jalan{
  display:inline-flex; align-items:center; gap:8px; background:var(--gold); color:var(--ink);
  padding:11px 22px; font-size:0.82rem; font-weight:700; letter-spacing:0.03em; border-radius:2px;
}
.tf-luxe a.btn-jalan:hover{ background:#d9ad56; }
.tf-luxe a.btn-rakuten{
  display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--gold);
  border:1px solid var(--gold); padding:10px 21px; font-size:0.82rem; font-weight:700; letter-spacing:0.03em; border-radius:2px;
}
.tf-luxe a.btn-rakuten:hover{ background:rgba(196,154,68,0.12); }

/* ===== 空室確認ウィジェット（じゃらん/楽天トラベルへ飛ぶ前にサイト内で確認） ===== */
.tf-luxe .tf-vacancy-widget{
  margin-top:10px; padding:18px 20px; border:1px dashed rgba(196,154,68,0.5); background:rgba(196,154,68,0.06);
}
.tf-luxe .tf-vacancy-label{ font-size:0.78rem; color:var(--text-on-ink-soft); margin-bottom:12px; }
.tf-luxe .tf-vacancy-row{ display:flex; gap:14px; flex-wrap:wrap; align-items:flex-end; }
.tf-luxe .tf-vacancy-row label{ display:flex; flex-direction:column; gap:5px; font-size:0.72rem; color:var(--text-on-ink-soft); letter-spacing:0.03em; }
.tf-luxe .tf-vacancy-row input[type="date"],
.tf-luxe .tf-vacancy-row select{
  font-family:inherit; font-size:0.84rem; padding:8px 10px; background:var(--ink); color:var(--text-on-ink);
  border:1px solid var(--line-ink);
}
.tf-luxe .tf-vacancy-btn{
  background:var(--gold); color:var(--ink); border:1px solid var(--gold); padding:10px 20px;
  font-size:0.82rem; font-weight:700; letter-spacing:0.03em; cursor:pointer; font-family:inherit;
}
.tf-luxe .tf-vacancy-btn:hover{ background:#d9ad56; }
.tf-luxe .tf-vacancy-btn:disabled{ opacity:0.6; cursor:default; }
.tf-luxe .tf-vacancy-result{ margin-top:14px; font-size:0.84rem; line-height:1.7; }
.tf-luxe .tf-vacancy-result.is-available{ color:#7fd79a; }
.tf-luxe .tf-vacancy-result.is-unavailable{ color:#e39b9b; }
.tf-luxe .tf-vacancy-result.is-unknown{ color:var(--text-on-ink-soft); }
.tf-luxe .tf-vacancy-links{ margin-top:14px; gap:12px; flex-wrap:wrap; }

.tf-luxe .result-footnote{ margin-top:26px; font-size:0.82rem; color:var(--text-on-ink-soft); text-align:center; }
.tf-luxe .result-actions{ display:flex; gap:20px; justify-content:center; margin-top:30px; flex-wrap:wrap; }
.tf-luxe .retry-link{ font-size:0.84rem; color:var(--text-on-ink-soft); border-bottom:1px solid var(--line-ink); padding-bottom:3px; background:none; border-top:none; border-left:none; border-right:none; cursor:pointer; font-family:inherit; }
.tf-luxe .retry-link:hover{ color:var(--gold); border-bottom-color:var(--gold); }

/* ============================================================
   TRAVEL FIT Luxe — サイト全体向けの追加機能CSS
   ここから下は .tf-luxe の外（記事ページ・カテゴリページなど、
   親テーマJINがそのまま描画している領域）にも表示されるため、
   .tf-luxe のCSS変数には依存せず、ブランドカラーを直接指定しています。
   どのテーマ配下でも崩れにくいよう、最小限のレイアウト指定のみ行っています。
   ============================================================ */

/* パンくずリスト */
.tf-breadcrumbs{
  display:block; font-size:0.82rem; color:#6b7280; margin:0 0 18px; letter-spacing:0.02em;
}
.tf-breadcrumbs a{ color:#8f6f2c; text-decoration:none; }
.tf-breadcrumbs a:hover{ text-decoration:underline; }
.tf-breadcrumbs .tf-bc-sep{ margin:0 8px; color:#b8bcc4; }

/* 記事内目次 */
.tf-toc{
  background:#f7f2e6; border:1px solid #e8dab3; border-radius:4px;
  padding:20px 24px; margin:0 0 28px; max-width:100%;
}
.tf-toc-title{ font-weight:700; color:#1b2a3f; margin:0 0 10px; font-size:0.95rem; letter-spacing:0.03em; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tf-toc-readtime{ font-weight:500; font-size:0.78rem; color:#8f6f2c; letter-spacing:0.02em; white-space:nowrap; }
.tf-toc-list{ list-style:none; margin:0; padding:0; counter-reset:tf-toc; }
.tf-toc-list li{ counter-increment:tf-toc; margin:0 0 8px; padding-left:1.6em; position:relative; font-size:0.9rem; }
.tf-toc-list li::before{ content:counter(tf-toc) "."; position:absolute; left:0; color:#c49a44; font-weight:700; }
.tf-toc-list li.tf-toc-sub{ margin-left:1.2em; font-size:0.85rem; opacity:0.85; }
.tf-toc-list a{ color:#1b2a3f; text-decoration:none; }
.tf-toc-list a:hover{ color:#8f6f2c; text-decoration:underline; }

/* 関連記事 */
.tf-related{ margin-top:48px; padding-top:32px; border-top:1px solid #e5e0d0; }
.tf-related-title{ font-weight:700; font-size:1.02rem; color:#1b2a3f; margin:0 0 18px; }
.tf-related-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
@media (max-width:700px){ .tf-related-grid{ grid-template-columns:1fr; } }
.tf-related-card{ display:block; text-decoration:none; color:inherit; border:1px solid #eee3c7; border-radius:4px; overflow:hidden; background:#fff; transition:box-shadow .2s ease; }
.tf-related-card:hover{ box-shadow:0 6px 18px rgba(13,23,38,0.12); }
.tf-related-thumb img{ width:100%; height:auto; display:block; }
.tf-related-card-title{ font-size:0.86rem; line-height:1.6; padding:12px 14px; margin:0; color:#1b2a3f; }

/* 人気記事ウィジェット */
.tf-popular-list{ list-style:none; margin:0; padding:0; }
.tf-popular-list li + li{ margin-top:10px; padding-top:10px; border-top:1px dashed #e5e0d0; }
.tf-popular-list a{ display:flex; align-items:flex-start; gap:10px; text-decoration:none; color:inherit; }
.tf-popular-rank{ flex:0 0 auto; font-family:Georgia, serif; font-weight:700; color:#c49a44; font-size:1.1rem; min-width:1.4em; }
.tf-popular-title{ font-size:0.86rem; line-height:1.6; color:#1b2a3f; }
.tf-popular-list a:hover .tf-popular-title{ color:#8f6f2c; text-decoration:underline; }

/* レスポンシブ比較表（はみ出すテーブルを横スクロール化） */
table{ max-width:100%; }
.entry-content table, article table, .tf-luxe table{
  display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap;
}

/* 診断結果のSNSシェア */
.tf-luxe .result-share{ margin-top:24px; text-align:center; }
.tf-luxe .result-share .share-label{ font-size:0.78rem; color:var(--text-on-ink-soft); margin-bottom:10px; }
.tf-luxe .result-share .share-row{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.tf-luxe .share-btn{
  display:inline-flex; align-items:center; padding:9px 18px; font-size:0.78rem; font-weight:700;
  letter-spacing:0.03em; border-radius:2px; text-decoration:none; border:1px solid var(--line-ink); color:var(--text-on-ink);
}
.tf-luxe .share-btn.share-x{ background:#000; color:#fff; border-color:#000; }
.tf-luxe .share-btn.share-line{ background:#06c755; color:#fff; border-color:#06c755; }

/* フローティングCTA（回遊導線） */
.tf-floating-cta{
  position:fixed; left:0; right:0; bottom:-80px; z-index:9999;
  background:#0d1726; border-top:1px solid #c49a44; color:#f2ecdd;
  display:flex; align-items:center; justify-content:center; gap:16px;
  padding:14px 20px; transition:bottom .3s ease; box-shadow:0 -4px 18px rgba(0,0,0,0.25);
}
.tf-floating-cta.visible{ bottom:0; }
.tf-floating-cta a{
  color:#0d1726; background:#c49a44; padding:10px 22px; font-size:0.85rem; font-weight:700;
  letter-spacing:0.03em; text-decoration:none; border-radius:2px;
}
.tf-floating-cta a:hover{ background:#d9ad56; }
.tf-floating-cta button{
  background:none; border:none; color:#a7b3c6; font-size:1.3rem; line-height:1; cursor:pointer; padding:4px 8px;
}
.tf-floating-cta button:hover{ color:#f2ecdd; }
@media (max-width:480px){ .tf-floating-cta{ flex-direction:column; gap:8px; padding:12px; } }

/* ==========================================================================
   JINテーマ標準「ピックアップ記事」ブロックを非表示にする
   ヘッダー直下に最新の投稿・固定ページを自動的に拾って表示する機能だが、
   アイキャッチ画像のない固定ページ（レビュー投稿・マル秘記事など）まで
   NO IMAGEのまま一覧に出てしまい、トップページの第一印象を損ねるため。
   このブロックの代わりに、front-page.php で作り込んだトップページ
   （診断・About・選ばれる理由・ランキング・レビューなど）を表示する。
   ========================================================================== */
.pickup-contents-box{ display:none !important; }
